
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,700;0,9..144,800;0,9..144,900;1,9..144,700&family=Inter:wght@400;500;600;700&display=swap');

/**
 * assets/css/main.css — CESTI Theme WordPress v1.2
 * Inclut : cartes avancées verticales, archive classifiée, galeries images
 */

/* ── VARIABLES ── */
:root {
  /* ── Palette principale ── */
  --blue:        #1560BD;
  --blue-dark:   #0D47A1;
  --blue-deep:   #07255A;
  --blue-light:  #EBF2FC;
  --blue-mid:    #A8C8F0;
  --accent:      #E8941A;   /* ambre chaud — remplace le gold criard */
  --white:       #ffffff;
  --off:         #F8FAFD;
  --off2:        #F0F4FA;
  --text:        #111827;
  --text-light:  #4B5563;
  --text-muted:  #9CA3AF;
  --border:      #D9E4F5;
  --border-light:#EEF3FB;
  --gold:        #E8941A;
  --green:       #166534;
  --red:         #B91C1C;

  /* ── Typographie ── */
  --fh: 'Fraunces', Georgia, serif;   /* serif gras, impact éditorial */
  --fb: 'Inter', 'DM Sans', system-ui, sans-serif;

  /* ── Tokens ── */
  --r:          6px;
  --r-lg:       12px;
  --r-xl:       20px;
  --sh:         0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(21,96,189,.08);
  --sh2:        0 4px 12px rgba(0,0,0,.08), 0 16px 40px rgba(21,96,189,.14);
  --transition: all .22s ease;
  --section-py: 5rem;
  --container:  1280px;
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--fb);color:var(--text);background:var(--white);line-height:1.72;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em;}
h1,h2,h3,h4,h5,h6{font-family:var(--fh);line-height:1.15;letter-spacing:-.02em;font-weight:700;}
p{margin-bottom:.9rem;}p:last-child{margin-bottom:0;}
a{color:var(--blue);text-decoration:none;transition:var(--transition);}
a:hover{color:var(--blue-dark);}
a:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px;}
img,svg{max-width:100%;height:auto;display:block;}
button{font-family:var(--fb);cursor:pointer;border:none;background:none;transition:var(--transition);}
ul,ol{padding-left:1.5rem;}
.visually-hidden,.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link:focus{position:fixed;top:0;left:0;z-index:9999;background:var(--blue);color:#fff;padding:.5rem 1rem;clip:auto;width:auto;height:auto;}

/* ── LAYOUT ── */
.container{max-width:var(--container);margin:0 auto;padding:0 2rem;}
.cesti-section{padding:var(--section-py) 0;}
.cesti-section--alt{background:var(--off);}
.section-head{text-align:center;margin-bottom:3rem;}
.section-head h2{font-size:clamp(1.8rem,3.5vw,2.4rem);color:var(--blue-deep);margin-bottom:.5rem;font-weight:700;letter-spacing:-.03em;}
.section-line{width:40px;height:3px;background:linear-gradient(90deg,var(--blue),var(--accent));margin:.75rem auto 0;border-radius:2px;}
.section-sub{font-size:.9rem;color:var(--text-light);max-width:560px;margin:.75rem auto 0;line-height:1.72;}

/* ── SCROLL & BACK-TOP ── */
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--blue),var(--accent));z-index:9999;pointer-events:none;transition:width .1s linear;}
.back-to-top{position:fixed;bottom:2rem;right:2rem;width:40px;height:40px;background:var(--blue-deep);color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:var(--transition);z-index:900;box-shadow:0 4px 14px rgba(0,0,0,.2);pointer-events:none;}
.back-to-top:hover{background:var(--blue);}
.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto;}
.back-to-top svg{width:20px;height:20px;fill:#fff;}

/* ══════════════════════════════════════════════════════════
   HEADER — Layout 2 blocs (identité + navigation)
   Inspiré du site officiel CESTI-UCAD
══════════════════════════════════════════════════════════ */

/* ── BLOC IDENTITÉ (logo) ── */
.site-identity {
    background: var(--white);
    border-bottom: 1px solid var(--border-light);
    padding: .65rem 0;
}
.site-identity__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 3rem;           /* décalé à droite */
    display: flex;
    align-items: center;
}
.site-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    gap: 0;
}

/* Image logo (LOGO-CESTI-2.png) — ratio 1392×586 = 2.38 */
.site-brand__logo-wrap {
    display: flex;
    align-items: center;
}
.site-brand__logo-wrap img,
.site-brand__logo-img {
    height: 110px;              /* hauteur cible */
    width: auto;                /* ratio préservé → ~262px */
    max-width: none;
    object-fit: contain;
    display: block;
}
/* Logo WP (the_custom_logo génère un <a> avec <img> imbriqués) */
.site-brand__logo-wrap a {
    display: flex;
    align-items: center;
    text-decoration: none;
}
.site-brand__logo-wrap a img {
    height: 110px !important;
    width: auto !important;
    max-width: none !important;
}

/* Repli texte si pas d'image */
.site-brand__text-fallback {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.site-brand__ucad {
    display: flex;
    flex-direction: column;
    font-size: .7rem;
    font-weight: 700;
    color: #1A2A3A;
    text-transform: uppercase;
    letter-spacing: .3px;
    line-height: 1.5;
}
.site-brand__sep {
    width: 1px;
    height: 60px;
    background: #1A2A3A;
    flex-shrink: 0;
}
.site-brand__cesti {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.site-brand__cesti-label {
    font-size: .62rem;
    color: #333;
    text-transform: uppercase;
    letter-spacing: .4px;
    line-height: 1.4;
}
.site-brand__cesti-name {
    font-size: 2rem;
    font-weight: 900;
    color: #0077C8;
    letter-spacing: 1px;
    line-height: 1;
}

/* ── BARRE DE NAVIGATION ── */
.site-nav-bar {
    background: var(--white);
    border-bottom: 1px solid var(--border-light);
    box-shadow: 0 1px 0 var(--border), 0 4px 16px rgba(0,0,0,.04);
    position: sticky;
    top: 0;
    z-index: 1000;
}
.admin-bar .site-nav-bar { top: 32px; }
@media screen and (max-width:782px){ .admin-bar .site-nav-bar { top: 46px; } }

.site-nav-bar__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 3rem;           /* aligné avec le logo */
    display: flex;
    align-items: center;
    justify-content: flex-end;  /* menu à droite */
    height: 56px;
    gap: 1rem;
}

/* ══════════════════════════════════════════════════════════
   NAVIGATION + MEGA-DROPDOWN FORMATIONS
══════════════════════════════════════════════════════════ */

/* ── Niveau 0 : liste principale ── */
.main-nav .menu,
.main-nav .nav-list {
    list-style: none;
    display: flex;
    align-items: center;
    gap: .1rem;
    padding: 0; margin: 0;
}
.main-nav .menu > li,
.main-nav .nav-list > .menu-item { position: relative; }

/* Lien niveau 0 */
.main-nav .nav-link {
    display: flex;
    align-items: center;
    gap: .3rem;
    padding: .55rem .95rem;
    font-size: .84rem;
    font-weight: 600;
    color: var(--text);
    border-radius: 6px;
    transition: var(--transition);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.main-nav .nav-link:hover {
    background: var(--blue-light);
    color: var(--blue);
}
.main-nav .menu > li.current-menu-item > .nav-link,
.main-nav .menu > li.current-menu-ancestor > .nav-link,
.main-nav .menu > li.current-menu-parent > .nav-link {
    background: var(--blue-light);
    color: var(--blue);
    font-weight: 700;
}
.nav-arrow {
    font-size: .65rem;
    opacity: .7;
    transition: transform .2s;
    display: inline-block;
}
.main-nav .menu > li:hover .nav-arrow,
.main-nav .nav-list > .menu-item:hover .nav-arrow {
    transform: rotate(180deg);
}

/* ── DROPDOWN STANDARD ── */
.main-nav .menu ul,
.main-nav .dropdown-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    background: #fff;
    border-radius: var(--r);
    box-shadow: var(--sh2);
    border-top: 2px solid var(--accent);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: var(--transition);
    z-index: 1000;
    padding: .5rem 0;
    min-width: 240px;
    list-style: none;
}
.main-nav .menu li:hover > ul,
.main-nav .menu li:focus-within > ul,
.main-nav .nav-list > .menu-item-has-children:hover > .dropdown-menu,
.main-nav .nav-list > .menu-item-has-children:focus-within > .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* ── MEGA-DROPDOWN FORMATIONS (2 colonnes) ── */
.dropdown-menu--formations {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    min-width: 540px;
    padding: 0 !important;
    left: 0;
}
.dropdown-col {
    padding: 1.2rem 1.4rem 1.4rem;
    list-style: none;
}
.dropdown-col:first-child {
    border-right: 1px solid var(--border);
}

/* En-tête de groupe (non cliquable) */
.dropdown-group-head {
    display: block;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--blue);
    padding: 0 0 .6rem;
    margin-bottom: .5rem;
    border-bottom: 2px solid var(--blue-light);
}

/* Sous-liste dans la colonne */
.dropdown-sublist {
    list-style: none;
    padding: 0; margin: 0;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

/* Lien formation (depth 1 direct) */
.dropdown-link,
.dropdown-sublink {
    display: block;
    padding: .45rem .6rem;
    font-size: .83rem;
    color: var(--text);
    border-radius: 5px;
    text-decoration: none;
    transition: var(--transition);
    line-height: 1.4;
}
.dropdown-link:hover,
.dropdown-sublink:hover {
    background: var(--blue-light);
    color: var(--blue);
    padding-left: 1rem;
}

/* Dropdown standard (non-formations) */
.main-nav .menu > li > ul > li > a {
    display: block;
    padding: .55rem 1.1rem;
    font-size: .82rem;
    font-weight: 500;
    color: var(--text);
    transition: var(--transition);
    border-bottom: 1px solid var(--border);
    text-decoration: none;
}
.main-nav .menu > li > ul > li:last-child > a { border-bottom: none; }
.main-nav .menu > li > ul > li > a:hover {
    background: var(--blue-light);
    color: var(--blue);
    padding-left: 1.4rem;
}

/* Hamburger mobile */
.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: .5rem;
    cursor: pointer;
    margin-left: auto;
    background: none;
    border: none;
}
.nav-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--text);
    border-radius: 2px;
    transition: var(--transition);
}


/* ── Suppression des anciens sélecteurs site-header (remplacés) ── */
.site-header { display: contents; } /* le header enveloppe les deux blocs sans style propre */
.site-header__inner { display: none; } /* ancien layout, désactivé */


/* ── FLASH BAND ── */
.flash-band{background:var(--blue-deep);padding:.45rem 0;}
.flash-band__inner{max-width:var(--container);margin:0 auto;padding:0 2rem;display:flex;align-items:center;gap:1rem;}
.flash-band__pill{background:var(--accent);color:#fff;padding:.1rem .7rem;border-radius:20px;font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;}
.flash-band__text{font-size:.8rem;color:rgba(255,255,255,.8);margin:0;}
.flash-band__text a{color:#fff;font-weight:600;}

/* ── CAROUSEL ── */
.hero-carousel{position:relative;overflow:hidden;height:780px;background:var(--blue-deep);}
.hero-carousel__track{display:flex;height:100%;transition:transform .8s cubic-bezier(.77,0,.175,1);will-change:transform;}
.hero-carousel__slide{min-width:100%;height:100%;position:relative;display:flex;align-items:flex-end;}
.slide__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .4s ease;}
.hero-carousel__slide:hover .slide__bg{transform:scale(1.02);}
.slide__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,10,30,.72) 0%,rgba(0,10,30,.25) 50%,rgba(0,10,30,.1) 100%);}
.slide__inner{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:0 3rem 3.5rem;width:100%;}
.slide__tag{display:inline-flex;align-items:center;background:var(--accent);color:#fff;padding:.22rem .9rem;border-radius:20px;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.9rem;}
.slide__badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--gold);color:#1A2A3A;padding:.25rem .9rem;border-radius:20px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:.9rem;}
.slide__title{font-family:var(--fh);font-size:clamp(2.6rem,5.5vw,4.4rem);color:#fff;line-height:1.05;max-width:760px;margin-bottom:0;font-weight:800;letter-spacing:-.03em;}
.slide__desc{font-size:.95rem;color:rgba(255,255,255,.78);max-width:500px;margin-bottom:.8rem;line-height:1.7;}
.slide__btns{display:none;}
.btn-slide--primary{background:var(--accent);color:#fff;padding:.7rem 1.6rem;border-radius:var(--r);font-weight:600;font-size:.85rem;border:none;cursor:pointer;transition:var(--transition);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;letter-spacing:.01em;}
.btn-slide--primary:hover{background:#d17d10;color:#fff;transform:translateY(-1px);}
.btn-slide--secondary{background:rgba(255,255,255,.1);color:#fff;padding:.7rem 1.6rem;border-radius:var(--r);font-weight:600;font-size:.85rem;border:1px solid rgba(255,255,255,.3);cursor:pointer;transition:var(--transition);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;backdrop-filter:blur(6px);}
.btn-slide--secondary:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5);}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.15rem;transition:var(--transition);}
.carousel-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.carousel-btn--prev{left:1.5rem;}.carousel-btn--next{right:1.5rem;}
.carousel-dots{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;gap:.6rem;z-index:10;}
.carousel-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;transition:var(--transition);border:none;padding:0;}
.carousel-dot.is-active{background:#fff;width:20px;border-radius:3px;}

/* ══════════════════════════════════════════════════════════
   GRILLES DE FORMATIONS
══════════════════════════════════════════════════════════ */
.formations-grid {
    display: grid;
    gap: 1.5rem;
    margin-bottom: 1rem;
}
.formations-grid--3 {
    grid-template-columns: repeat(3, 1fr);
}
.formations-grid--2-auto {
    grid-template-columns: repeat(2, 1fr);
}

/* ── Level row ── */
.level-row{display:flex;align-items:center;gap:.8rem;margin-bottom:1.2rem;margin-top:1rem;}
.level-badge{color:#fff;padding:.22rem .85rem;border-radius:20px;font-size:.75rem;font-weight:700;flex-shrink:0;}
.level-badge--licence{background:var(--blue);}
.level-badge--master{background:var(--green);}
.level-badge--doctorat{background:var(--blue-deep);}
.level-badge--fc{background:var(--blue-dark);}
.level-row h3{font-size:1.15rem;color:var(--blue-deep);margin:0;}

/* ══════════════════════════════════════════════════════════
   CARTE FORMATION STANDARD (licences)
══════════════════════════════════════════════════════════ */
.formation-card{
    border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);
    border:1px solid var(--border-light);transition:var(--transition);
    display:flex;flex-direction:column;position:relative;
    background:#fff;
}
.formation-card:hover{transform:translateY(-4px);box-shadow:var(--sh2);border-color:var(--border);}
.formation-card__link-overlay{position:absolute;inset:0;z-index:0;}
.formation-card__header{
    padding:1.5rem;position:relative;overflow:hidden;min-height:120px;
    display:flex;flex-direction:column;justify-content:flex-end;
}
.formation-card__header::after{
    content:'';position:absolute;bottom:-15px;right:-15px;
    width:70px;height:70px;background:rgba(255,255,255,.08);border-radius:50%;
}
/* Image en fond du header */
.formation-card__thumb-img{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;object-position:center;
    opacity:.35;transition:opacity .3s ease;
}
.formation-card:hover .formation-card__thumb-img{opacity:.5;}
.formation-card__header-overlay{
    position:absolute;inset:0;
    background:linear-gradient(to top,rgba(0,0,0,.55) 0%,transparent 60%);
}
.formation-card__badge{
    display:inline-block;background:rgba(255,255,255,.2);color:#fff;
    padding:.18rem .7rem;border-radius:20px;font-size:.68rem;font-weight:700;
    text-transform:uppercase;margin-bottom:.6rem;
    border:1px solid rgba(255,255,255,.3);
    position:relative;z-index:2;
}
.formation-card__title{
    color:#fff;font-size:1.05rem;font-family:var(--fh);margin:0;
    position:relative;z-index:2;
}

.formation-card__body{padding:1.3rem;background:#fff;flex:1;display:flex;flex-direction:column;position:relative;z-index:1;}
.formation-card__meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem;}
.formation-card__tag{font-size:.7rem;color:var(--text-light);background:var(--blue-light);padding:.12rem .55rem;border-radius:20px;border:1px solid var(--border);}
.formation-card__desc{font-size:.84rem;color:var(--text-light);line-height:1.6;flex:1;margin-bottom:1rem;}
.formation-card__cta{
    display:block;text-align:center;padding:.58rem;
    background:transparent;border:2px solid var(--blue);color:var(--blue);
    border-radius:6px;font-weight:600;font-size:.8rem;transition:var(--transition);
    text-decoration:none;position:relative;z-index:3;
}
.formation-card__cta:hover{background:var(--blue);color:#fff;}

/* ══════════════════════════════════════════════════════════
   CARTE FORMATION AVANCÉE (Master, Doctorat, FC)
   — verticale, plus haute, avec icône et tags modules
══════════════════════════════════════════════════════════ */
.formation-card--advanced .formation-card__header--tall{
    min-height:200px;
    padding:1.8rem;
}
.formation-card--advanced .formation-card__icon{
    font-size:2.4rem;margin-bottom:.8rem;
    display:block;position:relative;z-index:2;
    filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));
}
.formation-card--advanced .formation-card__title--lg{
    font-size:1.2rem;line-height:1.2;
}
/* Tags de modules */
.formation-card__tags{
    display:flex;flex-wrap:wrap;gap:.4rem;
    margin-bottom:1rem;margin-top:.3rem;
}
.formation-card__module-tag{
    font-size:.68rem;color:var(--blue-deep);
    background:var(--blue-light);
    padding:.18rem .6rem;border-radius:20px;
    border:1px solid var(--border);font-weight:600;
}

/* ── Bandes Master/Doctorat (compatibilité page d'accueil précédente) ── */
.master-band{background:linear-gradient(135deg,var(--blue-deep) 0%,#14345e 100%);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh2);margin-bottom:1.5rem;transition:var(--transition);text-decoration:none;display:block;}
.master-band:hover{transform:translateY(-2px);}
.master-band__inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem;padding:2rem 2.5rem;}
.master-band__badge{background:rgba(255,255,255,.15);color:#fff;padding:.25rem .95rem;border-radius:20px;font-size:.76rem;font-weight:700;text-transform:uppercase;border:1px solid rgba(255,255,255,.28);display:inline-block;margin-bottom:.7rem;}
.master-band h3{font-family:var(--fh);font-size:1.45rem;color:#fff;margin-bottom:.5rem;}
.master-band p{font-size:.87rem;color:rgba(255,255,255,.82);max-width:500px;line-height:1.6;margin:0;}
.master-band__btn{background:#fff;color:var(--blue-deep);padding:.75rem 1.8rem;border-radius:6px;font-weight:700;font-size:.88rem;white-space:nowrap;flex-shrink:0;text-decoration:none;display:inline-block;transition:var(--transition);}
.master-band__btn:hover{background:var(--gold);color:#1A2A3A;}
.doctorat-band{background:linear-gradient(135deg,#0a1a3e 0%,var(--blue-deep) 100%);border-radius:var(--r-lg);padding:2rem 2.5rem;box-shadow:var(--sh2);margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;}
.doctorat-band__left h3{font-family:var(--fh);font-size:1.35rem;color:#fff;margin-bottom:.4rem;}
.doctorat-band__left p{font-size:.86rem;color:rgba(255,255,255,.8);max-width:580px;line-height:1.6;margin:0;}
.doctorat-band__meta{display:flex;gap:1rem;margin-top:.8rem;flex-wrap:wrap;}
.doctorat-band__meta span{font-size:.75rem;color:rgba(255,255,255,.7);background:rgba(255,255,255,.1);padding:.18rem .65rem;border-radius:20px;}
.doctorat-band__btn{background:rgba(255,255,255,.15);color:#fff;padding:.65rem 1.4rem;border-radius:6px;font-weight:700;font-size:.85rem;border:1px solid rgba(255,255,255,.3);white-space:nowrap;cursor:pointer;transition:var(--transition);text-decoration:none;display:inline-block;}
.doctorat-band__btn:hover{background:#fff;color:var(--blue-deep);}

/* FC bands */
.fc-band{background:var(--blue-light);border-radius:var(--r-lg);padding:1.8rem;border:1px solid var(--border);margin-bottom:1rem;}
.fc-band__inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.fc-band h3{font-size:1.1rem;color:var(--blue-deep);margin-bottom:.3rem;}
.fc-band p{font-size:.85rem;color:var(--text-light);margin:0;}
.btn-fc{background:var(--blue);color:#fff;padding:.65rem 1.4rem;border-radius:6px;font-weight:600;font-size:.83rem;cursor:pointer;border:none;transition:var(--transition);text-decoration:none;display:inline-block;}
.btn-fc:hover{background:var(--blue-deep);color:#fff;}

/* ══════════════════════════════════════════════════════════
   PAGE ARCHIVE FORMATIONS — Classifiée
══════════════════════════════════════════════════════════ */
.page-hero--formations .archive-nav-tabs{
    display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap;
}
.archive-tab{
    background:rgba(255,255,255,.18);color:#fff;
    padding:.4rem 1.2rem;border-radius:20px;font-size:.82rem;font-weight:600;
    border:1px solid rgba(255,255,255,.35);transition:var(--transition);text-decoration:none;
}
.archive-tab:hover,.archive-tab:focus{background:#fff;color:var(--blue);}

.archive-bloc{margin-bottom:3rem;}
.archive-bloc__head{margin-bottom:2.5rem;}
.archive-bloc__badge{
    display:inline-block;background:var(--blue);color:#fff;
    padding:.3rem 1rem;border-radius:20px;font-size:.75rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.5px;margin-bottom:.7rem;
}
.archive-bloc__badge--fc{background:var(--blue-dark);}
.archive-bloc__head--fc .archive-bloc__badge{background:var(--blue-dark);}
.archive-bloc__title{font-size:clamp(1.4rem,3vw,1.8rem);color:var(--blue-deep);margin-bottom:.4rem;}
.archive-bloc__sub{font-size:.88rem;color:var(--text-light);}

.archive-niveau-head{
    display:flex;align-items:center;gap:.8rem;
    margin-bottom:1.2rem;margin-top:1.5rem;
    padding-bottom:.8rem;border-bottom:2px solid var(--blue-light);
}
.archive-niveau-head h3{font-size:1.1rem;color:var(--blue-deep);margin:0;}

/* ── ACTUALITÉS ── */
.actualites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.actu-card{background:var(--white);border-radius:var(--r-lg);border:1px solid var(--border-light);overflow:hidden;box-shadow:var(--sh);transition:var(--transition);display:flex;flex-direction:column;}
.actu-card:hover{transform:translateY(-3px);box-shadow:var(--sh2);border-color:var(--border);}
.actu-card__thumb{height:200px;position:relative;overflow:hidden;}
.actu-card__image{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.actu-card:hover .actu-card__image{transform:scale(1.04);}
.actu-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem;}
.actu-card__placeholder--1{background:linear-gradient(135deg,#0077C8,#00BCD4);}
.actu-card__placeholder--2{background:linear-gradient(135deg,#005FA3,#0077C8);}
.actu-card__placeholder--3{background:linear-gradient(135deg,#003D6B,#005FA3);}
.actu-card__cat{position:absolute;top:.8rem;left:.8rem;background:#fff;color:var(--blue);padding:.18rem .72rem;border-radius:20px;font-size:.68rem;font-weight:700;text-transform:uppercase;}
.actu-card__new{position:absolute;top:.8rem;right:.8rem;background:var(--gold);color:#1A2A3A;padding:.18rem .6rem;border-radius:20px;font-size:.65rem;font-weight:700;}
.actu-card__body{padding:1.2rem;flex:1;display:flex;flex-direction:column;}
.actu-card__date{font-size:.72rem;color:var(--text-light);margin-bottom:.35rem;display:block;}
.actu-card__title{font-size:.92rem;font-family:var(--fh);color:var(--text);margin-bottom:.4rem;line-height:1.45;flex:1;font-weight:400;}
.actu-card__title a{color:var(--blue-deep);}
.actu-card:hover .actu-card__title a{color:var(--blue);}
.actu-card__excerpt{font-size:.81rem;color:var(--text-light);line-height:1.55;margin-bottom:.7rem;}
.actu-card__link{font-size:.78rem;font-weight:600;color:var(--blue);}

/* ── DÉPARTEMENTS ── */
.departements-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
.dept-card{position:relative;overflow:hidden;border-radius:10px;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;box-shadow:var(--sh);transition:var(--transition);}
.dept-card:hover{transform:translateY(-4px);box-shadow:var(--sh2);}
.dept-card:hover .dept-card__bg{transform:scale(1.04);}
.dept-card__full-link{position:absolute;inset:0;z-index:4;}
.dept-card__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .4s ease;}
.dept-card__pattern{position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 14px);}
.dept-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,20,60,.55) 0%,transparent 55%);}
.dept-card__content{position:relative;z-index:3;padding:1.5rem;}
.dept-card__icon{font-size:2rem;margin-bottom:.65rem;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));}
.dept-card__title{font-family:var(--fh);font-size:1.08rem;color:#fff;margin-bottom:.35rem;}
.dept-card__desc{font-size:.8rem;color:rgba(255,255,255,.73);line-height:1.55;margin-bottom:.7rem;}
.dept-card__link{font-size:.72rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.7px;}
.dept-tags{display:flex;gap:.8rem;flex-wrap:wrap;}
.dept-tag{background:var(--blue-light);color:var(--blue);padding:.3rem .85rem;border-radius:20px;font-size:.73rem;font-weight:600;}
/* ── DIRECTION DU CESTI ── */
.directeurs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.8rem;}
.directeur-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--sh);transition:var(--transition);display:flex;flex-direction:column;}
.directeur-card:hover{transform:translateY(-4px);box-shadow:var(--sh2);}
.directeur-card__photo{width:100%;aspect-ratio:1/1;overflow:hidden;background:#e8eef5;flex-shrink:0;position:relative;}
.directeur-card__photo img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(100%);transition:filter .35s ease;}
.directeur-card:hover .directeur-card__photo img{filter:grayscale(30%);}
.directeur-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--blue-deep),#1a4080);}
.directeur-card__initials{font-family:var(--fh);font-size:2.8rem;font-weight:700;color:rgba(255,255,255,.5);letter-spacing:2px;}
.directeur-card__periode{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,20,60,.78) 0%,transparent 100%);padding:.55rem .8rem .5rem;display:flex;align-items:center;justify-content:center;gap:.35rem;font-size:.75rem;color:#fff;font-weight:600;letter-spacing:.3px;}
.directeur-card__cal-icon{font-size:.72rem;line-height:1;flex-shrink:0;opacity:.85;}
.directeur-card__body{padding:.85rem 1rem 1rem;text-align:center;flex:1;display:flex;flex-direction:column;gap:.25rem;align-items:center;}
.directeur-card__nom{font-family:var(--fh);font-size:.95rem;font-weight:700;color:var(--blue-deep);margin:0;line-height:1.25;}
.directeur-card__note{font-size:.72rem;color:#7a8ba0;margin:0;line-height:1.4;font-style:italic;}

/* ── À PROPOS ── */
.apropos-layout{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.apropos-box{background:linear-gradient(145deg,var(--blue-deep) 0%,#1a4080 100%);border-radius:var(--r-xl);padding:2.5rem;color:#fff;text-align:center;}
.apropos-box__year{font-family:var(--fh);font-size:3.5rem;font-weight:700;color:var(--gold);display:block;line-height:1;}
.apropos-box__year-label{font-size:.9rem;color:rgba(255,255,255,.75);margin-top:.4rem;margin-bottom:0;}
.apropos-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem;}
.apropos-stat{background:rgba(255,255,255,.1);border-radius:8px;padding:.9rem;border:1px solid rgba(255,255,255,.12);transition:var(--transition);}
.apropos-stat:hover{background:rgba(255,255,255,.18);}
.apropos-stat__num{font-family:var(--fh);font-size:1.8rem;color:#fff;font-weight:700;display:block;line-height:1;}
.apropos-stat__label{font-size:.73rem;color:rgba(255,255,255,.65);margin-top:.25rem;display:block;line-height:1.3;}
.apropos-text h2{font-size:clamp(1.4rem,3vw,1.65rem);color:var(--blue-deep);margin-bottom:1rem;}
.apropos-text p{font-size:.92rem;color:var(--text-light);line-height:1.78;margin-bottom:1.2rem;}
.feat-row{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:.9rem;}
.feat-row__dot{width:10px;height:10px;background:var(--blue);border-radius:50%;flex-shrink:0;margin-top:.5rem;}
.feat-row__title{display:block;color:var(--blue-deep);font-size:.88rem;font-weight:700;margin-bottom:.1rem;}
.feat-row__desc{font-size:.82rem;color:var(--text-light);}

/* ── GALERIE D'IMAGES ── */
.formation-gallery,.dept-gallery{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:.8rem;margin-top:2rem;margin-bottom:2rem;
}
.formation-gallery a,.dept-gallery a{display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;}
.formation-gallery img,.dept-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.formation-gallery a:hover img,.dept-gallery a:hover img{transform:scale(1.04);}

/* ── PAGE HERO INTÉRIEUR ── */
.page-hero{background:linear-gradient(130deg,var(--blue-deep) 0%,#1a4080 60%,var(--blue) 100%);padding:3.5rem 0 2.5rem;margin-bottom:3rem;}
.page-hero__title{font-family:var(--fh);font-size:clamp(1.7rem,4vw,2.4rem);color:#fff;margin-bottom:.4rem;font-weight:400;letter-spacing:-.03em;}
.page-hero__sub{color:rgba(255,255,255,.75);font-size:.92rem;margin:0;}
.page-hero__breadcrumb{font-size:.75rem;color:rgba(255,255,255,.5);margin-bottom:.5rem;}
.page-hero__breadcrumb a{color:rgba(255,255,255,.65);}
.page-hero__breadcrumb a:hover{color:#fff;}
.page-hero__breadcrumb span{margin:0 .35rem;}

/* ── FOOTER ── */
.site-footer{background:#060F24;}
.footer-top{padding:3rem 0 2rem;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem;}

/* Logo */
.footer-brand__logo-link{display:inline-block;margin-bottom:.9rem;}
.footer-brand__logo-img{height:70px;width:auto;object-fit:contain;}
.footer-brand__abbr{display:inline-block;background:rgba(255,255,255,.12);color:#fff;font-family:var(--fh);font-size:1.6rem;font-weight:700;padding:.3rem .8rem;border-radius:6px;margin-bottom:.8rem;}
.footer-brand__desc{font-size:.8rem;color:rgba(255,255,255,.5);line-height:1.65;margin:0 0 1.2rem;}

/* Réseaux sociaux */
.footer-socials{display:flex;gap:.6rem;margin-top:.5rem;}
.footer-social{width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;transition:var(--transition);border:1px solid rgba(255,255,255,.08);}
.footer-social:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.footer-social svg{width:16px;height:16px;}

/* Colonnes */
.footer-col__title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.3);margin-bottom:.9rem;font-family:var(--fb);}

/* Listes de navigation fallback */
.footer-nav-list{list-style:none;padding:0;margin:0;}
.footer-nav-list li{margin-bottom:.38rem;}
.footer-nav-list li a{font-size:.82rem;color:rgba(255,255,255,.58);transition:var(--transition);text-decoration:none;}
.footer-nav-list li a:hover{color:#fff;padding-left:.3rem;}

/* Menus WP dans le footer */
.footer-col ul,.footer-col .menu{list-style:none;padding:0;margin:0;}
.footer-col ul li,.footer-col .menu li{margin-bottom:.38rem;}
.footer-col ul li a,.footer-col .menu li a{font-size:.82rem;color:rgba(255,255,255,.58);transition:var(--transition);text-decoration:none;}
.footer-col ul li a:hover,.footer-col .menu li a:hover{color:#fff;padding-left:.3rem;}

/* Contact */
.footer-contact-item{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.7rem;}
.footer-contact-item svg{width:14px;height:14px;fill:rgba(255,255,255,.4);flex-shrink:0;margin-top:3px;}
.footer-contact-item span{font-size:.8rem;color:rgba(255,255,255,.58);line-height:1.5;}
.footer-contact-item a{color:rgba(255,255,255,.58);}
.footer-contact-item a:hover{color:#fff;}

/* Pied de page */
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:.9rem 0;}
.footer-bottom__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;}
.footer-bottom p{font-size:.73rem;color:rgba(255,255,255,.28);margin:0;}
.footer-bottom a{font-size:.73rem;color:rgba(255,255,255,.38);}
.footer-bottom a:hover{color:#fff;}

/* ── BOUTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.58rem 1.3rem;border-radius:var(--r);font-weight:600;font-size:.83rem;font-family:var(--fb);cursor:pointer;transition:var(--transition);text-decoration:none;border:1.5px solid transparent;line-height:1;letter-spacing:.01em;}
.btn--primary{background:var(--blue);color:#fff;border-color:var(--blue);}
.btn--primary:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(21,96,189,.3);}
.btn--secondary{background:transparent;color:var(--blue);border-color:var(--blue);}
.btn--secondary:hover{background:var(--blue-light);color:var(--blue-dark);}
.badge{display:inline-block;padding:.18rem .7rem;border-radius:20px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;}
.badge--gold{background:var(--gold);color:#1A2A3A;}
.badge--ghost{background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.28);}

/* ── WYSIWYG ── */
.field--type-text-long,.entry-content{font-size:.95rem;color:var(--text-light);line-height:1.85;}
.field--type-text-long h2,.entry-content h2{margin:2.2rem 0 .9rem;color:var(--blue-deep);font-size:1.25rem;}
.field--type-text-long h3,.entry-content h3{margin:1.8rem 0 .7rem;color:var(--blue-deep);font-size:1.05rem;}
.field--type-text-long p,.entry-content p{margin-bottom:1.4rem;font-size:.95rem;color:var(--text-light);line-height:1.85;}
.field--type-text-long p:last-child,.entry-content p:last-child{margin-bottom:0;}
.field--type-text-long ul,.entry-content ul{margin-bottom:1.4rem;padding-left:1.4rem;}
.field--type-text-long li,.entry-content li{margin-bottom:.55rem;font-size:.93rem;color:var(--text-light);line-height:1.7;}
.field--type-text-long blockquote,.entry-content blockquote{border-left:4px solid var(--blue);padding:1rem 1.4rem;background:var(--blue-light);border-radius:0 var(--r) var(--r) 0;font-style:italic;color:var(--blue-deep);margin:2rem 0;}
.field--type-text-long img,.entry-content img{border-radius:var(--r);margin:1.5rem 0;}
.field--type-text-long strong,.entry-content strong{color:var(--blue-deep);font-weight:700;}

/* ── PAGINATION ── */
.cesti-pagination{display:flex;justify-content:center;gap:.4rem;margin-top:3rem;flex-wrap:wrap;}
.cesti-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 .6rem;border-radius:var(--r);font-size:.82rem;font-weight:500;text-decoration:none;transition:var(--transition);border:1px solid var(--border-light);color:var(--text-light);background:var(--white);}
.cesti-pagination .page-numbers:hover{background:var(--blue-light);color:var(--blue);border-color:var(--border);}
.cesti-pagination .page-numbers.current{background:var(--blue);color:#fff;border-color:var(--blue);}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════════ */
@media(max-width:1023px){
  :root{--section-py:3.5rem;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:1.8rem;}
  .footer-brand{grid-column:1/-1;}
  .formations-grid--3{grid-template-columns:repeat(2,1fr);}
  .formations-grid--2-auto{grid-template-columns:repeat(2,1fr);}
  .actualites-grid{grid-template-columns:repeat(2,1fr);}
  .departements-grid{grid-template-columns:repeat(2,1fr);}
  .directeurs-grid{grid-template-columns:repeat(3,1fr);}
  .apropos-layout{grid-template-columns:1fr;gap:2rem;}
  .master-band__inner{grid-template-columns:1fr;}
  .master-band__btn{align-self:flex-start;}
  .doctorat-band{flex-direction:column;align-items:flex-start;}
  .hero-carousel{height:600px;}
  .slide__inner{padding:0 2rem;}
  .formation-gallery,.dept-gallery{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:767px){
  :root{--section-py:2.5rem;}
  /* Identité mobile */
  .site-identity__inner{padding:0 1rem;}
  .site-brand__logo-wrap a img,
  .site-brand__logo-img{height:55px !important;width:auto !important;}
  /* Nav bar mobile */
  .site-nav-bar__inner{padding:0 1rem;height:50px;}
  .nav-toggle{display:flex;}
  .main-nav{position:fixed;top:50px;left:-100%;width:85%;max-width:320px;height:calc(100vh - 50px);background:#fff;box-shadow:var(--sh2);transition:left .3s ease;overflow-y:auto;z-index:999;border-right:3px solid var(--blue);}
  .main-nav.is-open{left:0;}
  .main-nav .menu,.main-nav .nav-list{flex-direction:column;align-items:stretch;gap:0;padding:1rem;}
  .main-nav .menu>li>a,.main-nav .nav-list>li>a{padding:.75rem 1rem;border-bottom:1px solid var(--border);}
  .main-nav .menu ul{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border-top:none;border-left:3px solid var(--blue-light);margin-left:1rem;margin-bottom:.5rem;}
  .admin-bar .main-nav{top:calc(50px + 46px);}
  .flash-band__inner{flex-direction:column;align-items:flex-start;gap:.4rem;}
  .hero-carousel{height:520px;}
  .slide__inner{padding:0 1.2rem;}
  .slide__title{font-size:1.6rem;max-width:100%;}
  .slide__btns{display:none;}
  .carousel-btn{width:36px;height:36px;font-size:1rem;}
  .formations-grid--3{grid-template-columns:1fr;}
  .formations-grid--2-auto{grid-template-columns:1fr;}
  .actualites-grid{grid-template-columns:1fr;}
  .departements-grid{grid-template-columns:1fr;}
  .directeurs-grid{grid-template-columns:repeat(2,1fr);}
  .apropos-stats{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:1.2rem;}
  .footer-bottom .container{flex-direction:column;text-align:center;}
  .formation-gallery,.dept-gallery{grid-template-columns:1fr 1fr;}
  .archive-nav-tabs{flex-direction:column;}
}
@media(max-width:480px){
  .container{padding:0 1rem;}
  .formation-gallery,.dept-gallery{grid-template-columns:1fr;}
}

/* ════════════════════════════════════════════════════════
   CARTES HOME — NOUVELLES VARIANTES (v1.1)
════════════════════════════════════════════════════════ */

/* Grilles supplémentaires */
.formations-grid--1 { grid-template-columns: 1fr; }
.formations-grid--2 { grid-template-columns: repeat(2,1fr); }

/* Header row sur la page d'accueil */
.home-niveau-row {
    display:flex;align-items:center;gap:.8rem;
    margin-bottom:1.2rem;margin-top:.5rem;
}
.home-niveau-row h3 { font-size:1.1rem;color:var(--blue-deep);margin:0; }

/* ── Carte wide (Master, Doctorat) ── */
.formation-card--wide { flex-direction:row; }
.formation-card--wide .formation-card__header--wide {
    width:380px;min-width:320px;flex-shrink:0;
    min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;
    padding:1.8rem;
}
.formation-card--wide .formation-card__body {
    flex:1;padding:1.8rem;display:flex;flex-direction:column;justify-content:center;
}
.formation-card__header-content { position:relative;z-index:2; }
.formation-card__title--xl { font-size:1.25rem;line-height:1.2; }
.formation-card__modalite-tag {
    display:flex;gap:.8rem;margin-top:.7rem;flex-wrap:wrap;
}
.formation-card__modalite-tag span {
    font-size:.72rem;color:rgba(255,255,255,.82);
    background:rgba(255,255,255,.15);padding:.2rem .7rem;
    border-radius:20px;border:1px solid rgba(255,255,255,.25);
}

/* ── Carte FC (Formation Continue) ── */
.formation-card--fc .formation-card__header--fc {
    min-height:150px;padding:1.4rem;
    display:flex;flex-direction:column;justify-content:flex-end;
}
.formation-card__fc-icon {
    font-size:2rem;display:block;margin-bottom:.6rem;
    filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));
}
.formation-card__tags {
    display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;
}
.formation-card__module-tag {
    font-size:.68rem;color:var(--blue-deep);
    background:var(--blue-light);padding:.18rem .6rem;
    border-radius:20px;border:1px solid var(--border);font-weight:600;
}

/* Responsive cartes wide */
@media(max-width:900px) {
    .formation-card--wide { flex-direction:column; }
    .formation-card--wide .formation-card__header--wide { width:100%;min-width:0;min-height:160px; }
}
@media(max-width:767px) {
    .formations-grid--2 { grid-template-columns:1fr; }
    .formations-grid--3 { grid-template-columns:1fr; }
    .formations-grid--1 { grid-template-columns:1fr; }
}

/* ════════════════════════════════════════════════════════
   NOUVELLES CARTES ACCUEIL v1.2 — fcard (remplacement)
════════════════════════════════════════════════════════ */

/* ── Carte standard (licences) ── */
.fcard {
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh);
    border: 1px solid var(--border);
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    background: #fff;
    position: relative;
}
.fcard:hover { transform: translateY(-5px); box-shadow: var(--sh2); }
.fcard__overlay { position:absolute;inset:0;z-index:0; }
.fcard__head {
    padding: 1.5rem;
    position: relative;
    overflow: hidden;
    min-height: 130px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.fcard__bg-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    opacity: .35;
    transition: opacity .3s;
}
.fcard:hover .fcard__bg-img { opacity: .5; }
.fcard__head-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 55%);
}
.fcard__badge {
    display: inline-block;
    background: rgba(255,255,255,.2); color: #fff;
    padding: .18rem .7rem; border-radius: 20px;
    font-size: .68rem; font-weight: 700; text-transform: uppercase;
    margin-bottom: .5rem;
    border: 1px solid rgba(255,255,255,.3);
    position: relative; z-index: 2;
}
.fcard__title {
    color: #fff; font-size: 1.05rem;
    font-family: var(--fh); margin: 0;
    position: relative; z-index: 2;
}
.fcard__body {
    padding: 1.2rem; background: #fff;
    flex: 1; display: flex; flex-direction: column;
    position: relative; z-index: 1;
}
.fcard__meta { display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem; }
.fcard__tag {
    font-size: .7rem; color: var(--text-light);
    background: var(--blue-light); padding: .12rem .5rem;
    border-radius: 20px; border: 1px solid var(--border);
}
.fcard__desc {
    font-size: .84rem; color: var(--text-light);
    line-height: 1.6; flex: 1; margin-bottom: 1rem;
}
.fcard__tags { display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem; }
.fcard__module-tag {
    font-size: .68rem; color: var(--blue-deep);
    background: var(--blue-light); padding: .15rem .55rem;
    border-radius: 20px; border: 1px solid var(--border); font-weight: 600;
}
.fcard__cta {
    display: block; text-align: center; padding: .55rem;
    border: 2px solid var(--blue); color: var(--blue);
    border-radius: 6px; font-weight: 600; font-size: .8rem;
    transition: var(--transition); text-decoration: none;
    position: relative; z-index: 3; background: transparent;
}
.fcard__cta:hover { background: var(--blue); color: #fff; }

/* ── Carte FC (formation continue) ── */
.fcard--fc .fcard__head--fc { min-height: 170px; padding: 1.4rem; }
.fcard__fc-icon {
    font-size: 2rem; display: block; margin-bottom: .6rem;
    position: relative; z-index: 2;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.3));
}

/* ════════════════════════════════════════════════════════
   PROG-BANNER — Master & Doctorat (accueil)
   Design horizontal propre sans étirement
════════════════════════════════════════════════════════ */
.prog-banner {
    display: grid;
    grid-template-columns: 280px 1fr auto;
    align-items: stretch;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh2);
    text-decoration: none;
    margin-bottom: 1rem;
    transition: var(--transition);
    min-height: 180px;
    border: 1px solid rgba(0,0,0,.06);
}
.prog-banner:hover { transform: translateY(-3px); box-shadow: 0 16px 56px rgba(0,119,200,.2); }

/* Visuel gauche */
.prog-banner__visual {
    position: relative;
    overflow: hidden;
    background: rgba(0,0,0,.15);
    flex-shrink: 0;
}
.prog-banner__img {
    width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    display: block;
    transition: transform .4s ease;
}
.prog-banner:hover .prog-banner__img { transform: scale(1.04); }
.prog-banner__icon-wrap {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.08);
}
.prog-banner__icon { font-size: 3.5rem; filter: drop-shadow(0 2px 8px rgba(0,0,0,.3)); }

/* Contenu central */
.prog-banner__content {
    padding: 1.6rem 2rem;
    display: flex; flex-direction: column; justify-content: center;
    flex: 1;
}
.prog-banner__badge {
    display: inline-block;
    background: rgba(255,255,255,.18); color: #fff;
    padding: .2rem .8rem; border-radius: 20px;
    font-size: .7rem; font-weight: 700; text-transform: uppercase;
    border: 1px solid rgba(255,255,255,.28);
    margin-bottom: .7rem; align-self: flex-start;
}
.prog-banner__title {
    font-family: var(--fh); font-size: 1.35rem;
    color: #fff; line-height: 1.2; margin-bottom: .7rem;
}
.prog-banner__chips {
    display: flex; gap: .8rem; flex-wrap: wrap; margin-bottom: .8rem;
}
.prog-banner__chips span {
    font-size: .75rem; color: rgba(255,255,255,.82);
    background: rgba(255,255,255,.12);
    padding: .2rem .75rem; border-radius: 20px;
    border: 1px solid rgba(255,255,255,.2);
}
.prog-banner__desc {
    font-size: .85rem; color: rgba(255,255,255,.78);
    line-height: 1.6; margin: 0;
    max-width: 560px;
}

/* CTA droit */
.prog-banner__cta-wrap {
    display: flex; align-items: center; justify-content: center;
    padding: 1.5rem 2rem;
    border-left: 1px solid rgba(255,255,255,.12);
    flex-shrink: 0;
}
.prog-banner__cta {
    white-space: nowrap;
    background: rgba(255,255,255,.15); color: #fff;
    padding: .65rem 1.4rem; border-radius: 6px;
    font-weight: 700; font-size: .85rem;
    border: 1px solid rgba(255,255,255,.3);
    transition: var(--transition);
    text-decoration: none;
}
.prog-banner:hover .prog-banner__cta { background: #fff; color: var(--blue-deep); }

/* Couleurs Master */
.prog-banner--master { background: linear-gradient(135deg,#003D6B,#002D50); }
/* Couleurs Doctorat */
.prog-banner--doc    { background: linear-gradient(135deg,#1a6b3a,#2E7D32); }

/* Responsive prog-banner */
@media (max-width:900px) {
    .prog-banner { grid-template-columns: 200px 1fr; }
    .prog-banner__cta-wrap { display:none; }
    .prog-banner__content { padding: 1.2rem 1.4rem; }
    .prog-banner__title { font-size: 1.1rem; }
}
@media (max-width:600px) {
    .prog-banner { grid-template-columns: 1fr; }
    .prog-banner__visual { height: 140px; }
}

/* ════════════════════════════════════════════════════════
   PAGES DÉDIÉES FORMATIONS
════════════════════════════════════════════════════════ */

/* Hero page programme */
.prog-page-hero {
    position: relative; overflow: hidden;
    padding: 4rem 0 3rem;
    margin-bottom: 0;
}
.prog-page-hero__bg {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    opacity: .22;
}
.prog-page-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,.15) 0%, rgba(0,0,0,.35) 100%);
}
.prog-page-hero__inner {
    position: relative; z-index: 2;
}
.prog-page-hero__bread {
    font-size: .75rem; color: rgba(255,255,255,.55);
    margin-bottom: .7rem;
}
.prog-page-hero__bread a { color: rgba(255,255,255,.72); }
.prog-page-hero__bread a:hover { color: #fff; }
.prog-page-hero__badge {
    display: inline-block;
    background: rgba(255,255,255,.18); color: #fff;
    padding: .22rem .9rem; border-radius: 20px;
    font-size: .72rem; font-weight: 700; text-transform: uppercase;
    border: 1px solid rgba(255,255,255,.3);
    margin-bottom: .8rem;
}
.prog-page-hero__title {
    font-family: var(--fh);
    font-size: clamp(1.6rem,3.5vw,2.4rem);
    color: #fff; line-height: 1.15; margin-bottom: .9rem;
}
.prog-page-hero__chips {
    display: flex; gap: .8rem; flex-wrap: wrap;
}
.prog-page-hero__chips span {
    font-size: .78rem; color: rgba(255,255,255,.82);
    background: rgba(255,255,255,.15);
    padding: .25rem .85rem; border-radius: 20px;
    border: 1px solid rgba(255,255,255,.22);
}

/* Sections de contenu */
.prog-page-section { margin-bottom: 2.5rem; }
.prog-page-section--alt {
    background: var(--off); border-radius: var(--r-lg);
    padding: 1.8rem; border: 1px solid var(--border);
}
.prog-page-h2 {
    font-family: var(--fh); font-size: 1.3rem;
    color: var(--blue-deep); margin-bottom: 1.2rem;
}
.prog-page-intro {
    font-size: 1.02rem; color: var(--text); line-height: 1.78;
    margin-bottom: 1rem;
    padding-bottom: 1.2rem;
    border-bottom: 2px solid var(--blue-light);
}
.prog-page-text {
    font-size: .92rem; color: var(--text-light); line-height: 1.78;
}

/* Grille spécialisations */
.prog-spec-grid {
    display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem;
}
.prog-spec-card {
    background: #fff; border: 1px solid var(--border);
    border-radius: var(--r-lg); padding: 1.4rem;
    box-shadow: var(--sh); transition: var(--transition);
}
.prog-spec-card:hover { transform: translateY(-3px); box-shadow: var(--sh2); }
.prog-spec-card__icon {
    width: 44px; height: 44px; border-radius: var(--r);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: .8rem;
}
.prog-spec-card__icon span { font-size: 1.4rem; filter: none; }
.prog-spec-card h3 { font-size: .95rem; color: var(--blue-deep); margin-bottom: .4rem; }
.prog-spec-card p { font-size: .82rem; color: var(--text-light); line-height: 1.6; margin: 0; }

/* Axes de recherche */
.prog-axes-list { display: flex; flex-direction: column; gap: .8rem; }
.prog-axe-item {
    display: flex; align-items: center; gap: 1rem;
    background: #fff; border: 1px solid var(--border);
    border-radius: var(--r); padding: .9rem 1.2rem;
    font-size: .9rem; color: var(--text-light);
    box-shadow: var(--sh);
}
.prog-axe-item--blue .prog-axe-num { background: var(--blue); }
.prog-axe-num {
    width: 28px; height: 28px; border-radius: 50%;
    background: var(--green); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: .75rem; font-weight: 700; flex-shrink: 0;
}

/* Info boxes */
.prog-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-bottom: 2rem; }
.prog-info-box {
    border-radius: var(--r-lg); padding: 1.5rem;
}
.prog-info-box h3 { font-size: .95rem; margin-bottom: .6rem; }
.prog-info-box p  { font-size: .85rem; line-height: 1.7; margin: 0; }
.prog-info-box--blue  { background: var(--blue-light); border: 1px solid var(--border); }
.prog-info-box--blue h3 { color: var(--blue-deep); }
.prog-info-box--blue p  { color: var(--text-light); }
.prog-info-box--green { background: #e8f5e9; border: 1px solid #c8e6c9; }
.prog-info-box--green h3 { color: #1b5e20; }
.prog-info-box--green p  { color: #2e7d32; }
.prog-info-box--dark  { background: var(--blue-deep); }
.prog-info-box--dark h3 { color: #fff; }
.prog-info-box--dark p  { color: rgba(255,255,255,.78); }

/* CTA bar bas de page */
.prog-page-cta-bar {
    display: flex; gap: 1rem; flex-wrap: wrap;
    justify-content: center;
    margin-top: 3rem; padding-top: 2rem;
    border-top: 2px solid var(--blue-light);
}
.btn--lg { padding: .8rem 2rem; font-size: .95rem; }

/* ════════════════════════════════════════════════════════
   PAGE CERTIFICATS PRATIQUES — Grille 8 modules
════════════════════════════════════════════════════════ */
.cert-modules-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.2rem;
}
.cert-module-card {
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh);
    border: 1px solid var(--border);
    transition: var(--transition);
    display: flex; flex-direction: column;
    background: #fff;
}
.cert-module-card:hover { transform: translateY(-4px); box-shadow: var(--sh2); }
.cert-module-card__head {
    height: 110px;
    position: relative;
    display: flex; flex-direction: column;
    justify-content: space-between;
    padding: .9rem;
}
.cert-module-card__img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; opacity: .3;
}
.cert-module-card__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,.1), rgba(0,0,0,.45));
}
.cert-module-card__num {
    font-family: var(--fh); font-size: 1.6rem; font-weight: 700;
    color: rgba(255,255,255,.4);
    position: relative; z-index: 2; line-height: 1;
}
.cert-module-card__duree {
    font-size: .68rem; color: rgba(255,255,255,.85);
    background: rgba(255,255,255,.15); padding: .15rem .55rem;
    border-radius: 20px; align-self: flex-start;
    position: relative; z-index: 2;
    border: 1px solid rgba(255,255,255,.2);
}
.cert-module-card__body {
    padding: 1rem;
    flex: 1;
}
.cert-module-card__body h3 {
    font-size: .88rem; color: var(--blue-deep);
    font-family: var(--fh); margin-bottom: .35rem;
    line-height: 1.3;
}
.cert-module-card__body p {
    font-size: .78rem; color: var(--text-light);
    line-height: 1.55; margin: 0;
}

/* ════════════════════════════════════════════════════════
   PAGE FADP — Grille hybride
════════════════════════════════════════════════════════ */
.fadp-hybrid-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
    margin-top: .5rem;
}
.fadp-hybrid-card {
    border-radius: var(--r-lg);
    padding: 2rem;
    text-align: center;
    border: 1px solid var(--border);
}
.fadp-hybrid-card--online { background: linear-gradient(135deg,var(--blue-light),#D1ECF9); }
.fadp-hybrid-card--campus { background: linear-gradient(135deg,#e8f5e9,#c8e6c9); }
.fadp-hybrid-card__icon { font-size: 2.5rem; display: block; margin-bottom: .5rem; }
.fadp-hybrid-card__pct {
    font-family: var(--fh); font-size: 2.8rem; font-weight: 700;
    color: var(--blue-deep); line-height: 1; margin-bottom: .4rem;
}
.fadp-hybrid-card--campus .fadp-hybrid-card__pct { color: var(--green); }
.fadp-hybrid-card h3 { font-size: 1rem; color: var(--blue-deep); margin-bottom: .5rem; }
.fadp-hybrid-card p  { font-size: .83rem; color: var(--text-light); margin: 0; line-height: 1.6; }
.fadp-hybrid-card--campus h3 { color: var(--green); }

.fadp-modules-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: .7rem;
}
.fadp-module-item {
    display: flex; align-items: center; gap: .8rem;
    background: #fff; border: 1px solid var(--border);
    border-radius: var(--r); padding: .75rem 1rem;
    font-size: .88rem; color: var(--text-light);
}
.fadp-module-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--blue); flex-shrink: 0;
}

/* ── Responsive pages dédiées ── */
@media (max-width:1023px) {
    .prog-spec-grid { grid-template-columns: 1fr 1fr; }
    .cert-modules-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width:767px) {
    .prog-spec-grid { grid-template-columns: 1fr; }
    .prog-two-col { grid-template-columns: 1fr; }
    .fadp-hybrid-grid { grid-template-columns: 1fr; }
    .fadp-modules-grid { grid-template-columns: 1fr; }
    .cert-modules-grid { grid-template-columns: 1fr 1fr; }
    .prog-page-cta-bar { flex-direction: column; align-items: center; }
    .formations-grid--2 { grid-template-columns: 1fr; }
}
@media (max-width:480px) {
    .cert-modules-grid { grid-template-columns: 1fr; }
}

/* ── Mobile : mega-dropdown en accordéon ── */
@media (max-width:767px) {
    /* Cache le dropdown par défaut sur mobile — JS gère l'affichage */
    .main-nav .dropdown-menu,
    .main-nav .menu > li > ul { display: none; }

    /* Quand ouvert par JS */
    .main-nav .menu-item-has-children.is-mobile-open > .dropdown-menu,
    .main-nav .menu-item-has-children.is-mobile-open > ul { display: block !important; }

    /* Mega-dropdown en 1 colonne sur mobile */
    .dropdown-menu--formations {
        display: flex !important;
        flex-direction: column;
        grid-template-columns: none;
        min-width: 0;
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border-top: none;
        border-left: 3px solid var(--blue-light);
        margin-left: 1rem;
        border-radius: 0;
    }
    .dropdown-col { padding: .6rem .8rem; border-right: none !important; }
    .dropdown-col:first-child { border-right: none; border-bottom: 1px solid var(--border); }
    .dropdown-group-head { font-size: .68rem; }
    .dropdown-sublink { font-size: .82rem; padding: .4rem .5rem; }
    .dropdown-sublink:hover { padding-left: .8rem; }
    /* Flèche inversée quand ouvert */
    .menu-item-has-children.is-mobile-open > .nav-link .nav-arrow { transform: rotate(180deg); }
}

/* ════════════════════════════════════════════════════════
   PAGE GIRMEC
════════════════════════════════════════════════════════ */

/* Hero couleur GIRMEC */
.prog-page-hero--girmec { background: linear-gradient(135deg,#002D50,#003D6B,#005FA3); }

/* ── Barre d'onglets ── */
.girmec-tabs-bar {
    background: #fff;
    border-bottom: 2px solid var(--border);
    position: sticky;
    top: 56px;   /* sous la barre de navigation */
    z-index: 900;
    box-shadow: 0 2px 8px rgba(0,119,200,.07);
}
.admin-bar .girmec-tabs-bar { top: calc(56px + 32px); }

.girmec-tabs-nav {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.girmec-tabs-nav::-webkit-scrollbar { display: none; }

.girmec-tab {
    padding: .85rem 1.4rem;
    font-size: .84rem;
    font-weight: 600;
    color: var(--text-light);
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
    font-family: var(--fb);
}
.girmec-tab:hover { color: var(--blue); background: var(--blue-light); }
.girmec-tab.is-active {
    color: var(--blue);
    border-bottom-color: var(--blue);
    background: transparent;
}

/* ── Panneaux ── */
.girmec-panel { display: none; }
.girmec-panel.is-active { display: block; }

/* ── Layout présentation ── */
.girmec-pres-layout {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 3rem;
    align-items: start;
}
.girmec-mission-box {
    background: var(--blue-light);
    border-left: 4px solid var(--blue);
    border-radius: 0 var(--r-lg) var(--r-lg) 0;
    padding: 1.4rem 1.6rem;
    margin-top: 1.5rem;
}
.girmec-mission-box h3 { font-size: .95rem; color: var(--blue-deep); margin-bottom: .5rem; }
.girmec-mission-box p  { font-size: .88rem; color: var(--text-light); margin: 0; line-height: 1.7; }

.girmec-aside-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: 1.4rem;
    margin-bottom: 1.2rem;
    box-shadow: var(--sh);
}
.girmec-aside-card h4 { font-size: .88rem; color: var(--blue-deep); margin-bottom: 1rem; }
.girmec-aside-card--blue { background: var(--blue-deep); border-color: transparent; }
.girmec-aside-card--blue h4 { color: rgba(255,255,255,.85); }

.girmec-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.girmec-stat {
    background: var(--off);
    border-radius: var(--r);
    padding: .8rem;
    text-align: center;
    border: 1px solid var(--border);
}
.girmec-stat__n { font-family: var(--fh); font-size: 1.6rem; font-weight: 700; color: var(--blue); display: block; }
.girmec-stat__l { font-size: .7rem; color: var(--text-light); display: block; margin-top: .1rem; }

/* ── Grille membres ── */
.girmec-membres-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
.girmec-membre-card {
    border-radius: var(--r-lg);
    border: 1px solid var(--border);
    box-shadow: var(--sh);
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    transition: var(--transition);
}
.girmec-membre-card:hover { transform: translateY(-4px); box-shadow: var(--sh2); }

/* Photo */
.girmec-membre-card__photo {
    height: 160px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}
.girmec-membre-card__photo img {
    width: 100%; height: 100%;
    object-fit: cover; object-position: center top;
    display: block;
}
.girmec-membre-card__initiales {
    font-family: var(--fh);
    font-size: 2.5rem;
    font-weight: 700;
    color: rgba(255,255,255,.9);
    letter-spacing: 2px;
    text-shadow: 0 2px 8px rgba(0,0,0,.2);
}

/* Corps */
.girmec-membre-card__body {
    padding: 1.1rem 1.2rem .8rem;
    border-bottom: 1px solid var(--border);
}
.girmec-membre-card__nom {
    font-size: .98rem;
    font-family: var(--fh);
    color: var(--blue-deep);
    margin-bottom: .25rem;
    line-height: 1.3;
}
.girmec-membre-card__titre {
    font-size: .75rem;
    color: var(--text-light);
    margin-bottom: .5rem;
    line-height: 1.45;
}
.girmec-membre-card__domaine {
    display: inline-block;
    background: var(--blue-light);
    color: var(--blue);
    font-size: .68rem;
    font-weight: 700;
    padding: .15rem .6rem;
    border-radius: 20px;
    border: 1px solid var(--border);
}

/* Publications */
.girmec-membre-card__publis {
    padding: .9rem 1.2rem;
    flex: 1;
    background: var(--off);
}
.girmec-membre-card__publis h4 {
    font-size: .72rem;
    font-weight: 700;
    color: var(--blue-deep);
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: .4rem;
}
.girmec-membre-card__publis p {
    font-size: .78rem;
    color: var(--text-light);
    line-height: 1.55;
    margin: 0;
    font-style: italic;
}

/* Footer email */
.girmec-membre-card__footer {
    padding: .65rem 1.2rem;
    border-top: 1px solid var(--border);
    background: #fff;
}
.girmec-membre-card__email {
    font-size: .75rem;
    color: var(--blue);
    text-decoration: none;
    transition: var(--transition);
}
.girmec-membre-card__email:hover { color: var(--blue-deep); }

/* ── Grille axes ── */
.girmec-axes-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.4rem;
}
.girmec-axe-card {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: 1.4rem;
    box-shadow: var(--sh);
    transition: var(--transition);
}
.girmec-axe-card:hover { transform: translateY(-3px); box-shadow: var(--sh2); }
.girmec-axe-card__num {
    width: 40px; height: 40px;
    border-radius: 50%;
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--fh); font-size: .9rem; font-weight: 700;
    flex-shrink: 0;
}
.girmec-axe-card__content h3 { font-size: .95rem; color: var(--blue-deep); margin-bottom: .4rem; line-height: 1.3; }
.girmec-axe-card__content p  { font-size: .82rem; color: var(--text-light); margin: 0; line-height: 1.6; }

/* ── Liste publications ── */
.girmec-publis-list {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.girmec-publi-item {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--r);
    padding: 1.1rem 1.3rem;
    box-shadow: var(--sh);
    transition: var(--transition);
}
.girmec-publi-item:hover { border-color: var(--blue); box-shadow: var(--sh2); }
.girmec-publi-item__year {
    font-family: var(--fh);
    font-size: 1rem;
    font-weight: 700;
    color: var(--blue);
    min-width: 48px;
    flex-shrink: 0;
    padding-top: .1rem;
}
.girmec-publi-item__content {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}
.girmec-publi-item__titre {
    font-size: .92rem;
    font-weight: 600;
    color: var(--blue-deep);
    text-decoration: none;
    line-height: 1.4;
}
a.girmec-publi-item__titre:hover { color: var(--blue); text-decoration: underline; }
.girmec-publi-item__auteurs {
    font-size: .78rem;
    color: var(--text-light);
}
.girmec-publi-item__revue {
    font-size: .78rem;
    color: var(--blue);
}

.girmec-empty {
    text-align: center;
    color: var(--text-light);
    font-size: .9rem;
    padding: 3rem 0;
    background: var(--off);
    border-radius: var(--r-lg);
    border: 1px dashed var(--border);
}

/* ── Responsive ── */
@media (max-width:1023px) {
    .girmec-pres-layout { grid-template-columns: 1fr; }
    .girmec-membres-grid { grid-template-columns: repeat(2,1fr); }
    .girmec-axes-grid { grid-template-columns: 1fr; }
}
@media (max-width:767px) {
    .girmec-tab { padding: .7rem .9rem; font-size: .78rem; }
    .girmec-membres-grid { grid-template-columns: 1fr; }
    .girmec-publi-item { flex-direction: column; gap: .4rem; }
    .girmec-publi-item__year { font-size: .82rem; min-width: auto; }
}

/* ════════════════════════════════════════════════════════
   PAGE GIRMEC — Onglets, Cartes membres, Axes, Publications
════════════════════════════════════════════════════════ */

/* Hero GIRMEC */
.prog-page-hero--girmec { background: linear-gradient(135deg,#1a2a5e,#003D6B); }

/* ── Bloc intro + axes mini ── */
.girmec-intro-block {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 3rem;
    align-items: start;
    margin-bottom: 3rem;
}
.girmec-mission-box {
    background: var(--blue-light);
    border-left: 4px solid var(--blue);
    border-radius: 0 var(--r) var(--r) 0;
    padding: 1.2rem 1.4rem;
    margin-top: 1.2rem;
}
.girmec-mission-box h3 { font-size: .9rem; color: var(--blue-deep); margin-bottom: .4rem; }
.girmec-mission-box p  { font-size: .85rem; color: var(--text-light); margin: 0; line-height: 1.7; }

.girmec-axes-mini {
    background: var(--blue-deep);
    border-radius: var(--r-lg);
    padding: 1.5rem;
}
.girmec-axes-mini__head {
    font-size: .72rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: .8px; color: rgba(255,255,255,.5);
    margin-bottom: 1rem;
}
.girmec-axe-mini {
    display: flex; align-items: center; gap: .8rem;
    padding: .6rem 0;
    border-bottom: 1px solid rgba(255,255,255,.1);
    font-size: .84rem; color: rgba(255,255,255,.85);
}
.girmec-axe-mini:last-child { border-bottom: none; }
.girmec-axe-mini__icon { font-size: 1.1rem; flex-shrink: 0; }

/* ── ONGLETS ── */
.girmec-tabs-wrap { margin-top: 1rem; }
.girmec-tabs {
    display: flex; gap: .4rem; flex-wrap: wrap;
    border-bottom: 2px solid var(--border);
    margin-bottom: 0; padding-bottom: 0;
}
.girmec-tab {
    padding: .65rem 1.3rem;
    font-size: .85rem; font-weight: 600;
    border: 2px solid transparent;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    background: var(--off);
    color: var(--text-light);
    cursor: pointer;
    transition: var(--transition);
    margin-bottom: -2px;
    font-family: var(--fb);
}
.girmec-tab:hover { background: var(--blue-light); color: var(--blue); }
.girmec-tab.active {
    background: #fff;
    color: var(--blue-deep);
    border-color: var(--border);
    border-bottom-color: #fff;
    font-weight: 700;
}
.girmec-tab-count {
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--blue); color: #fff;
    width: 20px; height: 20px; border-radius: 50%;
    font-size: .68rem; font-weight: 700; margin-left: .4rem;
}
.girmec-tab.active .girmec-tab-count { background: var(--blue-deep); }

/* Contenu d'onglet */
.girmec-tab-content {
    display: none;
    padding: 2.5rem 0;
}
.girmec-tab-content.active { display: block; }

/* ── GRILLE MEMBRES ── */
/* ════════════════════════════════════════════════════════
   CARTES MEMBRES GIRMEC — redesign v15
   Photo grande, overlay identité, accordéon thématiques
════════════════════════════════════════════════════════ */

.girmec-members-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
}

/* ── Carte membre ── */
.member-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--sh);
    transition: box-shadow .25s, transform .25s;
    display: flex;
    flex-direction: column;
    text-align: left;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    position: relative;
}
.member-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,.13);
    border-color: var(--blue-light);
}

/* ── Photo grande — format portrait ── */
.member-card__photo-wrap {
    width: 100%;
    height: 230px;
    overflow: hidden;
    background: linear-gradient(160deg, var(--blue-deep) 0%, var(--blue) 100%);
    position: relative;
    flex-shrink: 0;
}
.member-card__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform .5s ease;
}
.member-card:hover .member-card__photo {
    transform: scale(1.05);
}
.member-card__photo-placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--fh); font-size: 4rem; font-weight: 700;
    color: rgba(255,255,255,.55);
}

/* Bande de dégradé en bas de la photo */
.member-card__photo-wrap::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 70px;
    background: linear-gradient(to top, rgba(0,40,80,.6) 0%, transparent 100%);
    pointer-events: none;
}

/* ── Identité (nom + titre sur fond blanc) ── */
.member-card__identity {
    padding: 1rem 1.1rem .75rem;
    border-bottom: 1px solid var(--border);
}
.member-card__name {
    font-family: var(--fh);
    font-size: 1rem;
    font-weight: 700;
    color: var(--blue-deep);
    margin: 0 0 4px;
    line-height: 1.25;
}
.member-card__academic-title {
    font-size: .68rem;
    color: var(--blue);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    display: block;
}
.member-card__role {
    display: inline-block;
    background: var(--blue-light);
    color: var(--blue-deep);
    padding: .1rem .65rem;
    border-radius: 20px;
    font-size: .65rem;
    font-weight: 600;
    margin-top: .35rem;
}

/* ── Thématiques accordéon ── */
.member-card__accordion {
    width: 100%;
    border: none;
    background: transparent;
}
.member-card__acc-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .65rem 1.1rem;
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: var(--fb);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-light);
    gap: .5rem;
    transition: color .2s;
}
.member-card__acc-toggle:hover { color: var(--blue); }

.member-card__acc-arrow {
    display: inline-block;
    font-size: .8rem;
    transition: transform .3s ease;
    color: var(--blue);
    flex-shrink: 0;
}
.member-card__acc-toggle[aria-expanded="true"] .member-card__acc-arrow {
    transform: rotate(180deg);
}

.member-card__acc-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease, padding .3s ease;
    padding: 0 1.1rem;
}
.member-card__acc-body.open {
    max-height: 300px;
    padding: 0 1.1rem .9rem;
}

/* Tags thématiques */
.member-card__themes {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .6rem;
}
.member-card__theme-tag {
    font-size: .7rem;
    font-weight: 600;
    color: var(--blue-deep);
    background: var(--blue-light);
    padding: .18rem .6rem;
    border-radius: 20px;
    line-height: 1.5;
}

/* Texte axe de recherche */
.member-card__these-text {
    font-size: .79rem;
    color: var(--text-light);
    line-height: 1.6;
    margin: 0;
}

/* Ancien sélecteur inutilisé (compat) */
.member-card__body { display: contents; }
.member-card__label { display: none; }
.member-card__these { display: none; }
.member-card__footer { display: none; }
.member-card__cta { display: none; }


/* ── AXES (onglet) ── */
.girmec-axes-grid {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 1.5rem;
}
.girmec-axe-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: 1.8rem;
    box-shadow: var(--sh);
    transition: var(--transition);
}
.girmec-axe-card:hover { transform: translateY(-3px); box-shadow: var(--sh2); }
.girmec-axe-card__icon { font-size: 2.2rem; margin-bottom: .8rem; display: block; }
.girmec-axe-card h3 { font-size: 1rem; color: var(--blue-deep); margin-bottom: .5rem; }
.girmec-axe-card p  { font-size: .85rem; color: var(--text-light); line-height: 1.65; margin: 0; }

/* ── PUBLICATIONS (onglet) ── */
.girmec-publi-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.publi-item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 1.5rem;
    align-items: start;
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--border);
}
.publi-item:last-child { border-bottom: none; }
.publi-item__meta {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    align-items: flex-start;
}
.publi-item__type {
    display: inline-block;
    padding: .2rem .7rem;
    border-radius: 20px;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    background: var(--blue-light);
    color: var(--blue-deep);
}
.publi-item__year {
    font-size: .78rem;
    color: var(--text-light);
    font-weight: 600;
}
.publi-item__titre {
    display: block;
    font-family: var(--fh);
    font-size: .95rem;
    color: var(--blue-deep);
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: .3rem;
    text-decoration: none;
}
a.publi-item__titre:hover { color: var(--blue); text-decoration: underline; }
.publi-item__auteurs {
    font-size: .82rem;
    color: var(--text-light);
    margin: 0 0 .15rem;
}
.publi-item__revue {
    font-size: .8rem;
    color: var(--blue);
    margin: 0;
}

/* ── État vide ── */
.girmec-empty {
    text-align: center;
    padding: 4rem 2rem;
    color: var(--text-light);
}
.girmec-empty__icon { font-size: 3rem; margin-bottom: 1rem; display: block; }
.girmec-empty p { font-size: .9rem; margin-bottom: 1.5rem; line-height: 1.7; }

/* ── Responsive GIRMEC ── */
@media (max-width:1023px) {
    .girmec-intro-block  { grid-template-columns: 1fr; }
    .girmec-members-grid { grid-template-columns: repeat(2,1fr); }
    .girmec-axes-grid    { grid-template-columns: 1fr; }
}
@media (max-width:767px) {
    .girmec-members-grid { grid-template-columns: 1fr; }
    .girmec-tabs { gap: .3rem; }
    .girmec-tab  { padding: .5rem .8rem; font-size: .78rem; }
    .publi-item  { grid-template-columns: 1fr; gap: .5rem; }
    .publi-item__meta { flex-direction: row; align-items: center; }
}

/* ════════════════════════════════════════════════════════
   SECTION ACTUALITÉS — Layout articles + Réels smartphone
════════════════════════════════════════════════════════ */

/* ── Layout principal : 2 colonnes ── */
.actu-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 3rem;
    align-items: start;
}

/* ══════════════════════════════════
   COLONNE ARTICLES (gauche)
══════════════════════════════════ */
.actu-feed {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Article vedette (1er) */
.actu-feed__item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--border);
    text-decoration: none;
    transition: var(--transition);
}
.actu-feed__item:last-child { border-bottom: none; }

.actu-feed__item--featured {
    grid-template-columns: 1fr;
    padding-bottom: 1.5rem;
    margin-bottom: .5rem;
    border-bottom: 2px solid var(--border);
}

.actu-feed__item-link {
    display: contents;
    text-decoration: none;
}
.actu-feed__item:hover .actu-feed__title { color: var(--blue); }

/* Vignette */
.actu-feed__thumb {
    position: relative;
    overflow: hidden;
    border-radius: var(--r);
    flex-shrink: 0;
    background: var(--blue-light);
}
.actu-feed__item:not(.actu-feed__item--featured) .actu-feed__thumb {
    height: 85px;
}
.actu-feed__item--featured .actu-feed__thumb {
    height: 240px;
    border-radius: var(--r-lg);
}
.actu-feed__img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}
.actu-feed__item:hover .actu-feed__img { transform: scale(1.04); }
.actu-feed__placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem;
}
.actu-feed__item--featured .actu-feed__placeholder { font-size: 3rem; }
.actu-feed__placeholder--1 { background: linear-gradient(135deg,#0077C8,#00BCD4); }
.actu-feed__placeholder--2 { background: linear-gradient(135deg,#005FA3,#0077C8); }
.actu-feed__placeholder--3 { background: linear-gradient(135deg,#003D6B,#005FA3); }
.actu-feed__cat {
    position: absolute; top: .5rem; left: .5rem;
    background: #fff; color: var(--blue);
    padding: .12rem .6rem; border-radius: 20px;
    font-size: .65rem; font-weight: 700; text-transform: uppercase;
}
.actu-feed__new {
    position: absolute; top: .5rem; right: .5rem;
    background: var(--gold); color: #1A2A3A;
    padding: .1rem .55rem; border-radius: 20px;
    font-size: .62rem; font-weight: 700;
}

/* Texte article */
.actu-feed__text {
    display: flex; flex-direction: column; justify-content: center;
    gap: .2rem;
}
.actu-feed__item--featured .actu-feed__text {
    padding-top: .8rem;
    justify-content: flex-start;
}
.actu-feed__date {
    font-size: .7rem; color: var(--text-light);
}
.actu-feed__title {
    font-family: var(--fh);
    font-size: .92rem; color: var(--blue-deep);
    line-height: 1.35; margin: 0;
    transition: color .2s;
}
.actu-feed__item--featured .actu-feed__title {
    font-size: 1.2rem; line-height: 1.2;
}
.actu-feed__excerpt {
    font-size: .82rem; color: var(--text-light);
    line-height: 1.6; margin: .3rem 0 0;
}

.actu-layout__more { margin-top: 1.5rem; }
.actu-empty { text-align: center; color: var(--text-light); padding: 2rem 0; }

/* ══════════════════════════════════
   COLONNE RÉELS / SHORTS (droite)
   Format écran smartphone vertical
══════════════════════════════════ */
.actu-layout__reels {
    position: sticky;
    top: 80px; /* collé sous la nav */
}

.reels-header {
    display: flex; align-items: center; gap: .6rem;
    margin-bottom: 1.2rem;
}
.reels-header__icon {
    width: 32px; height: 32px; border-radius: 50%;
    background: linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: .8rem; flex-shrink: 0;
}
.reels-header__title {
    font-size: 1rem; font-weight: 700; color: var(--blue-deep);
    font-family: var(--fh); margin: 0;
}

/* Défilement horizontal des réels */
.reels-feed {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: .8rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}
.reels-feed::-webkit-scrollbar { height: 4px; }
.reels-feed::-webkit-scrollbar-track { background: transparent; }
.reels-feed::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* Carte réel */
.reel-card {
    flex-shrink: 0;
    scroll-snap-align: start;
    display: flex; flex-direction: column; align-items: center;
    gap: .6rem;
}

/* ── Coque smartphone ── */
.reel-card__phone-frame {
    width: 200px;
    height: 355px;
    background: #1a1a1a;
    border-radius: 28px;
    padding: 10px 6px 14px;
    position: relative;
    box-shadow:
        0 0 0 1px #333,
        inset 0 0 0 1px #2a2a2a,
        0 20px 60px rgba(0,0,0,.35),
        0 4px 12px rgba(0,0,0,.2);
    display: flex; flex-direction: column;
    transition: transform .3s ease;
}
.reel-card:hover .reel-card__phone-frame { transform: translateY(-4px); }

/* Encoche */
.reel-card__notch {
    width: 60px; height: 14px;
    background: #1a1a1a;
    border-radius: 0 0 10px 10px;
    margin: 0 auto 4px;
    position: relative; z-index: 2;
    flex-shrink: 0;
}
.reel-card__notch::before {
    content: '';
    width: 8px; height: 8px;
    background: #2a2a2a;
    border-radius: 50%;
    position: absolute; top: 3px; left: 50%; transform: translateX(-50%);
}

/* Écran */
.reel-card__viewport {
    flex: 1;
    border-radius: 12px;
    overflow: hidden;
    background: #000;
    position: relative;
}
.reel-card__viewport iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

/* Barre d'accueil */
.reel-card__home-bar {
    width: 50px; height: 4px;
    background: #333; border-radius: 2px;
    margin: 6px auto 0;
    flex-shrink: 0;
}

/* Écran vide (placeholder) */
.reel-card__viewport--empty {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: .6rem; padding: 1rem;
    background: #111;
    color: rgba(255,255,255,.4);
    text-align: center;
    font-size: .75rem; line-height: 1.5;
}
.reels-empty__icon {
    font-size: 2rem; opacity: .3;
}

/* Légende + source */
.reel-card__caption {
    font-size: .76rem; color: var(--text-light);
    text-align: center; line-height: 1.4;
    max-width: 200px;
    margin: 0;
}
.reel-card__source {
    font-size: .68rem; color: var(--blue);
    font-weight: 600;
}

/* ── Responsive ── */
@media (max-width: 1100px) {
    .actu-layout { grid-template-columns: 1fr 280px; gap: 2rem; }
    .reel-card__phone-frame { width: 160px; height: 285px; }
}
@media (max-width: 900px) {
    .actu-layout { grid-template-columns: 1fr; }
    .actu-layout__reels { position: static; }
    .reels-feed { flex-wrap: nowrap; }
    .reel-card__phone-frame { width: 180px; height: 320px; }
}
@media (max-width: 480px) {
    .reel-card__phone-frame { width: 160px; height: 285px; }
}

/* ════════════════════════════════════════════════════════
   SECTION ACTUALITÉS — Layout 2 colonnes + Réels Smartphone
════════════════════════════════════════════════════════ */

/* ── Layout principal ── */
.actu-layout {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 3rem;
    align-items: start;
}

/* ══════════════════════════════════════════════════════
   COLONNE GAUCHE — Articles
══════════════════════════════════════════════════════ */

/* Article vedette (1er article) */
.actu-featured {
    margin-bottom: 1.5rem;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh);
    border: 1px solid var(--border);
    background: #fff;
    transition: var(--transition);
}
.actu-featured:hover { transform: translateY(-3px); box-shadow: var(--sh2); }
.actu-featured__link { display: block; text-decoration: none; color: inherit; }

.actu-featured__thumb {
    height: 240px;
    position: relative;
    overflow: hidden;
}
.actu-featured__img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.actu-featured:hover .actu-featured__img { transform: scale(1.04); }

.actu-featured__placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 3.5rem;
}
.actu-ph--1 { background: linear-gradient(135deg,#0077C8,#00BCD4); }
.actu-ph--2 { background: linear-gradient(135deg,#005FA3,#0077C8); }
.actu-ph--3 { background: linear-gradient(135deg,#003D6B,#005FA3); }

.actu-cat-badge {
    position: absolute; top: .8rem; left: .8rem;
    background: #fff; color: var(--blue);
    padding: .18rem .72rem; border-radius: 20px;
    font-size: .68rem; font-weight: 700; text-transform: uppercase;
}
.actu-new-badge {
    position: absolute; top: .8rem; right: .8rem;
    background: var(--gold); color: #1A2A3A;
    padding: .18rem .65rem; border-radius: 20px;
    font-size: .65rem; font-weight: 700;
}
.actu-featured__body { padding: 1.3rem; }
.actu-date {
    font-size: .72rem; color: var(--text-light);
    display: block; margin-bottom: .3rem;
}
.actu-featured__title {
    font-family: var(--fh); font-size: 1.1rem;
    color: var(--blue-deep); margin-bottom: .5rem;
    line-height: 1.3;
}
.actu-featured:hover .actu-featured__title { color: var(--blue); }
.actu-featured__excerpt {
    font-size: .85rem; color: var(--text-light);
    line-height: 1.6; margin-bottom: .8rem;
}
.actu-read-more {
    font-size: .78rem; font-weight: 600; color: var(--blue);
}

/* Articles compacts (2ème, 3ème…) */
.actu-compact {
    border-bottom: 1px solid var(--border);
    padding: .85rem 0;
}
.actu-compact:last-of-type { border-bottom: none; }
.actu-compact__link {
    display: flex; gap: .9rem; align-items: center;
    text-decoration: none; color: inherit;
    transition: var(--transition);
}
.actu-compact__link:hover .actu-compact__title { color: var(--blue); }

.actu-compact__thumb {
    width: 80px; height: 64px;
    border-radius: 6px; overflow: hidden; flex-shrink: 0;
}
.actu-compact__img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .3s;
}
.actu-compact__link:hover .actu-compact__img { transform: scale(1.06); }
.actu-compact__placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem;
}
.actu-compact__text { flex: 1; min-width: 0; }
.actu-compact__title {
    font-family: var(--fh); font-size: .88rem;
    color: var(--blue-deep); line-height: 1.3;
    margin: .1rem 0 .3rem;
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}
.actu-compact__cat {
    font-size: .68rem; font-weight: 600; color: var(--blue);
    text-transform: uppercase; letter-spacing: .4px;
}

/* ══════════════════════════════════════════════════════
   COLONNE DROITE — Réels / Shorts (format smartphone)
══════════════════════════════════════════════════════ */

.actu-layout__reels { position: relative; }

/* En-tête colonne réels */
.reels-header {
    display: flex; align-items: center; gap: .6rem;
    margin-bottom: 1.2rem;
}
.reels-header__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--blue); flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(0,119,200,.2);
    animation: reel-pulse 2s infinite;
}
@keyframes reel-pulse {
    0%,100% { box-shadow: 0 0 0 3px rgba(0,119,200,.2); }
    50%      { box-shadow: 0 0 0 6px rgba(0,119,200,.05); }
}
.reels-header__title {
    font-size: .95rem; font-weight: 700;
    color: var(--blue-deep); margin: 0; flex: 1;
}
.reels-header__badge {
    background: linear-gradient(135deg,#0077C8,#003D6B);
    color: #fff; padding: .15rem .7rem; border-radius: 20px;
    font-size: .65rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .5px;
}

/* Piste défilante horizontale */
.reels-track-wrap {
    overflow: hidden;
    border-radius: var(--r-lg);
}
.reels-track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding: 8px 4px 12px;
}
.reels-track::-webkit-scrollbar { display: none; }

/* ─── Cadre smartphone ─── */
/* ── Carte vidéo verticale — sans contour smartphone ── */
.phone-card {
    flex-shrink: 0;
    scroll-snap-align: center;
    width: 280px;
}

/* Éléments d'interface smartphone supprimés */
.phone-frame,
.phone-status,
.phone-notch,
.phone-camera,
.phone-icons,
.phone-home-bar,
.phone-overlay__actions,
.phone-action { display: none; }

/* Écran vidéo — ratio 9:16, arrondi, ombre légère */
.phone-screen {
    width: 100%;
    aspect-ratio: 9 / 16;
    background: #000;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 8px 32px rgba(0,0,0,.22);
}
.phone-screen iframe {
    width: 100%;
    height: 100%;
    display: block;
    border: none;
}

/* Écran vide (placeholder) */
.phone-screen--empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    background: linear-gradient(180deg,#0d1b2a,#003D6B);
    color: rgba(255,255,255,.6);
    text-align: center;
    padding: 1.5rem;
    height: 100%;
}
.phone-empty-icon {
    font-size: 2.5rem;
    opacity: .4;
    display: block;
    margin-bottom: .3rem;
}
.phone-screen--empty p {
    font-size: .72rem;
    line-height: 1.6;
    color: rgba(255,255,255,.5);
    margin: 0;
}

/* Overlay source + légende */
.phone-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: .85rem;
    background: linear-gradient(
        to top,
        rgba(0,0,0,.72) 0%,
        rgba(0,0,0,.25) 45%,
        transparent 70%
    );
    border-radius: 16px;
    z-index: 5;
}
.phone-overlay__source {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .3rem;
}
.phone-overlay__avatar {
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--blue);
    display: flex; align-items: center; justify-content: center;
    font-size: .65rem; font-weight: 800; color: #fff;
    border: 1.5px solid rgba(255,255,255,.4);
    flex-shrink: 0;
}
.phone-overlay__source span:last-child {
    font-size: .7rem; color: rgba(255,255,255,.9);
    font-weight: 600;
}
.phone-overlay__caption {
    font-size: .72rem;
    color: rgba(255,255,255,.88);
    line-height: 1.45;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Dots navigation */
.reels-dots {
    display: flex;
    justify-content: center;
    gap: .4rem;
    margin-top: .9rem;
}
.reels-dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--border); border: none;
    cursor: pointer; transition: var(--transition);
    padding: 0;
}
.reels-dot.active {
    background: var(--blue);
    transform: scale(1.35);
}

/* ── Responsive ── */
@media (max-width:1023px) {
    .actu-layout { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .phone-card  { width: 220px; }
    .phone-frame { width: 220px; border-radius: 28px; }
    .phone-screen { border-radius: 22px; }
    .phone-screen iframe { border-radius: 22px; }
    .phone-overlay { border-radius: 22px; }
    .phone-notch { width: 60px; }
}
@media (max-width:767px) {
    .actu-layout { grid-template-columns: 1fr; gap: 2.5rem; }
    /* Sur mobile la piste affiche 1.3 téléphone (hint de scroll) */
    .phone-card  { width: 240px; }
    .phone-frame { width: 240px; }
    .actu-featured__thumb { height: 200px; }
}

/* ════════════════════════════════════════════════════════
   SECTION ACTUALITÉS v2 — 2 cartes + 1 vidéo smartphone
════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════
   SECTION ACTUALITÉS v2 — 2 cartes + 1 vidéo smartphone
════════════════════════════════════════════════════════ */

/* Grille principale : cartes | téléphone */
.actu-layout-v2 {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 2.5rem;
    align-items: start;
}

/* Bloc gauche : 2 cartes côte à côte */
.actu-cards-bloc {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4rem;
    align-content: start;
}
/* Bouton "Toutes les actualités" sur toute la largeur */
.actu-cards-bloc > div {
    grid-column: 1 / -1;
}

/* ── Carte actualité v2 ── */
.actu-card-v2 {
    background: #fff;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh);
    border: 1px solid var(--border);
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    height: 100%;
}
.actu-card-v2:hover { transform: translateY(-5px); box-shadow: var(--sh2); }

.actu-card-v2__link {
    display: flex; flex-direction: column;
    text-decoration: none; color: inherit; height: 100%;
}

/* Photo */
.actu-card-v2__photo {
    height: 190px;
    position: relative; overflow: hidden; flex-shrink: 0;
}
.actu-card-v2__img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .4s ease;
}
.actu-card-v2:hover .actu-card-v2__img { transform: scale(1.05); }
.actu-card-v2__placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 3rem;
}

/* Texte */
.actu-card-v2__body {
    padding: 1.1rem; flex: 1;
    display: flex; flex-direction: column; gap: .3rem;
}
.actu-card-v2__title {
    font-family: var(--fh); font-size: .95rem;
    color: var(--blue-deep); line-height: 1.35;
    margin: 0; flex: 1;
}
.actu-card-v2:hover .actu-card-v2__title { color: var(--blue); }
.actu-card-v2__excerpt {
    font-size: .79rem; color: var(--text-light);
    line-height: 1.55; margin: 0;
    display: -webkit-box; -webkit-line-clamp: 3;
    -webkit-box-orient: vertical; overflow: hidden;
}
.actu-card-v2__cta {
    font-size: .75rem; font-weight: 600;
    color: var(--blue); margin-top: .5rem;
}

/* ── Bloc vidéo droite ── */
.actu-video-bloc {
    display: flex; flex-direction: column;
    align-items: center; gap: .7rem;
}
.video-bloc-header {
    display: flex; align-items: center; gap: .5rem;
    align-self: flex-start; width: 100%;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--blue-light);
}
.video-bloc-header__title {
    font-size: .92rem; font-weight: 700;
    color: var(--blue-deep); margin: 0;
}

/* Téléphone dans la colonne vidéo */
.actu-video-bloc .phone-card  { width: 280px; }
.actu-video-bloc .phone-frame { width: 280px; }

/* ── Responsive ── */
@media (max-width:1100px) {
    .actu-layout-v2 { grid-template-columns: 1fr 220px; }
    .actu-video-bloc .phone-card,
    .actu-video-bloc .phone-frame { width: 200px; }
    .actu-card-v2__photo { height: 165px; }
}
@media (max-width:767px) {
    .actu-layout-v2 { grid-template-columns: 1fr; }
    .actu-cards-bloc { grid-template-columns: 1fr 1fr; }
    .actu-video-bloc { align-items: center; }
    .actu-video-bloc .phone-card,
    .actu-video-bloc .phone-frame { width: 220px; }
}
@media (max-width:480px) {
    .actu-cards-bloc { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════
   PAGE PRÉSENTATION
════════════════════════════════════════════════════════ */
.prog-page-hero--presentation { background: linear-gradient(135deg,#003D6B,#0077C8); }

/* Grille intro : stats + texte */
.presentation-intro-grid {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 3rem;
    align-items: start;
    margin-bottom: 2rem;
}

/* Encart stats */
.presentation-stats-box {
    background: linear-gradient(135deg,var(--blue-deep),var(--blue));
    border-radius: var(--r-lg);
    padding: 2rem;
    color: #fff;
    text-align: center;
}
.pres-annee-wrap { margin-bottom: 1.5rem; }
.pres-annee {
    display: block;
    font-family: var(--fh); font-size: 4rem; font-weight: 700;
    color: var(--gold); line-height: 1;
}
.pres-annee-label {
    font-size: .75rem; color: rgba(255,255,255,.65);
    margin-top: .3rem; display: block;
}
.pres-stats-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: .8rem;
}
.pres-stat {
    background: rgba(255,255,255,.1);
    border-radius: var(--r); padding: .8rem .5rem;
    border: 1px solid rgba(255,255,255,.12);
}
.pres-stat__num {
    display: block; font-family: var(--fh);
    font-size: 1.7rem; font-weight: 700; color: #fff; line-height: 1;
}
.pres-stat__label {
    display: block; font-size: .68rem;
    color: rgba(255,255,255,.6); margin-top: .2rem; line-height: 1.3;
}

/* Colonne texte */
.presentation-text-col {}
.pres-feats { margin-top: 1.5rem; display: flex; flex-direction: column; gap: .8rem; }
.pres-feat-item { display: flex; align-items: flex-start; gap: .8rem; }
.pres-feat-item__dot {
    width: 10px; height: 10px; border-radius: 50%;
    background: var(--blue); flex-shrink: 0; margin-top: .45rem;
}
.pres-feat-item__titre { display: block; font-size: .9rem; color: var(--blue-deep); font-weight: 700; }
.pres-feat-item__desc  { display: block; font-size: .82rem; color: var(--text-light); }

/* Grille Mission / Vision / Valeurs */
.pres-mvv-grid {
    display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem;
}
.pres-mvv-card {
    border-radius: var(--r-lg); padding: 1.8rem;
    border: 1px solid var(--border); text-align: center;
    box-shadow: var(--sh); transition: var(--transition);
}
.pres-mvv-card:hover { transform: translateY(-3px); box-shadow: var(--sh2); }
.pres-mvv-card--mission { background: var(--blue-light); }
.pres-mvv-card--vision  { background: linear-gradient(135deg,#EBF3FB,#D6E4F0); }
.pres-mvv-card--valeurs { background: #e8f5e9; }
.pres-mvv-card__icon { font-size: 2rem; margin-bottom: .7rem; display: block; }
.pres-mvv-card h3 { font-size: 1rem; color: var(--blue-deep); margin-bottom: .6rem; }
.pres-mvv-card p  { font-size: .84rem; color: var(--text-light); line-height: 1.65; margin: 0; }

/* Responsive */
@media (max-width:900px) {
    .presentation-intro-grid { grid-template-columns: 1fr; }
    .pres-mvv-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width:600px) {
    .pres-mvv-grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════
   SECTION ACTUALITÉS v3 — 3 cartes + 3 smartphones
════════════════════════════════════════════════════════ */

/* ── Ligne 1 : 3 cartes égales ── */
.actu-cards-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    row-gap: 2rem;
    margin-bottom: 0;
}

/* ── Ligne 2 : réels ── */
.actu-reels-row {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--border);
}
.actu-reels-header {
    margin-bottom: 1.5rem;
}
.actu-reels-header__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--blue-deep);
    margin: 0;
    position: relative;
    padding-bottom: .5rem;
}
.actu-reels-header__title::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 32px; height: 3px;
    background: var(--blue);
    border-radius: 2px;
}

/* Grille 3 téléphones centrés */
.actu-phones-3 {
    display: grid;
    grid-template-columns: repeat(3, 280px);
    gap: 2rem;
    justify-content: center;
}

/* ── Responsive ── */
@media (max-width:1100px) {
    .actu-cards-3   { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
    .actu-phones-3  { grid-template-columns: repeat(3, 240px); gap: 1.2rem; }
    .actu-phones-3 .phone-card,
    .actu-phones-3 .phone-frame { width: 240px; }
}
@media (max-width:900px) {
    .actu-cards-3   { grid-template-columns: 1fr 1fr; }
    .actu-phones-3  { grid-template-columns: repeat(2, 240px); }
}
@media (max-width:600px) {
    .actu-cards-3   { grid-template-columns: 1fr; }
    .actu-phones-3  {
        grid-template-columns: 1fr;
        justify-items: center;
    }
    .actu-phones-3 .phone-card,
    .actu-phones-3 .phone-frame { width: 260px; }
}

/* ════════════════════════════════════════════════════════
   PAGE FORMATION SINGLE — Onglets Présentation / Admission
════════════════════════════════════════════════════════ */

/* Hero avec image en fond */
.page-hero { position: relative; overflow: hidden; }
.page-hero__bg-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    opacity: .2;
}
.page-hero__bg-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,.15) 0%, rgba(0,0,0,.4) 100%);
}
.page-hero__content { position: relative; z-index: 2; }

/* ══════════════════════════════════════════════════════════
   PAGE FORMATION SINGLE — Design complet
══════════════════════════════════════════════════════════ */

/* ── Bandeau hero ── */
/* ── Barre onglets ── */
/* ── Zone contenu ── */
/* ── Navigation bas ── */
.formation-single__nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border);
}

@media (max-width:767px) {
/* ── Image héro dans présentation ── */
.formation-single__hero-img {
    border-radius: var(--r-lg);
    overflow: hidden;
    margin-bottom: 2rem;
    box-shadow: var(--sh2);
    max-height: 420px;
}
.formation-single__hero-img img {
    width: 100%; height: 420px;
    object-fit: cover; display: block;
}

/* ── Intro ── */
.formation-single__intro {
    font-size: 1rem; color: var(--text);
    line-height: 1.8; margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--blue-light);
}

/* ── Contenu éditeur ── */
.formation-single__content { margin-bottom: 2rem; }

/* ── Boîtes info ── */
.formation-single__box {
    border-radius: var(--r-lg);
    padding: 1.6rem; margin-top: 2rem;
}
.formation-single__box h3 {
    font-size: 1rem; margin-bottom: .8rem; font-family: var(--fh);
}
.formation-single__box p,
.formation-single__conditions-text p {
    font-size: .9rem; line-height: 1.75; margin-bottom: .5rem; color: inherit;
}
.formation-single__box p:last-child { margin-bottom: 0; }
.formation-single__box--blue {
    background: var(--blue-light);
    border: 1px solid var(--border);
}
.formation-single__box--blue h3 { color: var(--blue-deep); }
.formation-single__box--blue p,
.formation-single__box--blue .formation-single__conditions-text p { color: var(--text-light); }
.formation-single__box--green {
    background: #e8f5e9;
    border: 1px solid #c8e6c9;
}
.formation-single__box--green h3 { color: #1b5e20; }
.formation-single__box--green p { color: #2e7d32; }

/* ── Grille infos pratiques ── */
.formation-admission-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-top: 2rem;
}
.admission-info-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: 1.2rem 1.4rem;
    display: flex; flex-direction: column;
    gap: .25rem;
    box-shadow: var(--sh);
}
.admission-info-card__icon { font-size: 1.4rem; margin-bottom: .2rem; }
.admission-info-card strong { font-size: .75rem; color: var(--text-light); text-transform: uppercase; letter-spacing: .5px; font-weight: 700; }
.admission-info-card span  { font-size: .9rem; color: var(--blue-deep); font-weight: 600; }

/* ── État vide ── */
.formation-single__empty {
    text-align: center; padding: 3rem 1rem;
    color: var(--text-light);
}
.formation-single__empty-icon { font-size: 3rem; display: block; margin-bottom: 1rem; }
.formation-single__empty p { font-size: .9rem; line-height: 1.7; }

/* ── Navigation bas de page ── */
.formation-single__nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border);
}

/* ── Responsive ── */
@media (max-width:767px) {
/* ════════════════════════════════════════════════════════
   PAGE FORMATION SINGLE v4 — Design propre
════════════════════════════════════════════════════════ */

/* ── Hero : bandeau coloré plein, titre uniquement ── */
/* ── Barre onglets : fond gris très clair, séparée proprement ── */
/* ── Zone de contenu ── */
/* ── Navigation bas ── */
@media (max-width: 767px) {

/* ═══════════════════════════════════════════════
   FORMATION SINGLE — Design final
═══════════════════════════════════════════════ */

/* 1 — Bandeau coloré */
.fpage-hero {
    padding: 3.5rem 0 3rem;
    overflow: hidden;
    position: relative;
}
.fpage-hero::before {
    content: '';
    position: absolute;
    top: -80px; right: -80px;
    width: 360px; height: 360px;
    border-radius: 50%;
    background: rgba(255,255,255,.07);
    pointer-events: none;
}
.fpage-hero__bread {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .78rem;
    color: rgba(255,255,255,.65);
    margin-bottom: 1.2rem;
    position: relative;
    z-index: 1;
}
.fpage-hero__bread a {
    color: rgba(255,255,255,.85);
    text-decoration: none;
}
.fpage-hero__bread a:hover { color: #fff; }
.fpage-hero__title {
    font-family: var(--fh);
    font-size: clamp(2.4rem, 5vw, 3.5rem);
    color: #fff;
    font-weight: 700;
    letter-spacing: -.5px;
    line-height: 1.1;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* 2 — Barre onglets sur fond gris clair */
.fpage-tabs-wrap {
    background: #F5F7FA;
    border-bottom: 1px solid #DDE3EC;
}
.fpage-tabs {
    display: flex;
    padding: 0;
    margin: 0;
    list-style: none;
}
.fpage-tab {
    padding: 1.1rem 2rem;
    font-size: .9rem;
    font-weight: 600;
    color: #64748B;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    font-family: var(--fb);
    white-space: nowrap;
    transition: color .18s, border-color .18s, background .18s;
}
.fpage-tab:hover {
    color: var(--blue);
    background: rgba(0,119,200,.05);
}
.fpage-tab.is-active {
    color: var(--blue);
    font-weight: 700;
    border-bottom-color: var(--blue);
    background: transparent;
}

/* 3 — Contenu */
.fpage-content {
    padding: 3.5rem 0 5rem;
    background: #fff;
}
.fpage-panel { display: none; }
.fpage-panel.is-active { display: block; }
.fpage-empty {
    color: #94A3B8;
    font-style: italic;
    font-size: .92rem;
    padding: 2.5rem 0;
}

/* 4 — Navigation bas */
.fpage-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1px solid #E2E8F0;
}

/* Responsive */
@media (max-width:767px) {
    .fpage-hero { padding: 2rem 0 2rem; }
    .fpage-hero__title { font-size: 2rem; }
    .fpage-tab { padding: .85rem 1rem; font-size: .83rem; }
    .fpage-content { padding: 2rem 0 3rem; }
    .fpage-nav { flex-direction: column; align-items: stretch; }
}

/* ════════════════════════════════════════
   PAGE MASTER — 5 spécialisations + frais
════════════════════════════════════════ */

/* Grille 5 spécialisations (3 + 2) */
.master-spec-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.2rem;
}
@media (max-width:900px) { .master-spec-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width:580px) { .master-spec-grid { grid-template-columns: 1fr; } }

/* Bloc frais côte à côte */
.master-frais-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
.master-frais-bloc {
    background: var(--off);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    overflow: hidden;
}
.master-frais-titre {
    background: var(--blue-deep);
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
    padding: .75rem 1.2rem;
    margin: 0;
    letter-spacing: .3px;
}
.master-frais-table { padding: .4rem 0; }
.master-frais-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .7rem 1.2rem;
    border-bottom: 1px solid var(--border);
    font-size: .84rem;
}
.master-frais-row:last-child { border-bottom: none; }
.master-frais-profil { color: var(--text-light); flex: 1; line-height: 1.4; }
.master-frais-montant {
    font-weight: 700;
    color: var(--blue-deep);
    white-space: nowrap;
    flex-shrink: 0;
}

/* Ajouter les champs spec4 et spec5 dans l'admin */
@media (max-width:767px) {
    .master-frais-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════
   PAGE DOCTORAT — Axes (style info-box)
═══════════════════════════════ */
.doc-axes-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ── Membre : domaines + publications ── */
.member-card__domaines { margin-top: .6rem; }
.member-card__domaines-tags {
    display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem;
}
.member-card__publications { margin-top: .7rem; }
.member-card__pub-item {
    display: flex; flex-direction: column; gap: .1rem;
    padding: .45rem 0;
    border-bottom: 1px solid var(--border);
}
.member-card__pub-item:last-child { border-bottom: none; }
.member-card__pub-titre {
    font-size: .8rem; font-weight: 600;
    color: var(--blue-deep); line-height: 1.35;
    text-decoration: none;
}
a.member-card__pub-titre:hover { color: var(--blue); text-decoration: underline; }
.member-card__pub-meta {
    font-size: .72rem; color: var(--text-light); font-style: italic;
}

/* ════════════════════════════════════════
   PAGE PROFIL CHERCHEUR
════════════════════════════════════════ */
.profil-hero {
    background: linear-gradient(135deg,#1a6b3a,#2E7D32);
    padding: 3rem 0;
}
.profil-hero__inner {
    display: flex;
    align-items: center;
    gap: 2.5rem;
}
.profil-hero__photo-wrap {
    width: 140px; height: 140px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid rgba(255,255,255,.3);
    box-shadow: 0 0 0 4px rgba(255,255,255,.12);
    flex-shrink: 0;
    background: rgba(255,255,255,.15);
}
.profil-hero__photo {
    width: 100%; height: 100%;
    object-fit: cover; object-position: top center;
}
.profil-hero__photo-placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 3.5rem; font-family: var(--fh); font-weight: 700;
    color: rgba(255,255,255,.6);
}
.profil-hero__identity { display: flex; flex-direction: column; gap: .4rem; }
.profil-hero__bread {
    font-size: .74rem; color: rgba(255,255,255,.6); margin-bottom: .3rem;
}
.profil-hero__bread a { color: rgba(255,255,255,.8); text-decoration: none; }
.profil-hero__bread a:hover { color: #fff; }
.profil-hero__titre {
    font-size: .78rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .5px; color: rgba(255,255,255,.75);
}
.profil-hero__nom {
    font-family: var(--fh); font-size: clamp(1.6rem,3vw,2.2rem);
    color: #fff; margin: 0; line-height: 1.1;
}
.profil-hero__role {
    display: inline-block;
    background: rgba(255,255,255,.2); color: #fff;
    padding: .2rem .9rem; border-radius: 20px;
    font-size: .78rem; font-weight: 600;
    border: 1px solid rgba(255,255,255,.25);
    align-self: flex-start;
}
.profil-hero__email {
    font-size: .8rem; color: rgba(255,255,255,.75);
    text-decoration: none; margin-top: .2rem;
}
.profil-hero__email:hover { color: #fff; }

/* Layout 2 colonnes */
.profil-grid {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 2.5rem;
    align-items: start;
}
.profil-section {
    background: #fff; border: 1px solid var(--border);
    border-radius: var(--r-lg); padding: 1.8rem;
    margin-bottom: 1.4rem; box-shadow: var(--sh);
}
.profil-section__title {
    font-family: var(--fh); font-size: 1.05rem;
    color: var(--blue-deep); margin: 0 0 1rem;
    padding-bottom: .7rem; border-bottom: 2px solid var(--blue-light);
}
.profil-section__text {
    font-size: .92rem; color: var(--text-light); line-height: 1.75; margin: 0;
}

/* Publications */
.profil-publi-list { display: flex; flex-direction: column; gap: 0; }
.profil-publi-item {
    display: flex; gap: 1rem; align-items: flex-start;
    padding: .9rem 0; border-bottom: 1px solid var(--border);
}
.profil-publi-item:last-child { border-bottom: none; }
.profil-publi-num {
    width: 24px; height: 24px; border-radius: 50%;
    background: var(--green); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: .72rem; font-weight: 700; flex-shrink: 0; margin-top: 2px;
}
.profil-publi-content { flex: 1; }
.profil-publi-titre {
    display: block; font-size: .9rem; font-weight: 600;
    color: var(--blue-deep); line-height: 1.35; text-decoration: none;
    margin-bottom: .2rem;
}
a.profil-publi-titre:hover { color: var(--blue); text-decoration: underline; }
.profil-publi-meta {
    font-size: .78rem; color: var(--text-light); font-style: italic;
}

/* Colonne latérale */
.profil-side-bloc {
    background: #fff; border: 1px solid var(--border);
    border-radius: var(--r-lg); padding: 1.4rem;
    margin-bottom: 1rem; box-shadow: var(--sh);
}
.profil-side-titre {
    font-size: .8rem; font-weight: 700; color: var(--blue-deep);
    text-transform: uppercase; letter-spacing: .4px; margin: 0 0 .8rem;
}
.profil-domaines { display: flex; flex-wrap: wrap; gap: .4rem; }
.profil-domaine-tag {
    background: var(--blue-light); color: var(--blue-deep);
    padding: .22rem .75rem; border-radius: 20px;
    font-size: .75rem; font-weight: 600;
    border: 1px solid var(--border);
}
.profil-email-btn {
    display: block; font-size: .82rem; color: var(--blue);
    word-break: break-all; text-decoration: none;
}
.profil-email-btn:hover { text-decoration: underline; }

@media (max-width:767px) {
    .profil-hero__inner { flex-direction: column; text-align: center; gap: 1.2rem; }
    .profil-hero__role { align-self: center; }
    .profil-grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════
   GIRMEC — Sous-titre hero + axes bandeaux
════════════════════════════════════════ */

/* Sous-titre hero (nom complet GIRMEC) */
.prog-page-hero__sub {
    font-size: 1.15rem;
    color: #fff;
    margin: .7rem 0 0;
    font-weight: 500;
    line-height: 1.4;
    max-width: 700px;
}

/* Axes : bandeaux colorés pleine largeur */
.girmec-axes-bandeaux {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.girmec-axe-bandeau {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    border-radius: var(--r-lg);
    padding: 1.4rem 1.8rem;
    color: #fff;
    transition: var(--transition);
    cursor: default;
}
.girmec-axe-bandeau:hover { transform: translateX(4px); }
.girmec-axe-bandeau--1 { background: linear-gradient(135deg,#003D6B,#0077C8); }
.girmec-axe-bandeau--2 { background: linear-gradient(135deg,#1a6b3a,#2E7D32); }
.girmec-axe-bandeau--3 { background: linear-gradient(135deg,#5a0d82,#8e24aa); }
.girmec-axe-bandeau__num {
    font-family: var(--fh);
    font-size: 2.2rem;
    font-weight: 700;
    color: rgba(255,255,255,.25);
    flex-shrink: 0;
    line-height: 1;
    min-width: 2rem;
}
.girmec-axe-bandeau__icon {
    font-size: 2rem;
    flex-shrink: 0;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.2));
}
.girmec-axe-bandeau__content { flex: 1; }
.girmec-axe-bandeau__titre {
    font-family: var(--fh);
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 .4rem;
    line-height: 1.2;
}
.girmec-axe-bandeau__desc {
    font-size: .85rem;
    color: rgba(255,255,255,.82);
    line-height: 1.65;
    margin: 0;
}
@media (max-width:767px) {
    .prog-page-hero__sub { font-size: .95rem; }
    .girmec-axe-bandeau { flex-wrap: wrap; gap: .8rem; }
    .girmec-axe-bandeau__num { display: none; }
}

/* ════════════════════════════════════════
   MASTER — Cartes frais redessinées
════════════════════════════════════════ */
.master-frais-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
.master-frais-card {
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh2);
    border: 1px solid var(--border);
    transition: var(--transition);
}
.master-frais-card:hover { transform: translateY(-3px); }

/* Header de carte */
.master-frais-card__header {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: 1.2rem 1.5rem;
}
.master-frais-card__header h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
    color: #fff;
}
.master-frais-card__icon { font-size: 1.3rem; }

.master-frais-card--inscription .master-frais-card__header {
    background: linear-gradient(135deg, var(--blue-deep), var(--blue));
}
.master-frais-card--scolarite .master-frais-card__header {
    background: linear-gradient(135deg, #1a6b3a, #2E7D32);
}

/* Corps de carte */
.master-frais-card__body { padding: .5rem 0; background: #fff; }
.master-frais-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .85rem 1.5rem;
    border-bottom: 1px solid var(--border);
}
.master-frais-row:last-child { border-bottom: none; }
.master-frais-profil {
    font-size: .85rem;
    color: var(--text-light);
    flex: 1;
    line-height: 1.45;
}
.master-frais-montant {
    font-size: .95rem;
    font-weight: 800;
    color: var(--blue-deep);
    white-space: nowrap;
    flex-shrink: 0;
}
.master-frais-card--scolarite .master-frais-montant { color: #1a6b3a; }

@media (max-width:767px) {
    .master-frais-grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════
   CERTIFICATS — Cartes avec tiroir dépliable
════════════════════════════════════════ */
}
}
}
}
}
}

/* Zone visible (titre + desc) — toujours affichée */
}
}
}

/* Hint "Voir plus" */
}
}
}
}
}

}
}

/* Bloc frais */
}
}

/* ════════════════════════════════════════
   CERTIFICATS PRATIQUES
════════════════════════════════════════ */
.cert-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}
.cert-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #E2E8F0;
    box-shadow: 0 2px 12px rgba(0,61,107,.07);
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
    display: flex;
    flex-direction: column;
    width: 100%;
}
.cert-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0,61,107,.13);
}
.cert-card.is-open {
    transform: translateY(0);
    box-shadow: 0 8px 30px rgba(0,119,200,.2);
    border-color: #0077C8;
}
/* ── Header coloré ── */
.cert-card__head {
    height: 110px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: .9rem 1rem;
    flex-shrink: 0;
}
.cert-card__num {
    font-size: 1.9rem;
    font-weight: 900;
    color: rgba(255,255,255,.22);
    line-height: 1;
    font-family: Georgia, serif;
}
.cert-card__icon-big {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2.4rem;
    filter: drop-shadow(0 2px 5px rgba(0,0,0,.25));
}
.cert-card__duree {
    display: inline-block;
    background: rgba(255,255,255,.2);
    border: 1px solid rgba(255,255,255,.3);
    color: #fff;
    font-size: .68rem;
    padding: .15rem .7rem;
    border-radius: 20px;
    align-self: flex-start;
}
/* ── Zone visible : titre + description TOUJOURS affichés ── */
.cert-card__visible {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.cert-card__title {
    font-size: .92rem;
    font-weight: 700;
    color: #1A2A3A;
    line-height: 1.3;
    margin: 0;
}
.cert-card.is-open .cert-card__title { color: #0077C8; }
.cert-card__desc {
    font-size: .8rem;
    color: #64748B;
    line-height: 1.65;
    margin: 0;
    flex: 1;
}
/* ── Bouton "Voir plus" ── */
.cert-card__toggle-hint {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .3rem;
    padding-top: .6rem;
    border-top: 1px solid #E2E8F0;
    margin-top: .4rem;
}
.cert-card__hint-text {
    font-size: .72rem;
    font-weight: 600;
    color: #0077C8;
}
.cert-card__arrow {
    font-size: .7rem;
    color: #0077C8;
    display: inline-block;
    transition: transform .25s;
}
.cert-card.is-open .cert-card__arrow { transform: rotate(180deg); }
/* ── Tiroir (caché → visible au clic) ── */
.cert-card__drawer {
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s ease;
    background: #F8FAFC;
    border-top: 0;
}
.cert-card.is-open .cert-card__drawer {
    max-height: 260px;
    border-top: 1px solid #E2E8F0;
}
.cert-card__drawer-inner {
    padding: .9rem 1rem 1rem;
}
.cert-card__drawer-row { margin-bottom: .7rem; }
.cert-card__drawer-label {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #94A3B8;
    margin-bottom: .2rem;
}
.cert-card__drawer-text {
    font-size: .82rem;
    color: #1A2A3A;
    margin: 0;
    line-height: 1.5;
}
.cert-card__frais-bloc {
    background: #EBF3FB;
    border-radius: 8px;
    padding: .6rem .8rem;
    border: 1px solid #CBE4F5;
}
.cert-card__frais-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .79rem;
    padding: .28rem 0;
    border-bottom: 1px solid #CBE4F5;
}
.cert-card__frais-row:last-child { border-bottom: none; }
.cert-card__frais-row span { color: #64748B; }
.cert-card__frais-row strong { color: #003D6B; font-weight: 800; }

@media (max-width:1100px) { .cert-grid { grid-template-columns: repeat(4,1fr); gap: 1rem; } }
@media (max-width:767px)  { .cert-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width:480px)  { .cert-grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════
   CARTES FORMATION CONTINUE (accueil)
════════════════════════════════════════ */
.fcard-fc {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    background: #fff;
    border-radius: var(--r-lg);
    border: 1px solid var(--border);
    box-shadow: var(--sh);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
}
.fcard-fc:hover {
    transform: translateY(-4px);
    box-shadow: var(--sh2);
    border-color: var(--blue);
}

/* Bloc icône coloré à gauche */
.fcard-fc__icon-wrap {
    width: 90px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fcard-fc__icon {
    font-size: 2.4rem;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,.2));
}

/* Corps à droite */
.fcard-fc__body {
    padding: 1.4rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    flex: 1;
}
.fcard-fc__title {
    font-family: var(--fh);
    font-size: 1rem;
    font-weight: 700;
    color: var(--blue-deep);
    margin: 0;
    line-height: 1.25;
}
.fcard-fc:hover .fcard-fc__title { color: var(--blue); }
.fcard-fc__desc {
    font-size: .83rem;
    color: var(--text-light);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}
.fcard-fc__meta {
    display: flex;
    gap: .6rem;
    flex-wrap: wrap;
}
.fcard-fc__meta span {
    font-size: .75rem;
    color: var(--text-light);
    background: var(--off);
    padding: .18rem .65rem;
    border-radius: 20px;
    border: 1px solid var(--border);
}
.fcard-fc__cta {
    display: inline-block;
    font-size: .8rem;
    font-weight: 700;
    color: var(--blue);
    margin-top: .2rem;
}
.fcard-fc:hover .fcard-fc__cta { color: var(--blue-deep); }

@media (max-width:600px) {
    .fcard-fc { flex-direction: column; }
    .fcard-fc__icon-wrap { width: 100%; height: 80px; }
}

/* ── Axes liste verte (doctorat) ── */
.prog-axe-item--green .prog-axe-num {
    background: linear-gradient(135deg,#1a6b3a,#2E7D32);
}

/* ── Description cachée sur carte formation, visible au clic ── */
.formation-card {
    cursor: pointer;
}
.formation-card__desc-wrap {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}
.formation-card.is-expanded .formation-card__desc-wrap {
    max-height: 300px;
}
.formation-card__desc {
    font-size: .83rem;
    color: var(--text-light);
    line-height: 1.65;
    margin: 0 0 .8rem;
}

/* ── Cartes statiques formation (fallback pages dédiées) ── */
.formation-card-static {
    display: flex;
    flex-direction: column;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh);
    border: 1px solid var(--border);
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
}
.formation-card-static:hover {
    transform: translateY(-4px);
    box-shadow: var(--sh2);
}
.formation-card-static__head {
    padding: 2rem 1.5rem 1.5rem;
    min-height: 130px;
    display: flex;
    align-items: flex-end;
}
.formation-card-static__head h3 {
    font-family: var(--fh);
    font-size: 1.2rem;
    color: #fff;
    margin: 0;
    line-height: 1.25;
}
.formation-card-static__body {
    padding: 1.2rem 1.5rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: .8rem;
}

/* ════════════════════════════════════════
   ARCHIVE FORMATIONS — Onglets + Design
════════════════════════════════════════ */

/* Onglets dans le hero */
.arc-tabs-nav {
    display: flex;
    gap: .5rem;
    margin-top: 1.5rem;
    flex-wrap: wrap;
}
.arc-tab {
    padding: .6rem 1.5rem;
    font-size: .88rem;
    font-weight: 600;
    color: rgba(255,255,255,.75);
    background: rgba(255,255,255,.12);
    border: 1.5px solid rgba(255,255,255,.25);
    border-radius: 6px 6px 0 0;
    border-bottom: none;
    cursor: pointer;
    font-family: var(--fb);
    transition: all .2s;
    margin-bottom: -1px;
}
.arc-tab:hover { background: rgba(255,255,255,.22); color: #fff; }
.arc-tab.is-active { background: #fff; color: var(--blue-deep); border-color: #fff; font-weight: 700; }

/* Panels */
.arc-panel { display: none; padding-top: 2rem; }
.arc-panel.is-active { display: block; }

/* Sous-titres de section */
.arc-section-head {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 1.5rem;
}
.arc-section-head h2 {
    font-family: var(--fh);
    font-size: 1.2rem;
    color: var(--blue-deep);
    margin: 0;
}

/* ── Carte bannière Master / Doctorat ── */
.arc-prog-card {
    display: flex;
    align-items: center;
    gap: 2rem;
    background: #fff;
    border-radius: var(--r-lg);
    border: 1px solid var(--border);
    box-shadow: var(--sh);
    padding: 1.8rem 2rem;
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
    margin-bottom: 1rem;
}
.arc-prog-card:hover { transform: translateY(-3px); box-shadow: var(--sh2); }

.arc-prog-card--master { border-left: 5px solid var(--blue); }
.arc-prog-card--doc    { border-left: 5px solid #2E7D32; }

.arc-prog-card__left {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    flex-shrink: 0;
    min-width: 90px;
}
.arc-prog-card__icon { font-size: 2.5rem; }
.arc-prog-card__meta {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    align-items: center;
}
.arc-prog-card__meta span {
    font-size: .72rem;
    color: var(--text-light);
    background: var(--off);
    padding: .15rem .6rem;
    border-radius: 20px;
    border: 1px solid var(--border);
    white-space: nowrap;
}

.arc-prog-card__center { flex: 1; }
.arc-prog-card__center h3 {
    font-family: var(--fh);
    font-size: 1.1rem;
    color: var(--blue-deep);
    margin: 0 0 .5rem;
    line-height: 1.25;
}
.arc-prog-card__center p {
    font-size: .85rem;
    color: var(--text-light);
    line-height: 1.65;
    margin: 0 0 .8rem;
}
.arc-prog-card__specs {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
.arc-prog-card__spec-tag {
    font-size: .72rem;
    background: var(--blue-light);
    color: var(--blue-deep);
    padding: .15rem .65rem;
    border-radius: 20px;
    border: 1px solid var(--border);
}

.arc-prog-card__right { flex-shrink: 0; }
.arc-prog-card__cta {
    display: inline-block;
    font-size: .82rem;
    font-weight: 700;
    color: var(--blue);
    white-space: nowrap;
}
.arc-prog-card:hover .arc-prog-card__cta { color: var(--blue-deep); }

/* ── Grille Formation Continue ── */
.arc-fc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-top: 1rem;
}
.arc-fc-card {
    display: flex;
    flex-direction: column;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh);
    border: 1px solid var(--border);
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
}
.arc-fc-card:hover { transform: translateY(-4px); box-shadow: var(--sh2); }

.arc-fc-card__head {
    padding: 1.8rem;
    display: flex;
    align-items: center;
    gap: 1.2rem;
}
.arc-fc-card__icon { font-size: 2.8rem; flex-shrink: 0; }
.arc-fc-card__head h3 {
    font-family: var(--fh);
    font-size: 1.05rem;
    color: #fff;
    margin: 0 0 .5rem;
    line-height: 1.2;
}
.arc-fc-card__meta {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.arc-fc-card__meta span {
    font-size: .72rem;
    color: rgba(255,255,255,.8);
    background: rgba(255,255,255,.15);
    padding: .15rem .65rem;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,.2);
}
.arc-fc-card__body {
    padding: 1.4rem 1.8rem;
    background: #fff;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.arc-fc-card__body p {
    font-size: .86rem;
    color: var(--text-light);
    line-height: 1.7;
    margin: 0;
    flex: 1;
}
.arc-fc-card__cta {
    font-size: .82rem;
    font-weight: 700;
    color: var(--blue);
}
.arc-fc-card:hover .arc-fc-card__cta { color: var(--blue-deep); }

/* Responsive */
@media (max-width:900px) {
    .arc-prog-card { flex-direction: column; align-items: flex-start; gap: 1rem; }
    .arc-prog-card__left { flex-direction: row; min-width: auto; }
    .arc-prog-card__meta { flex-direction: row; }
}
@media (max-width:767px) {
    .arc-fc-grid { grid-template-columns: 1fr; }
    .arc-tab { border-radius: 6px; border-bottom: 1.5px solid rgba(255,255,255,.25); margin-bottom: 0; }
}

/* Formations — élément de menu non cliquable */
.nav-link--noclick {
    cursor: default;
    user-select: none;
}
.nav-link--noclick:hover {
    color: var(--blue);
}

/* ════════════════════════════════════════════════════════
   SECTION ACTUALITÉS + AGENDA — Layout 2 colonnes
   v14 redesign — Agenda vertical épuré avec timeline
════════════════════════════════════════════════════════ */

/* ── Wrapper 2 colonnes ── */
.actu-agenda-wrapper {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 3rem;
    align-items: start;
    margin-bottom: 0;
}

/* ── Colonne principale actualités ── */
.actu-main-col {
    min-width: 0;
}
.actu-main-col .actu-cards-3 {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
.actu-main-col .actu-card-v2__photo {
    height: 140px;
}
.actu-main-col .actu-card-v2__title {
    font-size: .88rem;
}
.actu-main-col .actu-card-v2__excerpt {
    display: none;
}

/* ════════════════════════════════════════════════════════
   COLONNE AGENDA — Design vertical timeline
════════════════════════════════════════════════════════ */
.actu-agenda-col {
    min-width: 0;
    background: var(--off);
    border-radius: var(--r-lg);
    padding: 1.4rem 1.5rem 1.2rem;
    border: 1px solid var(--border);
}

/* ── En-tête ── */
.agenda-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}
.agenda-title {
    font-family: var(--fb);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .1em;
    color: var(--blue-deep);
    text-transform: uppercase;
    margin: 0;
}
.agenda-icon {
    color: var(--blue);
    opacity: .5;
    flex-shrink: 0;
}
.agenda-underline {
    width: 28px;
    height: 2px;
    background: var(--blue);
    border-radius: 2px;
    margin: 0 0 14px;
}

/* ── Liste — timeline verticale ── */
.agenda-list {
    display: flex;
    flex-direction: column;
    position: relative;
    /* Ligne verticale continue */
    padding-left: 16px;
}
.agenda-list::before {
    content: '';
    position: absolute;
    left: 5px;
    top: 6px;
    bottom: 6px;
    width: 2px;
    background: linear-gradient(to bottom, var(--blue) 0%, var(--blue-mid) 100%);
    border-radius: 2px;
}

/* ── Chaque item ── */
.agenda-item {
    position: relative;
    padding: 0 0 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
/* Pastille sur la timeline */
.agenda-item::before {
    content: '';
    position: absolute;
    left: -11px;
    top: 5px;
    width: 10px;
    height: 10px;
    background: var(--white);
    border: 2px solid var(--blue);
    border-radius: 50%;
    z-index: 1;
    transition: background .2s;
}
.agenda-item:hover::before {
    background: var(--blue);
}
.agenda-item:last-child {
    padding-bottom: 4px;
}

/* Date inline */
.agenda-item__date-inline {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 3px;
}
.agenda-item__day-num {
    font-family: var(--fb);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--blue);
    line-height: 1;
    min-width: 22px;
}
.agenda-item__month-label {
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--blue);
    background: var(--blue-light);
    padding: 1px 5px;
    border-radius: 20px;
    line-height: 1.6;
}

/* Titre */
.agenda-item__title {
    font-size: .83rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    color: var(--text);
}
.agenda-item__title a {
    color: inherit;
    text-decoration: none;
    transition: color .2s;
}
.agenda-item__title a:hover { color: var(--blue); }

/* Extrait */
.agenda-item__excerpt {
    font-size: .74rem;
    color: var(--text-light);
    line-height: 1.45;
    margin: 2px 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Lieu */
.agenda-item__lieu {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: .68rem;
    color: var(--text-light);
    margin-top: 3px;
}
.agenda-item__lieu svg { flex-shrink: 0; color: var(--blue); opacity: .7; }

/* Séparateur — inutile avec la timeline, masqué */
.agenda-divider { display: none; }

/* Vide */
.agenda-empty {
    font-size: .8rem;
    color: var(--text-light);
    font-style: italic;
    padding: 8px 0 4px;
}
.agenda-empty a { color: var(--blue); }

/* ── Pied ── */
.agenda-footer {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    text-align: center;
}
.agenda-voir-tout {
    font-size: .72rem;
    font-weight: 700;
    color: var(--blue);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .05em;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: gap .2s;
}
.agenda-voir-tout:hover { color: var(--blue-dark); gap: 7px; }

/* Badge désactivé (remplacé par date inline) */
.agenda-badge { display: none; }

/* ════════════════════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
    .actu-agenda-wrapper {
        grid-template-columns: 1fr 270px;
        gap: 2rem;
    }
}
@media (max-width: 900px) {
    .actu-agenda-wrapper {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .actu-agenda-col {
        padding: 1.2rem;
    }
    .agenda-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0 2rem;
        padding-left: 0;
    }
    .agenda-list::before { display: none; }
    .agenda-item { padding-left: 0; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
    .agenda-item::before { display: none; }
    .actu-main-col .actu-card-v2__excerpt { display: block; }
    .actu-main-col .actu-card-v2__photo { height: 165px; }
}
@media (max-width: 600px) {
    .actu-main-col .actu-cards-3 { grid-template-columns: 1fr; }
    .agenda-list { grid-template-columns: 1fr; }
    .actu-main-col .actu-card-v2__excerpt { display: block; }
}

/* ════════════════════════════════════════════════════════
   CARTES DOCTORANTS — GIRMEC v15d
════════════════════════════════════════════════════════ */

.girmec-doctors-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

/* ── Carte doctorant ── */
.doctor-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--sh);
    display: flex;
    flex-direction: column;
    transition: box-shadow .25s, transform .25s;
}
.doctor-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(0,0,0,.11);
    border-color: var(--blue-light);
}

/* ── Photo médaillon centré ── */
.doctor-card__photo-wrap {
    display: flex;
    justify-content: center;
    padding: 1.4rem 1rem .8rem;
    background: linear-gradient(160deg, var(--blue-deep) 0%, var(--blue) 100%);
    position: relative;
    flex-shrink: 0;
}
.doctor-card__photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    object-position: top center;
    border: 3px solid rgba(255,255,255,.35);
    display: block;
}
.doctor-card__photo-placeholder {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
    border: 3px solid rgba(255,255,255,.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--fh);
    font-size: 2.2rem;
    font-weight: 700;
    color: rgba(255,255,255,.6);
}

/* ── Corps ── */
.doctor-card__body {
    display: flex;
    flex-direction: column;
    padding: 1rem 1.1rem 1.1rem;
    gap: .4rem;
    flex: 1;
}
.doctor-card__name {
    font-family: var(--fh);
    font-size: .97rem;
    font-weight: 700;
    color: var(--blue-deep);
    margin: 0;
    line-height: 1.25;
}
.doctor-card__badge {
    display: inline-block;
    font-size: .63rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--blue);
    background: var(--blue-light);
    padding: .12rem .65rem;
    border-radius: 20px;
    align-self: flex-start;
}

/* ── Sujet de thèse ── */
.doctor-card__sujet {
    margin-top: .35rem;
    padding: .65rem .75rem;
    background: var(--off);
    border-left: 3px solid var(--blue);
    border-radius: 0 6px 6px 0;
}
.doctor-card__sujet-label {
    display: block;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-light);
    margin-bottom: .3rem;
}
.doctor-card__sujet-text {
    font-size: .8rem;
    color: var(--text);
    line-height: 1.55;
    margin: 0;
    font-style: italic;
}

/* ── Méta (directeur, année, email) ── */
.doctor-card__meta {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    margin-top: .4rem;
}
.doctor-card__meta-item {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .74rem;
    color: var(--text-light);
    line-height: 1.3;
}
.doctor-card__meta-item svg { flex-shrink: 0; color: var(--blue); opacity: .7; }
.doctor-card__email {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .74rem;
    color: var(--blue);
    text-decoration: none;
    word-break: break-all;
}
.doctor-card__email:hover { text-decoration: underline; }
.doctor-card__email svg { flex-shrink: 0; }

/* Responsive */
@media (max-width: 900px) {
    .girmec-doctors-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .girmec-doctors-grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════
   REDESIGN GLOBAL v16 — Surcharges complémentaires
   Police Inter + DM Serif Display, palette épurée
════════════════════════════════════════════════════════ */

/* ── Liens nav footer ── */
.footer-col ul li a,.footer-col .menu li a {
    color: rgba(255,255,255,.45);
    font-size: .8rem;
}
.footer-col ul li a:hover,.footer-col .menu li a:hover {
    color: rgba(255,255,255,.85);
    padding-left: 0;
}

/* ── Section head : trait gauche plutôt que centré ── */
.section-head--left { text-align: left; }
.section-head--left .section-line { margin: .75rem 0 0; }

/* ── Badge nav count ── */
.girmec-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--blue-light);
    color: var(--blue);
    border-radius: 20px;
    font-size: .65rem;
    font-weight: 700;
    min-width: 20px;
    height: 18px;
    padding: 0 .4rem;
    line-height: 1;
}
.girmec-tab.active .girmec-tab-count {
    background: rgba(255,255,255,.2);
    color: #fff;
}

/* ── Cartes membres GIRMEC : bord-radius homogène ── */
.member-card {
    border-radius: var(--r-xl) !important;
    border-color: var(--border-light) !important;
}
.member-card:hover {
    border-color: var(--border) !important;
}
.member-card__identity {
    border-bottom-color: var(--border-light) !important;
}
.member-card__acc-toggle {
    color: var(--text-muted) !important;
}
.member-card__acc-toggle:hover { color: var(--blue) !important; }

/* ── Accordéon agenda ── */
.actu-agenda-col {
    border-radius: var(--r-xl) !important;
    border-color: var(--border-light) !important;
    background: var(--off2) !important;
}
.agenda-badge {
    background: var(--blue) !important;
    border-radius: var(--r) !important;
}
.agenda-underline { background: var(--blue) !important; }
.agenda-title { color: var(--blue-deep) !important; }

/* ── Cartes formations fcard ── */
.fcard {
    border-color: var(--border-light) !important;
    border-radius: var(--r-lg) !important;
}
.fcard:hover { border-color: var(--border) !important; }

/* ── Section page hero homogène ── */
.page-hero { background: linear-gradient(130deg, #060F24 0%, var(--blue-deep) 60%, #1a4894 100%) !important; }

/* ── Mise en évidence des nouveaux boutons slide ── */
.slide__btns { gap: .75rem; }

/* ── Transition générale plus douce ── */
* { transition-timing-function: cubic-bezier(.4,0,.2,1); }

/* ── Selection text ── */
::selection { background: var(--blue-light); color: var(--blue-deep); }

/* ── Scrollbar discrète (webkit) ── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--blue-mid); }



/* ════════════════════════════════════════════════════════
   SECTION FORMATIONS — Fond bleu clair transparent
════════════════════════════════════════════════════════ */
.cesti-section--blue {
    background:
        linear-gradient(180deg, rgba(21,96,189,.05) 0%, rgba(235,242,252,.6) 50%, rgba(235,242,252,.25) 100%);
    position: relative;
    overflow: hidden;
}
.cesti-section--blue::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 65% 55% at 8% 15%, rgba(21,96,189,.07) 0%, transparent 55%),
        radial-gradient(ellipse 55% 65% at 92% 85%, rgba(21,96,189,.05) 0%, transparent 55%);
    pointer-events: none;
    z-index: 0;
}
.cesti-section--blue > .container { position: relative; z-index: 1; }


/* ════════════════════════════════════════════════════════
   FEATURE STORIES — Licences (style UCLouvain)
════════════════════════════════════════════════════════ */
.fs-list {
    display: flex;
    flex-direction: column;
    gap: 4.5rem;
    margin-top: 1.75rem;
}

/* ── Ligne feature — portrait 2:3 ── */
.fs-item {
    display: grid;
    grid-template-columns: 420px 1fr;  /* colonne image largeur fixe */
    gap: 4rem;
    align-items: center;
}
.fs-item--rev {
    direction: rtl;
}
.fs-item--rev > * {
    direction: ltr;
}

/* ── Bloc image : ratio portrait 2:3 (= 4480×6720px) ── */
.fs-media {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(7,37,90,.18);
    flex-shrink: 0;
    width: 100%;
    /* aspect-ratio 2:3 = portrait plein, aucun rognage */
    aspect-ratio: 2 / 3;
}
.fs-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    transition: transform .6s ease;
}
.fs-item:hover .fs-img {
    transform: scale(1.03);
}
.fs-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fs-placeholder span {
    font-size: 4.5rem;
    opacity: .3;
    user-select: none;
}

/* Angle géométrique (identique UCLouvain) */
.fs-corner {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 48px;
    height: 48px;
    background: var(--blue-light);
    clip-path: polygon(0 0, 0 100%, 100% 100%);
    z-index: 2;
}
.fs-item--rev .fs-corner {
    left: auto;
    right: 0;
    clip-path: polygon(100% 0, 0 100%, 100% 100%);
}

/* ── Bloc texte ── */
.fs-body {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.fs-tag {
    display: inline-block;
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--blue);
    background: var(--blue-light);
    padding: .2rem .8rem;
    border-radius: 20px;
    align-self: flex-start;
}
.fs-title {
    font-family: var(--fh);
    font-size: clamp(1.5rem, 2.8vw, 1.9rem);
    color: var(--blue-deep);
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -.03em;
    margin: 0;
}
.fs-meta {
    display: flex;
    gap: 1.2rem;
    flex-wrap: wrap;
}
.fs-meta-i {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .76rem;
    color: var(--text-light);
    font-weight: 500;
}
.fs-meta-i svg { color: var(--blue); opacity: .7; flex-shrink: 0; }
.fs-desc {
    font-size: .9rem;
    color: var(--text-light);
    line-height: 1.78;
    margin: 0;
}
.fs-desc--long{font-size:.97rem;color:var(--text-light);line-height:1.85;}
.fs-desc--long p{margin-bottom:1.3rem;}
.fs-desc--long p:last-child{margin-bottom:0;}
.fs-modules {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
.fs-module {
    font-size: .68rem;
    font-weight: 600;
    color: var(--blue-deep);
    background: rgba(21,96,189,.07);
    border: 1px solid var(--border-light);
    padding: .2rem .7rem;
    border-radius: 20px;
    line-height: 1.5;
}
/* CTA — bouton arrondi bleu (comme UCLouvain) */
.fs-cta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: .25rem;
    background: var(--blue);
    color: #fff;
    padding: .75rem 1.65rem;
    border-radius: 40px;
    font-size: .84rem;
    font-weight: 600;
    text-decoration: none;
    align-self: flex-start;
    letter-spacing: .01em;
    transition: background .22s, transform .22s, box-shadow .22s;
}
.fs-cta:hover {
    background: var(--blue-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(21,96,189,.3);
}
.fs-cta svg { transition: transform .2s; flex-shrink: 0; }
.fs-cta:hover svg { transform: translateX(4px); }


/* ════════════════════════════════════════════════════════
   CARTES VERTICALES — Master & Doctorat
════════════════════════════════════════════════════════ */
.vcards-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.75rem;
    margin-top: 1rem;
}
.vcard {
    background: var(--white);
    border: 1px solid var(--border-light);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--sh);
    display: flex;
    flex-direction: column;
    transition: transform .22s, box-shadow .22s, border-color .22s;
}
.vcard:hover {
    transform: translateY(-5px);
    box-shadow: var(--sh2);
    border-color: var(--border);
}
.vcard__head {
    position: relative;
    min-height: 210px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
}
.vcard__bg {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    opacity: .28;
    transition: opacity .3s, transform .5s;
}
.vcard:hover .vcard__bg { opacity: .38; transform: scale(1.04); }
.vcard__head-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.45) 0%, transparent 65%);
}
.vcard__head-inner {
    position: relative;
    z-index: 2;
    padding: 1.4rem 1.5rem;
}
.vcard__badge {
    display: inline-block;
    background: rgba(255,255,255,.16);
    color: #fff;
    border: 1px solid rgba(255,255,255,.26);
    padding: .13rem .7rem;
    border-radius: 20px;
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-bottom: .55rem;
}
.vcard__title {
    font-family: var(--fh);
    font-size: 1.25rem;
    color: #fff;
    line-height: 1.18;
    font-weight: 700;
    letter-spacing: -.025em;
    margin: 0;
}
.vcard__body {
    padding: 1.3rem 1.5rem 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.vcard__tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.vcard__tag {
    font-size: .7rem;
    color: var(--text-light);
    background: var(--off2);
    border: 1px solid var(--border-light);
    padding: .14rem .6rem;
    border-radius: 20px;
}
.vcard__desc {
    font-size: .86rem;
    color: var(--text-light);
    line-height: 1.68;
    flex: 1;
    margin: 0;
}
.vcard__cta {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    font-weight: 600;
    color: var(--blue);
    text-decoration: none;
    align-self: flex-start;
    margin-top: .2rem;
    transition: gap .2s, color .2s;
}
.vcard__cta svg { flex-shrink: 0; transition: transform .2s; }
.vcard__cta:hover { color: var(--blue-dark); gap: .55rem; }
.vcard__cta:hover svg { transform: translateX(3px); }


/* ── Responsive ── */
@media (max-width: 960px) {
    .fs-item { grid-template-columns: 1fr; gap: 1.5rem; direction: ltr !important; }
    .fs-item--rev { direction: ltr !important; }
    .fs-item--rev > * { direction: ltr; }
    .fs-media { aspect-ratio: 4/3; width: 100%; }
    .fs-cta { align-self: stretch; justify-content: center; border-radius: 12px; }
}
@media (max-width: 640px) {
    .vcards-row { grid-template-columns: 1fr; }
    .fs-list { gap: 2.5rem; }
    .vcard__head { min-height: 160px; }
}

/* ════════════════════════════════════════════════════════
   BLOC FORMATION CONTINUE — v17h
════════════════════════════════════════════════════════ */
.fc-bloc {
    background: var(--white);
    border: 1.5px solid var(--border-light);
    border-radius: 20px;
    padding: 2rem 2rem 2.2rem;
    box-shadow: 0 2px 16px rgba(21,96,189,.06);
    position: relative;
    overflow: hidden;
}
/* Filet de couleur en haut */
.fc-bloc::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--blue), var(--accent));
    border-radius: 20px 20px 0 0;
}

.fc-bloc__header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--border-light);
}
.fc-bloc__icon {
    width: 44px;
    height: 44px;
    background: var(--blue-light);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
}
.fc-bloc__titre {
    font-family: var(--fh);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--blue-deep);
    margin: 0;
    letter-spacing: -.02em;
}
.fc-bloc__sous {
    font-size: .78rem;
    color: var(--text-light);
    margin: 2px 0 0;
}
.fc-bloc__grid {
    margin-top: 0 !important;
}

/* ── Photos dans les feature stories (licences) ── */
/* fs-img défini plus haut */

/* ── Photos dans les vcards (master/doctorat) ── */
.vcard__bg {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center top;
    opacity: .32;
    transition: opacity .3s, transform .5s;
}
.vcard:hover .vcard__bg { opacity: .42; transform: scale(1.04); }

/* ── Photos dans formation-card (cert/fadp) ── */
.formation-card__thumb-img {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    opacity: .25;
    transition: opacity .3s;
}
.formation-card--advanced:hover .formation-card__thumb-img { opacity: .35; }
.formation-card__header-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.35) 0%, transparent 60%);
}

/* ════════════════════════════════════════════════════════
   SECTION VIDÉO — Cartes paysage style presse (v17l)
   Remplacement des smartphones verticaux
════════════════════════════════════════════════════════ */

/* ── En-tête "L'actu en vidéo" centré avec lignes ── */
.actu-reels-header {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    margin-bottom: 1.75rem;
    justify-content: center;
}
.actu-reels-header__line {
    flex: 1;
    height: 1px;
    background: var(--border);
    max-width: 280px;
}
.actu-reels-header__title {
    font-family: var(--fh);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--blue-deep);
    margin: 0;
    white-space: nowrap;
    letter-spacing: -.03em;
}

/* ── Grille 5 cartes ── */
.vid-cards-row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
}

/* ── Carte vidéo ── */
.vid-card {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    cursor: pointer;
}
.vid-card--empty { opacity: .4; pointer-events: none; }

/* Vignette */
.vid-card__thumb {
    position: relative;
    display: block;
    border-radius: 10px;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #1a2a3e;
    text-decoration: none;
    flex-shrink: 0;
}
.vid-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.vid-card:hover .vid-card__img { transform: scale(1.05); }

.vid-card__no-thumb {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1a2a4e, #0d1e3a);
}

/* Dégradé bas sur la vignette */
.vid-card__grad {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 55%;
    background: linear-gradient(to top, rgba(0,0,0,.65) 0%, transparent 100%);
    pointer-events: none;
}

/* Bouton play + durée */
.vid-card__play {
    position: absolute;
    bottom: .6rem;
    left: .6rem;
    display: flex;
    align-items: center;
    gap: .35rem;
    color: #fff;
    z-index: 2;
}
.vid-card__play svg {
    width: 14px;
    height: 14px;
    background: rgba(255,255,255,.2);
    border-radius: 50%;
    padding: 3px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    flex-shrink: 0;
}
.vid-card__dur {
    font-size: .72rem;
    font-weight: 600;
    color: rgba(255,255,255,.92);
    letter-spacing: .02em;
}

/* ── Corps : source + titre ── */
.vid-card__body {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}
.vid-card__source {
    font-size: .67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--blue);
}
.vid-card__title {
    font-size: .83rem;
    font-weight: 500;
    color: var(--text);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.vid-card__title a {
    color: inherit;
    text-decoration: none;
}
.vid-card__title a:hover { color: var(--blue); }

/* ── Responsive ── */
@media (max-width: 1100px) {
    .vid-cards-row { grid-template-columns: repeat(4, 1fr); }
    .vid-card:last-child { display: none; }
}
@media (max-width: 800px) {
    .vid-cards-row {
        grid-template-columns: repeat(2, 1fr);
        gap: .75rem;
    }
    .vid-card:nth-child(n+5) { display: none; }
    .actu-reels-header__line { display: none; }
}
@media (max-width: 480px) {
    .vid-cards-row { grid-template-columns: 1fr; }
    .vid-card:nth-child(n+4) { display: none; }
}
