/* MonLMS : catalogue des formations ([monlms_catalogue]). S'adapte à la police du thème. */
.monlms-catalogue {
	--mcat-accent: #2D5BFF;
	--mcat-ink: #141B2D;
	--mcat-muted: #5B6478;
	--mcat-line: #E6E8EE;
	--mcat-cols: 3;
	max-width: 1200px;
	margin: 2em auto;
	container-type: inline-size;
	color: var(--mcat-ink);
	line-height: 1.55;
}
.monlms-catalogue *, .monlms-catalogue *::before, .monlms-catalogue *::after { box-sizing: border-box; }
.monlms-catalogue-empty { padding: 14px 16px; border-radius: 12px; background: #FFF4E5; color: #7A3A00; font-weight: 600; }

/* Onglets de catégories */
.mcat-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.monlms-catalogue .mcat-tab { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--mcat-line); background: #fff; color: var(--mcat-ink); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.monlms-catalogue .mcat-tab:hover { border-color: color-mix(in srgb, var(--mcat-accent) 50%, var(--mcat-line)); }
.monlms-catalogue .mcat-tab[aria-pressed="true"] { background: var(--mcat-accent); border-color: var(--mcat-accent); color: #fff; }
.monlms-catalogue .mcat-tab:focus-visible, .monlms-catalogue .mcat-btn:focus-visible, .mcat-title a:focus-visible { outline: 3px solid color-mix(in srgb, var(--mcat-accent) 45%, transparent); outline-offset: 2px; }

/* Cartes */
.mcat-items { display: grid; grid-template-columns: repeat(var(--mcat-cols), minmax(0, 1fr)); gap: 26px; align-items: stretch; }
.mcat-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--mcat-line); border-radius: 22px; overflow: hidden; box-shadow: 0 14px 34px -18px rgba(20, 27, 45, .22); transition: box-shadow .2s ease, transform .2s ease; }
.mcat-card:hover { box-shadow: 0 20px 44px -18px rgba(20, 27, 45, .3); }
.mcat-card[hidden] { display: none !important; }
.mcat-media > a { display: block; }
.monlms-catalogue .mcat-img { display: block; width: 100%; height: auto; max-width: 100%; margin: 0; border-radius: 0; }
.mcat-img.is-empty { aspect-ratio: 16 / 9; background: radial-gradient(260px 160px at 85% 10%, rgba(255, 255, 255, .28), transparent 65%), linear-gradient(135deg, var(--mcat-accent), color-mix(in srgb, var(--mcat-accent) 70%, #0B1330)); }
.mcat-body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; min-width: 0; }
.mcat-cats { margin: 0 0 6px; font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--mcat-accent); }
.monlms-catalogue .mcat-title { margin: 0; font-size: 1.3em; font-weight: 800; line-height: 1.25; letter-spacing: -.01em; color: var(--mcat-ink); }
.monlms-catalogue .mcat-title a { color: inherit; text-decoration: none; }
.monlms-catalogue .mcat-title a:hover { color: var(--mcat-accent); }
.mcat-meta { margin: 6px 0 0; color: var(--mcat-muted); font-size: 14px; font-weight: 600; }
.mcat-desc { margin: 14px 0 0; font-size: 15.5px; color: #3A4256; }
.mcat-desc p { margin: 0 0 10px; }
.mcat-desc .mcat-intro { margin: 4px 0 8px; color: var(--mcat-ink); }
.mcat-desc ul { margin: 0 0 12px; padding: 0; list-style: none; }
.mcat-desc li { position: relative; margin: 0 0 6px; padding-left: 20px; }
.mcat-desc li::before { content: ""; position: absolute; left: 3px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--mcat-accent); }
.mcat-side { margin-top: auto; padding-top: 18px; }
.mcat-price { font-size: 1.45em; font-weight: 800; letter-spacing: -.02em; color: var(--mcat-ink); margin: 0 0 12px; }
.mcat-price.is-free { color: #15803D; font-size: 1.2em; }
.mcat-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.monlms-catalogue a.mcat-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border-radius: 13px; font-weight: 800; font-size: 15.5px; text-decoration: none !important; text-align: center; transition: transform .12s ease, box-shadow .2s ease, background .15s; }
.monlms-catalogue a.mcat-btn.is-primary { background: var(--mcat-accent); color: #fff !important; box-shadow: 0 10px 22px color-mix(in srgb, var(--mcat-accent) 28%, transparent); }
.monlms-catalogue a.mcat-btn.is-primary:hover { transform: translateY(-1px); box-shadow: 0 14px 28px color-mix(in srgb, var(--mcat-accent) 38%, transparent); }
.monlms-catalogue a.mcat-btn.is-ghost { background: #fff; color: var(--mcat-accent) !important; box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--mcat-accent) 40%, transparent); }
.monlms-catalogue a.mcat-btn.is-ghost:hover { background: color-mix(in srgb, var(--mcat-accent) 7%, #fff); }
.mcat-cart { margin-top: 10px; }
.mcat-cart button, .mcat-cart a { font: inherit; font-weight: 700; }
.mcat-progress { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; }
.mcat-badge { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: 13px; font-weight: 800; }
.mcat-badge.is-green { background: #E9F9EF; color: #15803D; }
.mcat-bar { flex: 1; height: 8px; border-radius: 999px; background: color-mix(in srgb, var(--mcat-accent) 12%, #fff); overflow: hidden; }
.mcat-bar span { display: block; height: 100%; border-radius: 999px; background: var(--mcat-accent); }
.mcat-pct { font-size: 14px; font-weight: 800; }

/* Liste : image, prix et boutons à gauche, texte à droite */
.monlms-catalogue.is-list .mcat-items { grid-template-columns: minmax(0, 1fr); gap: 30px; }
.monlms-catalogue.is-list .mcat-card { flex-direction: row; align-items: stretch; }
.monlms-catalogue.is-list .mcat-media { flex: 0 0 340px; padding: 26px; display: flex; flex-direction: column; align-items: center; background: color-mix(in srgb, var(--mcat-accent) 4%, #fff); border-right: 1px solid var(--mcat-line); }
.monlms-catalogue.is-list .mcat-media > a { width: 100%; }
.monlms-catalogue.is-list .mcat-img { border-radius: 14px; box-shadow: 0 12px 26px -14px rgba(20, 27, 45, .35); }
.monlms-catalogue.is-list .mcat-side { width: 100%; text-align: center; }
.monlms-catalogue.is-list .mcat-actions { flex-direction: column; align-items: stretch; }
.monlms-catalogue.is-list .mcat-progress { justify-content: center; }
.monlms-catalogue.is-list .mcat-body { padding: 30px 34px; justify-content: center; }
.monlms-catalogue.is-list .mcat-title { font-size: 1.55em; }

/* Largeur réelle du catalogue (colonne Elementor, contenu du thème…), pas celle de l'écran */
@container (max-width: 900px) {
	.mcat-items { grid-template-columns: repeat(min(var(--mcat-cols), 2), minmax(0, 1fr)); }
	.monlms-catalogue.is-list .mcat-media { flex-basis: 260px; padding: 20px; }
	.monlms-catalogue.is-list .mcat-body { padding: 24px 26px; }
}
@container (max-width: 560px) {
	.mcat-items { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	/* En colonne : image, puis le texte, puis le prix et les boutons */
	.monlms-catalogue.is-list .mcat-card { flex-direction: column; }
	.monlms-catalogue.is-list .mcat-media { display: contents; }
	.monlms-catalogue.is-list .mcat-media > a { order: 0; padding: 20px 20px 0; }
	.monlms-catalogue.is-list .mcat-img { max-width: 420px; margin: 0 auto; }
	.monlms-catalogue.is-list .mcat-body { order: 1; padding: 20px 22px 0; }
	.monlms-catalogue.is-list .mcat-side { order: 2; padding: 18px 22px 22px; text-align: left; }
	.monlms-catalogue.is-list .mcat-progress { justify-content: flex-start; }
}
@media (max-width: 680px) {
	.mcat-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
	.monlms-catalogue .mcat-tab { flex: none; }
}

/* Images des cartes : toutes au même format, recadrées au centre (sauf « format d'origine ») */
.monlms-catalogue.is-img-paysage .mcat-img { aspect-ratio: 16 / 9; }
.monlms-catalogue.is-img-carre .mcat-img { aspect-ratio: 1 / 1; }
.monlms-catalogue.is-img-portrait .mcat-img { aspect-ratio: 3 / 4; }
.monlms-catalogue:not(.is-img-origine) .mcat-img { width: 100%; height: auto; object-fit: cover; object-position: center; }
.monlms-catalogue.is-img-origine .mcat-img.is-empty { aspect-ratio: 16 / 9; }
.monlms-catalogue.is-img-carre .mcat-img.is-empty { aspect-ratio: 1 / 1; }
.monlms-catalogue.is-img-portrait .mcat-img.is-empty { aspect-ratio: 3 / 4; }
/* Liste : une image en portrait ne s'étire pas sur toute la hauteur de la colonne */
.monlms-catalogue.is-list.is-img-portrait .mcat-media > a { max-width: 220px; margin: 0 auto; }
