/* Variables (light) */
		:root {
			--axo_module_maincolor: var(--primary);
			--axofilter-radius-lg: 12px;
			--axofilter-radius-sm: 10px;
			--axofilter-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial;
			--axofilter-font-size: .95rem;
			--axofilter-font-size-sm: .9rem;
			--axofilter-pad-y: .55rem;
			--axofilter-pad-x: .9rem;
			--axofilter-pad-y-lg: .65rem;
			--axofilter-border: 1px solid rgba(17, 24, 39, .10);
			--axofilter-sep: 1px solid rgba(17, 24, 39, .08);
			--axofilter-bg: #ffffff;
			--axofilter-bg-soft: #f6f8fb;
			--axofilter-bg-hover: rgba(13, 110, 253, .08);
			--axofilter-bg-active: var(--primary);
			--axofilter-text: #1f2937;
			--axofilter-muted: #6b7280;
			--axofilter-accent: #fff;
			--axofilter-shadow: 0 6px 22px rgba(2, 6, 23, .08), 0 1px 2px rgba(2, 6, 23, .06);
			--axofilter-shadow-soft: 0 1px 1px rgba(2, 6, 23, .06);
			--axofilter-ring: 0 0 0 .18rem rgba(0, 0, 0, .05);
			--axofilter2_colorborder: #ededed;
			--axofilter2_colortitle: #3f3f3f;
			--axofilter2_colortxt: #4e4e4e;
			--axofilter2_backcolor: #fff;
			--axofilter2_shadowcolor: rgba(17, 12, 46, 0.1);
			--axofilter2_chipbg: rgba(0, 0, 0, 0.04);
		}

		/* Variables (dark) */
		.axo-book_container.dark-module {
			--axofilter2_colorborder: rgba(255, 255, 255, 0.15);
			--axofilter2_colortitle: rgba(255, 255, 255, 0.95);
			--axofilter2_colortxt: rgba(255, 255, 255, 0.9);
			--axofilter2_backcolor: rgba(0, 0, 0, 1);
			--axofilter2_shadowcolor: rgba(255, 255, 255, 0.05);
			--axofilter2_chipbg: rgba(255, 255, 255, 0.08);
		}


		@media(max-width:991px) {
			.axofilter-container {
				font-family: var(--axofilter-font);
				color: var(--axofilter-text);
				width: 440px;
				display: flex;
				max-width: 100%;
				margin: 0px auto;
			}
		}

		.axo-proj_container{
			max-width: 1440px;
			padding: 100px 50px;
		}

		#projList{
			margin: 0;
		}

		/* Trigger */
		.axofilter {
			position: relative;
			z-index: 2;
			width: 100%;
		}

		.axofilter-trigger {
			color: #374151;
			position: relative;
			width: 100%;
			display: flex;
			align-items: center;
			gap: .5rem;
			border-radius: var(--axofilter-radius-lg);
			border: var(--axofilter-border);
			background: radial-gradient(140% 140% at 10% 10%, rgba(255, 255, 255, 1) 0%, rgba(250, 252, 255, .85) 100%), var(--axofilter-bg);
			padding: var(--axofilter-pad-y-lg) var(--axofilter-pad-x);
			padding-right: 4.5rem;
			/* espace pour croix + caret */
			transition: box-shadow .2s, border-color .2s, transform .05s, background .2s;
			box-shadow: var(--axofilter-shadow-soft);
			font-size: var(--axofilter-font-size);
		}

		.axofilter-trigger:hover {
			background: linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(247, 250, 255, .9));
		}

		.axofilter-trigger:focus {
			outline: none;
			box-shadow: var(--axofilter-ring);
			border-color: rgba(0, 0, 0, .15);
		}

		.axofilter-trigger:active {
			transform: translateY(1px);
		}

		.axofilter-current {
			flex: 1;
			white-space: nowrap;
			overflow: hidden;
			text-overflow: ellipsis;
			text-align: left;
			font-weight: 700;
			font-size: 14.5px;
			color: #374151;
		}

		.axofilter-trigger-caret {
			position: absolute;
			right: 1rem;
			top: 50%;
			transform: translateY(-50%);
			opacity: .75;
		}

		/* Clear button intégré */
		.axofilter-clear {
			position: relative;
			justify-content: flex-end;
			margin-bottom: 3px;
			margin-left: auto;
			display: flex;
			align-items: center;
			gap: .25rem;
			border: none;
			background: transparent;
			color: var(--axofilter-muted);
			font-size: .85rem;
			padding: 0;
			cursor: pointer;
			visibility: hidden;
		}

		.axofilter-clear:hover {
			color: var(--axofilter-text);
		}

		.axofilter-clear-text {
			display: inline;
			font-size: .8rem;
		}

		.axofilter.has-value .axofilter-clear {
			visibility: visible;
		}

		/* Dropdown */
		.axofilter-dropdown {
			width: 100%;
			position: absolute;
			top: 100%;
			left: 0;
			margin-top: .2rem;
			background: var(--axofilter-bg);
			border: var(--axofilter-border);
			border-radius: var(--axofilter-radius-lg);
			box-shadow: var(--axofilter-shadow);
			overflow: hidden;
		}

		.axofilter-options {
			max-height: 320px;
			overflow: auto;
			-webkit-overflow-scrolling: touch;
		}

		/* Groupes */
		.axofilter-group+.axofilter-group {
			border-top: var(--axofilter-sep);
		}

		.axofilter-group-toggle {
			width: 100%;
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: .85rem var(--axofilter-pad-x);
			background: var(--axofilter-bg-soft);
			border: 0;
			cursor: pointer;
			font-weight: 500;
			color: #374151;
			font-size: .93rem;
		}

		.axofilter-group-toggle:hover,
		.axofilter-group-toggle:focus {
			background: #eef2f7;
			outline: none;
		}

		.axofilter-caret {
			transition: transform .15s ease;
			opacity: .8;
		}

		.axofilter-group-toggle[aria-expanded="true"] .axofilter-caret {
			transform: rotate(90deg);
		}

		/* Enfants & items */
		.axofilter-children {
			background: #fff;
			border-top: var(--axofilter-sep);
		}

		.axofilter-item {
			font-size: 14px;
			font-weight: 500;
			width: 100%;
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: .7rem var(--axofilter-pad-x);
			background: transparent;
			border: 0;
			cursor: pointer;
			font-size: var(--axofilter-font-size);
			color: #111827;
			transition: background .12s, color .12s;
			position: relative;
		}

		.axofilter-item+.axofilter-item {
			border-top: var(--axofilter-sep);
		}

		.axofilter-item:hover,
		.axofilter-item:focus {
			background: var(--axofilter-bg-hover);
			outline: none;
		}

		.axofilter-item.axofilter-child {
			padding-left: calc(var(--axofilter-pad-x) + 1.1rem);
			font-size: 13px;
		}

		.axofilter-item.axofilter-child::before {
			content: "";
			position: absolute;
			left: .95rem;
			top: .5rem;
			bottom: .5rem;
			width: 2px;
			border-radius: 2px;
			background: rgba(0, 0, 0, .18);
		}

		.axofilter-check {
			opacity: 0;
			transition: opacity .1s, transform .1s;
			transform: scale(.9);
		}

		.axofilter-item.active {
			background: var(--axofilter-bg-active);
			color: #fff;
		}

		.axofilter-item.active .axofilter-check {
			opacity: 1;
			color: var(--axofilter-accent);
			transform: scale(1);
			opacity: 0.4;
		}

		/* Footer */
		.axofilter-footer {
			display: none;
			align-items: center;
			gap: .75rem;
			padding: .55rem var(--axofilter-pad-x);
			border-top: var(--axofilter-sep);
			background: #fafbfe;
			font-size: .85rem;
			color: var(--axofilter-muted);
		}

		.axofilter-reset {
			border: 1px solid rgba(17, 24, 39, .12);
			background: #fff;
			color: #111827;
			padding: .3rem .55rem;
			border-radius: 8px;
			font-size: .85rem;
			cursor: pointer;
		}

		.axofilter-reset:hover {
			background: #f3f6fb;
		}

		.axofilter2_topbar {
			position: relative;
			z-index: 5;
			background: var(--axofilter2_backcolor);
			border: 1px solid var(--axofilter2_colorborder);
			border-radius: 12px;
			padding: 12px;
			margin: 10px 0 22px;
			box-shadow: 0 6px 24px rgba(0, 0, 0, .06);

			display: grid;
			grid-template-rows: auto auto;
			/* 1: catégories, 2: select */
			row-gap: 10px;
		}

		/* Catégories — design modernisé */
		.axofilter2_filters {
			display: flex;
			align-items: center;
			gap: 8px;
			flex-wrap: wrap;
			/* wrap sur écrans larges */
			width: 100%;
			padding: 2px 2px 4px;
		}

		.axofilter2_chip {
			display: flex;
			align-items: center;
			gap: 8px;
			height: 34px;
			padding: 0 14px;
			border-radius: 999px;
			background: var(--axofilter2_backcolor);
			color: var(--axofilter2_colortitle);
			font-size: 13px;
			font-weight: 600;
			line-height: 1;
			border: 1px solid var(--axofilter2_colorborder);
			color: var(--axofilter2_colortxt);
			box-shadow: 0 1px 0 rgba(0, 0, 0, .02);
			cursor: pointer;
			user-select: none;
			transition: background .2s, color .2s, border-color .2s, transform .05s ease;
			white-space: nowrap;
		}

		.axofilter2_chip i {
			font-size: 12px;
			opacity: .7;
		}

		.axofilter2_chip:hover {
			border-color: var(--axo_module_maincolor);
			color: var(--axo_module_maincolor);
		}

		.axofilter2_chip:active {
			transform: scale(.98);
		}

		.axofilter2_chip.active.dropdown-item:hover,
		.axofilter2_chip.active {
			background: var(--axo_module_maincolor);
			color: #fff;
			border-color: transparent;
		}

		#axoFilters .dropdown-menu {
			background: transparent;
			border: none;
			min-width: 100%;
			margin: 0;
			padding: 0;
		}

		.axofilter2_chip.dropdown-item {
			margin: 1px auto
		}

		.axofilter2_chip.dropdown-item:hover {
			background: var(--axofilter2_backcolor);
		}

		/* Compact mobile */
		@media (max-width: 560px) {
			:root {
				--axofilter-font-size: .92rem;
				--axofilter-pad-y: .5rem;
				--axofilter-pad-x: .8rem;
			}

			.axofilter-group-toggle {
				padding: .8rem var(--axofilter-pad-x);
				font-size: .92rem;
			}

			.axofilter-item {
				padding: .75rem var(--axofilter-pad-x);
			}
		}

		/* Arrondis corrects */
		.axofilter-options>.axofilter-group:first-child .axofilter-group-toggle {
			border-top-left-radius: var(--axofilter-radius-lg);
			border-top-right-radius: var(--axofilter-radius-lg);
		}

		.axofilter-options>.axofilter-group:last-child .axofilter-item:last-child {
			border-bottom-left-radius: var(--axofilter-radius-lg);
			border-bottom-right-radius: var(--axofilter-radius-lg);
		}



		/* Outils — le select prend 100% de la largeur */
		.axo-proj_tools {
			display: block;
			/* force une ligne dédiée */
			width: 100%;
		}

		.axo-proj_tools .custom-select {
			width: 100%;
			height: 40px;
			font-size: 14px;
			border-radius: 10px;
			border: 1.5px solid var(--axofilter2_colorborder);
			background: var(--axofilter2_backcolor);
			color: var(--axofilter2_colortitle);
			font-weight: 600;
		}

		/* Le select occupe toute la largeur */
		.axo-proj_tools {
			display: block;
			width: 100%;
		}

		/* Wrapper pour injecter l’icône FA */
		.axo-proj_selectwrap {
			position: relative;
			width: 100%;
		}

		/* Masque la flèche native et prépare de l’espace pour l’icône */
		.axo-proj_tools .custom-select {
			outline: none !important;
			width: 100%;
			height: 40px;
			border-radius: 10px;
			border: 1.5px solid var(--axofilter2_colorborder);
			background: var(--axofilter2_backcolor);
			color: var(--axofilter2_colortitle);
			font-weight: 600;
			-webkit-appearance: none;
			-moz-appearance: none;
			appearance: none;
			background-image: none !important;
			/* override BS4 */
			padding-right: 2.5rem;
			/* espace pour l’icône */
		}

		.axo-proj_tools .custom-select:focus {
			border-color: var(--axo_module_maincolor);
			box-shadow: 0 0 0 0.15rem rgba(61, 180, 255, .15);
			outline: 0;
		}

		/* IE/Edge legacy */
		.axo-proj_tools .custom-select::-ms-expand {
			display: none;
		}

		/* Icône Font Awesome (chevron bas) */
		.axo-proj_selectwrap::after {
			content: "\f107";
			/* fa-angle-down */
			font-family: "Font Awesome 5 Free";
			font-weight: 900;
			/* solide */
			font-size: 0.95rem;
			line-height: 1;
			color: rgba(0, 0, 0, .45);
			position: absolute;
			right: 12px;
			top: 50%;
			transform: translateY(-50%);
			pointer-events: none;
			/* clics transmis au select */
		}

		/* Feedback visuel */
		.axo-proj_selectwrap:hover::after {
			color: var(--axo_module_maincolor);
		}

		.axo-proj_selectwrap:focus-within::after {
			color: var(--axo_module_maincolor);
			transform: translateY(-50%) rotate(180deg);
			/* petit effet “ouvert” */
		}

		/* Dark mode cohérent */
		.axo-proj_container.dark-module .axo-proj_tools .custom-select {
			background: var(--axofilter2_backcolor);
			color: var(--axofilter2_colortitle);
			border-color: var(--axofilter2_colorborder);
		}

		.axo-proj_container.dark-module .axo-proj_selectwrap::after {
			color: rgba(255, 255, 255, .7);
		}


		/* Grille projets */
		.axo-proj_list .axo-proj_card {
			margin: 15px auto;
		}

		.axo-proj_card a {
			display: block;
			position: relative;
			color: var(--axofilter2_colortitle);
			border: 1.5px solid rgba(0, 0, 0, 0);
			box-shadow: var(--axofilter2_shadowcolor) 0 48px 100px 0;
			background: var(--axofilter2_backcolor);
			transition: .4s;
			text-decoration: none;
			border-radius: 10px;
			overflow: hidden;
		}

		.axo-proj_container.dark-module .axo-proj_card a {
			border-color: var(--axofilter2_colorborder);
		}

		.axo-proj_card a:hover {
			box-shadow: 0 0 40px 3px rgba(0, 0, 0, 0);
			border-color: var(--axofilter2_colorborder);
		}

		.axo-proj_card a:hover .axo-proj_cta {
			opacity: 1;
			padding: 18px 10px;
		}

		.axo-proj_card a:hover .axo-proj_date {
			background: var(--axo_module_secondcolor);
		}

		.axo-proj_media {
			position: relative;
			overflow: hidden;
			width: 100%;
			height: 340px;
			border-bottom: 1px solid var(--axofilter2_colorborder);
			margin: 0px auto;
		}

		.axo-proj_media img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			object-position: center;
			display: block;
			display: block;
			position: relative;
			z-index: 2;
			transition: all 0.4s;
		}

		.axo-proj_media:before {
			content: '';
			display: block;
			width: 100%;
			height: 100%;
			position: absolute;
			z-index: 3;
			top: 0;
			left: 0;
			background: #000000;
			opacity: 0.5;
			transition: all 0.4s;
			background: linear-gradient(0deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.5) 100%);
		}

		.axo-proj_card a:hover .axo-proj_media:before {
			opacity: 0.8;
		}

		.axo-proj_card a:hover .axo-proj_media img {
			transform: scale(1.1);
		}

		.axo-proj_date {
			text-transform: uppercase;
			transition: .4s;
			display: inline-block;
			letter-spacing: 2px;
			font-weight: 600;
			font-size: 10px;
			color: #fff;
			position: absolute;
			right: 10px;
			top: 10px;
			z-index: 3;
			background: rgba(255, 255, 255, 0.1);
			backdrop-filter: blur(10px);
			padding: 5px 15px;
			border-radius: 7.5px;
			box-shadow: rgba(50, 50, 93, .25) 0 50px 100px -20px, rgba(0, 0, 0, .3) 0 30px 60px -30px;
		}

		.axo-proj_body {
			padding: 20px 15px;
			width: 100%;
			position: absolute;
			bottom: 0;
			left: 0;
			z-index: 5;
		}

		.axo-proj_title {
			font-size: 20px;
			font-weight: 700;
			color: #fff;
			margin-bottom: 10px;
		}

		.axo-proj_cat {
			display: inline-flex;
			align-items: center;
			gap: 6px;
			color: #fff;
			font-size: 11px;
			font-weight: 500;
			letter-spacing: .5px;
			text-transform: uppercase;
			border: 1px solid #fff;
			padding: 5px 10px;
			border-radius: 6px;
			background: var(--axofilter2_chipbg);
		}

		.axo-proj_cta {
			display: block;
			position: absolute;
			left: 0;
			right: 0;
			bottom: 0;
			z-index: 5;
			border-top: 1.5px solid var(--axofilter2_colorborder);
			background: var(--axofilter2_backcolor);
			color: var(--axofilter2_colortitle);
			font-size: 12px;
			letter-spacing: 2px;
			text-transform: uppercase;
			padding: 0 10px;
			font-weight: 700;
			opacity: 0;
			text-align: center;
			transition: .4s;
		}

		.axo-proj_cta:hover {
			background: var(--axo_module_maincolor);
			color: #fff;
			border-color: transparent;
		}

		/* Empty state */
		.axo-proj_emptystate {
			display: none;
			text-align: center;
			padding: 50px 10px;
			color: var(--axofilter2_colortxt);
		}

		.axo-proj_emptystate i {
			font-size: 28px;
			margin-bottom: 8px;
			display: block;
			opacity: .7;
		}

		@media (max-width: 991px) {
			.axo-proj_media {
				height: 280px;
			}

			.axo-proj_title {
				font-size: 18px;
			}

			.axo-proj_cta {
				font-size: 10.5px;
			}

			.axo-proj_date {
				font-size: 9px;
			}
		}

		@media (max-width: 560px) {
			.axo-proj_list .axo-proj_card {
				margin: 7.5px auto;
			}
		}