

    /* ─── RESET & VARIABLES ─── */

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {

      --navy:  #1a1a2e;

      --navy2: #162333;

      --navy3: #1e2f42;

      --gold:   #2d65af;

      --gold2:  #2d65af;

      --white: #ffffff;

      --light: #f5f4f0;

      --grey:  #8a8f99;

      --text:  #1a1a2e;

      --fd: 'Cormorant Garamond', Georgia, serif;

      --fb: 'Barlow', sans-serif;

    }

    html { scroll-behavior: smooth; }

    body { font-family: var(--fb); color: var(--text); background: var(--white); overflow-x: hidden; }

    a { text-decoration: none; }

    img { display: block; max-width: 100%; }



    /* ─── NAVBAR ─── */

    .navbar {

      position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;

      display: flex; align-items: center; justify-content: space-between;

      padding: 0 60px; height: 72px;

      background: rgba(255, 255, 255, 0.97); backdrop-filter: blur(10px);

      border-bottom: 1px solid rgba(184,150,62,0.18);

    }

    .navbar-brand { font-family: var(--fd); font-size: 1.35rem; font-weight: 600; color: var(--white); letter-spacing: 2px; }

    .navbar-brand span { color: var(--gold); }

    .nav-links { list-style: none; display: flex; gap: 32px; }

    .nav-links a { font-size: 0.74rem; font-weight: 500; color: rgba(20, 20, 20, 0.7); letter-spacing: 2px; text-transform: uppercase; transition: color .2s; }

    .nav-links a:hover, .nav-links a.active { color: var(--gold); }

    .nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }

    .nav-toggle span { display: block; width: 24px; height: 2px; background: var(--white); }



    /* ─── HERO ACADEMY ─── */

    .academy-hero {

      height: 100vh; min-height: 620px; position: relative;

      display: flex; align-items: center;

      background: var(--navy);

      overflow: hidden;

      margin-top: 0;

    }

    .hero-bg-lines {

      position: absolute; inset: 0; z-index: 0;

      background-image:

        linear-gradient(rgba(184,150,62,0.06) 1px, transparent 1px),

        linear-gradient(90deg, rgba(184,150,62,0.06) 1px, transparent 1px);

      background-size: 60px 60px;

    }

    .hero-bg-gradient {

      position: absolute; inset: 0; z-index: 1;

      background: radial-gradient(ellipse 80% 60% at 60% 50%, rgba(184,150,62,0.08) 0%, transparent 70%),

                  linear-gradient(135deg, rgba(13,27,42,0.9) 0%, rgba(22,35,51,0.6) 100%);

    }

    .hero-content { position: relative; z-index: 2; padding: 0 10%; max-width: 900px; }

    .academy-badge {

      display: inline-flex; align-items: center; gap: 10px;

      border: 1px solid rgba(184,150,62,0.4); padding: 8px 18px;

      margin-bottom: 28px;

    }

    .academy-badge span { font-size: 0.68rem; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); font-weight: 500; }

    .academy-badge::before { content:''; display:block; width:6px; height:6px; background:var(--gold); border-radius:50%; }

    .hero-content h1 {

      font-family: var(--fd); font-size: clamp(3rem, 7vw, 6rem);

      font-weight: 300; color: var(--white); line-height: 1.05; letter-spacing: -0.5px;

    }

    .hero-content h1 em { color: var(--gold); font-style: italic; display: block; }

    .hero-content .sub {

      margin-top: 22px; font-size: 1.05rem; color: rgba(255,255,255,0.6);

      line-height: 1.8; max-width: 560px; font-weight: 300;

    }

    .hero-stats {

      display: flex; gap: 48px; margin-top: 52px;

      padding-top: 40px; border-top: 1px solid rgba(255,255,255,0.1);

    }

    .hero-stat strong {

      font-family: var(--fd); font-size: 2.8rem; color: var(--gold);

      display: block; font-weight: 300; line-height: 1;

    }

    .hero-stat span { font-size: 0.72rem; color: rgba(255,255,255,0.45); letter-spacing: 2px; text-transform: uppercase; margin-top: 6px; display: block; }

    .hero-scroll {

      position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%);

      z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 8px;

    }

    .hero-scroll span { font-size: 0.65rem; letter-spacing: 3px; text-transform: uppercase; color: rgba(255,255,255,0.3); }

    .scroll-line { width: 1px; height: 40px; background: linear-gradient(to bottom, var(--gold), transparent); animation: scrolldown 1.8s ease-in-out infinite; }

    @keyframes scrolldown { 0%,100%{opacity:0.3;transform:scaleY(0.6)} 50%{opacity:1;transform:scaleY(1)} }



    /* ─── SECTION COMMONS ─── */

    section { padding: 100px 10%; }

    .stag { font-size: 0.68rem; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 12px; display: block; }

    .stit { font-family: var(--fd); font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 300; color: var(--navy); line-height: 1.2; }

    .stit em { color: var(--gold); font-style: normal; }

    .stit-white { color: var(--white); }

    .divider { width: 48px; height: 2px; background: var(--gold); margin: 20px 0; }

    .ssub { font-size: 0.95rem; color: var(--grey); line-height: 1.85; max-width: 620px; margin-top: 14px; }



    /* ─── INTRO ACADEMY ─── */

    .intro-academy { background: var(--light); }

    .intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }

    .intro-img { position: relative; }

    .intro-img img { width: 100%; height: 480px; object-fit: cover; position: relative; z-index: 1; }

    .intro-img::before { content:''; position:absolute; bottom:-16px; right:-16px; width:50%; height:50%; border: 2px solid var(--gold); z-index: 0; }

    .intro-text p { font-size: 0.95rem; line-height: 1.95; color: #3a3f4f; margin-bottom: 16px; }

    .public-list { margin-top: 28px; }

    .public-list h4 { font-family: var(--fd); font-size: 1.1rem; color: var(--navy); margin-bottom: 14px; }

    .public-tags { display: flex; flex-wrap: wrap; gap: 8px; }

    .public-tag { padding: 7px 16px; border: 1px solid rgba(184,150,62,0.35); font-size: 0.74rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--navy); background: var(--white); transition: background .2s, color .2s; }

    .public-tag:hover { background: var(--gold); color: var(--white); border-color: var(--gold); }



    /* ─── SÉMINAIRES RÉALISÉS ─── */

    .seminaires { background: var(--white); }

    .seminaires-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 52px; }

    .sem-card { border: 1px solid #e8e6e0; border-top: 3px solid var(--gold); overflow: hidden; transition: box-shadow .25s, transform .2s; }

    .sem-card:hover { box-shadow: 0 16px 48px rgba(0,0,0,0.1); transform: translateY(-4px); }

    .sem-card-img { height: 220px; overflow: hidden; background: var(--navy2); }

    .sem-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }

    .sem-card:hover .sem-card-img img { transform: scale(1.06); }

    .sem-card-body { padding: 28px 24px; }

    .sem-card-body .type { font-size: 0.67rem; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: 10px; }

    .sem-card-body h3 { font-family: var(--fd); font-size: 1.15rem; color: var(--navy); line-height: 1.4; margin-bottom: 12px; }

    .sem-card-body p { font-size: 0.84rem; color: var(--grey); line-height: 1.75; }



    /* ─── MODULES FORMATIONS ─── */

    .modules { background: var(--navy); }

    .modules-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 56px; }

    .module-card {

      background: var(--navy2); padding: 42px 32px;

      position: relative; overflow: hidden; transition: background .25s;

    }

    .module-card::after {

      content:''; position:absolute; bottom:0; left:0;

      width:100%; height:3px; background: var(--gold);

      transform:scaleX(0); transform-origin:left; transition:transform .35s;

    }

    .module-card:hover { background: var(--navy3); }

    .module-card:hover::after { transform:scaleX(1); }

    .module-num { font-family: var(--fd); font-size: 3.5rem; color: rgba(184,150,62,0.12); font-weight: 300; display: block; line-height: 1; margin-bottom: 6px; }

    .module-card h3 { font-family: var(--fd); font-size: 1.25rem; color: var(--white); margin-bottom: 16px; font-weight: 400; }

    .module-card ul { padding-left: 0; list-style: none; }

    .module-card ul li {

      font-size: 0.83rem; color: rgba(255,255,255,0.48); line-height: 1.85;

      padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,0.05);

      display: flex; align-items: flex-start; gap: 8px;

    }

    .module-card ul li::before { content:'—'; color: var(--gold); flex-shrink: 0; font-size: 0.75rem; margin-top: 2px; }



    /* ─── CONFÉRENCE MONDIALE ─── */

    .conference { background: var(--light); }

    .conf-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }

    .conf-img { position: relative; }

    .conf-img img { width: 100%; height: 400px; object-fit: cover; }

    .conf-img .badge-conf {

      position: absolute; bottom: -20px; left: -20px;

      background: var(--gold); color: var(--white);

      padding: 22px 26px; font-family: var(--fd); font-size: 1.1rem; font-weight: 400;

      max-width: 240px; line-height: 1.3; z-index: 2;

    }

    .conf-text p { font-size: 0.95rem; line-height: 1.9; color: #3a3f4f; margin-bottom: 16px; }

    .conf-meta { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; }

    .conf-meta-item { display: flex; align-items: flex-start; gap: 14px; }

    .conf-meta-item .label { font-size: 0.68rem; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); flex-shrink: 0; margin-top: 3px; min-width: 80px; }

    .conf-meta-item .val { font-size: 0.88rem; color: #3a3f4f; line-height: 1.6; }



    /* ─── PROGRAMME DÉTAILLÉ ─── */

    .programme { background: var(--white); }

    .prog-tabs { display: flex; gap: 0; margin-top: 48px; flex-wrap: wrap; }

    .prog-tab {

      padding: 12px 26px; border: 1px solid #d8d5ce; border-right: none;

      font-size: 0.72rem; letter-spacing: 2px; text-transform: uppercase;

      cursor: pointer; background: var(--white); color: var(--grey);

      transition: .2s; font-family: var(--fb); font-weight: 500;

    }

    .prog-tab:last-child { border-right: 1px solid #d8d5ce; }

    .prog-tab.active { background: var(--navy); color: var(--white); border-color: var(--navy); }

    .prog-tab:hover:not(.active) { background: var(--light); color: var(--navy); }

    .prog-panel { display: none; padding: 40px; border: 1px solid #d8d5ce; border-top: 3px solid var(--gold); margin-top: -1px; }

    .prog-panel.active { display: block; }

    .prog-panel h4 { font-family: var(--fd); font-size: 1.4rem; color: var(--navy); margin-bottom: 10px; }

    .prog-panel .prog-desc { font-size: 0.92rem; color: var(--grey); line-height: 1.8; margin-bottom: 28px; }

    .prog-items { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

    .prog-item {

      display: flex; align-items: flex-start; gap: 12px;

      padding: 14px 16px; background: var(--light);

      border-left: 2px solid var(--gold);

    }

    .prog-item p { font-size: 0.84rem; color: #3a3f4f; line-height: 1.6; }



    /* ─── GALERIE PHOTOS ─── */

    .galerie { background: var(--light); }

    .galerie-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 48px; flex-wrap: wrap; }

    .galerie-intro .ssub { margin-top: 0; }



    /* Masonry-style grid */

    .photo-grid {

      display: grid;

      grid-template-columns: repeat(4, 1fr);

      grid-template-rows: auto;

      gap: 10px;

    }

    .photo-item {

      position: relative; overflow: hidden; cursor: pointer;

      background: var(--navy2);

    }

    .photo-item img {

      width: 100%; height: 100%; object-fit: cover; display: block;

      transition: transform .55s cubic-bezier(.25,.46,.45,.94), filter .4s;

      filter: brightness(0.9);

    }

    .photo-item:hover img { transform: scale(1.08); filter: brightness(1); }

    .photo-overlay {

      position: absolute; inset: 0;

      background: linear-gradient(to top, rgba(13,27,42,0.85) 0%, transparent 55%);

      opacity: 0; transition: opacity .35s;

      display: flex; align-items: flex-end; padding: 18px 16px;

    }

    .photo-item:hover .photo-overlay { opacity: 1; }

    .photo-overlay-text { color: var(--white); }

    .photo-overlay-text span { font-size: 0.66rem; letter-spacing: 2.5px; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: 4px; }

    .photo-overlay-text p { font-family: var(--fd); font-size: 1rem; font-weight: 300; line-height: 1.3; }

    .photo-zoom-icon {

      position: absolute; top: 12px; right: 12px;

      width: 32px; height: 32px; background: rgba(184,150,62,0.9);

      display: flex; align-items: center; justify-content: center;

      opacity: 0; transition: opacity .3s; font-size: 0.85rem; color: white;

    }

    .photo-item:hover .photo-zoom-icon { opacity: 1; }



    /* Disposition asymétrique */

    .photo-item.large   { grid-column: span 2; grid-row: span 2; }

    .photo-item.tall    { grid-row: span 2; }

    .photo-item.wide    { grid-column: span 2; }

    .photo-item.regular { grid-column: span 1; grid-row: span 1; }



    /* Hauteurs fixes par rangée */

    .photo-grid { grid-auto-rows: 200px; }



    /* LIGHTBOX */

    .lightbox {

      position: fixed; inset: 0; z-index: 9000;

      background: rgba(13,27,42,0.97); backdrop-filter: blur(12px);

      display: none; align-items: center; justify-content: center;

    }

    .lightbox.open { display: flex; }

    .lb-content { position: relative; max-width: 90vw; max-height: 90vh; }

    .lb-content img { max-width: 90vw; max-height: 85vh; object-fit: contain; display: block; }

    .lb-caption { margin-top: 14px; text-align: center; }

    .lb-caption span { font-size: 0.68rem; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: 4px; }

    .lb-caption p { font-family: var(--fd); font-size: 1.1rem; color: var(--white); font-weight: 300; }

    .lb-close {

      position: absolute; top: -40px; right: 0;

      background: none; border: none; color: rgba(255,255,255,0.6);

      font-size: 1.4rem; cursor: pointer; transition: color .2s;

    }

    .lb-close:hover { color: var(--gold); }

    .lb-arrow {

      position: fixed; top: 50%; transform: translateY(-50%);

      background: rgba(184,150,62,0.2); border: 1px solid rgba(184,150,62,0.4);

      color: var(--white); width: 52px; height: 52px;

      display: flex; align-items: center; justify-content: center;

      cursor: pointer; font-size: 1.3rem; transition: background .2s;

      z-index: 9001;

    }

    .lb-arrow:hover { background: var(--gold); }

    .lb-arrow.lb-prev { left: 24px; }

    .lb-arrow.lb-next { right: 24px; }

    .lb-counter { position: fixed; bottom: 28px; left: 50%; transform: translateX(-50%); font-size: 0.72rem; letter-spacing: 3px; color: rgba(255,255,255,0.4); z-index: 9001; }



    @media (max-width: 1100px) {

      .photo-grid { grid-template-columns: repeat(3, 1fr); }

      .photo-item.large { grid-column: span 2; }

    }

    @media (max-width: 768px) {

      .photo-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; }

      .photo-item.large, .photo-item.wide { grid-column: span 2; }

      .photo-item.tall { grid-row: span 1; }

      .lb-arrow { display: none; }

    }



    /* ─── PARTENAIRES ─── */

    .partenaires { background: var(--navy); padding: 70px 10%; }

    .partenaires h3 { font-family: var(--fd); font-size: 1.5rem; color: var(--white); font-weight: 300; text-align: center; margin-bottom: 8px; }

    .partenaires p { text-align: center; color: rgba(255,255,255,0.45); font-size: 0.88rem; margin-bottom: 44px; }

    .partner-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

    .partner-tag { padding: 10px 22px; border: 1px solid rgba(184,150,62,0.25); font-size: 0.78rem; color: rgba(255,255,255,0.55); letter-spacing: 1.5px; text-transform: uppercase; transition: border-color .2s, color .2s; }

    .partner-tag:hover { border-color: var(--gold); color: var(--gold); }



    /* ─── INSCRIPTION CTA ─── */

    .inscription { background: var(--gold); padding: 80px 10%; }

    .insc-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }

    .insc-text h2 { font-family: var(--fd); font-size: clamp(2rem, 4vw, 3rem); color: var(--white); font-weight: 300; line-height: 1.2; margin-bottom: 18px; }

    .insc-text p { font-size: 0.95rem; color: rgba(255,255,255,0.8); line-height: 1.8; }

    .insc-form { background: var(--white); padding: 40px; }

    .insc-form h4 { font-family: var(--fd); font-size: 1.3rem; color: var(--navy); margin-bottom: 24px; }

    .insc-form label { display: block; font-size: 0.68rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--navy); margin-bottom: 5px; margin-top: 14px; }

    .insc-form input, .insc-form select, .insc-form textarea {

      width: 100%; border: 1px solid #d8d5ce; background: var(--light);

      padding: 11px 14px; font-family: var(--fb); font-size: 0.88rem; color: var(--text);

      outline: none; transition: border-color .2s;

    }

    .insc-form input:focus, .insc-form select:focus, .insc-form textarea:focus { border-color: var(--navy); }

    .insc-form textarea { min-height: 90px; resize: vertical; }

    .form-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

    .btn-insc { margin-top: 20px; width: 100%; padding: 14px; background: var(--navy); color: var(--white); border: none; font-family: var(--fb); font-size: 0.72rem; letter-spacing: 2.5px; text-transform: uppercase; cursor: pointer; transition: background .25s; }

    .btn-insc:hover { background: var(--gold); }

    #inscSuccess { display:none; margin-top:16px; padding:14px 18px; border-left:3px solid var(--navy); background:var(--light); font-size:0.88rem; color:var(--navy); line-height:1.7; }



    /* ─── FOOTER ─── */

    footer { background: var(--navy); padding: 60px 10% 28px; }

    .footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 44px; padding-bottom: 44px; border-bottom: 1px solid rgba(255,255,255,0.08); }

    .footer-brand { font-family: var(--fd); font-size: 1.3rem; color: var(--white); letter-spacing: 2px; display: block; margin-bottom: 12px; }

    .footer-brand span { color: var(--gold); }

    .footer-desc { font-size: 0.82rem; color: rgba(255,255,255,0.4); line-height: 1.75; }

    .footer-col h5 { font-size: 0.66rem; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; }

    .footer-col ul { list-style: none; }

    .footer-col ul li { margin-bottom: 9px; }

    .footer-col ul li a { font-size: 0.82rem; color: rgba(255,255,255,0.45); transition: color .2s; }

    .footer-col ul li a:hover { color: var(--gold); }

    .footer-col p, .footer-col a { font-size: 0.82rem; color: rgba(255,255,255,0.45); line-height: 1.8; display: block; transition: color .2s; }

    .footer-col a:hover { color: var(--gold); }

    .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 22px; }

    .footer-bottom p { font-size: 0.72rem; color: rgba(255,255,255,0.25); }



    /* ─── RESPONSIVE ─── */

    @media (max-width: 1100px) {

      .navbar { padding: 0 32px; }

      section { padding: 70px 6%; }

      .modules-grid { grid-template-columns: 1fr 1fr; }

      .seminaires-grid { grid-template-columns: 1fr 1fr; }

      .footer-top { grid-template-columns: 1fr 1fr; }

      .intro-grid, .conf-inner, .insc-inner { grid-template-columns: 1fr; gap: 48px; }

      .prog-items { grid-template-columns: 1fr; }

    }

    @media (max-width: 768px) {

      .nav-links { display: none; flex-direction: column; position: fixed; top: 72px; left: 0; width: 100%; background: var(--navy); }

      .nav-links.open { display: flex; }

      .nav-links a { padding: 14px 28px; border-bottom: 1px solid rgba(133, 14, 14, 0.07); }

      .nav-toggle { display: flex; }

      .hero-stats { flex-wrap: wrap; gap: 28px; }

      .modules-grid, .seminaires-grid, .footer-top { grid-template-columns: 1fr; }

      .prog-tabs { flex-direction: column; }

      .prog-tab { border-right: 1px solid #d8d5ce; border-bottom: none; }

      .prog-tab:last-child { border-bottom: 1px solid #d8d5ce; }

      .conf-img .badge-conf { position: static; margin-top: 16px; }

      .form-row2 { grid-template-columns: 1fr; }

      .partenaires { padding: 50px 6%; }

      .inscription { padding: 60px 6%; }

    }

    /* Style pour le lien de la page active */
.navbar-dark .navbar-nav .nav-link.active {
    color: #333f92 !important; /* Remplacez par la couleur de votre choix (ex: jaune, bleu...) */
    font-weight: bold; /* Optionnel : met le texte en gras */
    border-bottom: 2px solid #333f92; /* Optionnel : ajoute une ligne sous le lien */
}
