/* ============================================
   VITRINE — accueil configurable, formations en ligne, direct (DEC-023)
   ============================================ */

/* Pastille « En direct » de l'en-tête */
.uckim-live-pill { display: inline-flex; align-items: center; gap: 7px; background: #d13438; color: #fff !important; font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: .03em; padding: 6px 12px; border-radius: 16px; text-decoration: none; white-space: nowrap; }
.uckim-live-pill:hover { background: #a4262c; }
.uckim-live-pill span, .dir-live-badge span { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: uckimPulse 1.4s infinite; }
@keyframes uckimPulse { 50% { opacity: .2; } }
@media (prefers-reduced-motion: reduce) { .uckim-live-pill span, .dir-live-badge span { animation: none; } }
.dir-live-badge { display: inline-flex; align-items: center; gap: 7px; background: #d13438; color: #fff; font-weight: 700; font-size: 0.75rem; text-transform: uppercase; padding: 3px 10px; border-radius: 12px; }

/* Lecteur du direct (DEC-028) : plateforme intégrée, flux UCKIM (HLS) ou lien externe */
.dlx-player, .hm-ratio { position: relative; padding-top: 56.25%; background: #000; border-radius: 12px; overflow: hidden; }
.dlx-player > iframe, .dlx-player > .dlx-flux, .dlx-player > .dlx-ext, .hm-ratio > .dlx-flux, .hm-ratio > .dlx-ext { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dlx-flux video { width: 100%; height: 100%; display: block; background: #000; object-fit: contain; }
.dlx-attente { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 12px; align-items: center; justify-content: center; text-align: center; padding: 16px; color: #fff; background: radial-gradient(circle at center, #1b3350 0%, #070d15 75%); font-weight: 600; }
.dlx-attente i { font-size: 2.2rem; color: #c8a84e; animation: uckimPulse 1.8s infinite; }
.dlx-attente[hidden] { display: none; }
.dlx-son { position: absolute; right: 12px; top: 12px; background: rgba(0,0,0,0.72); color: #fff; border: 1px solid rgba(255,255,255,0.35); border-radius: 8px; padding: 7px 12px; font-size: 0.85rem; font-weight: 600; cursor: pointer; }
.dlx-son[hidden] { display: none; }
.dlx-ext { display: flex; flex-direction: column; gap: 14px; align-items: center; justify-content: center; color: #fff; font-size: 0.95rem; text-align: center; padding: 16px; }
.dlx-ext > i { font-size: 2.8rem; }
.dlx-btn { background: #c8a84e; color: #0d1b2a; padding: 10px 18px; border-radius: 8px; font-weight: 700; text-decoration: none; font-size: 0.95rem; }
.dlx-btn:hover { background: #d8bb66; color: #0d1b2a; }
@media (prefers-reduced-motion: reduce) { .dlx-attente i { animation: none; } }

/* En-têtes de section */
.hm-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.hm-head .ms-section-subtitle { margin-bottom: 0; }
.hm-head .ms-section-title { margin-bottom: 6px; }
.hm-head-light .ms-section-title { color: #fff; }
.hm-head-light .ms-section-subtitle { color: rgba(255,255,255,.7); }
.hm-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 0.9rem; color: var(--uckim-blue, #0067b8); text-decoration: none; white-space: nowrap; }
.hm-head-light .hm-more { color: var(--uckim-gold, #c8a84e); }
.hm-more:hover { text-decoration: underline; }
.hm-alt { background: #f5f7fa; }

/* Boutons */
.hm-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 6px; font-weight: 600; font-size: 0.9rem; text-decoration: none; transition: background .2s, color .2s; }
.hm-btn-gold { background: var(--uckim-gold, #c8a84e); color: #0d1b2a; }
.hm-btn-gold:hover { background: #d4b96a; color: #0d1b2a; }
.hm-btn-ghost { border: 1px solid rgba(255,255,255,.45); color: #fff; }
.hm-btn-ghost:hover { background: rgba(255,255,255,.12); color: #fff; }

/* Bandeau des inscriptions */
.hm-adm { background: #003366; color: #fff; }
.hm-adm-in { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 16px; padding-bottom: 16px; }
.hm-adm-state { display: flex; gap: 12px; align-items: center; }
.hm-adm-state strong { display: block; font-size: 1rem; }
.hm-adm-state span { font-size: 0.85rem; opacity: .85; }
.hm-adm-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; background: #8a8886; }
.hm-adm.is-open .hm-adm-dot { background: #6bb700; box-shadow: 0 0 0 4px rgba(107,183,0,.25); }
.hm-adm-links { display: flex; gap: 8px; flex-wrap: wrap; }

/* Direct */
.hm-live { background: #0d1b2a; color: #fff; }
.hm-live-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 24px; }
.hm-live-grid > .hm-live-side:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; align-items: start; }
.hm-live-grid > .hm-live-side:only-child h3 { grid-column: 1 / -1; }
@media (max-width: 900px) { .hm-live-grid { grid-template-columns: 1fr; } }
.hm-ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.hm-live-cap { display: flex; gap: 10px; align-items: center; margin-top: 12px; }
.hm-live-side h3 { color: #fff; font-size: 0.95rem; text-transform: uppercase; letter-spacing: .04em; opacity: .8; margin: 4px 0 10px; }
.hm-live-side h3 i { color: var(--uckim-gold, #c8a84e); }
.hm-ev { display: flex; gap: 12px; align-items: center; background: rgba(255,255,255,.06); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; color: #fff; text-decoration: none; }
.hm-ev-link:hover { background: rgba(255,255,255,.12); color: #fff; }
.hm-ev strong { display: block; font-size: 0.9rem; }
.hm-ev span { font-size: 0.78rem; opacity: .75; }
.hm-ev-date { width: 52px; text-align: center; flex-shrink: 0; background: var(--uckim-blue, #0067b8); border-radius: 6px; padding: 4px 0; font-size: 0.68rem; opacity: 1 !important; }
.hm-ev-date b { display: block; font-size: 1.2rem; line-height: 1.1; }
/* Boutons et compte à rebours du direct (accueil et page « En direct ») */
.dlx-sb { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 8px; font-size: 0.85rem; font-weight: 600; background: rgba(255,255,255,0.12); color: #fff; border: 1px solid rgba(255,255,255,0.18); text-decoration: none; cursor: pointer; }
.dlx-sb:hover { background: rgba(255,255,255,0.22); color: #fff; }
.dlx-wa { background: #1f9e55; border-color: #1f9e55; } .dlx-fb { background: #1877f2; border-color: #1877f2; } .dlx-yt { background: #c4302b; border-color: #c4302b; }
.dlx-primary { background: #c8a84e; border-color: #c8a84e; color: #0d1b2a; } .dlx-primary:hover { background: #d8bb66; color: #0d1b2a; }
.dlx-rebours { display: grid; grid-template-columns: repeat(4, minmax(0, 96px)); gap: 8px; margin: 18px 0; }
.dlx-rebours > div { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.16); border-radius: 12px; padding: 10px 4px; text-align: center; min-width: 0; }
.dlx-rebours b { display: block; font-size: clamp(1.6rem, 4vw, 2.3rem); line-height: 1.1; font-variant-numeric: tabular-nums; color: #c8a84e; }
.dlx-rebours span { font-size: 0.68rem; text-transform: uppercase; letter-spacing: .03em; opacity: 0.8; }
.dlx-rebours-txt { grid-column: 1 / -1; margin: 0; font-weight: 600; }
.dlx-rebours-txt:empty { display: none; }
.dlx-rebours-fini > div { display: none; }

/* Bandeau en haut de l'accueil : prochain direct ou direct en cours */
.hm-bandeau { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; justify-content: center; padding: 10px 16px; background: #0b1f4d; color: #fff; text-decoration: none; font-size: 0.95rem; border-bottom: 3px solid #d13438; }
.hm-bandeau:hover { color: #fff; background: #0a2f73; }
.hm-bandeau-tag { display: inline-flex; gap: 6px; align-items: center; background: #d13438; padding: 3px 10px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.hm-bandeau-live .hm-bandeau-tag i { animation: hmPulse 1.6s infinite; font-size: 0.6rem; }
.hm-bandeau-cd { font-variant-numeric: tabular-nums; opacity: .9; }
.hm-bandeau-cd b { font-size: 1.05rem; }
.hm-bandeau-cd.dlx-rebours-fini .hm-bandeau-n { display: none; }
.hm-bandeau-go { font-weight: 700; color: #f7d618; }
@media (max-width: 767.98px) { .hm-bandeau { font-size: 0.85rem; } .hm-bandeau strong { flex: 1 1 100%; text-align: center; } }

/* Annonce du prochain direct : affiche entière + compte à rebours */
.hm-annonce { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 32px; align-items: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); padding: 24px; margin-bottom: 28px; }
.hm-annonce-sans { grid-template-columns: minmax(0, 1fr); }
.hm-annonce-affiche { display: block; background: rgba(0,0,0,.25); }
.hm-annonce-affiche img { display: block; width: 100%; max-height: 460px; object-fit: contain; }
.hm-annonce-tag { display: inline-flex; gap: 8px; align-items: center; font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #fff; background: #d13438; padding: 5px 12px; }
.hm-annonce-tag i { animation: hmPulse 1.6s infinite; }
@keyframes hmPulse { 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .hm-annonce-tag i { animation: none; } }
.hm-annonce h3 { color: #fff; font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.2; margin: 14px 0 8px; }
.hm-annonce-date { color: rgba(255,255,255,.85); font-size: 1rem; margin: 0; }
.hm-annonce-desc { color: rgba(255,255,255,.8); font-size: 0.95rem; margin: 0 0 16px; max-width: 62ch; }
.hm-annonce-actions { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 767.98px) {
    .hm-annonce { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 18px; }
    .hm-annonce-affiche img { max-height: 380px; }
    .hm-annonce-actions .dlx-sb { flex: 1 1 100%; justify-content: center; }
}
.hm-ev-play { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; flex-shrink: 0; opacity: 1 !important; }

/* Publications : mise en page magazine */
.hm-mag { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; }
@media (max-width: 900px) { .hm-mag { grid-template-columns: 1fr; } }
.hm-une { position: relative; min-height: 420px; border-radius: 14px; overflow: hidden; background: linear-gradient(135deg, #003366, #0067b8) center/cover; display: flex; align-items: flex-end; text-decoration: none; color: #fff; }
.hm-une::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.85)); }
.hm-une-txt { position: relative; padding: 28px; }
.hm-une-kicker { display: inline-flex; gap: 6px; align-items: center; background: var(--uckim-gold, #c8a84e); color: #0d1b2a; font-weight: 700; font-size: 0.75rem; text-transform: uppercase; padding: 4px 10px; border-radius: 4px; }
.hm-une h3 { color: #fff; font-size: 1.6rem; line-height: 1.25; margin: 12px 0 8px; }
.hm-une p { color: rgba(255,255,255,.85); font-size: 0.95rem; margin-bottom: 10px; }
.hm-une:hover { color: #fff; }
.hm-une:hover h3 { text-decoration: underline; }
.hm-mag-list { display: flex; flex-direction: column; gap: 14px; }
.hm-pub { display: flex; gap: 14px; text-decoration: none; color: #0d1b2a; padding: 10px; border-radius: 10px; background: #fff; border: 1px solid #edebe9; transition: box-shadow .2s, border-color .2s; }
.hm-pub:hover { border-color: #c8c6c4; box-shadow: 0 6px 18px rgba(0,0,0,.07); color: #0d1b2a; }
.hm-pub:hover h3 { color: var(--uckim-blue, #0067b8); }
.hm-pub-img { width: 120px; height: 84px; flex-shrink: 0; border-radius: 8px; background: #e8f4fd center/cover; display: flex; align-items: center; justify-content: center; color: #0067b8; font-size: 1.4rem; }
.hm-pub-body { min-width: 0; }
.hm-pub h3 { font-size: 0.98rem; line-height: 1.35; margin: 4px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hm-kicker { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.hm-meta { font-size: 0.78rem; color: #605e5c; }
.hm-une .hm-meta { color: rgba(255,255,255,.8); }
.hm-empty { color: #605e5c; font-size: 0.9rem; }
.hm-science { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; margin-top: 32px; }
.hm-col { display: flex; flex-direction: column; gap: 10px; }
.hm-col-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; border-bottom: 2px solid #0d1b2a; padding-bottom: 8px; margin-bottom: 4px; flex-wrap: wrap; }
.hm-col-head h3 { font-size: 1.1rem; margin: 0; }
.hm-col-head h3 i { color: var(--uckim-gold, #c8a84e); }
.hm-col-head a { font-size: 0.82rem; font-weight: 600; text-decoration: none; }

/* Chiffres clés */
.hm-stats { background: linear-gradient(135deg, #003366, #0067b8); color: #fff; padding: 36px 0; }
.hm-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; text-align: center; }
.hm-stat i { font-size: 1.5rem; color: var(--uckim-gold, #c8a84e); }
.hm-stat b { display: block; font-size: 2.2rem; line-height: 1.2; margin-top: 6px; }
.hm-stat span { font-size: 0.85rem; text-transform: uppercase; letter-spacing: .05em; opacity: .85; }

/* Appel final */
.hm-cta { background: #0d1b2a; color: #fff; padding: 44px 0; border-top: 4px solid var(--uckim-gold, #c8a84e); }
.hm-cta-in { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.hm-cta h2 { color: #fff; font-size: 1.7rem; margin-bottom: 6px; }
.hm-cta p { color: rgba(255,255,255,.75); margin: 0; max-width: 620px; }
.hm-cta-links { display: flex; gap: 10px; flex-wrap: wrap; }

/* Formations en ligne : catalogue et cartes */
.fel-filtres { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.fel-filtres a { padding: 9px 16px; border-radius: 22px; border: 1px solid #e1dfdd; background: #fff; text-decoration: none; color: #323130; font-weight: 500; font-size: 0.9rem; }
.fel-filtres a.active { background: #0067b8; border-color: #0067b8; color: #fff; }
.fel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; }
.fel-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e1dfdd; border-radius: 14px; overflow: hidden; text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s; }
.fel-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,0.1); color: inherit; }
.fel-img { position: relative; height: 160px; background: linear-gradient(135deg, #0d1b2a, #0067b8); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); font-size: 2.6rem; }
.fel-img img { width: 100%; height: 100%; object-fit: cover; }
.fel-acces { position: absolute; left: 12px; top: 12px; font-size: 0.72rem; font-weight: 700; padding: 4px 10px; border-radius: 12px; color: #fff; }
.fel-acces.libre { background: #107c10; } .fel-acces.payant { background: #c87f0a; }
.fel-body { padding: 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.fel-body h3 { font-size: 1.05rem; margin: 0; color: #0d1b2a; }
.fel-body p { font-size: 0.87rem; color: #605e5c; margin: 0; flex: 1; }
.fel-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 0.78rem; color: #605e5c; align-items: center; }
.fel-prix { margin-left: auto; font-weight: 700; color: #0067b8; font-size: 0.9rem; }

@media (max-width: 575.98px) {
    .hm-une { min-height: 320px; }
    .hm-une h3 { font-size: 1.25rem; }
    .hm-pub-img { width: 92px; height: 70px; }
    .hm-adm-links .hm-btn, .hm-cta-links .hm-btn { flex: 1; justify-content: center; }
}
.uckim-live-txt { font-weight: 700; }
@media (max-width: 1480px) {
    .uckim-nav-ctas .uckim-live-pill { padding: 6px 10px; }
    .uckim-nav-ctas .uckim-live-txt { display: none; }
}
@media (max-width: 1360px) {
    .uckim-nav-ctas .uckim-live-pill { padding: 8px; }
}
/* En-tête : resserrement entre la tablette et l'écran large (évite le défilement horizontal) */
@media (min-width: 1025px) and (max-width: 1300px) {
    .uckim-nav-link { padding: 6px 7px; }
    .uckim-nav-btn { padding-left: 10px; padding-right: 10px; }
}
@media (min-width: 1025px) and (max-width: 1199.98px) {
    .uckim-header-name { display: none; }
    .uckim-nav-ctas .uckim-nav-btn { font-size: 0 !important; gap: 0; padding: 8px 10px; }
    .uckim-nav-ctas .uckim-nav-btn i { margin: 0; }
    .uckim-nav-ctas .uckim-nav-btn i { font-size: 0.9rem !important; }
}

/* ============================================
   HARMONISATION DES PAGES PUBLIQUES (DEC-024)
   ============================================ */

/* Fil d'Ariane */
.uk-crumbs { background: #fff; border-bottom: 1px solid #edebe9; font-size: 0.8rem; }
.uk-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0; padding: 9px 0; }
.uk-crumbs li { display: flex; align-items: center; gap: 4px; color: #605e5c; }
.uk-crumbs li + li::before { content: "›"; color: #a19f9d; margin-right: 2px; }
.uk-crumbs a { color: var(--uckim-blue, #0067b8); text-decoration: none; }
.uk-crumbs a:hover { text-decoration: underline; }
.uk-crumbs li[aria-current] { color: #323130; font-weight: 600; }

/* Sous-menu « Sur cette page » */
.uk-subnav { position: sticky; top: var(--uckim-header-h, 64px); z-index: 20; background: #fff; border-bottom: 1px solid #edebe9; box-shadow: 0 2px 8px rgba(0,0,0,.04); }
.uk-subnav .container { display: flex; gap: 4px; align-items: center; overflow-x: auto; scrollbar-width: none; padding-top: 6px; padding-bottom: 6px; }
.uk-subnav .container::-webkit-scrollbar { display: none; }
.uk-subnav-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: .05em; color: #8a8886; font-weight: 700; margin-right: 8px; white-space: nowrap; }
.uk-subnav a { white-space: nowrap; padding: 7px 12px; border-radius: 18px; font-size: 0.85rem; font-weight: 600; color: #323130; text-decoration: none; }
.uk-subnav a:hover, .uk-subnav a.active { background: #e8f4fd; color: var(--uckim-blue, #0067b8); }
section[id] { scroll-margin-top: 130px; }

.hm-head-center { justify-content: center; text-align: center; }
.hm-head-center > div { width: 100%; }

/* Contenu rédigé (textes institutionnels saisis dans l'administration) */
.uk-prose { font-size: 1rem; line-height: 1.8; color: #323130; }
.uk-prose p { margin-bottom: 1rem; }
.uk-prose h2, .uk-prose h3 { margin: 1.5rem 0 .75rem; }
.uk-lead { font-size: 1.12rem; line-height: 1.75; color: #323130; }

/* Cartes institutionnelles (mission, valeurs, services, accès rapides) */
.uk-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.uk-card { background: #fff; border: 1px solid #e1dfdd; border-radius: 12px; padding: 24px; height: 100%; transition: box-shadow .2s, transform .2s; }
a.uk-card { display: block; text-decoration: none; color: inherit; }
a.uk-card:hover { box-shadow: 0 10px 26px rgba(0,0,0,.08); transform: translateY(-2px); color: inherit; }
.uk-card-ico { width: 48px; height: 48px; border-radius: 10px; background: #e8f4fd; color: var(--uckim-blue, #0067b8); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; margin-bottom: 14px; }
.uk-card h3 { font-size: 1.08rem; margin: 0 0 8px; color: #0d1b2a; }
.uk-card p { font-size: 0.92rem; color: #605e5c; margin: 0; line-height: 1.6; }
.uk-card ul { margin: 0; padding-left: 0; list-style: none; }
.uk-card li { font-size: 0.92rem; color: #605e5c; padding: 4px 0 4px 22px; position: relative; }
.uk-card li::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 0; color: var(--uckim-gold, #c8a84e); font-size: .8rem; top: 7px; }
.uk-card-more { display: inline-flex; gap: 6px; align-items: center; margin-top: 12px; font-weight: 600; font-size: 0.88rem; color: var(--uckim-blue, #0067b8); }

/* Histoire : texte et photos légendées */
.uk-history { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 36px; align-items: start; }
@media (max-width: 900px) { .uk-history { grid-template-columns: 1fr; } }
.uk-figures { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.uk-figures figure { margin: 0; background: #fff; border: 1px solid #e1dfdd; border-radius: 10px; overflow: hidden; }
.uk-figures figure:first-child { grid-column: 1 / -1; }
.uk-figures img { width: 100%; height: 220px; object-fit: cover; display: block; }
.uk-figures figure:not(:first-child) img { height: 150px; }
.uk-figures figcaption { font-size: 0.8rem; color: #605e5c; padding: 8px 12px; line-height: 1.4; }

/* Repères chronologiques */
.uk-timeline { list-style: none; padding: 0; margin: 0; border-left: 3px solid var(--uckim-gold, #c8a84e); }
.uk-timeline li { position: relative; padding: 0 0 18px 22px; }
.uk-timeline li::before { content: ""; position: absolute; left: -9px; top: 4px; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 3px solid var(--uckim-blue, #0067b8); }
.uk-timeline b { display: block; color: var(--uckim-blue, #0067b8); font-size: .95rem; }
.uk-timeline span { font-size: .92rem; color: #323130; }

/* Bloc « À fournir » : contenu attendu de l'université (visible seulement s'il manque tout le reste) */
.uk-note { display: flex; gap: 12px; align-items: flex-start; background: #f5f7fa; border: 1px dashed #c8c6c4; border-radius: 10px; padding: 16px 18px; color: #605e5c; font-size: .92rem; }
.uk-note i { color: var(--uckim-blue, #0067b8); margin-top: 3px; }

/* Grille de logos partenaires */
.uk-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px; }
.uk-logo { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: #fff; border: 1px solid #e1dfdd; border-radius: 10px; padding: 16px; min-height: 110px; text-decoration: none; color: #323130; font-size: .8rem; text-align: center; }
.uk-logo img { max-width: 100%; max-height: 60px; object-fit: contain; }
a.uk-logo:hover { border-color: #c8c6c4; box-shadow: 0 6px 16px rgba(0,0,0,.06); color: #323130; }

/* Listes de publications en colonnes (Recherche, Vie étudiante) */
.uk-pub-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }

/* Bandeau d'information (état des inscriptions dans les pages) */
.uk-info { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: #e8f4fd; border-left: 4px solid var(--uckim-blue, #0067b8); border-radius: 8px; padding: 16px 20px; }
.uk-info strong { color: #0d1b2a; }
.uk-info .hm-btn-ghost { color: var(--uckim-blue, #0067b8); border-color: var(--uckim-blue, #0067b8); }
.uk-info .hm-btn-ghost:hover { background: #fff; color: var(--uckim-blue, #0067b8); }

/* Chiffres clés sur fond clair (pages) */
.hm-stats-light { background: #f5f7fa; color: #0d1b2a; }
.hm-stats-light .hm-stat b { color: var(--uckim-blue, #0067b8); }
.hm-stats-light .hm-stat span { color: #605e5c; opacity: 1; }

/* Université : mot du Recteur, gouvernance */
.uk-rector-photo { width: 260px; height: 260px; border-radius: 50%; object-fit: cover; border: 5px solid #fff; box-shadow: 0 0 0 3px var(--uckim-gold, #c8a84e), 0 14px 34px rgba(0,0,0,.15); }
.uk-rector-empty { display: inline-flex; align-items: center; justify-content: center; background: #f3f2f1; font-size: 4rem; color: #a19f9d; }
.uk-quote { border-left: 4px solid var(--uckim-gold, #c8a84e); padding: 4px 0 4px 22px; margin: 0; font-size: 1rem; line-height: 1.85; color: #323130; font-style: italic; }
.uk-gov { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 22px; }
.uk-gov-card { background: #fff; border: 1px solid #e1dfdd; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
.uk-gov-photo { height: 240px; background: #003366; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.4); font-size: 4rem; }
.uk-gov-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.uk-gov-body { padding: 18px; text-align: center; border-top: 3px solid var(--uckim-gold, #c8a84e); }
.uk-gov-body h3 { font-size: 1.02rem; margin: 0 0 4px; }
.uk-gov-role { color: var(--uckim-blue, #0067b8); font-weight: 600; font-size: .85rem; margin: 0 0 8px; }
.uk-gov-bio { font-size: .85rem; color: #605e5c; margin: 0; }

/* Grille de vidéos (rediffusions dans les pages) */
.dir-grid-home { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.dir-card-home { text-decoration: none; color: #0d1b2a; }
.dir-card-home:hover { color: var(--uckim-blue, #0067b8); }
.dir-thumb-home { position: relative; padding-top: 56.25%; border-radius: 10px; background: #0d1b2a center/cover; margin-bottom: 8px; }
.dir-thumb-home i { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: #fff; width: 50px; height: 50px; border-radius: 50%; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; }
.dir-card-home strong { display: block; font-size: .92rem; }
.dir-card-home span { font-size: .8rem; color: #605e5c; }

/* Formations : état d'une offre, frais, départements */
.uk-etat { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.uk-dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 12px 0 0; font-size: .88rem; }
.uk-dl dt { color: #605e5c; font-weight: 500; }
.uk-dl dd { margin: 0; font-weight: 700; color: #0d1b2a; text-align: right; }
.uk-deps { font-size: .82rem; color: var(--uckim-blue, #0067b8); font-weight: 600; margin: -4px 0 14px; }

/* Aucune page ne défile horizontalement (animations latérales, gouttières de grille) ; « clip » garde l'en-tête et le sous-menu collants */
html, body { overflow-x: clip; }

/* Crédit du développeur (DEC-027) */
.uk-dev-line { font-size: .8rem; opacity: .8; margin-top: 2px; }
.uk-dev-credit { color: inherit; font-weight: 600; text-decoration: none; white-space: nowrap; }
.uk-dev-credit:hover { text-decoration: underline; color: #25d366; }
.uk-dev-credit .fa-whatsapp { color: #25d366; margin-left: 2px; }
.hm-live-cap a { color: #fff; text-decoration: none; } .hm-live-cap a:hover { text-decoration: underline; }

/* Affiches des sessions d'inscription : diaporama (DEC-042) */
.uk-visuels { position: relative; margin: 10px 0 16px; }
.uk-visuels-piste { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 2px 2px 10px; scrollbar-width: thin; }
.uk-visuels-piste:focus-visible { outline: 2px solid #0062cc; outline-offset: 2px; }
.uk-visuel { flex: 0 0 auto; scroll-snap-align: start; display: flex; flex-direction: column; background: #0b1f4d; color: #fff; text-decoration: none; border: 1px solid #d9dee8; }
.uk-visuel img { display: block; height: 380px; width: auto; max-width: min(680px, 86vw); object-fit: contain; background: #0b1f4d; }
.uk-visuel-pied { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; background: #fff; color: #101828; font-size: 0.88rem; width: 0; min-width: 100%; box-sizing: border-box; }
.uk-visuel-pied strong { color: #0062cc; }
.uk-visuel:hover .uk-visuel-pied strong, .uk-visuel:focus-visible .uk-visuel-pied strong { text-decoration: underline; }
.uk-visuels-nav { position: absolute; top: 170px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(11,31,77,.85); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; }
.uk-visuels-nav:hover { background: #0062cc; }
.uk-visuels-prec { left: -8px; } .uk-visuels-suiv { right: -8px; }
@media (max-width: 767.98px) { .uk-visuel img { height: 320px; } .uk-visuels-nav { top: 140px; } .uk-visuels-prec { left: 2px; } .uk-visuels-suiv { right: 2px; } }

/* Message aux visiteurs (DEC-045) : bandeau en haut des pages publiques */
.uk-msgpub { background: #0b1f4d; color: #fff; font-size: 0.92rem; border-bottom: 3px solid #f7d618; }
.uk-msgpub-excuses { border-bottom-color: #007fff; }
.uk-msgpub-important { background: #7a0a14; border-bottom-color: #f7d618; }
.uk-msgpub-in { display: flex; align-items: center; gap: 12px; padding-top: 10px; padding-bottom: 10px; }
.uk-msgpub-in > i { font-size: 1.1rem; color: #f7d618; flex-shrink: 0; }
.uk-msgpub p { margin: 0; flex: 1; min-width: 0; line-height: 1.45; }
.uk-msgpub-lien { color: #f7d618; font-weight: 700; text-decoration: none; white-space: nowrap; }
.uk-msgpub-lien:hover { color: #fff; text-decoration: underline; }
.uk-msgpub-fermer { background: none; border: 0; color: rgba(255,255,255,.75); width: 36px; height: 36px; flex-shrink: 0; cursor: pointer; font-size: 1rem; }
.uk-msgpub-fermer:hover { color: #fff; }
@media (max-width: 767.98px) { .uk-msgpub-in { flex-wrap: wrap; gap: 6px 10px; } .uk-msgpub p { flex-basis: calc(100% - 80px); } .uk-msgpub-lien { margin-left: 28px; } }

/* Page du message */
.uk-msg-page { max-width: 760px; margin: 0 auto; }
.uk-msg-page .uk-msg-tag { display: inline-flex; gap: 8px; align-items: center; font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: .05em; color: #0062cc; }
.uk-msg-page h1 { font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin: 12px 0 8px; }
.uk-msg-page .uk-msg-date { color: #4a5568; margin-bottom: 28px; }
.uk-msg-page .uk-msg-texte p { font-size: 1.08rem; line-height: 1.75; margin: 0 0 1.1em; color: #101828; }
.uk-msg-page .uk-msg-signature { margin-top: 28px; padding-top: 18px; border-top: 1px solid #d9dee8; font-weight: 700; }
