/* Keep the page focused; contact is a first-class destination. */
.home-contact{margin-bottom:70px;padding-block:42px;display:flex;justify-content:space-between;align-items:center;gap:35px;border-top:1px solid #DDE3ED;border-bottom:1px solid #DDE3ED}
.home-contact .eyebrow{font-size:9px;margin-bottom:15px}.home-contact h2{font-size:44px;font-weight:550}.home-contact p:not(.eyebrow){font-size:13px;color:var(--muted);margin-top:13px}.home-contact .button{flex:none;font-size:13px}
.hero-copy{row-gap:19px}.hero{padding-bottom:44px}.poles-grid{margin-top:38px}.pole-tags{margin-bottom:24px}.pole-card{min-height:385px}
.contact-page-main{padding-top:28px;padding-bottom:75px}.contact-page-main .breadcrumbs{margin-bottom:42px}
.contact-layout{display:grid;grid-template-columns:.95fr 1.05fr;align-items:start;gap:75px}
.contact-page-copy{padding-top:28px}.contact-page-copy .eyebrow{font-size:9px;margin-bottom:25px}.contact-page-copy h1{font-size:clamp(40px,4.6vw,64px);font-weight:550;line-height:1.1;letter-spacing:-.055em}.contact-page-copy h1 span{color:var(--blue)}
.contact-page-copy>p:not(.eyebrow){font-size:15px;color:var(--muted);line-height:1.9;max-width:390px;margin-top:25px}.contact-page-copy .text-link{font-size:12px;margin-top:32px;border-bottom:2px solid var(--blue);padding-bottom:6px}
.project-form{background:linear-gradient(140deg,#F8FAFF,#FFF 65%);border:1px solid #D8E1F0;border-radius:7px;padding:35px;color:var(--black)}
.project-form h2{font-size:27px;font-weight:550;letter-spacing:-.04em}.project-form .form-intro{font-size:12px;color:var(--muted);line-height:1.7;margin:8px 0 25px}
.project-form label{display:block;font-size:12px;font-weight:550;margin-top:19px}.optional{font-size:10px;color:#626A78;font-weight:400}
.project-form input,.project-form select,.project-form textarea{display:block;width:100%;padding:12px;margin-top:7px;min-height:44px;line-height:1.6;font-size:12px;border:1px solid #C9D2E2;border-radius:4px;background:var(--paper);color:var(--black);transition:border-color .2s,box-shadow .2s}
.project-form input::placeholder,.project-form textarea::placeholder{color:#667085;opacity:1}.project-form textarea{resize:vertical;min-height:110px}
.project-form input:focus,.project-form select:focus,.project-form textarea:focus{border-color:var(--black);box-shadow:0 0 0 3px #548CFF20;outline:2px solid transparent}
.project-form .button{width:100%;margin-top:24px;font-size:12px;min-height:48px}.project-form .form-note{font-size:10px;color:#596171;line-height:1.7;margin-top:13px}.project-form .form-status{margin-top:13px;color:var(--black);font-size:12px;line-height:1.7}
.project-form .form-row{gap:14px}

/* One short, controllable sequence, built from readable page content. */
.detail-map{padding:30px}.detail-map-label{margin-bottom:23px}
.detail-map-step{min-height:58px;transform-origin:center}.detail-map-step>span{display:grid;place-items:center;width:25px;height:25px;flex:none;font-size:9px;background:#EDF3FF;border-radius:50%;color:#374C73}
.detail-map-step>svg{color:var(--black)}
.map-connector{height:27px;margin-left:40px}.map-connector:after{display:none}.map-connector>span{position:absolute;inset:0;background:var(--blue);transform-origin:top}
.sequence-footer{display:flex;align-items:center;gap:18px;margin-top:25px;min-height:27px}
.sequence-meter{height:2px;background:#D9E3F6;display:block;flex:1;overflow:hidden}.sequence-meter i{display:block;inset:0;height:100%;background:var(--blue);transform:scaleX(1);transform-origin:left}
.sequence-toggle{background:none;color:#34425B;border:0;border-bottom:1px solid #9EBDF8;border-radius:0;font-size:10px;padding:5px 2px;min-width:48px;min-height:28px;text-align:center}.sequence-toggle:hover{color:var(--black);border-color:var(--black)}
.detail-map[data-sequence=playing]{box-shadow:0 12px 28px #548CFF09}
.detail-map[data-sequence=idle] .detail-map-step{opacity:0}.detail-map[data-sequence=idle] .map-connector>span{transform:scaleY(0)}.detail-map[data-sequence=idle] .sequence-meter i{transform:scaleX(0)}
.detail-end h2{margin-block:15px 0}
@media(max-width:1100px){.contact-layout{gap:40px}.project-form{padding:29px}.contact-page-copy h1{font-size:51px}}
@media(max-width:850px){.contact-layout{grid-template-columns:1fr;gap:32px}.contact-page-copy{padding-top:0}.contact-page-copy h1{font-size:54px}.contact-page-copy>p:not(.eyebrow){max-width:600px}.contact-page-copy .text-link{margin-top:19px}.contact-page-main .breadcrumbs{margin-bottom:30px}.project-form{max-width:none}.home-contact{margin-bottom:50px;padding-block:35px}.home-contact h2{font-size:37px}}
@media(max-width:540px){.home-contact{display:block;padding-block:30px;margin-bottom:35px}.home-contact h2{font-size:35px}.home-contact .button{margin-top:23px;width:100%;font-size:12px}.home-contact .eyebrow{font-size:8px}.home-contact p:not(.eyebrow){font-size:12px}.contact-page-main{padding-top:22px;padding-bottom:45px}.contact-page-main .breadcrumbs{margin-bottom:25px}.contact-page-copy .eyebrow{font-size:8px;margin-bottom:17px}.contact-page-copy h1{font-size:41px}.contact-page-copy>p:not(.eyebrow){font-size:13px;line-height:1.8;margin-top:18px}.contact-page-copy .text-link{font-size:11px}.contact-layout{gap:27px}.project-form{padding:25px 20px;border-radius:5px}.project-form h2{font-size:25px}.project-form .form-intro{font-size:11px;margin-bottom:18px}.project-form .form-row{grid-template-columns:1fr;gap:0}.project-form label{font-size:11px;margin-top:16px}.project-form input,.project-form select,.project-form textarea{font-size:13px}.project-form .button{font-size:12px}.project-form .form-note{font-size:9px}.detail-map{padding:24px}.detail-map-step{min-height:58px;gap:10px}.detail-map-step b{font-size:11px}.sequence-footer{margin-top:21px}.pole-card{min-height:0}}
@media(max-width:380px){.contact-page-copy h1{font-size:36px}.project-form{padding-inline:18px}.project-form .button{font-size:11px;padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.map-connector>span,.sequence-meter i{transform:none}.detail-map{box-shadow:none}.detail-map-step{transform:none!important;opacity:1!important}}

/* Direct access, automatic sequences, and answers that keep the layout still. */
html{scroll-padding-top:var(--header-height,88px)}
#solutions{padding-top:32px;scroll-margin-top:0}
#solutions .section-heading{margin-bottom:0}
#solutions .poles-grid{margin-top:27px}
@media(min-width:1100px){#solutions .pole-card{min-height:335px;padding:26px}#solutions .pole-top{margin-bottom:24px}#solutions .pole-card h3{font-size:28px;min-height:65px}#solutions .pole-card>p{min-height:50px;margin-top:14px}#solutions .pole-tags{margin:18px 0 22px}}
.showcase-copy .text-link{border-bottom:0;text-decoration:none;background-image:linear-gradient(var(--blue),var(--blue));background-size:0 2px;background-position:left bottom;background-repeat:no-repeat;transition:background-size .3s ease}
.showcase-copy .text-link:hover,.showcase-copy .text-link:focus-visible{background-size:100% 2px;text-decoration:none}
.sequence-footer{display:none}
.workflow .flow-line{transform-origin:top;background:var(--blue)}
.detail-map[data-sequence=idle] .detail-map-step,.workflow[data-sequence=idle] .workflow-step,.steps[data-sequence=idle] article{opacity:0}
.steps article:after{transform-origin:left}
.steps[data-sequence=playing] article:not(:last-child):after{animation:route-connect .5s ease both;animation-delay:.65s}
.steps[data-sequence=playing] article:nth-child(2):after{animation-delay:1.65s}
.steps[data-sequence=playing] article:nth-child(3):after{animation-delay:2.65s}
.steps[data-sequence=playing] .step-number{animation:route-number .8s ease both;animation-delay:.25s}
.steps[data-sequence=playing] article:nth-child(2) .step-number{animation-delay:1.25s}
.steps[data-sequence=playing] article:nth-child(3) .step-number{animation-delay:2.25s}
.steps[data-sequence=playing] article:nth-child(4) .step-number{animation-delay:3.25s}
@keyframes route-connect{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes route-number{0%{box-shadow:0 0 0 0 #548CFF00}50%{background:#548CFF;border-color:#548CFF;box-shadow:0 0 0 8px #548CFF20}100%{background:#548CFF22;border-color:#548CFF;box-shadow:0 0 0 0 #548CFF00}}
.faq-grid.faq-stable{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;align-items:start;overflow-anchor:none}
.faq-question{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;min-height:88px;text-align:left;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:none;color:var(--black);font-size:13px;font-weight:550;line-height:1.6}
.faq-question>span{width:14px;height:14px;flex:none;position:relative}.faq-question>span:before,.faq-question>span:after{content:'';position:absolute;left:1px;top:6px;width:12px;height:1.5px;background:currentColor;transition:transform .2s}.faq-question>span:after{transform:rotate(90deg)}.faq-question[aria-expanded=true]{color:#254F9F;border-bottom-color:var(--blue)}.faq-question[aria-expanded=true]>span:after{transform:rotate(0)}
.faq-answer-stage{grid-column:1/-1;position:relative;min-height:100px;margin-top:18px;overflow-anchor:none;border-radius:5px;background:#F2F6FF}
.faq-answer-stage:before{content:'Sélectionnez une question pour lire la réponse.';position:absolute;inset:20px 24px;font-size:13px;color:var(--muted)}.faq-answer-stage:has(.faq-answer:not([hidden])):before{display:none}
.faq-grid .faq-answer{position:absolute;inset:20px 24px auto;margin:0;max-width:920px;font-size:14px;line-height:1.85;color:var(--muted)}
.faq-grid .faq-answer[hidden]{display:block;visibility:hidden;pointer-events:none}
.detail-page .faq-grid.faq-stable{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.faq-grid.faq-stable,.detail-page .faq-grid.faq-stable{grid-template-columns:1fr;gap:0}.faq-question{min-height:65px;padding:17px 0;font-size:13px;border-top:0}.faq-answer-stage{margin-top:16px}.faq-grid .faq-answer{font-size:12px;inset-inline:18px}.faq-answer-stage:before{font-size:12px;inset-inline:18px}}
@media(prefers-reduced-motion:reduce){.detail-map[data-sequence] .detail-map-step,.workflow[data-sequence] .workflow-step,.steps[data-sequence] article{opacity:1!important;transform:none!important}.steps article:after{animation:none!important}.workflow .flow-line{transform:none!important}}

/* The included work unfolds in a short, quiet sequence. */
.detail-includes-grid .detail-item-number{width:38px;padding-bottom:8px;background-image:linear-gradient(var(--blue),var(--blue));background-position:left bottom;background-repeat:no-repeat;background-size:100% 1px;color:#38547E}
.detail-includes-grid[data-sequence=idle] article{opacity:0}
@media(prefers-reduced-motion:reduce){.detail-includes-grid[data-sequence] article{opacity:1!important;transform:none!important}.detail-includes-grid .detail-item-number{transform:none!important;opacity:1!important;background-size:100% 1px!important}}
