/* Mélodigitale LMS — interface élève */
.mdlms { --g: var(--wp--preset--color--or, #c6bc89); --gt: var(--wp--preset--color--or-texte, #756425); --line: var(--wp--preset--color--ivoire, #e9e6de); --muted: var(--wp--preset--color--gris-texte, #6a665c); --cream: var(--wp--preset--color--creme, #f7f4ec);
	max-width: 1320px; margin: 0 auto; padding: 40px 32px 80px; color: var(--wp--preset--color--encre, #2e2e2e); }
.mdlms h1 { font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1.1; margin: 0 0 24px; }
.mdlms-muted { color: var(--muted); font-size: .95rem; }
.mdlms-eyebrow { text-transform: uppercase; letter-spacing: .16em; font-size: .8rem; font-weight: 800; color: var(--gt); margin: 0 0 12px; }

/* Boutons */
.mdlms-btn { box-sizing: border-box; display: inline-flex; align-items: center; gap: 8px; background: var(--g); color: #fff; font: inherit; font-weight: 700; padding: 14px 26px; border: 0; border-radius: 999px; text-decoration: none; cursor: pointer; transition: background .15s, transform .15s; }
.mdlms-btn:hover { background: var(--wp--preset--color--or-survol, #b4a870); color: #fff; transform: translateY(-1px); }
.mdlms-btn[disabled] { opacity: .6; cursor: wait; }
.mdlms-btn-ghost { background: transparent; color: var(--gt); box-shadow: inset 0 0 0 2px var(--g); }
.mdlms-btn-ghost:hover { background: var(--cream); color: var(--gt); }
.mdlms-done.is-done { background: var(--wp--preset--color--vert, #4e6b3a); }
.mdlms-box { background: var(--cream); padding: 28px; margin: 24px 0; border-radius: 16px; }
.mdlms-box form p { margin: 0 0 12px; }
.mdlms-box input[type=text], .mdlms-box input[type=password] { width: 100%; max-width: 360px; padding: 10px 12px; border: 1px solid var(--wp--preset--color--ivoire-sourd, #a9a497); border-radius: 8px; }

/* Progression */
.mdlms-progress { height: 8px; background: var(--line); border-radius: 99px; overflow: hidden; margin: 12px 0 6px; }
.mdlms-progress span { display: block; height: 100%; background: var(--g); border-radius: 99px; transition: width .3s; }
.mdlms-progress-label { margin: 0 0 14px; font-size: .88rem; color: var(--muted); }

/* ───── Page d'une formation ───── */
.mdlms-formation { max-width: 1000px; }
.mdlms-hero { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: center; background: var(--cream); border-radius: 24px; padding: 48px; margin: 0 0 40px; }
.mdlms-hero h1 { margin-bottom: 16px; }
.mdlms-intro { color: var(--muted); font-size: 1.1rem; }
.mdlms-intro > :last-child { margin-bottom: 0; }
.mdlms-stats { list-style: none; display: flex; gap: 24px; padding: 0; margin: 20px 0 0; color: var(--muted); }
.mdlms-stats strong { color: var(--wp--preset--color--noir, #1c1c1c); font-size: 1.3rem; }
.mdlms-hero-side { background: #fff; border-radius: 20px; padding: 24px; box-shadow: 0 10px 30px rgba(28, 28, 28, .06); text-align: center; }
.mdlms-hero-side .mdlms-btn { width: 100%; justify-content: center; }
.mdlms-pct { font-family: var(--wp--preset--font-family--instrument-serif, serif); font-size: 3.6rem; line-height: 1; }
.mdlms-pct span { font-size: 1.6rem; color: var(--muted); margin-left: 2px; }
.mdlms-modules { display: grid; gap: 14px; }
.mdlms-module { border: 1px solid var(--line); background: #fff; border-radius: 16px; overflow: hidden; transition: box-shadow .15s; }
.mdlms-module[open] { box-shadow: 0 8px 24px rgba(28, 28, 28, .05); }
.mdlms-module summary { display: flex; align-items: center; gap: 16px; padding: 20px 24px; cursor: pointer; list-style: none; }
.mdlms-module summary::-webkit-details-marker, .mdlms-side-module summary::-webkit-details-marker, .mdlms-side-toggle::-webkit-details-marker { display: none; }
.mdlms-num { font-family: var(--wp--preset--font-family--instrument-serif, serif); font-size: 1.6rem; color: var(--g); min-width: 34px; }
.mdlms-module-title { flex: 1; font-weight: 700; font-size: 1.1rem; }
.mdlms-module-count { display: inline-flex; gap: 6px; align-items: center; color: var(--muted); font-size: .9rem; white-space: nowrap; }
.mdlms-module.is-locked { background: #fbfaf7; }
.mdlms-module.is-locked .mdlms-module-title, .mdlms-module.is-locked .mdlms-num { opacity: .6; }
.mdlms-lessons { list-style: none; margin: 0; padding: 0 24px 12px 74px; }
.mdlms-lessons li { border-top: 1px solid var(--line); }
.mdlms-lessons a, .mdlms-lessons li.is-locked { display: flex; gap: 12px; align-items: center; padding: 13px 0; color: inherit; text-decoration: none; }
.mdlms-lessons a:hover { color: var(--gt); }
.mdlms-lessons li.is-locked { color: var(--muted); }
.mdlms-state { display: inline-flex; flex: 0 0 18px; color: var(--wp--preset--color--ivoire-sourd, #a9a497); }
.is-done > a .mdlms-state, .is-done .mdlms-state { color: var(--wp--preset--color--vert, #4e6b3a); }

/* ───── Page d'une leçon : sommaire à gauche ───── */
.mdlms-lesson.mdlms-has-side { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 56px; align-items: start; }
.mdlms-side { position: sticky; top: 24px; background: var(--cream); border-radius: 20px; max-height: calc(100vh - 48px); overflow: auto; }
.mdlms-side-toggle { display: none; }
.mdlms-side-inner { padding: 24px 20px 12px; }
.mdlms-side-title { display: block; font-weight: 800; font-size: 1.1rem; line-height: 1.25; color: inherit; text-decoration: none; margin-bottom: 4px; }
.mdlms-side-module { border-top: 1px solid rgba(28, 28, 28, .08); }
.mdlms-side-module summary { display: flex; align-items: center; gap: 10px; padding: 14px 4px; cursor: pointer; list-style: none; font-weight: 700; font-size: .95rem; }
.mdlms-side-module .mdlms-num { font-size: 1.2rem; min-width: 26px; }
.mdlms-side-mtitle { flex: 1; }
.mdlms-lockico { color: var(--muted); display: inline-flex; }
.mdlms-side-module ol { list-style: none; margin: 0; padding: 0 0 10px; }
.mdlms-side-module li a, .mdlms-side-module li.is-locked { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; margin: 0 -6px; border-radius: 10px; color: inherit; text-decoration: none; font-size: .92rem; line-height: 1.35; }
.mdlms-side-module li a:hover { background: rgba(255, 255, 255, .7); }
.mdlms-side-module li .mdlms-state { margin-top: 1px; }
.mdlms-side-module li.is-current a { background: #fff; box-shadow: 0 2px 10px rgba(28, 28, 28, .07); font-weight: 700; }
.mdlms-side-module li.is-current .mdlms-state { color: var(--gt); }
.mdlms-side-module.is-locked { opacity: .6; }
.mdlms-side-module li.is-locked { color: var(--muted); }

.mdlms-main { min-width: 0; }
.mdlms-crumbs { font-size: .9rem; color: var(--muted); margin-bottom: 14px; }
.mdlms-crumbs a { color: inherit; }
.mdlms-video { margin: 0 0 24px; aspect-ratio: 16 / 9; background: #000; border-radius: 20px; overflow: hidden; box-shadow: 0 18px 40px rgba(28, 28, 28, .18); }
.mdlms-video iframe, .mdlms-video video { width: 100%; height: 100%; display: block; border: 0; }
.mdlms-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: center; padding: 0 0 28px; border-bottom: 1px solid var(--line); margin-bottom: 32px; }
.mdlms-body { font-size: 1.12rem; line-height: 1.75; max-width: 760px; margin-bottom: 40px; }
.mdlms-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mdlms-pager a { display: flex; flex-direction: column; gap: 4px; padding: 20px 24px; border: 1px solid var(--line); border-radius: 16px; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.mdlms-pager a:hover { border-color: var(--g); box-shadow: 0 8px 24px rgba(28, 28, 28, .06); }
.mdlms-pager small { color: var(--gt); font-weight: 700; }
.mdlms-pager .mdlms-next { text-align: right; grid-column: 2; }

/* ───── Mes formations ───── */
.mdlms-account { max-width: 1100px; }
.mdlms-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.mdlms-card { border: 1px solid var(--line); background: #fff; border-radius: 20px; overflow: hidden; transition: box-shadow .15s, transform .15s; }
.mdlms-card:hover { box-shadow: 0 14px 34px rgba(28, 28, 28, .08); transform: translateY(-2px); }
.mdlms-card img { width: 100%; height: auto; display: block; aspect-ratio: 16/9; object-fit: cover; }
.mdlms-card-body { padding: 22px 24px 26px; }
.mdlms-card h3 { margin: 0 0 8px; font-size: 1.25rem; }
.mdlms-card h3 a { color: inherit; text-decoration: none; }

/* ───── Tablette / mobile ───── */
@media (max-width: 980px) {
	.mdlms { padding: 24px 16px 64px; }
	.mdlms-lesson.mdlms-has-side { grid-template-columns: 1fr; gap: 24px; }
	.mdlms-side { position: static; max-height: none; overflow: visible; }
	.mdlms-side-toggle { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; font-weight: 800; cursor: pointer; list-style: none; }
	.mdlms-side-pct { color: var(--gt); }
	.mdlms-side[open] .mdlms-side-toggle { border-bottom: 1px solid rgba(28, 28, 28, .08); }
	.mdlms-hero { grid-template-columns: 1fr; padding: 28px 22px; gap: 24px; }
	.mdlms-lessons { padding-left: 24px; }
	.mdlms-pager { grid-template-columns: 1fr; }
	.mdlms-pager .mdlms-next { grid-column: 1; text-align: left; }
	.mdlms-bar .mdlms-btn { width: 100%; justify-content: center; }
}

/* ───── Mon espace ───── */
.mdlms-account h1 { margin-bottom: 20px; }
.mdlms-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; border-bottom: 1px solid var(--line); }
.mdlms-tabs a { padding: 12px 20px; text-decoration: none; color: var(--muted); font-weight: 700; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.mdlms-tabs a:hover { color: var(--gt); }
.mdlms-tabs a.is-active { color: var(--wp--preset--color--noir, #1c1c1c); border-bottom-color: var(--g); }
.mdlms-table-wrap { overflow-x: auto; }
.mdlms-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.mdlms-table th, .mdlms-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.mdlms-table th { font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); background: var(--cream); }
.mdlms-form { max-width: 640px; }
.mdlms-form h3 { margin: 32px 0 12px; }
.mdlms-form h3:first-child { margin-top: 0; }
.mdlms-form label { display: block; font-weight: 700; margin: 0 0 16px; flex: 1; }
.mdlms-form input { display: block; width: 100%; box-sizing: border-box; margin-top: 6px; padding: 12px 14px; font: inherit; font-weight: 400; border: 1px solid var(--wp--preset--color--ivoire-sourd, #a9a497); border-radius: 10px; background: #fff; }
.mdlms-row { display: flex; gap: 16px; }
.mdlms-notice { padding: 14px 18px; border-radius: 12px; margin: 0 0 24px; font-weight: 700; }
.mdlms-notice.is-ok { background: #e8f1e1; color: #2f4a1f; }
.mdlms-notice.is-err { background: #f8e3e0; color: #7a2a21; }
@media (max-width: 600px) { .mdlms-row { flex-direction: column; gap: 0; } }

/* ───── Mon espace (non connecté) : comme la page de connexion ───── */
body.mdlms-login-view { background: #1c1c1c; }
body.mdlms-login-view .header-membre, body.mdlms-login-view .footer-membre { display: none; }
body.mdlms-login-view main { background: #1c1c1c; min-height: 100vh; padding: 0 16px; }
.mdlms-login { max-width: 380px; margin: 0 auto; padding: 8vh 0 48px; text-align: center; }
.mdlms-login-logo { display: block; margin: 0 auto 24px; }
.mdlms-login-logo img { width: 200px; height: auto; display: block; margin: 0 auto; }
.mdlms-login-card { background: #2e2e2e; border: 1px solid #3a3a3a; border-radius: 16px; padding: 28px; text-align: left; }
.mdlms-login-card p { margin: 0 0 16px; }
.mdlms-login-card label { display: block; color: #e9e6de; font-weight: 700; margin-bottom: 6px; }
.mdlms-login-card input[type=text], .mdlms-login-card input[type=password] { width: 100%; box-sizing: border-box; background: #1c1c1c; border: 1px solid #5a564c; border-radius: 10px; color: #fff; font: inherit; padding: 10px 12px; }
.mdlms-login-card input:focus { outline: 0; border-color: #c6bc89; box-shadow: 0 0 0 1px #c6bc89; }
.mdlms-login-card .login-remember label { display: flex; gap: 8px; align-items: center; font-weight: 400; margin: 0; }
.mdlms-login-card .login-submit { margin: 0; }
.mdlms-login-card input[type=submit] { background: #c6bc89; color: #fff; border: 0; border-radius: 999px; font: inherit; font-weight: 700; padding: 10px 28px; cursor: pointer; }
.mdlms-login-card input[type=submit]:hover { background: #b4a870; }
.mdlms-login-links { margin-top: 20px; font-size: .9rem; line-height: 2; }
.mdlms-login-links a { color: #c6bc89; }
.mdlms-login-links a:hover { color: #fff; }

/* Flèche d'ouverture / fermeture des modules */
.mdlms-module summary::after, .mdlms-side-module summary::after { content: ""; flex: 0 0 auto; width: 9px; height: 9px; margin-left: 4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; opacity: .55; }
.mdlms-module[open] > summary::after, .mdlms-side-module[open] > summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.mdlms-module summary:hover::after, .mdlms-side-module summary:hover::after { opacity: 1; }

.mdlms-module-desc { padding: 0 24px 8px 74px; color: var(--muted); font-size: .95rem; }
.mdlms-module-desc p { margin: 0 0 8px; }
@media (max-width: 980px) { .mdlms-module-desc { padding-left: 24px; } }

/* ───── Ajustements : en-tête de formation avec image, statistiques alignées, espace autour de la vidéo ───── */
.mdlms-stats { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 28px; list-style: none; padding: 0; margin: 20px 0 0; }
.mdlms-stats li { margin: 0; padding: 0; display: block; }
.mdlms-hero.has-image { grid-template-columns: minmax(0, 1fr) minmax(0, 46%); }
.mdlms-hero:not(.has-image) { grid-template-columns: 1fr; }
.mdlms-hero-img img { width: 100%; height: auto; display: block; border-radius: 18px; aspect-ratio: 16 / 10; object-fit: cover; box-shadow: 0 14px 34px rgba(28, 28, 28, .12); }
.mdlms-prog-mini { margin-top: 22px; max-width: 340px; }
.mdlms-prog-mini .mdlms-progress { height: 6px; margin: 0 0 8px; }
.mdlms-prog-mini .mdlms-progress-label { margin: 0; font-size: .85rem; }
.mdlms-hero-cta { margin: 20px 0 0; }
.mdlms-hero-cta .mdlms-btn { width: auto; }
.mdlms-lesson .mdlms-crumbs { margin-bottom: 14px; }
.mdlms-video { margin: 50px 0; }
@media (max-width: 980px) { .mdlms-hero.has-image { grid-template-columns: 1fr; } .mdlms-hero-img { order: -1; } .mdlms-video { margin: 32px 0; } }

/* Le thème ajoute un retrait aux listes du contenu : on le neutralise pour nos listes (spécificité renforcée). */
.mdlms .mdlms-stats { padding: 0; padding-inline-start: 0; }
.mdlms .mdlms-lessons { padding: 0 24px 12px 74px; padding-inline-start: 74px; }
.mdlms .mdlms-side-module ol { padding: 0 0 10px; padding-inline-start: 0; }
@media (max-width: 980px) { .mdlms .mdlms-lessons { padding-left: 24px; padding-inline-start: 24px; } }

/* « J'en étais là » (élèves repris d'une autre plateforme) */
.mdlms-resume { text-align: center; margin: -12px 0 28px; font-size: .95rem; }
.mdlms-linkbtn { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--gt); text-decoration: underline; cursor: pointer; }
.mdlms-linkbtn:disabled { opacity: .5; cursor: wait; }
.mdlms-resume-banner { margin-top: 16px; }

/* ── Carte des élèves ── */
.mdlms-map{position:relative;margin:12px 0}
.mdlms-map-canvas{width:100%;border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.12);z-index:0}
.mdlms-map-count{margin:8px 2px 0;font-size:.9rem;opacity:.75}
.mdlms-pin{box-sizing:border-box;background:#c6bc89;border:2px solid #1c1c1c;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.mdlms-map.is-locked .mdlms-map-canvas{filter:grayscale(1) contrast(.9);opacity:.55;pointer-events:none}
.mdlms-map-wrap{position:relative}
.mdlms-map-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:16px}
.mdlms-map-lock span{background:rgba(28,28,28,.88);color:#fff;padding:12px 18px;border-radius:999px;font-weight:600;text-align:center}
.mdlms-pin-card{display:flex;flex-direction:column;gap:4px;font-size:.95rem;line-height:1.35}
.mdlms-pin-card strong{font-size:1.02rem}
.mdlms-pin-city{opacity:.7}
.mdlms-check{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;line-height:1.45}
.mdlms-check input{margin-top:4px;flex:none}
.mdlms-btn.is-ghost{background:transparent;color:inherit;border:1px solid currentColor}
.mdlms-map-form{max-width:640px}
.mdlms-map-banner{border-left:4px solid var(--wp--preset--color--or,#c6bc89)}
.mdlms-map-banner p{margin:.3em 0}
