.job-offer-card{background:var(--surface,#fff);border:1px solid var(--border,#dfe7ee);border-radius:18px;padding:28px;box-shadow:0 8px 24px rgba(10,40,70,.06)}
.job-offer-card h2{margin:8px 0 16px}.job-description{color:var(--text,#203040);line-height:1.75;margin-bottom:22px}.job-description p{margin:0 0 14px}
.job-form-panel{background:var(--surface,#fff);border:1px solid var(--border,#dfe7ee);border-radius:18px;padding:28px;box-shadow:0 8px 24px rgba(10,40,70,.06)}
.job-form-panel .field{margin-bottom:18px}.job-form-panel label{display:block;font-weight:700;margin-bottom:6px}.job-form-panel input,.job-form-panel textarea,.job-form-panel select{width:100%;padding:12px 14px;border:1px solid var(--border,#cbd7e1);border-radius:10px;font:inherit;background:var(--surface,#fff);color:var(--text,#203040);box-sizing:border-box}.job-form-panel input[type=file]{max-width:100%;padding:10px}.job-form-panel form{min-width:0}
.job-form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.job-alert{padding:14px 18px;border-radius:10px;margin-bottom:20px;background:#fde8e8;color:#a22}.job-progress{display:flex;align-items:center;gap:12px;margin:16px 0}.job-progress-bar{flex:1;height:8px;border-radius:999px;background:#e7edf2;overflow:hidden}.job-progress-fill{height:100%;width:0;background:var(--primary,#14538a);border-radius:999px;transition:width .15s ease}.job-progress-label{font-size:.8rem;font-weight:700;min-width:42px;text-align:right}
.job-question{margin:8px 0 24px;padding:22px;border:1px solid #c7ddec;border-radius:16px;background:linear-gradient(135deg,#f7fbff 0%,#eef7fc 100%);min-width:0}.job-question legend{display:flex;align-items:center;gap:12px;width:100%;padding:0;font-size:1.05rem;font-weight:800;color:#123c5c}.job-question-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#0c4a78;color:#fff;flex:0 0 30px}.job-question-help{margin:9px 0 16px 42px;color:#60758a;font-size:.9rem}.job-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.job-choice{display:block!important;margin:0!important;cursor:pointer;min-width:0}.job-choice input{position:absolute;opacity:0;pointer-events:none}.job-choice-box{display:flex;align-items:center;gap:10px;min-height:48px;padding:11px 14px;border:1px solid #cbdde9;border-radius:11px;background:#fff;color:#234158;font-weight:600;transition:border-color .18s,box-shadow .18s,background .18s,transform .18s;overflow-wrap:anywhere}.job-choice-box:hover{border-color:#0c77ad;transform:translateY(-1px);box-shadow:0 4px 12px rgba(12,74,120,.09)}.job-choice-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:2px solid #b7cbd8;border-radius:6px;color:transparent;font-size:14px;flex:0 0 22px}.job-choice input:checked+.job-choice-box{border-color:#0c4a78;background:#e5f3fb;box-shadow:0 0 0 2px rgba(12,74,120,.12)}.job-choice input:checked+.job-choice-box .job-choice-check{border-color:#0c4a78;background:#0c4a78;color:#fff}.job-choice input:focus-visible+.job-choice-box{outline:3px solid rgba(12,119,173,.25);outline-offset:2px}
.job-expired-alert{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:28px;border:1px solid #f3b7b7;border-radius:16px;background:#fff4f4;color:#a22}.job-expired-alert strong{font-size:1.25rem;color:#b42318}.job-expired-alert span{color:#8f2d2d}.job-success-panel{text-align:center}.job-candidate-wrap{max-width:820px}
.job-cta-section{padding:34px 0;background:linear-gradient(135deg,#eaf6fb 0%,#f7fbff 100%);border-top:1px solid #d9ebf4;border-bottom:1px solid #d9ebf4}.job-cta-section .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}.job-cta-section h2{margin:7px 0 0;color:#123c5c;font-size:1.45rem}
.ocs-submit-loader{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(11,53,86,.62);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.ocs-submit-loader.is-visible{opacity:1;visibility:visible;pointer-events:auto}.ocs-submit-loader-box{width:min(360px,100%);padding:30px 24px;text-align:center;background:var(--surface,#fff);border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.24);color:var(--text,#203040)}.ocs-submit-loader-box strong{display:block;margin-top:18px;font-family:var(--font-heading);font-size:1.15rem;color:var(--primary-dark,#0b3556)}.ocs-submit-loader-box>span:not(.ocs-submit-loader-ring){display:block;margin-top:5px;font-size:.9rem;color:var(--text-soft,#57626e)}.ocs-submit-loader-logo-wrap{position:relative;width:84px;height:84px;margin:0 auto}.ocs-submit-loader-logo{position:absolute;inset:10px;width:64px;height:64px;border-radius:50%;object-fit:cover}.ocs-submit-loader-ring{position:absolute;inset:0;border:3px solid var(--primary-light,#e8f0f7);border-top-color:var(--accent,#e8a317);border-right-color:var(--primary,#14538a);border-radius:50%;animation:ocs-submit-spin .9s linear infinite}.ocs-submit-loader-track{height:7px;margin-top:22px;overflow:hidden;border-radius:999px;background:#e8eef3}.ocs-submit-loader-track span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary,#14538a),var(--accent,#e8a317));animation:ocs-submit-progress 1.3s ease-in-out infinite}
@keyframes ocs-submit-spin{to{transform:rotate(360deg)}}@keyframes ocs-submit-progress{0%{transform:translateX(-120%)}100%{transform:translateX(300%)}}
/* Correction strictement limitée à candidature : la racine et chaque bloc ne peuvent plus créer de largeur horizontale. */
html:has(body.candidature-page),html:has(body.candidature-page) body.candidature-page{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:0!important;overflow-x:hidden!important}
body.candidature-page *,body.candidature-page *::before,body.candidature-page *::after{min-width:0;max-width:100%}
body.candidature-page>.topbar,body.candidature-page>.site-header,body.candidature-page>.page-banner,body.candidature-page>main,body.candidature-page>.site-footer{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;overflow-x:clip}
body.candidature-page .wrap{width:100%!important;max-width:100%!important;min-width:0!important}
@media(max-width:720px){.job-form-row,.job-choice-grid{grid-template-columns:1fr}.job-offer-card,.job-form-panel{padding:20px}.job-question{padding:18px}.job-question-help{margin-left:42px}.job-cta-section .wrap{align-items:flex-start;flex-direction:column}body.candidature-page .page-banner .wrap,body.candidature-page main .wrap{padding-left:16px;padding-right:16px}}
@media(max-width:960px){body.candidature-page .site-nav:not(.open){display:none}body.candidature-page .site-nav.open{display:flex}}
@media(max-width:720px){html:has(body.candidature-page),html:has(body.candidature-page) body{overflow-x:clip!important;overscroll-behavior-x:none!important}body.candidature-page{touch-action:pan-y!important;overscroll-behavior-x:none!important;contain:inline-size}body.candidature-page .site-nav,body.candidature-page .nav-dropdown{min-width:0!important;max-width:100%!important}body.candidature-page>.topbar,body.candidature-page>.site-header,body.candidature-page>.page-banner,body.candidature-page>main,body.candidature-page>.site-footer{contain:inline-size}}
@media(max-width:480px){.job-candidate-wrap{padding-left:12px;padding-right:12px}.job-form-panel{padding:16px;border-radius:14px}.job-question{padding:14px}.job-question legend{font-size:.96rem}.job-question-help{margin-left:0}.job-choice-box{padding:10px;font-size:.92rem}.job-form-panel .form-actions{display:flex;flex-direction:column;gap:10px}.job-form-panel .form-actions .btn{width:100%;text-align:center}.job-progress{gap:8px}}
@media(prefers-reduced-motion:reduce){.ocs-submit-loader-ring,.ocs-submit-loader-track span{animation:none}.ocs-submit-loader-track span{width:100%}}
