:root{
  --teal:#4aa9b4;
  --teal-dark:#367f88;
  --teal-light:#98b9c3;
  --ink:#182226;
  --ink-soft:#4b5a60;
  --ink-soft2:#6b7a80;
  --bg:#f7f9fa;
  --line:#dde6e8;
  --panel:#eef3f4;
  --panel2:#f4f6f8;
  --red:#e8564a;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Inter',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;}
body>main{flex:1;}
a{color:var(--teal);}
a:hover{color:var(--teal-dark);}
img{max-width:100%;display:block;}
input,select,textarea{font-family:inherit;}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px;}
.narrow{max-width:900px;margin:0 auto;padding:0 24px;}
.legal{max-width:800px;margin:0 auto;padding:64px 24px;}
.legal h1{font-size:32px;font-weight:800;margin:0 0 32px;}
.legal h2{font-size:18px;font-weight:700;margin:0 0 10px;}
.legal p{font-size:15px;line-height:1.7;color:var(--ink-soft);margin:0 0 28px;}
.legal .tag{color:var(--teal);font-weight:700;letter-spacing:0.1em;font-size:13px;margin:0 0 12px;text-transform:uppercase;}

/* Header */
header{position:sticky;top:0;z-index:100;background:#fbfcfc;border-bottom:1px solid var(--line);}
.header-inner{max-width:1240px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.back-link{text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;}
.back-link:hover{color:var(--teal);}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);}
.logo img{height:44px;width:auto;}
.logo-text{display:flex;flex-direction:column;line-height:1.15;}
.logo-text b{font-size:15px;font-weight:800;}
.logo-text span{font-size:10px;font-weight:600;letter-spacing:0.12em;color:var(--teal);}

.desktop-nav{display:none;align-items:center;gap:32px;}
.nav-link{text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;}
.nav-link:hover{color:var(--teal);}
.nav-link.active{color:var(--teal);font-weight:700;}
.dropdown{position:relative;}
.dropdown-btn{background:none;border:none;cursor:pointer;font-weight:600;font-size:15px;color:var(--ink);display:flex;align-items:center;gap:4px;font-family:inherit;}
.dropdown-btn.active{color:var(--teal);font-weight:700;}
.dropdown-menu{position:absolute;top:36px;left:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(24,34,38,0.14);padding:8px;min-width:280px;display:none;flex-direction:column;}
.dropdown.open .dropdown-menu{display:flex;}
.dropdown-item{padding:10px 14px;border-radius:6px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:500;}
.dropdown-item:hover{background:var(--panel);}
.dropdown-item.active{color:var(--teal);font-weight:700;background:var(--panel);}
.btn-contact{text-decoration:none;background:var(--teal);color:#fff;padding:10px 22px;border-radius:6px;font-weight:600;font-size:14px;}
.btn-contact:hover{background:var(--teal-dark);}

.mobile-toggle{background:none;border:none;cursor:pointer;padding:8px;display:flex;flex-direction:column;gap:5px;}
.mobile-toggle span{width:24px;height:2px;background:var(--ink);display:block;}

.mobile-panel{display:none;border-top:1px solid var(--line);padding:16px 24px 24px;flex-direction:column;gap:4px;background:#fff;}
.mobile-panel.open{display:flex;}
.mobile-link{padding:12px 4px;text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;border-bottom:1px solid var(--panel);}
.mobile-link.active{color:var(--teal);}
.mobile-dropdown-btn{text-align:left;padding:12px 4px;background:none;border:none;font-family:inherit;color:var(--ink);font-weight:600;font-size:15px;border-bottom:1px solid var(--panel);cursor:pointer;width:100%;}
.mobile-submenu{display:none;flex-direction:column;padding-left:12px;}
.mobile-submenu.open{display:flex;}
.mobile-submenu a{padding:9px 4px;text-decoration:none;color:var(--ink-soft);font-size:14px;}
.mobile-submenu a.active{color:var(--teal);font-weight:700;}
.mobile-cta{margin-top:8px;text-align:center;text-decoration:none;background:var(--teal);color:#fff;padding:12px;border-radius:6px;font-weight:600;font-size:15px;}

@media (min-width:900px){
  .desktop-nav{display:flex;}
  .mobile-toggle{display:none;}
  .mobile-panel{display:none !important;}
}

/* Hero (grid, with photo) */
.hero{background:var(--ink);color:#fff;}
.hero-inner{max-width:1240px;margin:0 auto;padding:56px 24px;display:grid;grid-template-columns:1fr;gap:40px;align-items:center;}
.eyebrow{color:var(--teal-light);font-weight:700;letter-spacing:0.14em;font-size:13px;margin:0 0 16px;text-transform:uppercase;}
.hero h1{font-size:32px;line-height:1.15;font-weight:800;margin:0 0 20px;}
.hero p{font-size:16px;line-height:1.6;color:#c9d3d6;max-width:520px;margin:0 0 32px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.btn-primary{text-decoration:none;background:var(--teal);color:#fff;padding:14px 26px;border-radius:6px;font-weight:700;font-size:15px;border:none;cursor:pointer;display:inline-block;}
.btn-primary:hover{background:var(--teal-dark);}
.btn-outline{text-decoration:none;border:1px solid #3a464b;color:#fff;padding:14px 26px;border-radius:6px;font-weight:700;font-size:15px;background:none;}
.btn-outline:hover{border-color:var(--teal-light);color:var(--teal-light);}
.hero-media{aspect-ratio:4/3;border-radius:10px;background:repeating-linear-gradient(135deg,#223035,#223035 12px,#1b2629 12px,#1b2629 24px);display:flex;align-items:center;justify-content:center;border:1px solid #2a3a40;}
.hero-media span{font-family:'Courier New',monospace;font-size:12px;color:var(--teal-light);text-align:center;padding:16px;background:rgba(24,34,38,0.72);border-radius:6px;}
.hero-photo{aspect-ratio:1/1;border-radius:50%;background-position:center;background-size:contain;background-repeat:no-repeat;border:1px solid #2a3a40;box-shadow:-2px 8px 12px 0px rgba(74,169,180,0.43);max-width:340px;width:100%;margin:0 auto;}

@media (min-width:900px){
  .hero-inner{grid-template-columns:1.1fr 1fr;gap:56px;padding:72px 24px;}
  .hero h1{font-size:44px;}
  .hero p{font-size:17px;}
  .hero-inner.narrow-hero{grid-template-columns:1.1fr 1fr;}
}

/* Simple centered hero (About, legal-ish sections, Contact, FormationContinue) */
.hero-centered{background:var(--ink);padding:48px 24px;}
@media (min-width:900px){.hero-centered{padding:64px 24px;}}
.hero-centered-inner{max-width:840px;margin:0 auto;text-align:center;}
.hero-centered h1{font-size:30px;font-weight:800;color:#fff;margin:0;}
@media (min-width:900px){.hero-centered h1{font-size:38px;}}
.hero-centered p{font-size:16px;color:#c9d3d6;margin:14px auto 0;max-width:620px;line-height:1.6;}

/* Mission / values grid */
.mission{max-width:1240px;margin:0 auto;padding:40px 24px;display:grid;grid-template-columns:1fr;gap:28px;}
@media (min-width:640px){.mission{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:56px 24px;}}
.mission-item{border-left:3px solid var(--teal);padding-left:18px;}
.mission-item h3{font-size:16px;font-weight:700;margin:0 0 8px;}
.mission-item p{font-size:14px;color:var(--ink-soft);line-height:1.55;margin:0;}

/* Formations grid (home) */
.formations{background:var(--panel);padding:48px 24px;}
@media (min-width:900px){.formations{padding:64px 24px;}}
.formations-head{max-width:640px;margin:0 auto 40px;text-align:center;}
.formations-head p.tag{color:var(--teal);font-weight:700;letter-spacing:0.1em;font-size:13px;margin:0 0 12px;text-transform:uppercase;}
.formations-head h2{font-size:26px;font-weight:800;margin:0 0 12px;}
@media (min-width:900px){.formations-head h2{font-size:32px;}}
.formations-head p.sub{font-size:16px;color:var(--ink-soft);margin:0;}
.formations-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:640px){.formations-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}}

/* Grille a 2 colonnes fixes (ex. les 4 modules de Formation Continue) */
.modules-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:640px){.modules-grid{grid-template-columns:repeat(2,1fr);}}
.formation-card{text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px;display:flex;flex-direction:column;gap:10px;}
.formation-card:hover{border-color:var(--teal);box-shadow:0 8px 24px rgba(24,34,38,0.08);}
.formation-card .code{font-size:13px;font-weight:700;color:var(--teal);letter-spacing:0.06em;}
.formation-card h3{font-size:18px;font-weight:700;margin:0;color:var(--ink);}
.formation-card p{font-size:14px;color:var(--ink-soft);margin:0;line-height:1.5;}
.formation-card .cta{margin-top:auto;font-size:14px;font-weight:700;color:var(--teal);}
.formation-card.dark{background:var(--ink);border-color:var(--ink);}
.formation-card.dark:hover{box-shadow:0 8px 24px rgba(24,34,38,0.18);}
.formation-card.dark .code{color:var(--teal-light);}
.formation-card.dark h3{color:#fff;}
.formation-card.dark p{color:#c9d3d6;}
.formation-card.dark .cta{color:var(--teal-light);}

/* About preview / two-col media+text */
.split,.about{max-width:1240px;margin:0 auto;padding:48px 24px;display:grid;grid-template-columns:1fr;gap:40px;align-items:center;}
@media (min-width:900px){.split,.about{grid-template-columns:1fr 1fr;gap:56px;padding:72px 24px;}}
.split-media,.about-media{aspect-ratio:4/3;border-radius:10px;background:repeating-linear-gradient(135deg,#eef3f4,#eef3f4 12px,#e2ebec 12px,#e2ebec 24px);display:flex;align-items:center;justify-content:center;border:1px solid var(--line);}
.split-media span,.about-media span{font-family:'Courier New',monospace;font-size:12px;color:var(--ink-soft);text-align:center;padding:16px;}
.split-text p.tag,.about-text p.tag{color:var(--teal);font-weight:700;letter-spacing:0.1em;font-size:13px;margin:0 0 12px;text-transform:uppercase;}
.split-text h2,.about-text h2{font-size:26px;font-weight:800;margin:0 0 16px;}
@media (min-width:900px){.split-text h2,.about-text h2{font-size:30px;}}
.split-text p.body,.about-text p.body{font-size:16px;color:var(--ink-soft);line-height:1.6;margin:0 0 24px;}
.split-text a.more,.about-text a.more{text-decoration:none;color:var(--teal);font-weight:700;font-size:15px;}
.split-text a.more:hover,.about-text a.more:hover{color:var(--teal-dark);}

/* CTA banner */
.cta-banner{background:var(--teal);padding:48px 24px;}
.cta-banner-inner{max-width:840px;margin:0 auto;text-align:center;}
.cta-banner h2{font-size:24px;font-weight:800;color:#fff;margin:0 0 14px;}
@media (min-width:900px){.cta-banner h2{font-size:28px;}}
.cta-banner p{font-size:16px;color:#e6f2f4;margin:0 0 28px;}
.btn-dark{text-decoration:none;background:var(--ink);color:#fff;padding:14px 30px;border-radius:6px;font-weight:700;font-size:15px;border:none;cursor:pointer;display:inline-block;}
.btn-dark:hover{background:#0f1417;}

/* CTA band inline (small, within tab content) */
.cta-band{background:var(--teal);border-radius:10px;padding:32px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;}
.cta-band p{margin:0;font-size:17px;font-weight:700;color:#fff;}
.cta-band .btn-dark{padding:12px 26px;}

/* Footer */
footer{background:var(--ink);color:#c9d3d6;padding:40px 24px 24px;}
footer.footer-full{padding:48px 24px 28px;}
.footer-inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:32px;}
@media (min-width:640px){.footer-inner{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px;}}
.footer-inner.footer-simple{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.footer-brand img{height:40px;width:auto;}
.footer-brand>span{display:flex;flex-direction:column;line-height:1.15;}
.footer-brand b{font-size:15px;font-weight:800;color:#fff;}
.footer-brand span{font-size:10px;font-weight:600;letter-spacing:0.12em;color:var(--teal-light);}
footer p.desc{font-size:14px;line-height:1.6;margin:0 0 14px;color:#9aa7ab;}
footer p.coords{font-size:14px;line-height:1.7;margin:0;color:#9aa7ab;}
footer h4{font-size:13px;letter-spacing:0.08em;text-transform:uppercase;color:var(--teal-light);margin:0 0 16px;}
.footer-links{display:flex;flex-direction:column;gap:10px;}
.footer-links.footer-links-row{flex-direction:row;flex-wrap:wrap;gap:20px;}
.footer-links a{text-decoration:none;color:#c9d3d6;font-size:14px;}
.footer-links a:hover{color:#fff;}
.footer-links a.active{color:#fff;font-weight:600;}
.footer-bottom{max-width:1240px;margin:32px auto 0;border-top:1px solid #2a353a;padding-top:20px;font-size:13px;color:#7c898d;}
.footer-copy{font-size:13px;color:#7c898d;}

/* Cookie banner */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,0.1);padding:20px 24px;display:none;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;}
.cookie-banner.show{display:flex;}
.cookie-banner p{margin:0;font-size:14px;color:var(--ink);max-width:640px;line-height:1.5;}
.cookie-banner p a{color:var(--teal);font-weight:600;}
.cookie-actions{display:flex;gap:12px;flex-wrap:wrap;}
.btn-cookie-refuse{background:none;border:1px solid var(--line);padding:10px 18px;border-radius:6px;font-weight:600;cursor:pointer;font-family:inherit;font-size:14px;}
.btn-cookie-accept{background:var(--teal);color:#fff;border:none;padding:10px 18px;border-radius:6px;font-weight:600;cursor:pointer;font-family:inherit;font-size:14px;}
.btn-cookie-accept:hover{background:var(--teal-dark);}

/* Formation detail: tabs */
.tabs-bar{background:#fff;position:sticky;top:73px;z-index:40;}
.tabs-bar-inner{max-width:900px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;gap:12px;overflow-x:auto;}
.tab-btn{background:none;border:none;cursor:pointer;font-family:inherit;font-size:15px;white-space:nowrap;padding:18px 4px;font-weight:600;color:var(--ink-soft);border-bottom:2px solid transparent;}
.tab-btn.active{font-weight:700;color:var(--teal);border-bottom-color:var(--teal);}
.tab-panel{display:none;flex-direction:column;align-items:center;gap:36px;}
.tab-panel>*{width:100%;}
.tab-panel.active{display:flex;}
.tab-content{max-width:900px;margin:0 auto;padding:56px 24px;}

/* Info blocks */
.info-card{background:#fff;border-radius:10px;padding:28px 32px;}
.info-card h2{font-size:22px;font-weight:800;margin:0 0 12px;}
.info-card.panel-bg{background:var(--panel);}
.info-card p{font-size:16px;line-height:1.7;color:var(--ink-soft);margin:0;}
.info-card ul{font-size:15px;color:var(--ink-soft);margin:0;padding-left:20px;line-height:1.8;}

.step-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media (min-width:640px){.step-grid{grid-template-columns:repeat(4,1fr);}}
.step-chip{border-radius:10px;padding:26px 22px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;background:#e7f3f4;}
.step-chip .num{width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.step-chip p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6;}

.doc-grid{display:grid;grid-template-columns:1fr;gap:12px;}
@media (min-width:640px){.doc-grid{grid-template-columns:1fr 1fr;}}
.doc-item{background:var(--panel2);border-radius:8px;padding:16px 20px;display:flex;align-items:center;gap:14px;}
.doc-item .ico{width:34px;height:34px;flex:0 0 auto;border-radius:6px;background:var(--red);display:flex;align-items:center;justify-content:center;}
.doc-item span.label{font-size:15px;font-weight:700;color:var(--ink);}
.doc-item span.label a{font-weight:normal;}

.pricing-table{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.06);}
.pricing-head{display:flex;align-items:center;justify-content:space-between;background:var(--ink);padding:20px 32px;}
.pricing-head span{color:#fff;font-weight:800;font-size:14px;letter-spacing:0.5px;}
.pricing-row{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:1px solid #eef1f2;}
.pricing-row:last-child{border-bottom:none;}
.pricing-row .label{font-weight:700;font-size:15px;color:var(--ink);}
.pricing-row .price{font-weight:800;font-size:20px;color:var(--teal);}
.pricing-note{font-size:13px;color:var(--ink-soft2);margin:14px 0 0;padding-left:40px;}

.calendar-highlight{display:flex;flex-direction:column;align-items:center;gap:4px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.08);background:#e7f3f4;color:#2d7d87;text-align:center;padding:14px 24px;margin:0 0 12px;}
.calendar-highlight-title{font-weight:800;font-size:15px;}
.calendar-highlight-dates{font-weight:600;font-size:14px;}
.calendar-list{display:flex;flex-direction:column;gap:10px;}
.calendar-row{display:flex;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.08);}
.calendar-tag{flex:0 0 150px;display:flex;align-items:center;justify-content:center;padding:14px;background:#e7f3f4;color:#2d7d87;font-weight:800;font-size:14px;text-align:center;}
.calendar-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:14px 24px;}
.calendar-body .module{font-size:13px;font-weight:700;color:var(--teal);letter-spacing:0.04em;}
.calendar-body .place{font-weight:700;font-size:15px;color:var(--ink);}
.calendar-body .hours{font-size:14px;color:var(--ink-soft2);}
@media (max-width:480px){
  .calendar-tag{flex:0 0 96px;padding:10px;font-size:13px;}
  .calendar-body{padding:12px 16px;}
}
.calendar-note{font-size:13px;color:var(--ink-soft2);margin:14px 0 0;}

.settlement{font-size:15px;color:var(--teal);margin:0;line-height:1.6;}

/* Contact page */
.contact-grid{max-width:1100px;margin:0 auto;padding:64px 24px;display:grid;grid-template-columns:1fr;gap:48px;align-items:flex-start;}
@media (min-width:900px){.contact-grid{grid-template-columns:1.3fr 1fr;}}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:36px;}
.contact-form{display:flex;flex-direction:column;gap:18px;}
.contact-form .row2{display:grid;grid-template-columns:1fr;gap:18px;}
@media (min-width:520px){.contact-form .row2{grid-template-columns:1fr 1fr;}}
.contact-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink);}
.contact-form input,.contact-form select,.contact-form textarea{padding:12px 14px;border:1px solid var(--line);border-radius:6px;font-size:15px;}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--teal);outline:none;}
.contact-side h3{font-size:16px;font-weight:700;margin:0 0 10px;}
.contact-side p{font-size:15px;line-height:1.7;color:var(--ink-soft);margin:0;}
.contact-success{text-align:center;padding:40px 12px;}
.contact-success h2{font-size:22px;font-weight:800;margin:0 0 10px;color:var(--teal-dark);}
.contact-success p{font-size:15px;color:var(--ink-soft);margin:0;}

/* Hero simple (pages de candidature) */
.hero-form{background:var(--ink);padding:0;}
.hero-form-inner{max-width:900px;margin:0 auto;padding:48px 24px;}
.hero-form-inner h1{font-size:28px;font-weight:800;color:#fff;margin:0 0 10px;}
@media (min-width:640px){.hero-form-inner h1{font-size:32px;}}
.hero-form-inner p{font-size:16px;color:#c9d3d6;margin:0;max-width:600px;line-height:1.6;}

/* Zone de dépôt de fichier (drag and drop) */
.upload-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed var(--line);border-radius:8px;padding:36px 20px;cursor:pointer;background:var(--bg);text-align:center;}
.upload-zone:hover{border-color:var(--teal);background:#f0f8f9;}
.upload-zone .upload-title{font-size:14px;font-weight:700;color:var(--ink);}
.upload-zone .upload-sub{font-size:13px;color:var(--ink-soft2);}
.upload-zone input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;}
.upload-filled{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#1a9d5c;}

/* Formulaires génériques (candidature) */
.form-wrap{max-width:900px;margin:0 auto;padding:40px 24px 64px;}
form.candidature{display:flex;flex-direction:column;gap:28px;}
@media (min-width:640px){form.candidature{gap:36px;} .form-wrap{padding:48px 24px 80px;}}
.card{background:#fff;border-radius:10px;padding:22px 20px;display:flex;flex-direction:column;gap:16px;}
@media (min-width:640px){.card{padding:28px 32px;}}
.card h2{font-size:18px;font-weight:800;margin:0;color:var(--ink);}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:13px;font-weight:700;color:var(--ink-soft);}
.required-mark{color:#d92d20;}
.field input,.field select{padding:12px 14px;border:1px solid var(--line);border-radius:6px;font-size:15px;color:var(--ink);background:#fff;}
.field input:focus,.field select:focus{outline:2px solid var(--teal);outline-offset:1px;}
.grid-2{display:grid;grid-template-columns:1fr;gap:16px;}
@media (min-width:640px){.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}}
.span-all{grid-column:1/-1;}
.submit-row{display:flex;justify-content:flex-end;}
.btn-submit{background:var(--teal);color:#fff;border:none;padding:14px 32px;border-radius:6px;font-weight:700;font-size:15px;cursor:pointer;width:100%;}
.btn-submit:hover{background:var(--teal-dark);}
.btn-submit:disabled{background:#cfd8da;cursor:not-allowed;}
.btn-submit:disabled:hover{background:#cfd8da;}
@media (min-width:640px){.btn-submit{width:auto;}}
.success{background:#e7f3f4;border-radius:10px;padding:22px 20px;display:none;}
@media (min-width:640px){.success{padding:28px 32px;}}
.success.show{display:block;}
.success h2{font-size:18px;font-weight:800;margin:0 0 8px;color:var(--ink);}

/* Formulaires multi-etapes (wizard candidature) */
.field textarea{padding:12px 14px;border:1px solid var(--line);border-radius:6px;font-size:15px;color:var(--ink);background:#fff;font-family:inherit;resize:vertical;}
.field textarea:focus{outline:2px solid var(--teal);outline-offset:1px;}
.required-hint{font-size:14px;color:var(--ink-soft2);margin:0;}

.wizard-progress{display:flex;align-items:center;gap:10px;overflow-x:auto;margin-bottom:36px;}
.wizard-progress .step{display:flex;align-items:center;gap:10px;flex:1;}
.wizard-progress .step:last-child{flex:0 0 auto;}
.step-circle{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:0 0 auto;background:#eef1f2;color:#6b7a80;}
.step-circle.active,.step-circle.done{background:var(--teal);color:#fff;}
.step-label{font-size:14px;font-weight:600;color:#6b7a80;white-space:nowrap;}
.step-label.active{font-weight:700;color:var(--ink);}
.step-connector{height:2px;flex:1;background:#eef1f2;min-width:24px;}
@media (max-width:640px){.step-label:not(.active){display:none;}}

.resume-banner{background:#fff8e6;border:1px solid #f0d98a;border-radius:10px;padding:20px 24px;display:none;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;}
.resume-banner.show{display:flex;}
.resume-banner p{margin:0;font-size:14px;color:#6b5a1f;}
.resume-actions{display:flex;gap:10px;}
.btn-resume-ignore{background:none;border:1px solid #e0d1a0;color:#6b5a1f;padding:8px 16px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;}
.btn-resume-confirm{background:var(--teal);border:none;color:#fff;padding:8px 16px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;}
.btn-resume-confirm:hover{background:var(--teal-dark);}

.save-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.btn-save-later{background:none;border:1px solid var(--line);color:var(--ink);padding:10px 18px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:8px;}
.save-confirm{font-size:13px;color:#2d7d87;font-weight:600;display:none;}
.save-confirm.show{display:inline;}

.step-panel{display:none;flex-direction:column;gap:28px;}
.step-panel.active{display:flex;}
@media (min-width:640px){.step-panel{gap:36px;}}

.subsection{display:flex;flex-direction:column;gap:16px;}
.subhead{font-size:14px;font-weight:800;margin:0;color:var(--teal);text-transform:uppercase;letter-spacing:0.04em;}

.choice-row{display:flex;gap:16px;flex-wrap:wrap;}
.choice-row.wide{gap:20px;}
.choice-option{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);cursor:pointer;}
.choice-option input{accent-color:var(--teal);}

.step-nav{display:flex;justify-content:space-between;}
.step-nav.end{justify-content:flex-end;}
.btn-prev{background:none;color:var(--ink);border:1px solid var(--line);padding:14px 32px;border-radius:6px;font-weight:700;font-size:15px;cursor:pointer;font-family:inherit;}
.btn-prev:hover{border-color:var(--teal);}

.step-error{background:#fdecea;border:1px solid #f3c0bb;border-radius:8px;padding:14px 18px;font-size:14px;color:#a4271c;display:none;}
.step-error.show{display:block;}

.missing-box{background:#fdecea;border:1px solid #f3c0bb;border-radius:10px;padding:22px 26px;display:none;flex-direction:column;gap:12px;}
.missing-box.show{display:flex;}
.missing-box h2{font-size:16px;font-weight:800;margin:0;color:#a4271c;}
.missing-box>p{font-size:14px;color:#a4271c;margin:0;line-height:1.6;}
.missing-list{display:flex;flex-direction:column;gap:6px;}
.missing-item{display:flex;align-items:baseline;gap:10px;font-size:14px;color:#7d1d15;}
.missing-item .step-tag{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;color:#b8564c;white-space:nowrap;}
.missing-toggle{align-self:flex-start;display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;font-family:inherit;font-size:13px;font-weight:700;color:#a4271c;cursor:pointer;}
.missing-toggle svg{transition:transform .2s;}
.missing-toggle.expanded svg{transform:rotate(180deg);}

.recap-row{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--panel2);border-radius:8px;}
.recap-row .label{font-size:15px;font-weight:700;color:var(--ink);}
.recap-row .price{font-size:20px;font-weight:800;color:var(--teal);}

.doc-upload-list{display:flex;flex-direction:column;gap:12px;}
.doc-upload-item{position:relative;display:flex;align-items:center;gap:14px;background:var(--panel2);border-radius:8px;padding:16px 20px;cursor:pointer;}
.doc-upload-item:hover{background:#eaeef0;}
.doc-upload-item.hidden-doc{display:none;}
.doc-upload-item .ico{width:34px;height:34px;flex:0 0 auto;border-radius:6px;background:var(--red);display:flex;align-items:center;justify-content:center;}
.doc-upload-item .label{font-size:15px;font-weight:700;color:var(--ink);flex:1;}
.doc-upload-item .doc-check{display:none;flex:0 0 auto;}
.doc-upload-item .doc-check.show{display:block;}
.doc-upload-item input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;}

.cgu-check{display:flex;align-items:flex-start;gap:12px;cursor:pointer;}
.cgu-check input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;cursor:pointer;accent-color:var(--teal);}
.cgu-check span{font-size:14px;color:var(--ink-soft);line-height:1.6;}
.success p{font-size:15px;color:var(--ink-soft);margin:0;line-height:1.6;}
form.hidden{display:none;}
