*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg-primary:#FFFFFF;
  --bg-secondary:#F7F6FC;
  --bg-accent:#EEEDFE;
  --purple-primary:#534AB7;
  --purple-dark:#26215C;
  --purple-light:#AFA9EC;
  --white:#FFFFFF;
  --text-dark:#0A0A0F;
  --muted-dark:#4B4967;
  --muted-light:#8884AA;
  --border-light:#E8E6F5;
  --card-dark-surface:#FFFFFF;
  --card-dark-border:#E8E6F5;

  --void:var(--bg-primary);
  --indigo:var(--bg-accent);
  --purple:var(--purple-primary);
  --purple-xlight:var(--bg-accent);
  --white-text:var(--white);
  --off-white:var(--bg-secondary);
  --muted:var(--muted-light);
  --border:var(--border-light);

  --bg: var(--bg-primary);
  --surface: var(--white);
  --surface-soft: var(--bg-secondary);
  --primary: var(--purple-primary);
  --primary-soft: var(--purple-light);
  --primary-xlight: var(--bg-accent);
  --text: var(--text-dark);
  --text-on-dark: var(--white);
  --text-muted: var(--muted-light);
  --border-color: var(--border-light);
}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;font-weight:400;font-size:15px;line-height:1.75;color:var(--text-dark);background:var(--bg-primary);overflow-x:hidden}
main{display:block}
.skip-link{position:absolute;top:-40px;left:0;background:var(--purple-primary);color:var(--white);padding:8px 16px;z-index:9999;border-radius:0 0 8px 0;text-decoration:none;font-size:14px}
.skip-link:focus{top:0}
h1,h2,h3,h4{font-family:'DM Sans',sans-serif}
h1{font-weight:300;font-size:64px;line-height:1.1}
h2{font-weight:500;font-size:40px;line-height:1.2}
h3{font-weight:500;font-size:24px;line-height:1.3}
p,li,button,input,textarea,select{font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.75}
@media(max-width:768px){h1{font-size:38px}h2{font-size:28px}}
.label{font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:0.1em}
.body-text{font-weight:400;font-size:15px;line-height:1.75}
a{text-decoration:none;color:inherit}
*:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
img{max-width:100%;display:block}
button{font-family:'DM Sans',sans-serif;cursor:pointer;border:none}

/* NAV */
#nav{position:fixed;top:0;left:0;right:0;height:64px;background:rgba(255,255,255,0.96);backdrop-filter:blur(12px);border-bottom:0.5px solid rgba(83,74,183,0.18);z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 40px}
.nav-logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo-link{display:inline-flex}
.logo-img{max-height:38px;width:auto;display:block}
.logo-shapes{display:flex;align-items:center;gap:3px}

.page-loader{position:fixed;inset:0;background:rgba(255,255,255,0.95);z-index:5000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}
.page-loader.active{opacity:1;visibility:visible;pointer-events:auto}
.loader-content{display:flex;flex-direction:column;align-items:center;gap:18px;color:#0A0A0F;text-align:center}
.loader-logo{width:84px;height:auto;animation:loader-spin 1.4s linear infinite}
.loader-dots{display:flex;gap:10px}
.loader-dots span{width:12px;height:12px;border-radius:50%;background:#0A0A0F;opacity:.35;animation:dot-bounce 1s infinite ease-in-out}
.loader-dots span:nth-child(2){animation-delay:.15s}
.loader-dots span:nth-child(3){animation-delay:.3s}
@keyframes loader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes dot-bounce{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-8px);opacity:1}}
.logo-shapes .circle{width:14px;height:14px;border-radius:50%;background:var(--indigo)}
.logo-shapes .triangle{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:14px solid var(--purple)}
.logo-shapes .halfcirc{width:14px;height:7px;border-radius:14px 14px 0 0;background:var(--purple-light)}
.nav-wordmark{font-weight:500;font-size:13px;color:#fff;white-space:nowrap}
.nav-links{display:flex;gap:32px;list-style:none}
.nav-links a{font-size:13px;color:var(--text-dark);transition:color .2s}
.nav-links a:hover{color:var(--purple-primary)}
.nav-links a.active{border-bottom:2px solid var(--purple);padding-bottom:2px}
.nav-right{display:flex;align-items:center;gap:16px}
.btn-primary{background:var(--purple);color:#fff;border-radius:8px;height:36px;padding:0 20px;font-weight:500;font-size:13px;transition:all .2s;display:inline-flex;align-items:center}
.btn-primary:hover{background:var(--purple-dark);transform:scale(1.02)}
.btn-primary-lg{height:48px;padding:0 28px;font-size:15px;border-radius:8px}
.btn-outlined{border:0.5px solid var(--primary);color:var(--text);background:transparent;border-radius:8px;height:48px;padding:0 28px;font-weight:500;font-size:15px;display:inline-flex;align-items:center;transition:all .2s}
.btn-outlined:hover{border-color:var(--purple-dark);color:var(--purple-dark);background:rgba(83,74,183,0.08)}
.hamburger{display:none;background:none;color:var(--text);font-size:24px;line-height:1;padding:8px}
@media(max-width:1023px){
  .nav-links{display:none}
  .hamburger{display:block}
}
#mobile-menu{display:none;position:fixed;inset:0;background:var(--bg);z-index:2000;flex-direction:column;align-items:flex-start;justify-content:center;padding:40px}
#mobile-menu.open{display:flex}
.mobile-close{position:absolute;top:20px;right:20px;background:none;border:none;color:var(--text);font-size:28px;cursor:pointer}
.mobile-menu-links{list-style:none;display:flex;flex-direction:column;gap:24px}
.mobile-menu-links a{font-weight:300;font-size:32px;color:var(--text)}
.mobile-menu-links a:hover{color:var(--primary)}
.mobile-cta{margin-top:40px;width:100%;text-align:center;background:var(--purple);color:#fff;border-radius:8px;height:52px;font-size:16px;font-weight:500;display:flex;align-items:center;justify-content:center}

/* PAGES */
.page{display:none;padding-top:64px}
.page.active{display:block}

/* SECTION SPACING */
.section{padding:96px 0}
.section-sm{padding:80px 0}
@media(max-width:768px){.section{padding:64px 0}.section-sm{padding:48px 0}}
.container{max-width:1200px;margin:0 auto;padding:0 40px}
@media(max-width:768px){.container{padding:0 20px}}

/* HERO */
.hero{min-height:100vh;background:var(--bg-primary);display:flex;align-items:center;padding:100px 0 80px}
.hero-grid{display:grid;grid-template-columns:55% 45%;gap:60px;align-items:center}
@media(max-width:1023px){.hero-grid{grid-template-columns:1fr;gap:48px}}
.hero-eyebrow{color:var(--purple-primary);margin-bottom:20px}
.hero h1{color:var(--text-dark);margin-bottom:20px}
.hero-subline{color:var(--muted-dark);font-size:16px;margin-bottom:16px}
.hero-desc{color:var(--muted-dark);margin-bottom:36px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-divider{border:none;border-top:0.5px solid rgba(83,74,183,0.15);margin-top:64px}
.scroll-hint{text-align:center;padding:24px 0;color:rgba(83,74,183,0.5);font-size:13px;animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:.9}}

/* MASONRY GRID (hero + travaux) */
.hero-visual{display:grid;grid-template-columns:1fr 1fr;gap:16px;position:relative}
.hero-card{border-radius:12px;overflow:hidden;background:var(--indigo);cursor:pointer;transition:transform .2s}
.hero-card:hover{transform:scale(1.03)}
.hero-card img{width:100%;height:200px;object-fit:cover;display:block}
.hero-card:nth-child(2){margin-top:-32px}
.hero-card-stat{background:var(--purple);padding:20px;display:flex;align-items:center;justify-content:center;height:120px}
.hero-card-stat span{color:#fff;font-weight:500;font-size:14px}
.placeholder-img{background:linear-gradient(135deg,#D4C5F9 0%,var(--purple) 100%);height:200px;display:flex;align-items:center;justify-content:center;color:rgba(10,10,15,0.2);font-size:12px}

/* STATS STRIP */
.stats-strip{background:var(--indigo);padding:0}
.stats-inner{height:88px;display:flex;align-items:center;justify-content:center;gap:0}
@media(max-width:768px){.stats-inner{height:auto;flex-wrap:wrap;padding:32px 20px;gap:24px}}
.stat-item{flex:1;text-align:center;position:relative}
.stat-item+.stat-item::before{content:'';position:absolute;left:0;top:20%;bottom:20%;width:0.5px;background:rgba(83,74,183,0.15)}
@media(max-width:768px){.stat-item{flex:0 0 45%}.stat-item+.stat-item::before{display:none}}
.stat-number{font-weight:300;font-size:32px;color:var(--white);display:block}
.stat-label{display:block;color:var(--purple)}

/* WHO WE ARE */
.who-we-are-inner{display:grid;gap:40px;}
.who-we-are-header{text-align:center;max-width:700px;margin:0 auto;}
.who-we-are-logos{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:24px;flex-wrap:wrap;}
.who-we-are-logos img{max-height:72px;width:auto;object-fit:contain;}
.who-we-are-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.who-we-are-media img{width:100%;height:auto;border-radius:24px;object-fit:cover;}
.who-we-are-content{display:flex;flex-direction:column;gap:24px;justify-content:center;text-align:left;}
.who-we-are-content p{color:var(--text-muted);font-size:16px;line-height:1.9;}
.who-we-are-slider{margin-top:40px;}
.who-we-are-slide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.who-we-are-slide-card{border-radius:24px;overflow:hidden;background:var(--indigo);}
.who-we-are-slide-card img{width:100%;height:280px;object-fit:cover;display:block;}
.who-we-are-slider-dots{display:flex;justify-content:center;gap:10px;margin-top:18px;}
.who-we-are-dot{width:10px;height:10px;border-radius:50%;background:rgba(83,74,183,0.25);border:none;cursor:pointer;transition:all .2s ease;}
.who-we-are-dot.active{background:var(--purple);transform:scale(1.15);}
@media(max-width:1023px){.who-we-are-grid{grid-template-columns:1fr;}.who-we-are-content{text-align:center;}.who-we-are-content p{margin:0 auto;}.who-we-are-header{margin-bottom:20px;}.who-we-are-slide-grid{grid-template-columns:1fr;}.who-we-are-slide-card img{height:220px;}}
@media(max-width:768px){.who-we-are-logos{gap:16px;}.who-we-are-logos img{max-height:60px;}}

/* PROGRAMMES PREVIEW */
.prog-header{text-align:center;margin-bottom:56px}
.prog-header .label{color:var(--primary);display:block;margin-bottom:12px}
.prog-header h2{color:var(--text);margin-bottom:12px}
.prog-header p{color:var(--text-muted);font-size:16px}
.section-intro{text-align:center;max-width:720px;margin:0 auto 36px}
.section-intro h2{color:var(--text);margin-bottom:12px}
.section-intro p{color:var(--text-muted);font-size:16px;line-height:1.7}
.prog-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
@media(max-width:768px){.prog-cards{grid-template-columns:1fr;overflow-x:auto;display:flex;padding-bottom:16px}}
@media(max-width:768px){.prog-cards>*{min-width:240px;flex-shrink:0}}
.prog-card{background:#f9f7ff;border:0.5px solid var(--border);border-radius:12px;padding:28px;transition:all .2s;cursor:pointer}
.prog-card:hover{border-color:var(--purple);transform:translateY(-4px)}
.prog-icon{width:48px;height:48px;background:var(--void);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px;border:0.5px solid var(--border)}
.prog-icon svg,
.prog-icon img{width:24px;height:24px}
.prog-card h3{font-size:18px;color:var(--text);margin-bottom:8px}
.prog-card p{font-size:14px;color:var(--text-muted);margin-bottom:16px}
.prog-meta-info{font-size:13px;color:var(--text-muted);margin-bottom:12px;display:flex;gap:8px;align-items:center}
.prog-link{color:var(--purple);font-weight:500;font-size:13px}
.prog-link:hover{color:var(--purple)}

/* FEATURED WORK */
.work-header{margin-bottom:48px}
.work-header .label{color:var(--primary);display:block;margin-bottom:12px}
.work-header h2{color:var(--text)}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:1023px){.work-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.work-grid{grid-template-columns:1fr}}
.work-card{border-radius:12px;overflow:hidden;cursor:pointer;position:relative}
.work-card-img{width:100%;height:240px;object-fit:cover;display:block;background:var(--indigo);transition:transform .2s}
.work-card-placeholder{height:240px;background:#10162b;display:block;position:relative;overflow:hidden;transition:transform .2s}
.work-card-placeholder img{width:100%;height:100%;object-fit:cover;display:block}
.work-card-placeholder iframe{width:100%;height:100%;border:0;display:block;background:#000}
.work-card-play{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,0.18);backdrop-filter:blur(8px);color:#fff;font-size:24px;box-shadow:0 12px 30px rgba(0,0,0,0.18);z-index:1}
.work-card:hover .work-card-img,.work-card:hover .work-card-placeholder{transform:scale(1.03)}
.work-card-overlay{position:absolute;inset:0;background:rgba(10,10,15,0.85);opacity:0;transition:opacity .2s;display:flex;flex-direction:column;justify-content:flex-end;padding:24px}
.work-card:hover .work-card-overlay{opacity:1}
.work-card-name{font-weight:500;font-size:14px;color:#fff}
.work-card-meta{font-size:12px;color:rgba(255,255,255,0.7);margin-bottom:8px}
.work-card-view{font-size:13px;color:#fff;font-weight:500}
.work-cta{text-align:center;margin-top:40px}

/* PARTENAIRES */
.partenaires-header{text-align:center;margin-bottom:48px}
.partenaires-header h2{color:var(--text);margin-bottom:12px}
.partenaires-header p{color:var(--text-muted);font-size:16px;max-width:500px;margin:0 auto}
.partenaires-carousel{position:relative;min-height:200px}
.partenaires-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;align-items:center;animation:fadeInOut 10s infinite}
@keyframes fadeInOut{0%{opacity:1}40%{opacity:1}50%{opacity:0}60%{opacity:0}100%{opacity:1}}
@media(max-width:768px){.partenaires-grid{grid-template-columns:repeat(2,1fr);gap:24px}}
@media(max-width:480px){.partenaires-grid{grid-template-columns:1fr}}
.partenaire-card{border-radius:16px;overflow:hidden;transition:transform 0.3s ease,box-shadow 0.3s ease}
.partenaire-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,0.08)}
.partenaire-logo-bg{display:flex;align-items:center;justify-content:center;padding:40px;aspect-ratio:1;border-radius:16px;background:linear-gradient(135deg,#F0E7FF,#E8DAFF)}
.partenaire-logo-bg img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.1))}

/* WHY CEDAA */
.why-header{text-align:center;margin-bottom:48px}
.why-header h2{color:var(--text)}
.why-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:768px){.why-cards{grid-template-columns:1fr}}
.why-card{background:#f9f7ff;border-radius:12px;padding:28px}
.why-icon{width:44px;height:44px;border-radius:50%;background:var(--purple);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.why-icon svg{width:20px;height:20px;fill:#fff}
.why-card h3{font-size:18px;color:var(--text);margin-bottom:10px}
.why-card p{font-size:14px;color:var(--text-muted);line-height:1.7}

/* ALUMNI STRIP */
.alumni-header{text-align:center;margin-bottom:48px}
.alumni-header .label{color:var(--primary);display:block;margin-bottom:12px}
.alumni-header h2{color:var(--text)}
.alumni-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px}
@media(max-width:768px){.alumni-cards{grid-template-columns:1fr}}
.alumni-card{display:flex;gap:16px;align-items:flex-start}
.alumni-avatar{width:72px;height:72px;border-radius:12px;background:linear-gradient(135deg,var(--purple),#9A8AC5);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:500;font-size:18px}
.alumni-name{font-weight:500;font-size:16px;color:#fff;margin-bottom:4px}
.alumni-role{font-size:13px;color:var(--text-muted);margin-bottom:8px}
.alumni-link{font-size:12px;color:var(--purple);font-weight:500}
.alumni-cta{text-align:center}
.btn-outlined-purple{border:0.5px solid var(--purple);color:var(--purple);background:transparent;border-radius:8px;height:48px;padding:0 28px;font-weight:500;font-size:15px;display:inline-flex;align-items:center;transition:all .2s;font-family:'DM Sans',sans-serif;cursor:pointer}
.btn-outlined-purple:hover{background:var(--purple);color:#fff}

/* APPLICATION BANNER */
.app-banner{min-height:600px;padding:80px 0;display:flex;align-items:center;background-position:center;background-size:cover}
.app-banner-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(83,74,183,0.85);z-index:1}
.app-form-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1200px}
@media(max-width:768px){.app-form-wrapper{grid-template-columns:1fr;gap:32px}}
.app-form-content h2{font-weight:300;font-size:48px;color:#fff;margin-bottom:16px}
@media(max-width:768px){.app-form-content h2{font-size:32px}}
.app-form-content p{color:rgba(255,255,255,0.85);font-size:15px;margin-bottom:0}
.candidature-form{background:rgba(255,255,255,0.95);border-radius:16px;padding:40px;display:flex;flex-direction:column;gap:20px;backdrop-filter:blur(10px)}
.form-group{display:flex;flex-direction:column;gap:8px}
.form-group label{font-weight:500;font-size:14px;color:var(--text);display:block}
.form-group input,.form-group select{padding:12px 16px;border:1px solid var(--border);border-radius:8px;font-family:'DM Sans',sans-serif;font-size:14px;transition:all .2s;background:#fff;color:var(--text)}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(83,74,183,0.1)}
.form-group input::placeholder{color:var(--muted-light)}
.btn-form-submit{background:var(--purple);color:#fff;border-radius:8px;height:48px;padding:0 28px;font-weight:500;font-size:15px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;font-family:'DM Sans',sans-serif;cursor:pointer;border:none;width:100%}
.btn-form-submit:hover{background:#3D2E8A;transform:scale(1.02)}
.app-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.btn-white{background:#fff;color:var(--purple);border-radius:8px;height:52px;padding:0 28px;font-weight:500;font-size:15px;display:inline-flex;align-items:center;transition:all .2s;font-family:'DM Sans',sans-serif;cursor:pointer;border:none}
.btn-white:hover{background:#f5f3ff;transform:scale(1.02)}
.btn-white-outlined{border:1.5px solid #fff;color:#fff;background:transparent;border-radius:8px;height:52px;padding:0 24px;font-weight:500;font-size:15px;display:inline-flex;align-items:center;transition:all .2s;font-family:'DM Sans',sans-serif;cursor:pointer}
.btn-white-outlined:hover{background:rgba(255,255,255,0.15)}
.deadline-text{font-size:12px;color:rgba(131,118,188,0.8);text-align:center;margin-top:8px}

/* PROGRAMMES CYCLE SELECTOR */
.cycle-selector{display:flex;justify-content:center;gap:16px;margin:40px 0 24px;flex-wrap:wrap}
.cycle-btn{background:transparent;border:1px solid var(--purple);color:var(--purple);border-radius:999px;padding:12px 28px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}
.cycle-btn.active{background:var(--purple);color:#fff;border-color:var(--purple)}
.cycle-content{display:none}
.cycle-content.active{display:block}
@media(max-width:768px){.cycle-selector{flex-direction:column;align-items:center}}
.master-detail-grid{display:grid;grid-template-columns:60% 40%;gap:60px;align-items:start;margin-top:24px}
@media(max-width:1023px){.master-detail-grid{grid-template-columns:1fr}}
.master-highlight-card{background:var(--white);border-radius:20px;padding:32px;box-shadow:0 18px 40px rgba(0,0,0,0.05);border:1px solid rgba(83,74,183,0.12)}
.master-highlight-card h3{margin-bottom:16px;color:var(--purple)}
.master-highlight-card p{color:var(--text-muted);margin-bottom:20px;line-height:1.8}
.master-highlight-card ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.master-highlight-card li{position:relative;padding-left:24px;color:var(--text);line-height:1.6}
.master-highlight-card li::before{content:'•';position:absolute;left:0;top:0;color:var(--purple)}
.master-detail-grid section,
.master-detail-grid aside{display:flex;flex-direction:column;gap:28px}

/* SEMESTER CARDS */
.semester-overview{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin:32px 0}
@media(max-width:768px){.semester-overview{grid-template-columns:1fr}}
.semester-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,0.06);border:1px solid rgba(83,74,183,0.12)}
.semester-header{background:var(--purple);color:#fff;padding:20px;text-align:center}
.semester-header h3{margin:0;font-size:20px}
.semester-list{list-style:none;margin:0;padding:20px;display:grid;gap:12px}
.semester-list li{position:relative;padding-left:18px;color:var(--text);line-height:1.6}
.semester-list li::before{content:'›';position:absolute;left:0;top:0;color:var(--purple);font-size:16px;line-height:1.6}
.semester-list li:last-child{margin-bottom:0}

/* FOOTER */
footer{background:var(--off-white);padding:64px 0 32px}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-bottom:48px}
@media(max-width:1023px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}
.footer-col h4{font-weight:500;font-size:13px;color:var(--text);margin-bottom:16px}
.footer-col p,.footer-col a{font-size:13px;color:var(--text-muted);line-height:2}
.footer-col a:hover{color:var(--primary)}
.footer-col address{font-style:normal}
.footer-bottom{border-top:0.5px solid rgba(83,74,183,0.15);padding-top:24px;display:flex;justify-content:space-between;align-items:center}
.footer-bottom p,.footer-bottom a{font-size:13px;color:var(--muted)}
.footer-bottom a:hover{color:var(--purple)}
.footer-social{display:flex;gap:16px}

/* PROGRAMMES PAGE */
.tab-nav{display:flex;border-bottom:0.5px solid rgba(83,74,183,0.15);overflow-x:auto;scrollbar-width:none}
.tab-nav::-webkit-scrollbar{display:none}
.tab-btn{background:none;border:none;color:var(--muted);font-family:'DM Sans',sans-serif;font-size:15px;padding:16px 24px;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-0.5px;transition:all .2s}
.tab-btn.active{color:var(--text);border-bottom-color:var(--primary)}
.tab-btn:hover:not(.active){color:var(--primary)}
.tab-content{display:none;padding:64px 0}
.tab-content.active{display:block}
.prog-detail-grid{display:grid;grid-template-columns:60% 40%;gap:60px;align-items:start}
@media(max-width:1023px){.prog-detail-grid{grid-template-columns:1fr}}
.prog-eyebrow{color:var(--purple);margin-bottom:8px}
.prog-detail-grid h2{margin-bottom:16px}
.prog-desc{color:var(--muted);margin-bottom:32px}
.prog-meta{display:flex;gap:24px;margin-bottom:32px}
.prog-meta-item{font-size:13px;color:var(--text-muted)}
.prog-meta-item strong{color:var(--text);font-weight:500}
.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}
@media(max-width:600px){.skills-grid{grid-template-columns:1fr}}
.skill-cell{padding:12px;background:var(--indigo);border-radius:8px}
.skill-cell strong{font-size:13px;font-weight:500;display:block;margin-bottom:4px}
.skill-cell span{font-size:12px;color:var(--muted)}
.tools-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.tool-pill{background:var(--indigo);border-radius:50px;padding:6px 14px;font-size:12px;font-weight:500;color:var(--purple)}
.prog-actions{display:flex;gap:12px;flex-wrap:wrap}
.prog-visual-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.prog-visual-card{border-radius:12px;overflow:hidden;background:var(--indigo)}
.prog-visual-placeholder{height:140px;background:linear-gradient(135deg,#E8DFF9,#D4C5F9);display:flex;align-items:center;justify-content:center;color:rgba(10,10,15,0.15);font-size:11px}
.prog-visual-placeholder img{width:100%;height:100%;object-fit:cover;display:block}
.alumni-quote-card{background:var(--indigo);border-radius:12px;padding:24px;margin-top:16px}
.alumni-quote-text{font-weight:300;font-style:italic;font-size:16px;color:var(--white);margin-bottom:12px;line-height:1.6}
.alumni-quote-author{font-size:13px;color:var(--purple)}
.comparison-section{padding:80px 0;background:#f9f7ff}
.comparison-table{width:100%;border-collapse:collapse;font-size:14px}
.comparison-table th{background:var(--purple);color:#fff;font-weight:500;padding:14px 20px;text-align:left}
.comparison-table td{padding:14px 20px;border-bottom:0.5px solid var(--border);vertical-align:top}
.comparison-table tr:nth-child(even) td{background:#fff}
.comparison-table tr:nth-child(odd) td{background:#f9f7ff}
.comparison-table .row-header{font-weight:500;color:var(--text);background:#f9f7ff!important}
@media(max-width:768px){.comparison-table-wrapper{overflow-x:auto}}

/* TRAVAUX PAGE */
.filter-bar{background:rgba(255,255,255,0.95);backdrop-filter:blur(12px);padding:16px 0;border-bottom:0.5px solid rgba(83,74,183,0.15);position:sticky;top:64px;z-index:100}
.filter-pills{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:0 40px}
@media(max-width:768px){.filter-pills{padding:0 20px}}
.filter-pills::-webkit-scrollbar{display:none}
.filter-pill{border:0.5px solid var(--primary);color:var(--text);background:transparent;border-radius:50px;padding:8px 18px;font-size:13px;font-family:'DM Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:all .2s}
.filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.filter-pill:hover:not(.active){color:var(--purple);border-color:var(--purple)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:1023px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr}}
.gallery-card{background:#fff;border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s;border:0.5px solid var(--border)}
.gallery-card:hover{transform:translateY(-4px);border-color:var(--purple)}
.gallery-card-img{width:100%;object-fit:cover;display:block;background:linear-gradient(135deg,#E8DFF9,#D4C5F9)}
.gallery-card-img.tall{height:300px}
.gallery-card-img.medium{height:220px}
.gallery-card-body{padding:16px}
.gallery-tag{background:var(--indigo);color:var(--purple);border-radius:50px;padding:4px 10px;font-size:10px;font-weight:500;display:inline-block;margin-bottom:8px}
.gallery-card-title{font-weight:500;font-size:16px;color:var(--text);margin-bottom:4px}
.gallery-card-student{font-size:13px;color:var(--text-muted)}
.load-more-wrap{text-align:center;margin-top:48px}
.lightbox{display:none;position:fixed;inset:0;background:rgba(10,10,15,0.95);z-index:3000;align-items:center;justify-content:center;padding:40px}
.lightbox.open{display:flex}
.lightbox-inner{max-width:900px;width:100%;background:var(--off-white);border-radius:12px;overflow:hidden;position:relative;display:grid;grid-template-columns:60% 40%}
@media(max-width:768px){.lightbox-inner{grid-template-columns:1fr}}
.lightbox-img{background:linear-gradient(135deg,#E8DFF9,#D4C5F9);min-height:400px;display:flex;align-items:center;justify-content:center}
.lightbox-info{padding:32px;display:flex;flex-direction:column;justify-content:space-between}
.lightbox-tag{background:var(--purple);color:#fff;border-radius:50px;padding:4px 12px;font-size:11px;font-weight:500;display:inline-block;margin-bottom:16px}
.lightbox-title{font-weight:500;font-size:22px;color:var(--text);margin-bottom:8px}
.lightbox-student{font-size:14px;color:var(--purple);margin-bottom:16px}
.lightbox-desc{font-size:14px;color:var(--muted);line-height:1.7}
.lightbox-close{position:absolute;top:16px;right:16px;background:rgba(10,10,15,0.2);border:none;color:var(--white);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center}
.lightbox-close:hover{background:var(--purple)}
.lightbox-nav{display:flex;gap:8px;margin-top:auto}
.lightbox-nav button{background:rgba(83,74,183,0.2);border:none;color:var(--white);padding:8px 16px;border-radius:8px;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;transition:all .2s}
.lightbox-nav button:hover{background:var(--purple)}

/* LECOLE PAGE */
.faculty-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px}
.faculty-card{background:#f9f7ff;border:0.5px solid var(--border);border-radius:12px;padding:28px;text-align:center;transition:all .2s}
.faculty-card:hover{border-color:var(--purple);transform:translateY(-4px)}
.faculty-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--purple),#9A8AC5);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:500;font-size:20px}
.faculty-name{font-weight:500;font-size:16px;margin-bottom:4px;color:var(--white)}
.faculty-discipline{font-size:13px;color:var(--purple);margin-bottom:4px}
.faculty-research{font-size:13px;color:var(--muted)}
.facilities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media(max-width:600px){.facilities-grid{grid-template-columns:1fr}}
.facility-card{border-radius:12px;overflow:hidden;position:relative;cursor:pointer}
.facility-img{height:200px;background:linear-gradient(135deg,#E8DFF9,#D4C5F9);display:flex;align-items:flex-end;padding:20px}
.facility-label{font-weight:500;font-size:14px;color:#fff;background:rgba(10,10,15,0.7);padding:6px 12px;border-radius:6px;display:inline-block}
.timetable-tabs{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.timetable-tab{border:1px solid var(--border);background:#fff;color:var(--void);border-radius:999px;padding:12px 24px;cursor:pointer;font-weight:500;transition:all .2s}
.timetable-tab:hover{border-color:var(--purple);color:var(--purple)}
.timetable-tab.active{background:var(--purple);color:#fff;border-color:var(--purple)}
.timetable-panels{margin-top:16px}
.timetable-panel{display:none}
.timetable-panel.active{display:block}
.timetable-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:32px}
.timetable-summary-card{background:#f9f7ff;border:0.5px solid var(--border);border-radius:16px;padding:24px}
.timetable-summary-label{font-weight:600;font-size:15px;color:var(--purple);margin-bottom:10px;display:block}
.timetable-table-wrap{overflow-x:auto}
.timetable-table{width:100%;border-collapse:collapse;min-width:720px}
.timetable-table th,.timetable-table td{border:1px solid var(--border);padding:14px;text-align:left;vertical-align:top}
.timetable-table th{background:rgba(83,74,183,0.08);color:var(--void);font-weight:600}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
@media(max-width:768px){.story-grid{grid-template-columns:1fr;gap:32px}}
@media(max-width:768px){.timetable-summary-grid{grid-template-columns:1fr}}

/* ALUMNI PAGE */
.alumni-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:1023px){.alumni-page-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.alumni-page-grid{grid-template-columns:1fr}}
.alumni-page-card{background:#f9f7ff;border:0.5px solid var(--border);border-radius:12px;padding:24px;transition:all .2s}
.alumni-page-card:hover{border-color:var(--primary);transform:translateY(-4px)}
.alumni-page-avatar{width:64px;height:64px;border-radius:12px;background:linear-gradient(135deg,var(--primary),#9A8AC5);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:500;font-size:18px;margin-bottom:16px}
.alumni-page-name{font-weight:500;font-size:16px;margin-bottom:2px;color:var(--text)}
.alumni-page-prog{font-size:12px;color:var(--primary);font-weight:500;margin-bottom:4px}
.alumni-page-role{font-size:13px;color:var(--text-muted);margin-bottom:12px}
.alumni-page-quote{font-size:13px;color:var(--text);font-style:italic;line-height:1.6;border-left:2px solid var(--primary);padding-left:12px}
.featured-alumni{background:var(--indigo);border-radius:12px;padding:48px;display:grid;grid-template-columns:1fr 2fr;gap:48px;margin-bottom:48px;align-items:center}
@media(max-width:768px){.featured-alumni{grid-template-columns:1fr;padding:32px;gap:32px}}
.featured-alumni-avatar{width:120px;height:120px;border-radius:16px;background:linear-gradient(135deg,var(--primary),#9A8AC5);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:300;font-size:36px}
.featured-alumni-quote{font-weight:300;font-size:22px;color:var(--text);line-height:1.5;margin-bottom:16px;font-style:italic}
.featured-alumni-name{font-weight:500;font-size:14px;color:var(--primary)}

/* CANDIDATURE PAGE */
.cand-hero{background:var(--purple);padding:100px 0 80px;text-align:center}
.cand-hero h1{font-weight:300;font-size:52px;color:#fff;margin-bottom:16px}
@media(max-width:768px){.cand-hero h1{font-size:36px}}
.cand-hero p{color:rgba(255,255,255,0.8);font-size:16px;margin-bottom:24px}
.deadline-pill{background:#fff;color:var(--purple);border-radius:50px;padding:10px 24px;font-weight:500;font-size:15px;display:inline-block}
.steps-section{padding:96px 0;background:#fff}
.steps-header{text-align:center;margin-bottom:64px}
.steps-header h2{color:var(--text)}
.steps-timeline{position:relative}
.steps-timeline::before{content:'';position:absolute;left:31px;top:0;bottom:0;width:0.5px;background:var(--border)}
@media(min-width:1024px){.steps-timeline::before{left:50%;transform:translateX(-0.5px)}}
.step{display:flex;gap:24px;margin-bottom:48px;position:relative}
@media(min-width:1024px){.step:nth-child(even){flex-direction:row-reverse}}
.step-number{width:64px;height:64px;border-radius:50%;background:var(--purple);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:20px;flex-shrink:0;z-index:1;position:relative}
.step-content{flex:1;background:var(--indigo);border-radius:12px;padding:28px}
@media(min-width:1024px){.step-content{max-width:calc(50% - 56px)}}
.step-content h3{font-size:20px;margin-bottom:8px;color:var(--white)}
.step-content p{color:var(--muted);margin-bottom:16px}
.checklist{list-style:none;display:flex;flex-direction:column;gap:10px}
.checklist li{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer;color:var(--white)}
.checklist li input[type=checkbox]{width:18px;height:18px;accent-color:var(--purple);cursor:pointer;flex-shrink:0}
.checklist li.checked{color:var(--muted);text-decoration:line-through}
.check-all{font-size:13px;color:var(--purple);font-weight:500;cursor:pointer;display:inline-block;margin-top:8px;background:none;border:none;font-family:'DM Sans',sans-serif}
.depot-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.depot-options{grid-template-columns:1fr}}
.depot-option{background:#f9f7ff;border:0.5px solid var(--border);border-radius:12px;padding:20px}
.depot-option h4{font-weight:500;font-size:15px;margin-bottom:8px;color:var(--text)}
.depot-option p{font-size:14px;color:var(--text-muted);line-height:1.6}
.depot-option a{color:var(--purple);font-size:13px;font-weight:500}
.btn-download{background:transparent;border:0.5px solid var(--purple);color:var(--white);border-radius:8px;height:48px;padding:0 24px;font-weight:500;font-size:15px;display:inline-flex;align-items:center;gap:8px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:all .2s}
.btn-download:hover{background:var(--purple);color:#fff}
.faq-section{padding:80px 0;background:var(--off-white)}
.faq-header{margin-bottom:48px}
.faq-header h2{color:var(--text)}
.faq-list{display:flex;flex-direction:column;gap:0}
.faq-item{border-bottom:0.5px solid var(--border);overflow:hidden}
.faq-item:first-child{border-top:0.5px solid var(--border)}
.faq-question{width:100%;background:none;border:none;text-align:left;padding:20px 0;font-family:'DM Sans',sans-serif;font-size:16px;font-weight:500;color:var(--text);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-question:hover{color:var(--primary)}
.faq-icon{font-size:18px;color:var(--purple);flex-shrink:0;transition:transform .2s}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-item.open .faq-answer{max-height:200px}
.faq-answer p{font-size:15px;color:var(--muted);padding-bottom:20px;line-height:1.7}
.contact-block{padding:80px 0;background:#fff;text-align:center}
.contact-block h2{color:var(--text);margin-bottom:16px}
.contact-block p{color:var(--text-muted);margin-bottom:32px}
.contact-methods{display:flex;justify-content:center;gap:24px;flex-wrap:wrap}
.contact-method{background:var(--indigo);border-radius:12px;padding:20px 28px;text-align:center}
.contact-method .label{color:var(--purple);margin-bottom:6px;display:block}
.contact-method a{font-weight:500;color:var(--white)}
.contact-method p{font-size:13px;color:var(--muted);margin-top:4px}

/* ACTUALITES PAGE */
.news-featured{border-radius:12px;overflow:hidden;margin-bottom:48px;position:relative;cursor:pointer}
.news-featured-bg{background:linear-gradient(135deg,#E8DFF9,#D4C5F9);height:400px;display:flex;align-items:flex-end;padding:40px;position:relative}
.news-featured-tag{background:var(--indigo);color:var(--purple);border-radius:50px;padding:5px 14px;font-size:11px;font-weight:500;display:inline-block;margin-bottom:12px}
.news-featured h2{color:var(--white);font-size:28px;font-weight:500;margin-bottom:8px;max-width:600px}
.news-featured-date{font-size:13px;color:var(--muted)}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:1023px){.news-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.news-grid{grid-template-columns:1fr}}
.news-card{background:#f9f7ff;border:0.5px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s}
.news-card:hover{border-color:var(--purple);transform:translateY(-4px)}
.news-card-img{height:180px;background:linear-gradient(135deg,#E8DFF9,#D4C5F9);display:flex;align-items:center;justify-content:center;overflow:hidden}
.news-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.news-card-body{padding:20px}
.news-card-tag{background:var(--indigo);color:var(--purple);border-radius:50px;padding:3px 10px;font-size:10px;font-weight:500;display:inline-block;margin-bottom:8px}
.news-card-title{font-weight:500;font-size:15px;margin-bottom:6px;color:var(--text)}
.news-card-date{font-size:12px;color:var(--text-muted);margin-bottom:8px}
.news-card-excerpt{font-size:13px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-read-link{font-size:13px;color:var(--purple);font-weight:500;display:block;margin-top:12px}

/* SCROLL ANIMATIONS */
.fade-up{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
.stagger-1{transition-delay:.1s}
.stagger-2{transition-delay:.2s}
.stagger-3{transition-delay:.3s}
.stagger-4{transition-delay:.4s}
.stagger-5{transition-delay:.5s}

/* DARK/LIGHT SECTION LABELS */
.on-dark{color:var(--purple-light)}
.on-light{color:var(--purple)}

/* COOKIE NOTICE */
#cookie-bar{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,0.97);border-top:0.5px solid rgba(83,74,183,0.15);padding:14px 40px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:500;font-size:13px;color:var(--muted)}
@media(max-width:600px){#cookie-bar{flex-direction:column;text-align:center;padding:16px 20px}}
#cookie-bar button{background:var(--purple);color:#fff;border:none;border-radius:6px;padding:8px 16px;font-family:'DM Sans',sans-serif;font-size:13px;cursor:pointer;white-space:nowrap}
#cookie-bar button:hover{background:var(--purple)}

/* 404 PAGE */
.page-404{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--void)}
.page-404 h1{font-size:120px;font-weight:300;color:var(--purple);margin-bottom:16px;line-height:1}
.page-404 h2{color:var(--text);margin-bottom:12px}
.page-404 p{color:var(--purple);margin-bottom:32px}

/* EMPTY STATE */
.empty-state{text-align:center;padding:80px 40px;color:var(--purple)}
.empty-state-icon{width:60px;height:60px;background:var(--indigo);border-radius:12px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center}

/* BACK TO HOME BUTTON */
.page-back-home{text-align:center;padding:80px 0;background:var(--void)}
.page-back-home a{display:inline-flex;align-items:center;justify-content:center;background:var(--purple);color:#fff;border-radius:8px;height:52px;padding:0 32px;font-weight:500;font-size:15px;text-decoration:none;transition:all .2s}
.page-back-home a:hover{background:var(--purple);transform:scale(1.02)}

/* Utilities */
.text-center{text-align:center}
.mt-8{margin-top:8px}
.mt-16{margin-top:16px}
.mt-32{margin-top:32px}
.mt-48{margin-top:48px}
.mb-8{margin-bottom:8px}
.mb-16{margin-bottom:16px}
.mb-24{margin-bottom:24px}
.mb-48{margin-bottom:48px}
.color-purple{color:var(--purple)}
.color-muted{color:var(--muted)}
.color-void{color:var(--white)}
.color-white{color:var(--void)}
.color-purple-light{color:var(--purple)}
