:root {
  --navy:      #1a1a6e;
  --navy-mid:  #2424a0;
  --navy-light:#e8e8f8;
  --red:       #c0202a;
  --red-light: #f5e8e9;
  --white:     #ffffff;
  --gray-bg:   #f4f5fb;
  --gray-card: #eef0f8;
  --gray-text: #555566;
  --text:      #111133;
  --border:    #d0d4ee;
  --font-head: 'Montserrat', sans-serif;
  --font-body: 'Open Sans', sans-serif;
  --radius:    6px;
  --radius-lg: 12px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font-body);color:var(--text);background:var(--white);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* HEADER */
.site-header{background:var(--navy);position:sticky;top:0;z-index:100;}
.header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 24px;}
.logo{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--white);letter-spacing:1px;padding:16px 0;display:flex;align-items:center;gap:10px;}
.logo-text{font-size:22px;}
.logo-tagline{font-size:9px;font-weight:400;color:rgba(255,255,255,0.6);line-height:1.3;max-width:160px;}
.main-nav{display:flex;}
.nav-item{position:relative;}
.nav-link{display:block;padding:20px 14px;color:rgba(255,255,255,0.9);font-family:var(--font-head);font-size:13px;font-weight:600;white-space:nowrap;transition:color 0.2s;}
.nav-link:hover,.nav-link.current{color:#fff;}
.nav-link.current{border-bottom:3px solid var(--red);}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:22px;cursor:pointer;padding:8px;}

/* BOUTONS */
.btn{display:inline-block;padding:12px 24px;font-family:var(--font-head);font-weight:700;font-size:13px;border-radius:var(--radius);cursor:pointer;transition:all 0.2s;letter-spacing:0.3px;}
.btn-primary{background:var(--navy);color:var(--white);}
.btn-primary:hover{background:var(--navy-mid);}
.btn-red{background:var(--red);color:var(--white);}
.btn-red:hover{background:#a01820;}
.btn-outline{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,0.7);}
.btn-outline:hover{background:rgba(255,255,255,0.12);}
.btn-outline-navy{background:transparent;color:var(--navy);border:2px solid var(--navy);}
.btn-outline-navy:hover{background:var(--navy-light);}

/* FOOTER */
.site-footer{background:var(--navy);color:rgba(255,255,255,0.85);margin-top:80px;}
.footer-main{max-width:1200px;margin:0 auto;padding:52px 24px 32px;display:grid;grid-template-columns:220px 1fr 1fr 160px;gap:40px;}
.footer-brand .logo{padding:0 0 14px;font-size:20px;}
.footer-brand p{font-size:13px;color:rgba(255,255,255,0.65);line-height:1.7;margin-bottom:20px;}
.footer-col h4{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-col ul{list-style:none;}
.footer-col ul li{margin-bottom:8px;}
.footer-col ul li::before{content:'›';margin-right:8px;color:var(--red);}
.footer-col ul li a{font-size:13px;color:rgba(255,255,255,0.75);}
.footer-col ul li a:hover{color:#fff;}
.footer-logo-wrap{display:flex;align-items:flex-start;}
.footer-logo-img{background:rgba(255,255,255,0.06);border-radius:var(--radius-lg);padding:20px;display:flex;align-items:center;justify-content:center;height:100px;width:100%;}
.footer-logo-img span{font-family:var(--font-head);font-weight:800;font-size:28px;color:var(--white);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;justify-content:space-between;font-size:12px;color:rgba(255,255,255,0.4);}

/* SHARED */
.container{max-width:1200px;margin:0 auto;padding:0 24px;}
.section{max-width:1200px;margin:0 auto;padding:60px 24px;}
.section-title{font-family:var(--font-head);font-weight:800;font-size:30px;color:var(--navy);text-align:center;margin-bottom:8px;}
.section-icon{text-align:center;margin-bottom:16px;font-size:24px;}
.section-lead{text-align:center;color:var(--gray-text);max-width:640px;margin:0 auto 40px;line-height:1.7;}
.prose{font-size:14px;color:var(--gray-text);line-height:1.85;text-align:justify;hyphens:auto;}
.prose h2{font-family:var(--font-head);font-weight:700;font-size:17px;color:var(--navy);margin:24px 0 10px;}
.prose h3{font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--navy);margin:20px 0 8px;}
.prose ul{padding-left:18px;margin-bottom:14px;}
.prose li{margin-bottom:5px;}
.prose p{margin-bottom:14px;}
.prose strong{font-weight:700;color:var(--navy);}

/* PAGE HEADER */
.page-header{background:var(--navy);padding:52px 24px;text-align:center;position:relative;overflow:hidden;}
.page-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:var(--red);}
.page-header h1{font-family:var(--font-head);font-weight:800;font-size:32px;color:var(--white);margin-bottom:8px;}
.page-header .breadcrumb{font-size:13px;color:rgba(255,255,255,0.55);margin-top:10px;}
.page-header .breadcrumb a{color:rgba(255,255,255,0.75);}
.page-icon{font-size:28px;margin-bottom:8px;}

/* HERO */
.hero{position:relative;min-height:580px;background:linear-gradient(135deg,#0d0d45,#1a1a6e 60%,#232395);display:flex;align-items:center;overflow:hidden;}
.hero-bg-image{position:absolute;inset:0;z-index:0;background:url('/images/accueil.jpg') center/cover;opacity:0.25;}
.hero-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:80px 24px;display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:center;}
.hero-brand{background:rgba(26,26,110,0.75);border-left:4px solid var(--red);padding:32px 28px;}
.hero-brand h1{font-family:var(--font-head);font-weight:800;font-size:38px;color:var(--white);letter-spacing:2px;margin-bottom:8px;}
.hero-brand p{font-family:var(--font-head);font-weight:600;font-size:13px;color:rgba(255,255,255,0.8);line-height:1.5;}
.hero-right{display:flex;flex-direction:column;gap:24px;}
.hero-banner{background:var(--red);padding:20px 28px;display:flex;align-items:center;gap:14px;}
.hero-banner span{font-family:var(--font-head);font-weight:700;font-size:20px;color:#fff;}
.hero-cta-box{background:rgba(200,210,240,0.2);padding:28px;display:flex;flex-direction:column;gap:20px;align-items:flex-start;}
.hero-cta-box p{font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--white);line-height:1.4;}

/* STATS */
.stats-bar{background:var(--navy);}
.stats-bar-inner{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;}
.stat-item{flex:1;padding:22px 16px;border-right:1px solid rgba(255,255,255,0.1);display:flex;flex-direction:column;align-items:center;gap:4px;}
.stat-item:last-child{border-right:none;}
.stat-number{font-family:var(--font-head);font-weight:800;font-size:26px;color:#fff;}
.stat-label{font-size:11px;color:rgba(255,255,255,0.6);text-align:center;}

/* CARROUSEL PARTENAIRES */
.partners-section{background:var(--white);padding:36px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;}
.partners-track-wrapper{overflow:hidden;position:relative;}
.partners-track-wrapper::before,.partners-track-wrapper::after{content:'';position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none;}
.partners-track-wrapper::before{left:0;background:linear-gradient(to right,white,transparent);}
.partners-track-wrapper::after{right:0;background:linear-gradient(to left,white,transparent);}
.partners-track{display:flex;width:max-content;animation:scroll-p 28s linear infinite;}
.partners-track:hover{animation-play-state:paused;}
@keyframes scroll-p{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.partner-card{flex-shrink:0;width:180px;height:88px;margin:0 14px;border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;padding:12px 16px;background:var(--white);transition:border-color 0.2s;overflow:hidden;}
.partner-card:hover{border-color:var(--navy);box-shadow:0 2px 12px rgba(26,26,110,0.1);}
.partner-logo{max-width:100%;max-height:56px;width:auto;height:auto;object-fit:contain;}

/* EXCELLENCE */
.excellence-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.excellence-panel{padding:32px;border:1px solid var(--border);border-radius:var(--radius-lg);}
.excellence-panel h3{font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--navy);margin-bottom:12px;text-transform:uppercase;letter-spacing:1px;}
.excellence-panel p{color:var(--gray-text);line-height:1.8;font-size:14px;}

/* NEWS */
.news-section{background:var(--gray-bg);padding:60px 0;}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;}
.news-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;}
.news-card-thumb{aspect-ratio:2/1;background:var(--navy-light);}
.news-card-body{padding:20px;}
.news-tag{display:inline-block;background:var(--red-light);color:var(--red);font-size:11px;font-weight:700;font-family:var(--font-head);padding:3px 10px;border-radius:20px;margin-bottom:10px;text-transform:uppercase;}
.news-card-body h3{font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--navy);margin-bottom:10px;line-height:1.4;}
.news-card-body p{font-size:13px;color:var(--gray-text);line-height:1.65;margin-bottom:14px;}
.news-date{font-size:11px;color:rgba(85,85,102,0.6);margin-bottom:12px;}
.news-more{font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--navy);}
.news-more::after{content:' →';color:var(--red);}

/* CATALOGUE */
.catalogue-section{max-width:1200px;margin:0 auto;padding:40px 24px;}
.catalogue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.formation-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;transition:box-shadow 0.2s,transform 0.2s;display:flex;flex-direction:column;}
.formation-card:hover{box-shadow:0 6px 24px rgba(26,26,110,0.12);transform:translateY(-2px);}
.formation-card-thumb{aspect-ratio:2/1;overflow:hidden;}
.formation-card-body{background:var(--gray-card);padding:24px;flex:1;display:flex;flex-direction:column;}
.formation-badge{font-size:10px;font-weight:700;font-family:var(--font-head);text-transform:uppercase;letter-spacing:1px;color:var(--gray-text);margin-bottom:8px;}
.formation-card-body h2{font-family:var(--font-head);font-weight:800;font-size:15px;color:var(--navy);margin-bottom:12px;}
.formation-card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:16px;}

/* DETAIL FORMATION */
.course-layout{max-width:1200px;margin:0 auto;padding:40px 24px;display:grid;grid-template-columns:1fr 320px;gap:40px;}
.course-blocks{display:flex;flex-direction:column;gap:28px;}
.course-block{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.course-block-header{background:var(--navy);padding:14px 20px;display:flex;align-items:center;gap:12px;}
.course-block-header h3{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--white);text-transform:uppercase;letter-spacing:0.8px;}
.course-block-body{padding:20px;background:var(--white);}

/* SESSIONS */
.sessions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.session-card{border:2px solid var(--border);border-radius:var(--radius-lg);padding:20px;position:relative;transition:border-color 0.2s;}
.session-card:hover{border-color:var(--navy);}
.session-card.featured{border-color:var(--navy);background:var(--navy-light);}
.session-badge{position:absolute;top:-1px;right:14px;background:var(--red);color:#fff;font-family:var(--font-head);font-size:10px;font-weight:700;padding:3px 10px;border-radius:0 0 6px 6px;text-transform:uppercase;}
.session-number{font-family:var(--font-head);font-weight:800;font-size:11px;color:var(--gray-text);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;}
.session-dates{font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--navy);margin-bottom:12px;line-height:1.4;}
.session-meta{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.session-meta span{font-size:12px;color:var(--gray-text);}
.session-places{display:inline-block;font-size:11px;font-weight:700;font-family:var(--font-head);padding:3px 10px;border-radius:20px;margin-bottom:14px;}
.session-places.guaranteed{background:#e3f2fd;color:#0d47a1;}
.session-places.open{background:#e8f5e9;color:#2e7d32;}
.session-places.full{background:#ffebee;color:#c62828;}
.session-places.started{background:#fff3e0;color:#e65100;}

/* SIDEBAR */
.course-sidebar{display:flex;flex-direction:column;gap:20px;}
.sidebar-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.sidebar-card-header{background:var(--navy);padding:12px 18px;font-family:var(--font-head);font-weight:700;font-size:12px;color:#fff;text-transform:uppercase;letter-spacing:0.8px;border-left:4px solid var(--red);}
.sidebar-card-body{padding:18px;}
.info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.info-row:last-child{border-bottom:none;}
.info-row .label{color:var(--gray-text);}
.info-row .value{font-weight:700;color:var(--navy);font-family:var(--font-head);font-size:13px;}
.price-box{text-align:center;padding:24px 18px;border:2px solid var(--navy);border-radius:var(--radius-lg);}
.price-box .price-label{font-size:12px;color:var(--gray-text);margin-bottom:4px;}
.price-box .price-amount{font-family:var(--font-head);font-weight:800;font-size:32px;color:var(--navy);}
.price-box .price-sub{font-size:11px;color:var(--gray-text);margin-top:4px;margin-bottom:16px;}
.sidebar-certs{display:flex;flex-wrap:wrap;gap:8px;}
.cert-badge{background:var(--navy-light);color:var(--navy);font-size:11px;font-weight:700;font-family:var(--font-head);padding:5px 12px;border-radius:20px;}

/* CERT BADGE */
.cert-badge{background:var(--navy-light);color:var(--navy);font-size:11px;font-weight:700;font-family:var(--font-head);padding:5px 12px;border-radius:20px;}

/* FILTER BAR (catalogue & news) */
.filter-bar{background:var(--white);border-bottom:1px solid var(--border);padding:16px 24px;}
.filter-bar-inner{max-width:1200px;margin:0 auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.filter-tag{padding:7px 16px;border-radius:20px;font-size:12px;font-weight:700;font-family:var(--font-head);cursor:pointer;border:2px solid var(--border);background:var(--gray-bg);color:var(--navy);transition:all 0.15s;}
.filter-tag.all{background:var(--navy);color:#fff;border-color:var(--navy);}
.filter-tag:hover{border-color:var(--navy);}
.filter-search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--gray-bg);border:1px solid var(--border);border-radius:var(--radius);padding:7px 14px;}
.filter-search input{border:none;background:transparent;font-size:13px;outline:none;width:200px;color:var(--text);}

/* CALENDRIER */
.calendar-section{max-width:1200px;margin:0 auto;padding:40px 24px;}
.calendar-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;background:var(--gray-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:24px;}
.cal-label{font-family:var(--font-head);font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:0.5px;white-space:nowrap;}
.cal-select{border:1px solid var(--border);border-radius:var(--radius);padding:8px 32px 8px 12px;font-size:13px;font-family:var(--font-body);color:var(--text);background:var(--white);appearance:none;cursor:pointer;min-width:150px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231a1a6e' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;}
.cal-search{border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px;font-size:13px;font-family:var(--font-body);color:var(--text);background:var(--white);flex:1;min-width:180px;outline:none;}
.cal-search:focus{border-color:var(--navy);}
.btn-reset{background:none;border:none;font-family:var(--font-head);font-size:12px;color:var(--gray-text);cursor:pointer;text-decoration:underline;white-space:nowrap;}

/* SESSIONS TABLE */
.sessions-table{width:100%;border-collapse:collapse;}
.sessions-table thead tr{background:var(--navy);}
.sessions-table thead th{text-align:left;padding:14px 16px;font-family:var(--font-head);font-size:11px;font-weight:700;color:rgba(255,255,255,0.8);text-transform:uppercase;letter-spacing:0.8px;}
.sessions-table tbody tr{border-bottom:1px solid var(--border);transition:background 0.15s;}
.sessions-table tbody tr:hover{background:var(--gray-bg);}
.sessions-table tbody td{padding:12px 16px;font-size:13px;vertical-align:middle;}
.td-formation{font-family:var(--font-head);font-weight:700;color:var(--navy);font-size:13px;line-height:1.4;}
.td-formation a{color:var(--navy);}
.td-formation a:hover{text-decoration:underline;}
.td-theme{display:inline-block;background:var(--navy-light);color:var(--navy);font-family:var(--font-head);font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:0.5px;margin-top:4px;}
.td-dates{font-weight:600;color:var(--text);white-space:nowrap;}
.td-dates-wrap{display:block;min-width:0;}
.td-dates small{display:block;color:var(--gray-text);font-weight:400;margin-top:3px;font-size:11px;white-space:normal;max-width:280px;overflow:hidden;text-overflow:ellipsis;}
.places-pill{display:inline-block;font-size:11px;font-weight:700;font-family:var(--font-head);padding:3px 10px;border-radius:20px;white-space:nowrap;}
.places-pill.guaranteed{background:#e3f2fd;color:#0d47a1;}
.places-pill.open{background:#e8f5e9;color:#2e7d32;}
.places-pill.full{background:#ffebee;color:#c62828;}
.places-pill.future{background:#ede7f6;color:#6a1b9a;}
.session-places.future{background:#ede7f6;color:#6a1b9a;}
.places-pill.started{background:#fff3e0;color:#e65100;}
.btn-inscrire{display:inline-block;background:var(--navy);color:#fff;font-family:var(--font-head);font-size:11px;font-weight:700;padding:7px 14px;border-radius:var(--radius);white-space:nowrap;transition:background 0.2s;}
.btn-inscrire:hover{background:var(--navy-mid);}
.btn-inscrire.disabled{background:var(--gray-text);cursor:not-allowed;pointer-events:none;}
.table-legend{display:flex;gap:20px;margin-top:20px;flex-wrap:wrap;align-items:center;}
.table-legend span{font-size:12px;color:var(--gray-text);display:flex;align-items:center;gap:6px;}

/* NEWS ARTICLE */
.news-layout{max-width:1200px;margin:0 auto;padding:40px 24px;display:grid;grid-template-columns:1fr 300px;gap:48px;}
.article-tag{display:inline-block;background:var(--red);color:#fff;font-size:11px;font-weight:700;font-family:var(--font-head);padding:4px 12px;border-radius:20px;margin-bottom:14px;text-transform:uppercase;}
.article-thumb{width:100%;aspect-ratio:2/1;background:var(--navy-light);border-radius:var(--radius-lg);margin-bottom:28px;}
.article-body{font-size:15px;color:var(--text);line-height:1.85;text-align:justify;hyphens:auto;}
.article-body p{margin-bottom:18px;}
.article-body h2{font-family:var(--font-head);font-weight:700;font-size:20px;color:var(--navy);margin:28px 0 12px;}
.article-body h3{font-family:var(--font-head);font-weight:700;font-size:16px;color:var(--navy);margin:22px 0 10px;}
.article-body ul{padding-left:20px;margin-bottom:16px;}
.article-body li{margin-bottom:6px;}
.article-body blockquote{border-left:4px solid var(--red);padding:16px 20px;background:var(--navy-light);border-radius:0 var(--radius) var(--radius) 0;margin:24px 0;font-style:italic;color:var(--navy);}
.news-sidebar{display:flex;flex-direction:column;gap:24px;}
.sidebar-recents{background:var(--gray-bg);border-radius:var(--radius-lg);padding:20px;}
.sidebar-recents h3{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--navy);text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--red);}
.recent-item{display:flex;gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border);}
.recent-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.recent-thumb{width:60px;height:60px;border-radius:var(--radius);background:var(--navy-mid);flex-shrink:0;}
.recent-content strong{font-family:var(--font-head);color:var(--navy);display:block;margin-bottom:4px;font-size:12px;line-height:1.4;}
.recent-content span{color:var(--gray-text);font-size:11px;}

/* PAGES INFO */
.info-layout{max-width:1200px;margin:0 auto;padding:40px 24px;display:grid;grid-template-columns:1fr 280px;gap:48px;}
.info-content h2{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--navy);margin:0 0 14px;}
.info-content h3{font-family:var(--font-head);font-weight:700;font-size:17px;color:var(--navy);margin:20px 0 10px;}
.info-content p{font-size:14px;color:var(--gray-text);line-height:1.85;margin-bottom:18px;}
.info-highlight{background:var(--navy-light);border-left:4px solid var(--navy);padding:18px 20px;border-radius:0 var(--radius-lg) var(--radius-lg) 0;margin-bottom:28px;}
.info-highlight p{margin:0;color:var(--navy);font-weight:600;font-size:14px;}
.providers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0;}
.provider-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;}
.provider-logo{width:56px;height:56px;background:var(--navy-light);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:800;font-size:14px;color:var(--navy);}
.provider-card h4{font-family:var(--font-head);font-weight:700;font-size:12px;color:var(--navy);}
.provider-card p{font-size:11px;color:var(--gray-text);margin:0;}
.info-sidebar-box{background:var(--navy);border-radius:var(--radius-lg);padding:24px;color:#fff;margin-bottom:20px;}
.info-sidebar-box h3{font-family:var(--font-head);font-weight:700;font-size:14px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,0.15);}
.hours{display:flex;flex-direction:column;gap:8px;}
.hours-row{display:flex;justify-content:space-between;font-size:13px;}
.hours-row .day{color:rgba(255,255,255,0.65);}

/* ── IMAGES D'ILLUSTRATION ─────────────────────────────────── */
.news-card-thumb img,
.formation-card-thumb img,
.article-thumb img,
.recent-thumb img {
  width:100%;height:100%;object-fit:cover;display:block;
}
.news-card-thumb,
.formation-card-thumb,
.article-thumb,
.recent-thumb {
  overflow:hidden;
}

/* ══════════════════════════════════════════════════════════════
   FORMULAIRE DE CONTACT BIGIN
══════════════════════════════════════════════════════════════ */

/* Layout page contact */
.contact-layout{max-width:1200px;margin:0 auto;padding:40px 24px;display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:start;}
.contact-sidebar{display:flex;flex-direction:column;gap:20px;}
.contact-info-box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;}
.contact-info-box h3{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--navy);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--red);}
.contact-info-box p{font-size:13px;color:var(--gray-text);line-height:1.7;}
.contact-info-box ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.contact-info-box ul li{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--gray-text);}
.contact-info-box ul li a{color:var(--navy);font-weight:600;}
.contact-info-box ul li a:hover{text-decoration:underline;}
.contact-info-box-navy{background:var(--navy);border-color:var(--navy);}
.contact-info-box-navy h3{color:rgba(255,255,255,.5);border-bottom-color:var(--red);}
.contact-info-box-navy p{color:rgba(255,255,255,.75);}

/* Formulaire */
.bigin-form{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;}
.bigin-form-title{font-family:var(--font-head);font-weight:800;font-size:20px;color:var(--navy);margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--red);}
.bigin-row{display:grid;gap:16px;}
.bigin-row-2{grid-template-columns:1fr 1fr;}
.bigin-group{margin-bottom:18px;}
.bigin-label{display:block;font-family:var(--font-head);font-weight:700;font-size:12px;color:var(--navy);text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px;}
.bigin-req{color:var(--red);margin-left:2px;}
.bigin-input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:var(--font-body);color:var(--text);background:var(--white);transition:border-color .2s,box-shadow .2s;outline:none;}
.bigin-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(26,26,110,.08);}
.bigin-textarea{resize:vertical;min-height:120px;max-height:280px;line-height:1.6;}

/* Captcha */
.bigin-captcha-wrap{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;}
.bigin-captcha-input{flex:1;min-width:0;}
.bigin-captcha-right{display:flex;flex-direction:column;gap:6px;align-items:center;}
.bigin-captcha-img{border:1.5px solid var(--border);border-radius:var(--radius);height:40px;display:block;}
.bigin-captcha-reload{background:none;border:none;font-size:12px;color:var(--navy);cursor:pointer;font-family:var(--font-head);font-weight:700;white-space:nowrap;padding:0;}
.bigin-captcha-reload:hover{text-decoration:underline;}

/* Erreurs */
.bigin-error .bigin-input{border-color:#e53e3e;box-shadow:0 0 0 3px rgba(229,62,62,.1);}
.bigin-error-msg{display:block;color:#e53e3e;font-size:12px;margin-top:5px;font-weight:600;}

/* Pied du formulaire */
.bigin-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:20px;border-top:1px solid var(--border);flex-wrap:wrap;gap:12px;}
.bigin-hint{font-size:12px;color:var(--gray-text);}

/* Succès */
.bigin-success{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px 32px;text-align:center;}
.bigin-success-icon{width:60px;height:60px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;color:#16a34a;margin:0 auto 20px;font-weight:700;}
.bigin-success h3{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--navy);margin-bottom:10px;}
.bigin-success p{color:var(--gray-text);font-size:14px;line-height:1.7;}

/* ── Formulaire Inscription ── */
.insc-layout{max-width:1200px;margin:0 auto;padding:40px 24px;display:grid;grid-template-columns:1fr 280px;gap:40px;align-items:start;}
.insc-form-col{}
.insc-sidebar{display:flex;flex-direction:column;gap:16px;}
.insc-sidebar-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;}
.insc-sidebar-card h3{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--navy);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--red);}
.insc-sidebar-card p{font-size:13px;color:var(--gray-text);line-height:1.7;}
.insc-sidebar-card-navy{background:var(--navy);border-color:var(--navy);}

.insc-section{border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px;background:var(--white);}
.insc-section-last{margin-bottom:0;}
.insc-section-title{font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--navy);margin-bottom:20px;display:flex;align-items:center;gap:10px;}
.insc-section-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--navy);color:#fff;border-radius:50%;font-size:12px;font-weight:800;flex-shrink:0;}
.insc-section-opt{font-size:11px;font-weight:400;color:var(--gray-text);margin-left:4px;}

.insc-rgpd{background:var(--navy-light);border-radius:var(--radius);padding:14px 16px;}
.insc-checkbox-label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:13px;color:var(--gray-text);line-height:1.6;}
.insc-checkbox{width:16px;height:16px;flex-shrink:0;margin-top:2px;accent-color:var(--navy);cursor:pointer;}

/* Prix box */
.insc-prix-box{background:var(--navy-light);border:1.5px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-top:8px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;}
.insc-prix-label{font-family:var(--font-head);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--gray-text);flex-shrink:0;}
.insc-prix-montant{font-family:var(--font-head);font-weight:800;font-size:18px;color:var(--navy);}
.insc-prix-note{font-size:12px;color:var(--red);flex-basis:100%;margin-top:4px;line-height:1.5;}

/* Radio group */
.insc-radio-group{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:4px;}
.insc-radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text);padding:8px 14px;border:1.5px solid var(--border);border-radius:var(--radius);transition:all .15s;}
.insc-radio-label:has(input:checked){border-color:var(--navy);background:var(--navy-light);color:var(--navy);font-weight:600;}
.insc-radio{accent-color:var(--navy);width:15px;height:15px;flex-shrink:0;}

/* Section last */
.insc-section-last{background:var(--gray-bg);border-radius:var(--radius-lg);}
.insc-checkbox-label a{color:var(--navy);font-weight:600;}

/* Responsive formulaire */
@media (max-width:1024px){
  .contact-layout{grid-template-columns:1fr;gap:28px;}
}
@media (max-width:768px){
  .contact-layout{padding:20px 16px;}
  .bigin-form{padding:20px 16px;}
  .bigin-row-2{grid-template-columns:1fr;}
  .bigin-captcha-wrap{flex-direction:column;}
  .bigin-captcha-right{flex-direction:row;align-items:center;}
  .bigin-footer{flex-direction:column;align-items:flex-start;}
  .bigin-footer .btn{width:100%;text-align:center;justify-content:center;}
  .insc-layout{grid-template-columns:1fr;padding:20px 16px;gap:20px;}
  .insc-section{padding:16px;}
  .bigin-row[style*="120px"]{grid-template-columns:1fr 1fr;}
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — TABLETTE  (≤ 1024px)
══════════════════════════════════════════════════════════════ */
@media (max-width:1024px) {
  .hero-inner{grid-template-columns:1fr;gap:28px;padding:48px 20px;}
  .hero-brand{max-width:100%;}
  .footer-main{grid-template-columns:1fr 1fr;gap:28px;}
  .news-grid{grid-template-columns:repeat(2,1fr);}
  .course-layout{grid-template-columns:1fr;gap:28px;}
  .course-sidebar{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
  .sessions-grid{grid-template-columns:1fr;}
  .info-layout{grid-template-columns:1fr;gap:28px;}
  .news-layout{grid-template-columns:1fr;gap:28px;}
  .providers-grid{grid-template-columns:repeat(2,1fr);}
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE  (≤ 768px)
══════════════════════════════════════════════════════════════ */
@media (max-width:768px) {

  /* ── HEADER / NAV ── */
  .nav-toggle{display:block;}
  .main-nav{
    display:none;
    flex-direction:column;
    position:absolute;
    top:100%;left:0;right:0;
    background:var(--navy);
    border-top:1px solid rgba(255,255,255,.12);
    padding:4px 0 12px;
    z-index:200;
    box-shadow:0 8px 24px rgba(0,0,0,.25);
  }
  .main-nav.open{display:flex;}
  .header-inner{position:relative;}
  .nav-link{padding:13px 20px;border-bottom:1px solid rgba(255,255,255,.06);}
  .nav-link.current{border-bottom-width:1px;border-left:3px solid var(--red);}

  /* ── HERO ── */
  .hero{min-height:auto;}
  .hero-inner{padding:32px 16px;gap:20px;}
  .hero-brand h1{font-size:26px;}
  .hero-banner span{font-size:16px;}
  .hero-cta-box p{font-size:17px;}
  .hero-cta-box{padding:20px;}

  /* ── STATS ── */
  .stats-bar-inner{flex-wrap:wrap;}
  .stat-item{flex:1 1 50%;border-right:none;border-bottom:1px solid rgba(255,255,255,.1);}
  .stat-item:nth-child(odd){border-right:1px solid rgba(255,255,255,.1);}
  .stat-number{font-size:22px;}

  /* ── SECTIONS / GLOBAL ── */
  .section{padding:36px 16px;}
  .container{padding:0 16px;}
  .section-title{font-size:22px;}
  .section-lead{font-size:13px;}
  .page-header{padding:36px 16px;}
  .page-header h1{font-size:22px;}

  /* ── EXCELLENCE ── */
  .excellence-grid{grid-template-columns:1fr;gap:16px;}

  /* ── NEWS GRID (liste) ── */
  .news-section{padding:40px 0;}
  .news-grid{grid-template-columns:1fr;gap:16px;padding:0 16px;}

  /* ── FILTER BAR ── */
  .filter-bar{padding:12px 16px;}
  .filter-bar-inner{gap:8px;}
  .filter-search{margin-left:0;width:100%;}
  .filter-search input{width:100%;}

  /* ── CATALOGUE ── */
  .catalogue-section{padding:20px 16px;}
  .catalogue-grid{grid-template-columns:1fr;gap:16px;}

  /* ── DETAIL FORMATION ── */
  .course-layout{padding:24px 16px;grid-template-columns:1fr;}
  .course-sidebar{display:flex;flex-direction:column;}
  .sessions-grid{grid-template-columns:1fr;}

  /* ── CALENDRIER ── */
  .calendar-section{padding:20px 16px;}
  .calendar-filters{flex-direction:column;align-items:stretch;gap:10px;padding:16px;}
  .cal-select,.cal-search{width:100%;min-width:0;}

  /* Table → cartes sur mobile */
  .sessions-table{display:block;white-space:normal;overflow-x:visible;}
  .sessions-table thead{display:none;}
  .sessions-table tbody{display:block;}
  .sessions-table tr{
    display:block;
    background:var(--white);
    border:1.5px solid var(--border);
    border-radius:var(--radius-lg);
    margin-bottom:12px;
    padding:2px 14px 8px;
  }
  .sessions-table td{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:8px 0;
    border-bottom:1px solid var(--border);
    font-size:13px;
    white-space:normal;
  }
  .sessions-table td:last-child{border-bottom:none;}
  .sessions-table td::before{
    content:attr(data-label);
    font-family:var(--font-head);
    font-weight:700;
    color:var(--navy);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.5px;
    min-width:72px;
    flex-shrink:0;
    padding-top:3px;
  }
  /* DATES en 3 lignes empilées : plage de dates / détail des dates / rythme */
  .td-dates-wrap{flex:1;min-width:0;}
  .td-dates small{display:block;white-space:normal;max-width:none;}

  /* ── NEWS ARTICLE ── */
  .news-layout{padding:24px 16px;grid-template-columns:1fr;gap:28px;}
  .article-body{font-size:14px;}

  /* ── PAGES INFO ── */
  .info-layout{padding:24px 16px;grid-template-columns:1fr;gap:28px;}
  .providers-grid{grid-template-columns:1fr 1fr;gap:12px;}

  /* ── FOOTER ── */
  .footer-main{grid-template-columns:1fr;gap:20px;padding:28px 16px;}
  .footer-bottom{flex-direction:column;gap:6px;text-align:center;padding:14px 16px;}

  /* ── PARTENAIRES ── */
  .partner-card{width:140px;height:72px;}

  /* ── TYPOGRAPHIE ── */
  .prose{font-size:13px;}
  .article-body p,.info-content p{font-size:14px;}
}

/* ══════════════════════════════════════════════════════════════
   FORMULAIRE D'INSCRIPTION v2 — participants, code partenaire,
   sessions réservées (partial form-inscription.html, 2026-11)
══════════════════════════════════════════════════════════════ */
.btn-navy{background:var(--navy);color:var(--white);border:none;}
.btn-navy:hover{background:var(--navy-mid);}
.btn-navy:disabled{opacity:.6;cursor:wait;}
.insc-field-hint{font-size:11px;color:var(--gray-text);display:block;margin-top:4px;}
.insc-section-intro{font-size:13px;color:var(--gray-text);line-height:1.6;margin:-10px 0 18px;}
.insc-locked{background:var(--gray-bg)!important;color:var(--gray-text)!important;cursor:not-allowed;}
.insc-lieu-hint{display:flex;gap:6px;align-items:flex-start;font-size:13px;color:var(--navy);font-weight:600;margin-top:6px;}
.insc-lieu-hint:empty{display:none;}
.insc-reserved-tag{display:inline-block;font-family:var(--font-head);font-size:11px;font-weight:700;background:var(--navy);color:#fff;border-radius:999px;padding:3px 10px;margin-bottom:8px;}

/* Prix (détail par participant) */
.insc-prix-box{display:block;}
.insc-prix-top{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;}
.insc-prix-detail{font-size:13px;color:var(--gray-text);}
.insc-prix-lines{display:none;margin-top:10px;font-size:13px;border-top:1px solid var(--border);padding-top:8px;}
.insc-prix-line{display:flex;justify-content:space-between;gap:12px;padding:3px 0;}
.insc-prix-line .who{color:var(--text);}
.insc-prix-line .amt{font-weight:600;color:var(--navy);white-space:nowrap;}
.insc-prix-line .old{text-decoration:line-through;color:var(--gray-text);font-weight:400;margin-right:6px;}
.insc-prix-note{display:none;}

/* Messages */
.insc-msg{display:flex;gap:10px;align-items:flex-start;border-radius:var(--radius);padding:12px 14px;font-size:13px;line-height:1.6;margin-top:12px;}
.insc-msg-ok{background:#dcfce7;color:#15803d;border:1.5px solid #86efac;}
.insc-msg-warn{background:#fff8e1;color:#7a5a00;border:1.5px solid #f9c340;}
.insc-msg-ko{background:var(--red-light);color:var(--red);border:1.5px solid #f3b3b7;}
.insc-msg-info{background:var(--navy-light);color:var(--navy);border:1.5px solid var(--border);}

/* Code partenaire */
.insc-voucher-row{display:flex;gap:10px;align-items:stretch;}
.insc-voucher-row .bigin-input{text-transform:uppercase;letter-spacing:1px;font-family:ui-monospace,Consolas,monospace;}
.insc-voucher-ok{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#dcfce7;border:1.5px solid #86efac;border-radius:var(--radius);padding:10px 14px;font-size:13px;color:#15803d;}
.insc-voucher-ok code{background:#fff;border-radius:4px;padding:2px 8px;color:var(--text);}
.insc-voucher-ok .insc-btn-link{margin-left:auto;}
.insc-btn-link{background:none;border:none;color:var(--navy);font-weight:600;text-decoration:underline;cursor:pointer;font:inherit;padding:0;}
.insc-conv-cond{background:var(--gray-bg);border-radius:var(--radius);padding:14px 16px;font-size:13px;line-height:1.65;color:var(--text);margin-top:12px;}
.insc-conv-cond strong{color:var(--navy);display:block;margin-bottom:4px;}
.insc-conv-cond p{margin-top:4px;}
.insc-conv-scale{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;}
.insc-conv-step{flex:1;min-width:70px;text-align:center;border:1.5px solid var(--border);border-radius:var(--radius);padding:8px 4px;background:var(--white);}
.insc-conv-step b{display:block;font-family:var(--font-head);font-size:14px;color:var(--navy);}
.insc-conv-step span{font-size:11px;color:var(--gray-text);}
.insc-conv-step.on{border-color:var(--navy);background:var(--navy);}
.insc-conv-step.on b,.insc-conv-step.on span{color:#fff;}

/* Participants */
.insc-part-counter{margin-left:auto;font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--navy);background:var(--navy-light);border-radius:999px;padding:4px 12px;}
.insc-part-card{border:1.5px solid var(--border);border-radius:var(--radius);padding:16px 16px 4px;margin-bottom:12px;}
.insc-part-card.is-contact{border-color:var(--navy);background:#fafaff;}
.insc-part-card.is-provisoire{border-style:dashed;border-color:#f9c340;background:#fffdf5;}
.insc-part-head{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.insc-part-title{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--navy);}
.insc-badge{font-size:11px;font-weight:600;border-radius:999px;padding:2px 10px;}
.insc-badge-contact{background:var(--navy);color:#fff;}
.insc-badge-prov{background:#fff8e1;color:#7a5a00;border:1px solid #f9c340;}
.insc-badge-conv{background:#dcfce7;color:#15803d;border:1px solid #86efac;}
.insc-part-remove{margin-left:auto;background:none;border:none;color:var(--red);font-family:var(--font-head);font-weight:700;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:var(--radius);}
.insc-part-remove:hover{background:var(--red-light);}
.insc-part-remove:disabled{color:var(--border);cursor:not-allowed;background:none;}
.insc-row-3{grid-template-columns:1fr 1fr 1.3fr;}
.insc-row-addr{grid-template-columns:2fr 90px 1.2fr;}
.insc-part-opts{display:flex;gap:8px 24px;flex-wrap:wrap;margin:-4px 0 14px;}
.insc-part-add{display:flex;align-items:center;justify-content:center;width:100%;padding:12px;border:1.5px dashed var(--navy);border-radius:var(--radius);background:var(--white);color:var(--navy);font-family:var(--font-head);font-weight:700;font-size:13px;cursor:pointer;}
.insc-part-add:hover{background:var(--navy-light);}
.insc-part-add:disabled{border-color:var(--border);color:var(--gray-text);cursor:not-allowed;background:var(--gray-bg);}

@media (max-width:768px){
  .insc-row-3,.insc-row-addr{grid-template-columns:1fr;gap:0;}
  .insc-voucher-row{flex-direction:column;}
}

/* ══════════════════════════════════════════════════════════════
   CATALOGUE /formations PAR THÉMATIQUE (layouts/formations/list.html, v1.1.0, 2026-11)
   Tuiles thématiques, barre collante, sections avec intro + parcours,
   tableaux (base .sessions-table), cartes cursus fédéraux, vue A–Z.
══════════════════════════════════════════════════════════════ */
.page-header .page-lead{color:rgba(255,255,255,.75);font-size:14px;line-height:1.7;max-width:640px;margin:14px auto 0;}

/* Filtres */
.cat-filters{flex-direction:column;align-items:stretch;gap:12px;}
.cat-filters .filter-search{margin-left:0;width:100%;padding:10px 14px;}
.cat-filters .filter-search input{width:100%;font-size:14px;font-family:var(--font-body);}
.cat-filter-row{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;}
.cat-filter-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.cat-filter-label{font-size:12px;color:var(--gray-text);font-weight:600;margin-right:4px;}
.cat-filters .filter-tag,.view-toggle .filter-tag{font-size:11px;padding:5px 13px;}
.cat-reset{background:none;border:none;font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--red);cursor:pointer;text-decoration:underline;padding:4px;}

/* Tuiles thématiques */
.theme-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.theme-tile{display:flex;flex-direction:column;gap:8px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 18px 16px;transition:all .2s;position:relative;}
.theme-tile:hover{box-shadow:0 6px 24px rgba(26,26,110,.12);transform:translateY(-2px);border-color:var(--navy);}
.theme-tile-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.theme-tile-code{font-family:var(--font-head);font-weight:800;font-size:11px;letter-spacing:1px;color:var(--navy);background:var(--navy-light);border-radius:var(--radius);padding:5px 8px;}
.theme-tile-count{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--navy);line-height:1;}
.theme-tile h3{font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--navy);line-height:1.35;}
.theme-tile p{font-size:12px;color:var(--gray-text);line-height:1.6;}
.theme-tile::after{content:'';position:absolute;left:18px;right:18px;bottom:0;height:3px;background:var(--red);transform:scaleX(0);transition:transform .2s;transform-origin:left;}
.theme-tile:hover::after{transform:scaleX(1);}
.theme-tile.featured{background:var(--navy);border-color:var(--navy);}
.theme-tile.featured h3,.theme-tile.featured .theme-tile-count{color:var(--white);}
.theme-tile.featured p{color:rgba(255,255,255,.7);}
.theme-tile.featured .theme-tile-code{background:var(--red);color:var(--white);}
.theme-tile.is-empty{opacity:.4;}

/* Barre collante sous le header (80px) */
.theme-nav{position:sticky;top:80px;z-index:50;background:var(--white);border-bottom:1px solid var(--border);box-shadow:0 2px 8px rgba(26,26,110,.04);}
.theme-nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:16px;}
.theme-nav-links{display:flex;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;}
.theme-nav-links::-webkit-scrollbar{display:none;}
.theme-nav-links a{border-bottom:3px solid transparent;padding:14px 12px 11px;font-family:var(--font-head);font-weight:700;font-size:12px;color:var(--gray-text);white-space:nowrap;}
.theme-nav-links a span{color:var(--red);margin-left:4px;}
.theme-nav-links a:hover{color:var(--navy);}
.theme-nav-links a.current{color:var(--navy);border-bottom-color:var(--red);}
.theme-nav-links a.is-empty{opacity:.35;pointer-events:none;}
.theme-nav-count{font-size:12px;color:var(--gray-text);white-space:nowrap;}
.view-toggle{display:flex;gap:6px;flex-shrink:0;}

/* Sections */
.cat-body{padding-top:0;}
.theme-section{scroll-margin-top:140px;padding-top:48px;}
.theme-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-left:4px solid var(--red);padding-left:16px;}
.theme-head h2{font-family:var(--font-head);font-weight:800;font-size:24px;color:var(--navy);line-height:1.2;}
.theme-count{font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--gray-text);white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;}
.theme-intro{font-size:14px;color:var(--gray-text);line-height:1.85;max-width:820px;margin:14px 0 0 20px;}
.theme-path{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0 0 20px;}
.theme-path-label{font-family:var(--font-head);font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--navy);margin-right:6px;}
.theme-path .td-theme{margin-top:0;}
.theme-path .td-theme:hover{background:var(--navy);color:var(--white);}
.theme-path .arr{color:var(--red);font-weight:700;margin:0 2px;}
.theme-path .sep{width:1px;height:14px;background:var(--border);margin:0 10px;}

/* Tableaux */
.cat-table-wrap{margin-top:20px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.cat-table tbody tr{cursor:pointer;}
.cat-table thead th{white-space:nowrap;}
.cat-table .num{text-align:right;}
.cat-table .code{display:block;font-family:var(--font-body);font-weight:600;font-size:11px;color:var(--gray-text);margin-top:4px;}
.cat-table .cert{display:block;font-family:var(--font-body);font-weight:400;font-size:12px;color:var(--gray-text);margin-top:2px;}
.cat-table .also{display:inline-block;background:var(--gray-card);color:var(--gray-text);font-family:var(--font-head);font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;margin:5px 4px 0 0;}
.cat-table .prix{font-family:var(--font-head);font-weight:700;color:var(--navy);white-space:nowrap;}
.cat-table .prix.req{font-family:var(--font-body);font-weight:400;color:var(--gray-text);font-size:12px;}
.cat-table .duree{white-space:nowrap;}
.cat-table .td-formation{display:block;}
.cat-table tbody tr:hover .td-formation{color:var(--navy-mid);text-decoration:underline;}
.niveau{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;color:var(--text);}
.niveau i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--border);margin-right:2px;}
.niveau i.on{background:var(--navy);}
.places-pill.none{background:var(--gray-card);color:var(--gray-text);}
.cat-th-sort{all:unset;cursor:pointer;}
.cat-th-sort[data-dir="1"]::after{content:' ▲';font-size:8px;}
.cat-th-sort[data-dir="-1"]::after{content:' ▼';font-size:8px;}
#viewAZ .cat-table-wrap{margin-top:32px;}

.theme-fedlink{margin:16px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;}
.theme-fedlink p{font-size:13px;}
.theme-fedlink a{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--navy);}
.theme-fedlink a::after{content:' →';color:var(--red);}
.theme-fedlink a:hover{text-decoration:underline;}

/* Cursus fédéraux */
.fed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:22px;}
.fed-card{display:flex;flex-direction:column;gap:10px;background:var(--navy);border-top:4px solid var(--red);border-radius:var(--radius-lg);padding:20px 18px;color:var(--white);transition:all .2s;}
.fed-card:hover{background:var(--navy-mid);transform:translateY(-2px);box-shadow:0 6px 24px rgba(26,26,110,.25);}
.fed-card .fed-tag{font-family:var(--font-head);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.55);line-height:1.5;}
.fed-card h3{font-family:var(--font-head);font-weight:800;font-size:15px;line-height:1.3;}
.fed-card .fed-meta{font-size:12px;color:rgba(255,255,255,.75);display:flex;flex-direction:column;gap:3px;margin-top:auto;}
.fed-card .fed-meta .prix{font-family:var(--font-head);font-weight:700;color:var(--white);font-size:14px;}
.fed-card .fed-sub{display:inline-block;align-self:flex-start;background:rgba(255,255,255,.12);color:var(--white);font-family:var(--font-head);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;}
.fed-card .fed-more{font-family:var(--font-head);font-size:12px;font-weight:700;}
.fed-card .fed-more::after{content:' →';color:var(--red);}
.cat-empty{text-align:center;padding:60px 0;color:var(--gray-text);}

/* Fiche formation : bloc Parcours */
.parcours-label{font-family:var(--font-head);font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-text);margin:0 0 6px;}
.parcours-list{list-style:none;margin-bottom:14px;}
.parcours-list:last-child{margin-bottom:0;}
.parcours-list li{font-size:13px;line-height:1.5;padding:5px 0;border-bottom:1px solid var(--border);}
.parcours-list li:last-child{border-bottom:none;}
.parcours-list a{color:var(--navy);font-weight:600;}
.parcours-list a::before{content:'› ';color:var(--red);}
.parcours-list a:hover{text-decoration:underline;}

@media (max-width:1024px){
  .theme-tiles{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .theme-nav-inner{padding:0 16px;gap:10px;}
  .theme-nav-count{display:none;}
  .theme-tiles{grid-template-columns:1fr 1fr;gap:10px;}
  .theme-tile{padding:14px;}
  .theme-tile p{display:none;}
  .fed-grid{grid-template-columns:1fr;}
  .theme-head h2{font-size:19px;}
  .theme-intro,.theme-path{margin-left:0;}
  .cat-table-wrap{border:none;overflow:visible;}
  .cat-table tr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:14px 14px 12px;}
  .cat-table tbody td{display:block;border:none;padding:0;width:auto;flex:0 0 auto;min-width:0;}
  .cat-table td::before{display:none;}
  .cat-table tbody td:first-child{width:100%;padding-bottom:4px;}
  .cat-table .num{text-align:left;}
  .view-toggle .filter-tag{padding:5px 10px;}
}
@media (prefers-reduced-motion:reduce){
  .theme-tile,.fed-card,.theme-tile::after{transition:none;}
}

/* ==========================================================================
   NEWSLETTER (partial newsletter.html — formulaire Infomaniak)
   Les classes inf-* sont celles attendues par webform_index.js d'Infomaniak.
   ========================================================================== */
.nl-prose{margin-bottom:20px;}
.nl-box{background:var(--gray-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 24px;}
.nl-title{font-family:var(--font-head);font-weight:700;font-size:20px;color:var(--navy);margin-bottom:10px;padding-bottom:12px;border-bottom:2px solid var(--red);}
.nl-intro{display:block;font-size:14px;color:var(--gray-text);line-height:1.7;}
.nl-form .inf-content{margin-top:20px;}
.nl-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.nl-form .inf-input{margin-bottom:14px;}
.nl-form .inf-input label{display:block;font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.nl-req{color:var(--red);}
.nl-form .inf-input input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:var(--font-body);color:var(--text);background:var(--white);transition:border-color .2s,box-shadow .2s;outline:none;}
.nl-form .inf-input input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(26,26,110,.08);}
.nl-form .inf-input.inf-error label,.nl-form .inf-input.inf-error .inf-message{color:var(--red);}
.nl-form .inf-input.inf-error input{border-color:var(--red);}
.nl-form .inf-input .inf-message{display:none;font-size:12px;margin-top:4px;}
.nl-form .inf-input.inf-error .inf-message{display:block;}
.nl-form .inf-rgpd{font-size:12px;color:var(--gray-text);line-height:1.6;margin:6px 0 16px;}
.nl-form .inf-rgpd a{color:var(--navy);text-decoration:underline;}
.nl-form .altcha-label span{color:var(--gray-text);}
.nl-form .inf-submit{text-align:right;}
.nl-form .inf-submit input{border:none;}
.nl-form .inf-submit input.disabled,.nl-form .inf-submit input:disabled{opacity:.45;cursor:not-allowed;}
.nl-success h4{font-family:var(--font-head);font-size:15px;color:var(--navy);line-height:1.6;margin:18px 0 12px;}
.nl-form .inf-btn{display:inline-block;padding:8px 14px;font-size:13px;color:var(--navy);background:var(--white);border:1px solid var(--border);border-radius:var(--radius);}
.nl-message{max-width:760px;margin:0 auto;padding:48px 24px;}
.nl-message .prose p{margin-bottom:14px;line-height:1.7;}
.nl-message-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}
@media (max-width:600px){.nl-row{grid-template-columns:1fr;gap:0;}.nl-box{padding:22px 16px;}}

/* ── Inscription : fil rouge des étapes + choix BF/DF (2026-11) ── */
.insc-fr{border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 20px 22px;margin-bottom:16px;background:var(--white);}
.insc-fr-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin-bottom:18px;}
.insc-fr-head h2{font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--navy);}
.insc-fr-head span{font-size:12px;color:var(--gray-text);}
.insc-fr-list{list-style:none;display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));}
.insc-fr-list li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 6px;min-width:0;}
.insc-fr-list li::before{content:"";position:absolute;top:15px;left:-50%;right:50%;height:3px;background:var(--border);}
.insc-fr-list li:first-child::before{display:none;}
.insc-fr-list li.done::before,.insc-fr-list li.cur::before{background:var(--red);}
.insc-fr-dot{position:relative;z-index:1;width:33px;height:33px;margin-bottom:8px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:13px;background:var(--white);border:3px solid var(--border);color:var(--gray-text);}
.insc-fr-list li.cur .insc-fr-dot{border-color:var(--red);background:var(--red);color:#fff;box-shadow:0 0 0 5px var(--red-light);}
.insc-fr-list li.done .insc-fr-dot{border-color:var(--red);background:var(--red);color:#fff;}
.insc-fr-list li.opt .insc-fr-dot{border-style:dashed;}
.insc-fr-t{font-family:var(--font-head);font-weight:700;font-size:12.5px;line-height:1.3;color:var(--text);}
.insc-fr-d{font-size:11.5px;line-height:1.4;color:var(--gray-text);margin-top:3px;}
.insc-fr-who{margin-top:6px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:20px;padding:2px 8px;background:var(--gray-card);color:var(--gray-text);}
.insc-fr-vous{background:var(--red-light);color:var(--red);}
.insc-fr-emp{background:#fff2dc;color:#7a5a00;}
.insc-fr-here{font-size:10.5px;font-weight:700;color:var(--red);margin-top:4px;}
.insc-fr-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
@media (max-width:768px){
  .insc-fr{padding:16px;}
  .insc-fr-list{grid-template-columns:1fr;}
  .insc-fr-list li{display:grid;grid-template-columns:33px 1fr;column-gap:12px;align-items:start;justify-items:start;text-align:left;padding:0 0 14px;}
  .insc-fr-list li::before{display:none;}
  .insc-fr-list li:not(:last-child)::after{content:"";position:absolute;left:15px;top:33px;bottom:0;width:3px;background:var(--border);}
  .insc-fr-list li.done:not(:last-child)::after{background:var(--red);}
  .insc-fr-dot{margin:0;grid-row:span 4;}
}
.insc-qui{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px;}
.insc-qui-opt{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--border);border-radius:var(--radius);padding:11px 12px;cursor:pointer;}
.insc-qui-opt:has(input:checked){border-color:var(--navy);background:var(--navy-light);}
.insc-qui-opt b{display:block;font-family:var(--font-head);font-size:13px;color:var(--navy);}
.insc-qui-opt small{display:block;font-size:12px;color:var(--gray-text);}
@media (max-width:600px){.insc-qui{grid-template-columns:1fr;}}
