/*! Gallexy Pro — modèles avancés. */

/* ---------- Effets de survol ---------- */
.gxp-hover-none .gxp-link:hover .gxp-img { transform: none; }
.gxp-hover-fade .gxp-link:hover .gxp-img { transform: none; opacity: .8; }
.gxp-hover-lift .gxp-link:hover .gxp-img { transform: none; }
.gxp-hover-lift .gxp-item { transition: transform .3s ease; }
.gxp-hover-lift .gxp-item:hover { transform: translateY(-4px); }
.gxp-hover-grayscale .gxp-img { filter: grayscale(1); transition: filter .4s ease, transform .45s ease; }
.gxp-hover-grayscale .gxp-link:hover .gxp-img,
.gxp-hover-grayscale .gxp-link:focus-visible .gxp-img { filter: none; }

/* ---------- Animations d'apparition (uniquement si JS actif) ---------- */
.gxp-js.gxp-anim-fade .gxp-item,
.gxp-js.gxp-anim-slide-up .gxp-item,
.gxp-js.gxp-anim-zoom-in .gxp-item { opacity: 0; transition: opacity .6s ease, transform .6s ease; }
.gxp-js.gxp-anim-slide-up .gxp-item { transform: translateY(24px); }
.gxp-js.gxp-anim-zoom-in .gxp-item { transform: scale(.92); }
.gxp-js.gxp-anim-fade .gxp-item.gxp-in,
.gxp-js.gxp-anim-slide-up .gxp-item.gxp-in,
.gxp-js.gxp-anim-zoom-in .gxp-item.gxp-in { opacity: 1; transform: none; }

/* ---------- Filtres et onglets ---------- */
.gxp-filterbar, .gxp-tabs { display: flex; flex-wrap: wrap; gap: var(--gxp-fgap, 8px); margin: 0 0 var(--gxp-g, 12px); }
.gxp-fa-left .gxp-filterbar, .gxp-fa-left .gxp-tabs { justify-content: flex-start; }
.gxp-fa-center .gxp-filterbar, .gxp-fa-center .gxp-tabs { justify-content: center; justify-content: safe center; }
.gxp-fa-right .gxp-filterbar, .gxp-fa-right .gxp-tabs { justify-content: flex-end; }

.gxp-filter, .gxp-tab {
	appearance: none;
	padding: .55em 1.15em;
	border: 1px solid rgba(100, 116, 139, .4);
	border-radius: 8px;
	background: transparent;
	color: var(--gxp-fcolor, inherit);
	font: inherit;
	font-size: .92em;
	line-height: 1.2;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.gxp-fz-sm .gxp-filter, .gxp-fz-sm .gxp-tab { font-size: .8em; padding: .45em .9em; }
.gxp-fz-lg .gxp-filter, .gxp-fz-lg .gxp-tab { font-size: 1.08em; padding: .75em 1.45em; }
.gxp-filter:hover, .gxp-tab:hover { border-color: var(--gxp-accent, #2563eb); }
.gxp-filter:focus-visible, .gxp-tab:focus-visible, .gxp-search:focus-visible, .gxp-arrow:focus-visible, .gxp-dot:focus-visible, .gxp-thumb:focus-visible, .gxp-pagebtn:focus-visible, .gxp-pause:focus-visible {
	outline: 3px solid var(--gxp-accent, #2563eb);
	outline-offset: 2px;
}
.gxp-filter.is-active, .gxp-tab.is-active, .gxp-tab[aria-selected="true"] {
	background: var(--gxp-accent, #2563eb);
	border-color: var(--gxp-accent, #2563eb);
	color: #fff;
	font-weight: 650;
}
.gxp-n { opacity: .8; font-size: .9em; }

/* Styles de boutons : arrondi (pilule), plein, contour, carré, soulignement, texte minimaliste. */
.gxp-fs-pills .gxp-filter, .gxp-fs-pills .gxp-tab { border-radius: 999px; }
.gxp-fs-boxed .gxp-filter, .gxp-fs-boxed .gxp-tab { border-radius: 2px; }
.gxp-fs-solid .gxp-filter, .gxp-fs-solid .gxp-tab {
	border-color: transparent;
	border-radius: 8px;
	background: rgba(100, 116, 139, .16);
}
.gxp-fs-solid .gxp-filter:hover, .gxp-fs-solid .gxp-tab:hover { background: rgba(100, 116, 139, .28); border-color: transparent; }
.gxp-fs-solid .gxp-filter.is-active, .gxp-fs-solid .gxp-tab.is-active, .gxp-fs-solid .gxp-tab[aria-selected="true"] { background: var(--gxp-accent, #2563eb); }
.gxp-fs-outline .gxp-filter, .gxp-fs-outline .gxp-tab {
	border: 2px solid var(--gxp-fcolor, var(--gxp-accent, #2563eb));
	border-radius: 8px;
	color: var(--gxp-fcolor, var(--gxp-accent, #2563eb));
	background: transparent;
}
.gxp-fs-outline .gxp-filter:hover, .gxp-fs-outline .gxp-tab:hover { background: rgba(100, 116, 139, .1); }
.gxp-fs-outline .gxp-filter.is-active, .gxp-fs-outline .gxp-tab.is-active, .gxp-fs-outline .gxp-tab[aria-selected="true"] {
	background: var(--gxp-accent, #2563eb);
	border-color: var(--gxp-accent, #2563eb);
	color: #fff;
}
.gxp-fs-underline .gxp-filter, .gxp-fs-underline .gxp-tab {
	border: 0;
	border-bottom: 3px solid transparent;
	border-radius: 0;
	background: transparent;
	padding-inline: .4em;
}
.gxp-fs-underline .gxp-filter.is-active, .gxp-fs-underline .gxp-tab.is-active, .gxp-fs-underline .gxp-tab[aria-selected="true"] {
	background: transparent;
	color: var(--gxp-accent, #2563eb);
	border-bottom-color: var(--gxp-accent, #2563eb);
}
.gxp-fs-text .gxp-filter, .gxp-fs-text .gxp-tab {
	border: 0;
	border-radius: 0;
	background: transparent;
	padding-inline: .45em;
	opacity: .7;
}
.gxp-fs-text .gxp-filter:hover, .gxp-fs-text .gxp-tab:hover { opacity: 1; }
.gxp-fs-text .gxp-filter.is-active, .gxp-fs-text .gxp-tab.is-active, .gxp-fs-text .gxp-tab[aria-selected="true"] {
	background: transparent;
	color: var(--gxp-accent, #2563eb);
	opacity: 1;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: .4em;
}
@media (max-width: 767px) {
	.gxp-fm-scroll .gxp-filterbar, .gxp-fm-scroll .gxp-tabs {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
	}
	.gxp-fm-scroll .gxp-filterbar::-webkit-scrollbar, .gxp-fm-scroll .gxp-tabs::-webkit-scrollbar { display: none; }
	.gxp-fm-scroll .gxp-filter, .gxp-fm-scroll .gxp-tab { flex: 0 0 auto; white-space: nowrap; }
}

.gxp-searchbar { margin: 0 0 var(--gxp-g, 12px); }
.gxp-search {
	width: 100%;
	max-width: 360px;
	padding: .6em .9em;
	border: 1px solid rgba(100, 116, 139, .45);
	border-radius: 8px;
	font: inherit;
	background: transparent;
	color: inherit;
}
.gxp-fa-center .gxp-searchbar { text-align: center; }
.gxp-fa-right .gxp-searchbar { text-align: right; }
.gxp-noresult { padding: 24px; text-align: center; opacity: .7; }
.gxp-item[hidden], .gxp-noresult[hidden], .gxp-panel[hidden], .gxp-extra[hidden] { display: none !important; }
.gxp-panel:focus-visible { outline: 2px dashed var(--gxp-accent, #2563eb); outline-offset: 4px; }

/* ---------- Masonry ---------- */
.gxp-items.gxp-masonry {
	display: block;
	column-count: var(--gxp-c);
	column-gap: var(--gxp-g, 12px);
}
.gxp-masonry .gxp-item { break-inside: avoid; margin: 0 0 var(--gxp-g, 12px); }
.gxp-masonry .gxp-media { aspect-ratio: auto; height: auto; }
.gxp-masonry .gxp-img { height: auto; object-fit: cover; }
/* Avec JavaScript : placement dans la colonne la plus courte (voir advanced.js). */
.gxp-items.gxp-masonry.is-js {
	display: grid;
	grid-template-columns: repeat(var(--gxp-c), minmax(0, 1fr));
	column-count: auto;
	column-gap: var(--gxp-g, 12px);
	row-gap: 0;
	grid-auto-rows: 1px;
	align-items: start;
}
.gxp-masonry.is-js .gxp-item { margin: 0; align-self: start; }

/* ---------- Mosaïque ---------- */
.gxp-tpl-mosaic { --gxp-mr: var(--gxp-ratio, 3 / 2); --gxp-mh: var(--gxp-h, auto); }
@media (max-width: 1024px) { .gxp-tpl-mosaic { --gxp-mr: var(--gxp-ratio-t, var(--gxp-ratio, 3 / 2)); --gxp-mh: var(--gxp-h-t, var(--gxp-h, auto)); } }
@media (max-width: 767px) { .gxp-tpl-mosaic { --gxp-mr: var(--gxp-ratio-m, var(--gxp-ratio-t, var(--gxp-ratio, 3 / 2))); --gxp-mh: var(--gxp-h-m, var(--gxp-h-t, var(--gxp-h, auto))); } }
/* Composition « une grande photo + vignettes ». */
.gxp-mosaic-grid {
	--gxp-mrows-n: var(--gxp-mrows, 2);
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: repeat(var(--gxp-mrows-n), minmax(0, 1fr));
	aspect-ratio: var(--gxp-mr, 3 / 2);
	height: var(--gxp-mh, auto);
}
.gxp-mosaic-grid .gxp-item { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.gxp-mosaic-grid .gxp-frame { flex: 1 1 auto; height: 100%; min-height: 0; }
.gxp-mosaic-grid .gxp-link, .gxp-mosaic-grid .gxp-media { height: 100%; }
.gxp-mosaic-grid .gxp-media { aspect-ratio: auto; }
/* Dans une mosaïque, la légende est toujours sur la photo : elle ne doit pas agrandir la cellule. */
.gxp-mosaic-grid .gxp-cap {
	position: absolute;
	z-index: 2;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 24px 12px 10px;
	color: #fff;
	background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .65));
	border-radius: 0 0 var(--gxp-radius, 4px) var(--gxp-radius, 4px);
	pointer-events: none;
}
.gxp-mosaic-grid .gxp-item:first-child { grid-column: 1; grid-row: 1 / span var(--gxp-mrows-n); }
.gxp-mosaic-right .gxp-mosaic-grid:not(.gxp-mosaic-pattern) { grid-template-columns: 1fr 1fr 2fr; }
.gxp-mosaic-right .gxp-mosaic-grid:not(.gxp-mosaic-pattern) .gxp-item:first-child { grid-column: 3; }
/* Composition asymétrique : motif de 11 photos sur 4 colonnes (1 grande 2×2, 1 haute 1×2, 1 large 2×1, 8 petites). */
.gxp-mosaic-pattern {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: none;
	grid-auto-rows: var(--gxp-mu, 200px);
	grid-auto-flow: dense;
	aspect-ratio: auto;
	height: auto;
}
.gxp-mosaic-pattern .gxp-item:first-child { grid-column: auto; grid-row: auto; }
.gxp-mosaic-grid.gxp-mosaic-pattern .gxp-item.gxp-ms-l { grid-column: span 2; grid-row: span 2; }
.gxp-mosaic-grid.gxp-mosaic-pattern .gxp-item.gxp-ms-t { grid-row: span 2; }
.gxp-mosaic-grid.gxp-mosaic-pattern .gxp-item.gxp-ms-w { grid-column: span 2; }
.gxp-mosaic-grid.gxp-mosaic-pattern .gxp-item.gxp-ms-f { grid-column: 1 / -1; }
.gxp-mosaic-right .gxp-mosaic-pattern { direction: rtl; }
.gxp-mosaic-right .gxp-mosaic-pattern .gxp-item { direction: ltr; }
@media (max-width: 1024px) {
	.gxp-mosaic-pattern { grid-auto-rows: calc(var(--gxp-mu, 200px) * .8); }
}
@media (max-width: 767px) {
	.gxp-mosaic-grid:not(.gxp-mosaic-pattern) { aspect-ratio: auto; height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.gxp-mosaic-grid:not(.gxp-mosaic-pattern) .gxp-item:first-child,
	.gxp-mosaic-right .gxp-mosaic-grid:not(.gxp-mosaic-pattern) .gxp-item:first-child { grid-column: 1 / -1; grid-row: auto; }
	.gxp-mosaic-grid:not(.gxp-mosaic-pattern) .gxp-media { aspect-ratio: 4 / 3; height: auto; }
	.gxp-mosaic-grid:not(.gxp-mosaic-pattern) .gxp-item:first-child .gxp-media { aspect-ratio: 16 / 10; }
	.gxp-mosaic-pattern { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: calc(var(--gxp-mu, 200px) * .6); }
	.gxp-mosaic-grid.gxp-mosaic-pattern .gxp-item.gxp-ms-w { grid-column: 1 / -1; }
}

/* ---------- Carrousel ---------- */
.gxp-carousel { position: relative; }
.gxp-stage { position: relative; }
.gxp-ap-outside .gxp-stage { padding-inline: 54px; }
.gxp-ap-outside .gxp-stage .gxp-arrow-prev { left: 0; }
.gxp-ap-outside .gxp-stage .gxp-arrow-next { right: 0; }
@media (max-width: 767px) {
	.gxp-ap-outside .gxp-stage { padding-inline: 0; }
	.gxp-ap-outside .gxp-stage .gxp-arrow-prev { left: 6px; }
	.gxp-ap-outside .gxp-stage .gxp-arrow-next { right: 6px; }
}
.gxp-viewport { overflow: hidden; border-radius: var(--gxp-radius, 8px); }
.gxp-viewport:focus-visible { outline: 3px solid var(--gxp-accent, #2563eb); outline-offset: 3px; }
.gxp-track.gxp-items {
	display: flex;
	align-items: flex-start;
	gap: var(--gxp-g, 12px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	scroll-behavior: smooth;
}
.gxp-fit-auto .gxp-track.gxp-items { align-items: center; }
.gxp-track.gxp-items::-webkit-scrollbar { display: none; }
.gxp-track .gxp-item {
	flex: 0 0 calc((100% - (var(--gxp-c) - 1) * var(--gxp-g, 12px)) / var(--gxp-c));
	scroll-snap-align: start;
}
.gxp-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: #0f172a;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
	cursor: pointer;
	transition: opacity .2s ease, background .2s ease;
}
.gxp-arrow:hover { background: #fff; }
.gxp-arrow[disabled] { opacity: .35; cursor: default; }
.gxp-arrow-prev { left: 10px; }
.gxp-arrow-next { right: 10px; }
.gxp-dots { display: flex; justify-content: center; gap: 8px; margin: 12px 0 0; flex-wrap: wrap; }
.gxp-dot {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(100, 116, 139, .45);
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
	position: relative;
}
.gxp-dot::after { content: ""; position: absolute; inset: -8px; }
.gxp-dot.is-active { background: var(--gxp-accent, #2563eb); transform: scale(1.2); }
.gxp-thumbs { display: flex; gap: 8px; margin: 12px 0 0; overflow-x: auto; padding-bottom: 4px; justify-content: flex-start; justify-content: safe center; }
.gxp-thumb {
	flex: 0 0 auto;
	width: calc(var(--gxp-th, 56px) * 1.5);
	height: var(--gxp-th, 56px);
	padding: 0;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 6px;
	background: #dbe2ea;
	opacity: .65;
	cursor: pointer;
	transition: opacity .2s ease, border-color .2s ease;
}
.gxp-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--gxp-pos, 50% 50%); }
.gxp-thumb.is-active { opacity: 1; border-color: var(--gxp-accent, #2563eb); }
.gxp-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Slider plein écran ---------- */
.gxp-slider {
	position: relative;
	height: var(--gxp-sh, 70vh);
	min-height: 220px;
	overflow: hidden;
	border-radius: var(--gxp-radius, 0);
	background: #0f172a;
	color: #fff;
}
/* Hauteur par appareil (≤ 1024 px tablette, ≤ 767 px mobile) et modes px / ratio. */
.gxp-sm-px .gxp-slider, .gxp-sm-ratio .gxp-slider { min-height: 0; }
.gxp-sm-ratio .gxp-slider { height: auto; aspect-ratio: var(--gxp-sr, 16 / 9); }
@media (max-width: 1024px) {
	.gxp-slider { height: var(--gxp-sh-t, var(--gxp-sh, 70vh)); }
	.gxp-sm-ratio .gxp-slider { height: auto; aspect-ratio: var(--gxp-sr-t, var(--gxp-sr, 16 / 9)); }
}
@media (max-width: 767px) {
	.gxp-slider { height: var(--gxp-sh-m, var(--gxp-sh-t, var(--gxp-sh, 70vh))); }
	.gxp-sm-ratio .gxp-slider { height: auto; aspect-ratio: var(--gxp-sr-m, var(--gxp-sr-t, var(--gxp-sr, 16 / 9))); }
}
/* Pleine largeur de l'écran : la largeur et le décalage sont ajustés par advanced.js (repli CSS : 100vw). */
.gxp.gxp-sw-full { width: 100vw; max-width: none !important; position: relative; left: 50%; margin-left: -50vw !important; margin-right: 0 !important; }
.gxp-sw-full .gxp-slider { border-radius: 0; }
.gxp-slider:focus-visible { outline: 3px solid var(--gxp-accent, #2563eb); outline-offset: 3px; }
.gxp-slides { position: absolute; inset: 0; }
.gxp-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .7s ease, visibility .7s, transform .7s ease;
}
.gxp-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.gxp-slide .gxp-items { display: block; height: 100%; }
.gxp-slide .gxp-item, .gxp-slide .gxp-frame, .gxp-slide .gxp-link, .gxp-slide .gxp-media { display: block; height: 100%; border: 0; border-radius: 0; box-shadow: none; aspect-ratio: auto; }
.gxp-slide .gxp-img { height: 100%; transition: none; }
.gxp-fit-auto .gxp-slide .gxp-img { object-fit: contain; }
.gxp-slide .gxp-link:hover .gxp-img { transform: none; }
.gxp-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 35%, rgba(0,0,0,var(--gxp-shade, .6))); pointer-events: none; }
.gxp-slide-body {
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: 12%;
	width: min(90%, 760px);
	transform: translateX(-50%);
	text-align: center;
	pointer-events: none;
}
.gxp-slide-body .gxp-btn { pointer-events: auto; }
.gxp-slide-title { margin: 0 0 8px; font-size: clamp(1.5rem, 4vw, 2.75rem); font-weight: 700; line-height: 1.15; color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.5); }
.gxp-slide-text { margin: 0 0 16px; font-size: clamp(.95rem, 1.6vw, 1.15rem); color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.gxp-st-slide .gxp-slide { transform: translateX(8%); }
.gxp-st-slide .gxp-slide.is-active { transform: none; }
.gxp-slider .gxp-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 3; margin: 0; }
.gxp-slider .gxp-dot { background: var(--gxp-sc, #fff); opacity: .5; }
.gxp-slider .gxp-dot.is-active { background: var(--gxp-sc, #fff); opacity: 1; }
.gxp-slider .gxp-arrow { color: var(--gxp-sc, #0f172a); }
.gxp-sdp-top .gxp-slider .gxp-dots { bottom: auto; top: 14px; }
.gxp-sap-bottom .gxp-slider .gxp-arrow { top: auto; bottom: 12px; transform: none; }
.gxp-sap-bottom .gxp-slider .gxp-arrow-prev { left: auto; right: 66px; }
.gxp-sap-bottom .gxp-slider .gxp-arrow-next { right: 14px; }
.gxp-pause {
	position: absolute;
	z-index: 3;
	top: 12px;
	right: 12px;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(15, 23, 42, .55);
	color: #fff;
	cursor: pointer;
}
.gxp-pause::before { content: ""; display: block; margin: auto; width: 12px; height: 14px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; }
.gxp-pause[aria-pressed="true"]::before { width: 0; height: 0; border: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 13px solid currentColor; margin-left: 14px; }

/* ---------- Portfolio : légende au survol (réglage « Position de la légende » du noyau). ---------- */

/* ---------- Photos et vidéos ---------- */
.gxp-tpl-mixed .gxp-play .gxp-svg { transition: transform .25s ease; }
.gxp-tpl-mixed .gxp-link:hover .gxp-play .gxp-svg { transform: scale(1.12); }

/* ---------- Chronologie ---------- */
.gxp-timeline { position: relative; padding-inline-start: 28px; }
.gxp-timeline::before { content: ""; position: absolute; inset-block: 8px; inset-inline-start: 7px; width: 2px; background: rgba(100, 116, 139, .35); }
.gxp-tl-group { position: relative; margin: 0 0 28px; }
.gxp-tl-label { position: relative; margin: 0 0 12px; font-size: 1.35em; font-weight: 700; }
.gxp-tl-dot {
	position: absolute;
	inset-inline-start: -28px;
	top: .35em;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	border: 4px solid var(--gxp-accent, #2563eb);
}

/* ---------- Groupes ---------- */
.gxp-strip-wrap { position: relative; }
.gxp-items.gxp-strip {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
.gxp-strip .gxp-item { flex: 0 0 calc((100% - (var(--gxp-c) - 1) * var(--gxp-g, 12px)) / var(--gxp-c)); scroll-snap-align: start; }

/* Modèles de mosaïque et carrousel Masonry : remplissage compact et responsive. */
.gxp-mosaic-pattern {
	grid-auto-flow: dense;
	grid-auto-rows: max(100px, var(--gxp-mu, 200px));
	align-items: stretch;
}
.gxp-mosaic-pattern .gxp-item,
.gxp-mosaic-pattern .gxp-frame,
.gxp-mosaic-pattern .gxp-media,
.gxp-mosaic-pattern .gxp-link {
	min-width: 0;
	min-height: 0;
	height: 100%;
}
.gxp-mosaic-pattern .gxp-img { width: 100%; height: 100%; object-fit: cover; }
.gxp-carousel-masonry .gxp-item { height: auto; align-self: start; }
.gxp-carousel-masonry .gxp-media { aspect-ratio: auto; height: auto; }
.gxp-carousel-masonry .gxp-img { height: auto; object-fit: cover; }
@media (max-width: 767px) {
	.gxp-mosaic-pattern { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: max(90px, calc(var(--gxp-mu, 200px) * .7)); }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.gxp-mosaic-pattern { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* ---------- Pagination ---------- */
.gxp-pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin: calc(var(--gxp-g, 12px) * 1.5) 0 0; }
.gxp-pagebtn {
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid rgba(100, 116, 139, .4);
	border-radius: 8px;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}
.gxp-pagebtn:hover { border-color: var(--gxp-accent, #2563eb); }
.gxp-pagebtn[aria-current="page"] { background: var(--gxp-accent, #2563eb); border-color: var(--gxp-accent, #2563eb); color: #fff; }
.gxp-pagebtn[disabled] { opacity: .4; cursor: default; }
.gxp-pager-style-boxed .gxp-pagebtn { min-width: 44px; border-radius: 2px; background: #fff; box-shadow: 0 1px 3px rgba(15,23,42,.12); }
.gxp-pager-style-square .gxp-pagebtn { min-width: 44px; border-radius: 0; }
.gxp-pager-style-rounded .gxp-pagebtn { min-width: 46px; border-radius: 999px; }
.gxp-pager-style-circle .gxp-pagebtn { width: 44px; min-width: 44px; height: 44px; padding: 0; border-radius: 50%; }
.gxp-pager-style-minimal { gap: 16px; }
.gxp-pager-style-minimal .gxp-pagebtn { min-width: auto; height: auto; padding: 8px 4px; border: 0; border-radius: 0; background: transparent; }
.gxp-pager-style-minimal .gxp-pagebtn[aria-current="page"] { color: var(--gxp-accent, #2563eb); background: transparent; text-decoration: underline; text-underline-offset: 4px; }
.gxp-pager .gxp-more { cursor: pointer; }
.gxp-pager .gxp-more[disabled] { opacity: .55; cursor: wait; }
.gxp-page-fallback { color: inherit; }
.gxp-sentinel { width: 100%; height: 1px; }
.gxp-tpl-paginated.is-loading .gxp-items,
.gxp.is-loading .gxp-items { opacity: .65; transition: opacity .2s ease; }

/* ---------- Informations (cartes) ---------- */
.gxp-tpl-info .gxp-item {
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(100, 116, 139, .25);
	border-radius: var(--gxp-radius, 8px);
	background: var(--gxp-bg, rgba(255, 255, 255, .6));
	overflow: hidden;
}
.gxp-tpl-info .gxp-frame { border-radius: 0; }
.gxp-tpl-info .gxp-cap { padding: 12px 14px 4px; }
.gxp-tpl-info .gxp-foot { padding: 4px 14px 12px; margin-top: auto; }

/* Message réservé aux éditeurs (aucune catégorie : pas de boutons de filtre). */
.gxp-notice { margin: 0 0 12px; padding: 8px 12px; border-left: 3px solid #d97706; background: #fffbeb; color: #78350f; font-size: 13px; line-height: 1.4; }
