/* Pages publiques : tokens, typographie et composants du Campus existant. */
.programme-page{max-width:1100px;margin:0 auto;padding:70px clamp(21px,5vw,76px) 90px}
.programme-intro{padding-bottom:46px;border-bottom:1px solid var(--line)}
.programme-intro h1{font-family:var(--serif);font-size:clamp(36px,4.5vw,64px);line-height:1.1;letter-spacing:-.045em;color:var(--navy);max-width:900px;margin:20px 0}
.programme-intro .hero-lead{max-width:780px}.programme-intro .button{margin-top:18px}
.breadcrumb{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 32px}
.programme-section{padding:38px 0;border-bottom:1px solid var(--line)}
.programme-section h2{font:700 clamp(25px,3vw,36px)/1.2 var(--serif);letter-spacing:-.025em;color:var(--navy);margin:0 0 20px}
.programme-section h2:not(:first-child){margin-top:32px}.programme-section p,.programme-section li,.programme-facts{color:var(--muted);font-size:17px;line-height:1.75}
.programme-section li{margin:10px 0}.programme-section ul{padding-left:24px}.programme-section p{max-width:850px}
.programme-section p a,.breadcrumb a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.programme-section a{overflow-wrap:anywhere}
.programme-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.programme-grid .step{margin:0;padding:22px 0;border:0;border-bottom:1px solid var(--line)}
.programme-grid .step h3{font:700 24px/1.25 var(--serif)}.step h3 a:hover{color:var(--blue)}.step small{display:block;color:var(--muted)}
.programme-facts{margin:0}.programme-facts div{display:grid;grid-template-columns:220px 1fr;gap:25px;padding:15px 0;border-bottom:1px solid var(--line)}.programme-facts dt{font-weight:700;color:var(--navy)}.programme-facts dd{margin:0}
.programme-notice{padding:16px;border-left:3px solid var(--blue);background:var(--sky);color:var(--navy);line-height:1.6}
.programme-cta{border:0}.programme-page a:focus-visible,.site-header a:focus-visible,.menu-toggle:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.menu-toggle{display:none}.site-header nav{gap:clamp(12px,2vw,28px)}.site-header nav a[aria-current=page]{color:var(--blue);text-decoration:underline;text-underline-offset:5px}
.login-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--white)}.login-page{flex:1;width:100%;padding:50px 21px}.login-page section{max-width:460px;margin:0 auto}.login-page .login-card{padding:0;box-shadow:none;border:0}.login-page h1{font:700 clamp(26px,4vw,32px)/1.2 var(--serif);color:var(--navy);margin:0 0 16px}.login-page .submit{box-shadow:none}.login-page .privacy{margin-top:20px}
.site-header nav .nav-access[aria-current=page]{color:var(--white);text-decoration:none}
@media(max-width:1100px) and (min-width:901px){.site-header{padding:0 24px}.site-header nav{font-size:12px;gap:14px}}
@media(max-width:900px){.menu-toggle{display:block;background:var(--white);border:1px solid var(--line);color:var(--navy);padding:10px 14px;border-radius:3px;cursor:pointer}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--white);padding:20px;flex-direction:column;align-items:stretch;gap:10px;border-bottom:1px solid var(--line);box-shadow:0 10px 30px rgba(2,77,98,.09)}.site-header nav.is-open{display:flex}.site-header nav.is-open a:not(.nav-access){display:block;padding:10px}.site-header nav .nav-access{text-align:center}.programme-page{padding-top:40px}.programme-facts div{grid-template-columns:1fr;gap:4px}}
@media(max-width:560px){.programme-grid{grid-template-columns:1fr;gap:12px}.programme-intro h1{font-size:36px}.programme-section p,.programme-section li{font-size:16px}.programme-section .button{white-space:normal;text-align:center;line-height:1.5}.programme-intro{padding-bottom:30px}}
/* Le contenu public reste lisible si JavaScript est indisponible. */
.contact-home{padding:90px clamp(21px,8vw,130px);background:var(--white);scroll-margin-top:100px}.contact-home-inner{max-width:1100px;margin:0 auto}.contact-home h2{font-size:clamp(36px,4.8vw,64px)}.contact-home .campus-contact{max-width:100%}.contact-home .contact-grid{max-width:100%}@media(max-width:560px){.contact-home{padding:76px 21px}}
.campus-contact{max-width:850px;margin-top:28px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.campus-contact label{display:block;color:var(--navy);font-size:14px;font-weight:700;margin:0 0 8px}.campus-contact label span{font-weight:400;color:var(--muted)}.campus-contact>label{margin-top:24px}.campus-contact input:not([type=hidden]),.campus-contact select,.campus-contact textarea{width:100%;min-height:48px;border:1px solid #bfd1da;border-radius:3px;background:#fbfdfe;padding:12px 14px;color:var(--ink);font:inherit}.campus-contact textarea{resize:vertical;line-height:1.6}.campus-contact input:focus,.campus-contact select:focus,.campus-contact textarea:focus{outline:3px solid rgba(8,121,181,.2);border-color:var(--blue)}.campus-contact small{display:block;color:var(--muted);font-size:13px;line-height:1.6;margin-top:6px}.campus-contact .contact-error{color:#a53028}.campus-contact [aria-invalid=true]{border-color:#a53028}.campus-contact .contact-privacy{font-size:14px}.campus-contact .contact-status{font-size:16px;line-height:1.6;color:var(--navy)}.campus-contact button:disabled{opacity:.7;cursor:default}.campus-contact button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
@media(max-width:560px){.contact-grid{grid-template-columns:1fr}}
html:not(.campus-js) .reveal{opacity:1;transform:none}
@media(max-width:900px){html:not(.campus-js) .site-header{height:auto;flex-wrap:wrap;padding-top:16px;padding-bottom:16px;gap:16px}html:not(.campus-js) .menu-toggle{display:none}html:not(.campus-js) .site-header nav{display:flex;position:static;box-shadow:none;border:0;width:100%;padding:0}html:not(.campus-js) .site-header nav a:not(.nav-access){display:block;padding:10px}}
