/* Méthode / candidatures / contact — compléments de l’audit du 30 octobre.
   Charger après nolvos-page-polish.css. Aucun style de la page d’accueil. */
.np-recruit .npg-recruit-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(36px,4vw,60px)}
.np-recruit .npg-project-note{padding:30px;border:1px solid #56769d;border-radius:23px;background:linear-gradient(135deg,#203e64,#192f4c);color:#f1f6ff;box-shadow:0 18px 45px #050e1c18}
.np-recruit .npg-overline{margin:0 0 16px;color:#b7d1f6;font-size:11px;line-height:1.5;letter-spacing:.08em}
.np-recruit .npg-project-note h2{margin:0 0 23px;color:#f1f6ff;font:500 28px/1.18 'DM Sans',sans-serif;letter-spacing:-.03em}
.np-recruit .npg-project-note dl{display:grid;margin:0;gap:0}
.np-recruit .npg-project-note dl>div{padding:17px 0;border-top:1px solid #58769b99}
.np-recruit .npg-project-note dt{margin:0 0 7px;color:#b4d0fb;font-size:12px;line-height:1.5}
.np-recruit .npg-project-note dd{margin:0;color:#e4edfa;font-size:16px;line-height:1.6}
.np-recruit .npg-note-foot{display:block;margin-top:4px;padding-top:17px;border-top:1px solid #58769b99;color:#b9cde6;font-size:13px;line-height:1.65}
.np-recruit .npg-contribution-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);column-gap:clamp(30px,6vw,80px);align-items:start;margin-bottom:34px}
.np-recruit .npg-contribution-heading>.np-kicker{grid-column:1/-1;margin-bottom:18px}
.np-recruit .npg-contribution-heading>.np-heading{margin:0}
.np-recruit .npg-contribution-heading>p:last-child{max-width:38ch;margin:5px 0 0;color:#455b79;font-size:17px;line-height:1.7}
.np-recruit .npg-contribution-list{margin:0;padding:0;list-style:none;border-bottom:1px solid #a7bcda}
.np-recruit .npg-contribution-list>li{display:grid;grid-template-columns:34px minmax(150px,.55fr) minmax(0,1.45fr);align-items:start;gap:24px;padding:29px 0;border-top:1px solid #a7bcda}
.np-recruit .npg-number{padding-top:3px;color:#3155a8;font-size:12px;line-height:1.6;font-variant-numeric:tabular-nums}
.np-recruit .npg-contribution-list h3{margin:0;color:#172b46;font:500 23px/1.3 'DM Sans',sans-serif;letter-spacing:-.025em}
.np-recruit .npg-contribution-list p{margin:0;color:#314c6e;font-size:16px;line-height:1.7}
.np-recruit .npg-contribution-list li>div>span{display:block;margin-top:11px;color:#536b89;font-size:14px;line-height:1.65}
.np-recruit .npg-contribution-note{max-width:80ch;margin:25px 0 0;padding-left:20px;border-left:2px solid #6d92c9;color:#455b79;font-size:15px;line-height:1.75}
.np-recruit .npg-application-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.np-people:is(.np-contact,.np-recruit) .np-people-form :is(h2,.application-form-title){margin-bottom:25px}
.np-people:is(.np-contact,.np-recruit) .np-people-form :is(input,select,textarea){font-size:16px}
.np-people:is(.np-contact,.np-recruit) .np-people-form label{font-size:14px}
.np-people:is(.np-contact,.np-recruit) .np-people-form label>span{font-size:12px}
.np-people:is(.np-contact,.np-recruit) .np-people-form button.button{font-size:16px;min-height:52px}
.np-people .npg-nojs{margin:18px 0 0;padding:16px;border:1px solid #698ab4;border-radius:12px;color:#d6e7ff;background:#1b3558;font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.np-contact .npg-contact-grid{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:clamp(32px,5vw,70px)}
.np-contact .npg-contact-brief{display:grid;margin:28px 0 0;max-width:48ch}
.np-contact .npg-contact-brief>div{display:grid;grid-template-columns:105px minmax(0,1fr);gap:18px;border-top:1px solid #456382;padding:16px 0}
.np-contact .npg-contact-brief dt{margin:0;color:#adc9ef;font-size:13px;line-height:1.6}
.np-contact .npg-contact-brief dd{margin:0;color:#d0dded;font-size:15px;line-height:1.6}
.np-contact .context-carried:not([hidden]){margin-top:24px}
.np-contact .npg-next-heading{display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,1.5fr);gap:36px;align-items:start;margin-bottom:36px}
.np-contact .npg-next-heading>.np-kicker{margin-top:5px}
.np-contact .npg-next-heading>.np-heading{margin-bottom:0}
.np-contact .npg-contact-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin:0;padding:0;list-style:none}
.np-contact .npg-contact-steps>li{padding-top:22px;border-top:1px solid #a2bada}
.np-contact .npg-contact-steps li>span{display:block;margin-bottom:22px;color:#3155a8;font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums}
.np-contact .npg-contact-steps h3{margin:0 0 13px;color:#172b46;font:500 24px/1.25 'DM Sans',sans-serif;letter-spacing:-.025em}
.np-contact .npg-contact-steps p{margin:0;color:#455b79;font-size:16px;line-height:1.7}
.np-contact .npg-contact-faq{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:start;gap:clamp(35px,7vw,90px)}
.np-contact .npg-contact-faq header>p:not(.np-kicker){max-width:32ch;margin:22px 0 0;color:#c4d3e7;font-size:16px;line-height:1.75}
.np-contact .npg-contact-faq .np-people-faq>details{margin:0;border:0;border-bottom:1px solid #5a779b;border-radius:0;background:transparent;color:#f1f6ff}
.np-contact .npg-contact-faq .np-people-faq>details:first-child{border-top:1px solid #5a779b}
.np-contact .npg-contact-faq .np-people-faq summary{min-height:76px;padding:21px 0;gap:18px;color:#f1f6ff;font-size:17px;line-height:1.5}
.np-contact .npg-contact-faq .np-people-faq summary>span{color:#b6d0fb;font-size:25px}
.np-contact .npg-contact-faq .np-people-faq details[open]{background:transparent;border-color:#93b2d8}
.np-contact .npg-contact-faq .np-people-faq details>p{padding:0 32px 23px 0;color:#c2d3e9;font-size:16px;line-height:1.75}
.np-contact .npg-contact-faq summary:focus-visible{outline:2px solid #b0d0ff;outline-offset:5px;border-radius:3px}
.np-recruit .npg-project-note :is(h2,dd),.np-recruit .npg-contribution-list :is(h3,p,span),.np-contact .npg-contact-steps h3{overflow-wrap:break-word}
@media(max-width:1000px){
 .np-recruit .npg-recruit-hero{gap:32px;align-items:start}
 .np-recruit .npg-project-note{padding:24px}
 .np-recruit .npg-project-note h2{font-size:25px}
 .np-recruit .npg-contribution-list>li{grid-template-columns:26px minmax(140px,.6fr) minmax(0,1.4fr);gap:20px}
 .np-contact .npg-contact-grid{gap:32px}
 .np-contact .npg-contact-brief>div{grid-template-columns:minmax(0,1fr);gap:5px}
 .np-contact .npg-contact-steps{gap:25px}
 .np-contact .npg-contact-steps h3{font-size:21px}
 .np-contact .npg-contact-faq{gap:35px}
}
@media(max-width:800px){
 .np-recruit .npg-recruit-hero,.np-recruit .npg-application-grid,.np-contact .npg-contact-grid,.np-contact .npg-contact-faq{grid-template-columns:minmax(0,1fr);gap:34px}
 .np-recruit .npg-recruit-hero .np-people-intro{max-width:650px}
 .np-recruit .npg-project-note{max-width:none}
 .np-recruit .npg-project-note dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
 .np-recruit .npg-project-note dd{font-size:15px}
 .np-recruit .npg-contribution-heading{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:22px}
 .np-contact .npg-contact-brief{max-width:100%}
 .np-contact .npg-contact-brief>div{grid-template-columns:115px minmax(0,1fr);gap:18px}
 .np-contact .npg-next-heading{grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:28px}
 .np-contact .npg-next-heading>.np-kicker{margin:0 0 17px}
 .np-contact .npg-contact-faq header{max-width:620px}
 .np-contact .npg-contact-faq header>p:not(.np-kicker){max-width:55ch}
}
@media(max-width:640px){
 .np-recruit .npg-project-note{padding:22px;border-radius:20px}
 .np-recruit .npg-project-note dl{grid-template-columns:minmax(0,1fr);gap:0}
 .np-recruit .npg-project-note dd{font-size:16px}
 .np-recruit .npg-contribution-heading{display:block;margin-bottom:28px}
 .np-recruit .npg-contribution-heading>p:last-child{max-width:none;margin-top:20px;font-size:16px}
 .np-recruit .npg-contribution-list>li{grid-template-columns:25px minmax(0,1fr);gap:12px 17px;padding:23px 0}
 .np-recruit .npg-contribution-list h3{font-size:23px}
 .np-recruit .npg-contribution-list li>div{grid-column:2}
 .np-recruit .npg-contribution-list li>div>span{font-size:14px}
 .np-recruit .npg-contribution-note{padding-left:15px;font-size:15px}
 .np-people:is(.np-contact,.np-recruit) .np-people-form{padding:22px;border-radius:21px}
 .np-people:is(.np-contact,.np-recruit) .np-people-form .contact-fields-pair{grid-template-columns:minmax(0,1fr);gap:0}
 .np-people:is(.np-contact,.np-recruit) .np-people-form :is(h2,.application-form-title){font-size:24px;margin-bottom:24px}
 .np-contact .npg-contact-brief>div{grid-template-columns:94px minmax(0,1fr);gap:13px;padding:14px 0}
 .np-contact .npg-contact-brief dd{font-size:15px}
 .np-contact .npg-contact-steps{grid-template-columns:minmax(0,1fr);gap:24px}
 .np-contact .npg-contact-steps>li{display:grid;grid-template-columns:27px minmax(0,1fr);gap:7px 16px;padding-top:19px}
 .np-contact .npg-contact-steps li>span{margin:4px 0 0;grid-row:1/3}
 .np-contact .npg-contact-steps h3{margin:0;font-size:23px}
 .np-contact .npg-contact-steps p{grid-column:2}
 .np-contact .npg-contact-faq .np-people-faq summary{font-size:17px;min-height:76px;padding-block:20px;gap:14px}
 .np-contact .npg-contact-faq .np-people-faq details>p{padding:0 20px 22px 0;font-size:16px}
}
@media(max-width:360px){
 .np-people:is(.np-contact,.np-recruit) .np-people-form{padding:18px}
 .np-recruit .npg-project-note{padding:19px}
 .np-contact .npg-contact-brief>div{grid-template-columns:minmax(0,1fr);gap:4px}
}

/* Contact steps share a continuous rail, revealed once by the existing
   observer states. The fully drawn rail is the no-script fallback. */
.np-contact .npg-contact-steps{--npg-rail-gap:35px}
.np-contact .npg-contact-steps>li{position:relative;border-top:0}
.np-contact .npg-contact-steps>li::before{content:"";position:absolute;left:0;top:0;width:calc(100% + var(--npg-rail-gap));height:1px;background:#a2bada;transform:scaleX(1);transform-origin:0 50%;pointer-events:none}
.np-contact .npg-contact-steps>li:last-child::before{width:100%}
@media(max-width:1000px){.np-contact .npg-contact-steps{--npg-rail-gap:25px}}
@media(prefers-reduced-motion:no-preference){
 .np-contact .npg-contact-steps>li::before{transition:transform .42s cubic-bezier(.2,.75,.2,1)}
 .np-motion-ready .np-contact .npg-contact-steps>li.np-waiting::before{transform:scaleX(0)}
 .np-motion-ready .np-contact .npg-contact-steps>li.np-entered::before{transform:scaleX(1)}
}
@media(max-width:640px){
 .np-contact .npg-contact-steps{--npg-rail-gap:24px}
 .np-contact .npg-contact-steps>li::before{left:13px;top:0;width:1px;height:calc(100% + var(--npg-rail-gap));transform:scaleY(1);transform-origin:50% 0}
 .np-contact .npg-contact-steps>li:last-child::before{width:1px;height:100%}
 .np-contact .npg-contact-steps li>span{position:relative;z-index:1;align-self:start;width:27px;padding-block:3px;text-align:center;background:var(--np-bg,#e6effc)}
}
@media(max-width:640px) and (prefers-reduced-motion:no-preference){
 .np-motion-ready .np-contact .npg-contact-steps>li.np-waiting::before{transform:scaleY(0)}
 .np-motion-ready .np-contact .npg-contact-steps>li.np-entered::before{transform:scaleY(1)}
}
@media(prefers-reduced-motion:reduce){.np-contact .npg-contact-steps>li::before{transform:none!important;transition:none!important}}
:is(html.motion-paused,body.motion-paused) .np-contact .npg-contact-steps>li::before{transform:none!important;transition:none!important}

/* Careers: an original collaboration photograph replaces the client product demo. */
.np-recruit .npg-team-photo{position:relative;align-self:stretch;min-width:0;min-height:420px;margin:0;overflow:hidden;border-radius:26px;background:#21364f;isolation:isolate}
.np-recruit .npg-team-photo>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:52% 50%}
@media(min-width:801px){.np-recruit .np-people-h1{font-size:clamp(43px,4vw,58px)}}
@media(max-width:1000px) and (min-width:801px){.np-recruit .npg-recruit-hero{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}}
@media(max-width:800px){.np-recruit .npg-team-photo{min-height:0;aspect-ratio:1.5;max-height:480px;border-radius:22px}}
@media(max-width:480px){.np-recruit .npg-team-photo{aspect-ratio:1.2;border-radius:20px}.np-recruit .npg-team-photo>img{object-position:53% 50%}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .np-recruit .npg-team-photo>img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
 html:not(.motion-paused) body:not(.motion-paused) .np-recruit .npg-team-photo:hover>img{transform:scale(1.025)}
}
:is(html.motion-paused,body.motion-paused) .np-recruit .npg-team-photo>img{transition:none!important;transform:none!important}
