/* Le footer répond au hero noir, avec des accents orange. La signature, le formulaire et les
   réponses au hover appartiennent à ce seul bloc; rien ne fuit dans le LAB. */
.footer.footer-dark{background:var(--ink);color:var(--paper);--contact-rule:#77746b;padding-top:88px;padding-bottom:28px;isolation:isolate}
.footer-dark .contact-heading{display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:end;gap:48px;padding-bottom:62px;border-color:var(--paper)}
.footer-dark .contact-heading-copy{min-width:0}
.footer-dark .contact-heading-copy>p{font-size:13px;margin-bottom:31px}
.footer.footer-dark .contact-heading h2{font-family:var(--display);font-size:clamp(67px,8.5vw,138px);font-weight:700;line-height:.99;letter-spacing:-.065em;max-width:none;text-wrap:balance}
.footer-dark .contact-heading-side{display:flex;flex-direction:column;align-items:start;gap:26px;padding-bottom:6px}
.footer-dark .contact-heading-side>p{font-size:15px;line-height:1.5;max-width:220px}
.footer-dark .footer-lottie{width:140px;height:140px;margin:0;background:var(--paper);border-radius:50%;color:var(--ink);transform:rotate(-12deg)}
.footer-dark .contact-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:clamp(50px,7vw,112px);padding:64px 0 72px;border-bottom:1px solid var(--contact-rule);scroll-margin-top:28px}
.footer-dark .contact-layout>*{min-width:0}

.footer-dark .contact-intro h3{font-family:var(--serif);font-size:clamp(43px,4.2vw,65px);font-weight:400;line-height:1;letter-spacing:-.035em;max-width:400px}
.footer-dark .contact-intro h3 em{font-style:normal}
.footer-dark .contact-direct{min-width:0;margin-top:clamp(30px,3vw,46px);padding-top:22px;border-top:1px solid var(--contact-rule)}
.footer-dark .contact-direct>p{font-size:16px;line-height:1.5;color:#d6d3cb}
.footer-dark .contact-direct>a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:56px;margin-top:8px;border-bottom:1px solid var(--orange);color:var(--orange);font:500 clamp(18px,1.7vw,26px)/1.4 var(--body);letter-spacing:-.035em;transition:color .2s,border-color .2s}
.footer-dark .contact-direct-address{min-width:0;overflow-wrap:anywhere}
.footer-dark .contact-direct svg{flex:none;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .25s var(--ease-out)}
.footer-dark .contact-direct>a:is(:hover,:focus-visible){color:var(--paper);border-color:var(--paper)}
.footer-dark .contact-direct>a:is(:hover,:focus-visible) svg{transform:translate(3px,-3px)}
.footer-dark .contact-direct>a:focus-visible{outline:2px solid var(--paper);outline-offset:6px}
.footer-dark .contact-intro>p:not(.contact-kicker){font-size:16px;line-height:1.6;max-width:340px;margin-top:24px;color:var(--paper)}
.footer-dark .contact-intro .contact-demo-note{border-top:1px solid var(--contact-rule);padding-top:25px;font-size:12px;line-height:1.55;margin-top:36px;max-width:340px}
.footer-dark .contact-required-note{font-size:12px;line-height:1.5;color:var(--paper);margin-bottom:27px;max-width:530px}
.footer-dark .contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:29px 27px}
.footer-dark .contact-field{min-width:0}
.footer-dark .contact-field-wide{grid-column:1/-1}
.footer-dark .contact-field>label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:15px;font-weight:600;line-height:1.3;margin-bottom:12px}
.footer-dark .contact-field>label>span{font-size:10px;font-weight:400;color:var(--paper);white-space:nowrap}
.footer-dark .contact-field input,.footer-dark .contact-field select,.footer-dark .contact-field textarea{display:block;width:100%;min-width:0;margin:0;padding:11px 10px 13px;background:transparent;color:var(--paper);border:0;border-bottom:1px solid var(--contact-rule);border-radius:0;font:500 17px/1.5 var(--body);box-shadow:none;transition:background-color .16s,border-color .16s;scroll-margin-block:32px;color-scheme:dark}
.footer-dark .contact-field select{min-height:52px;padding-right:12px;cursor:pointer}
.footer-dark .contact-field select option{background:var(--ink);color:var(--paper)}
.footer-dark .contact-field textarea{min-height:170px;resize:vertical;max-height:650px;padding:14px;border:1px solid var(--contact-rule)}
.footer-dark .contact-field input:hover,.footer-dark .contact-field select:hover,.footer-dark .contact-field textarea:hover{background:#F2F0EA33}
.footer-dark .contact-field input:focus-visible,.footer-dark .contact-field select:focus-visible,.footer-dark .contact-field textarea:focus-visible,.footer-dark .contact-preview-text:focus-visible{background:var(--paper);color:var(--ink);outline:2px solid var(--paper);outline-offset:5px;border-color:var(--paper)}
.footer-dark .contact-field [aria-invalid=true]{border-bottom:3px double var(--orange);background:#F2F0EA33}
.footer-dark .contact-field-error{font-size:12px;line-height:1.5;margin-top:10px;border-left:3px solid var(--contact-rule);padding:7px 10px;background:var(--paper);color:var(--ink);overflow-wrap:anywhere}
.footer-dark .contact-field-help{font-size:11px;line-height:1.5;margin-top:9px;color:var(--paper)}
.footer-dark .contact-actions{display:flex;align-items:center;gap:26px;margin-top:34px}
.footer.footer-dark .contact-submit{min-width:270px;background:var(--orange);color:var(--ink);box-shadow:0 0 0 var(--paper);transition:transform .26s cubic-bezier(.16,1,.3,1),box-shadow .26s cubic-bezier(.16,1,.3,1)}
.footer-dark .contact-submit .button-inner{font-size:16px}
.footer-dark .contact-submit::after{display:none}
.footer-dark .contact-submit:is(:hover,:focus-visible):not(:disabled){transform:translate(-4px,-4px);box-shadow:7px 7px 0 var(--paper)}
.footer-dark .contact-submit:focus-visible{outline:2px solid var(--paper);outline-offset:9px}
.footer-dark .contact-submit .button-inner>span[aria-hidden]{transition:transform .25s cubic-bezier(.16,1,.3,1)}
.footer-dark .contact-submit:is(:hover,:focus-visible) .button-inner>span[aria-hidden]{transform:translate(4px,-4px)}
.footer-dark .contact-submit:disabled{opacity:.55;cursor:default}
.footer-dark .contact-actions>p{font-size:11px;line-height:1.55;color:var(--paper)}
.footer-dark .contact-status{font-size:13px;line-height:1.5;max-width:610px;margin-top:24px;overflow-wrap:anywhere}
.footer-dark .contact-status:empty{display:none}
.footer-dark .contact-no-script{font-size:13px;line-height:1.5;margin-top:20px}
.footer-dark .contact-preview{border-top:1px solid var(--contact-rule);margin-top:35px;padding-top:28px;scroll-margin-top:30px}
.footer-dark .contact-preview-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}
.footer-dark .contact-preview-heading h3{font-size:27px;line-height:1.2;font-weight:600;letter-spacing:-.035em;max-width:440px}
.footer-dark .contact-preview-heading h3:focus{outline:2px solid var(--paper);outline-offset:6px}
.footer-dark .contact-preview-heading>span{font-size:29px;line-height:1;color:var(--paper)}
.footer-dark .contact-preview-notice{font-size:12px;line-height:1.55;color:var(--paper);max-width:540px;margin-top:15px}
.footer-dark .contact-preview-label{display:block;margin-top:26px;margin-bottom:10px;font-size:12px;font-weight:600}
.footer-dark .contact-preview-text{display:block;width:100%;min-height:250px;max-height:700px;padding:18px;background:var(--paper);color:var(--ink);border:1px solid var(--contact-rule);border-radius:0;font:400 14px/1.65 var(--body);resize:vertical;overflow-wrap:anywhere;color-scheme:dark}
.footer-dark .contact-copy{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-height:48px;margin-top:20px;padding:12px 17px;background:var(--paper);color:var(--ink);border:1px solid var(--contact-rule);font-size:14px;text-align:left;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1)}
.footer-dark .contact-copy>span{font-size:22px;line-height:1}
.footer-dark .contact-copy:is(:hover,:focus-visible){transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--orange)}
.footer-dark .contact-field input,.footer-dark .contact-field select,.footer-dark .contact-field textarea,.footer-dark .contact-copy,.footer-dark .contact-submit{touch-action:manipulation}
.footer.footer-dark .footer-bottom{grid-template-columns:1.4fr 1fr 1fr 1.25fr;margin-top:38px;color:var(--paper)}
.footer-dark .footer-bottom>*{min-width:0}
.footer-dark .footer-bottom nav{gap:0;margin-top:-9px}
.footer-dark .footer-bottom nav :is(a,button){position:relative;isolation:isolate;min-height:44px;padding:9px 12px;margin-left:-12px;line-height:1.2;font-size:13px;transition:color .2s,transform .2s}
.footer-dark .footer-bottom nav :is(a,button)::before{content:'';position:absolute;inset:2px -8px 2px 0;background:var(--orange);z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1)}
.footer-dark .footer-bottom nav :is(a,button):is(:hover,:focus-visible){color:var(--ink);transform:translateX(4px)}
.footer-dark .footer-bottom nav :is(a,button):is(:hover,:focus-visible)::before{transform:scaleX(1)}
.footer-dark .footer-bottom nav :is(a,button):focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.footer-dark .footer-back-top{display:flex;justify-content:space-between;align-items:center;gap:22px;align-self:start;min-height:48px;font-size:13px;border-bottom:1px solid var(--contact-rule);padding-bottom:10px}
.footer-dark .footer-back-top>span[aria-hidden]{font-size:35px;line-height:1;transition:transform .25s cubic-bezier(.16,1,.3,1)}
.footer-dark .footer-back-top:is(:hover,:focus-visible)>span[aria-hidden]{transform:translate(5px,-5px)}
.footer-dark .footer-signature{position:relative;display:block;width:100%;margin-top:70px;margin-bottom:48px;isolation:isolate}
.footer-dark .footer-signature img{width:100%;height:auto}
.footer-dark .footer-signature-main{position:relative;z-index:2;transition:transform .4s cubic-bezier(.16,1,.3,1);transform-origin:bottom left}
.footer-dark .footer-signature-shadow{position:absolute;inset:0;z-index:1;opacity:0;transform:translate(0,0);transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s}
.footer-dark .footer-signature:is(:hover,:focus-visible) .footer-signature-main{transform:translate(-3px,-4px)}
.footer-dark .footer-signature:is(:hover,:focus-visible) .footer-signature-shadow{opacity:1;transform:translate(6px,8px)}
.footer-dark .footer-signature:focus-visible{outline:2px solid var(--paper);outline-offset:12px}
@media(max-width:1100px){.footer.footer-dark{padding-top:70px}.footer-dark .contact-heading{grid-template-columns:minmax(0,1fr) 170px;gap:32px;padding-bottom:48px}.footer-dark .contact-heading-side>p{font-size:13px}.footer-dark .contact-layout{grid-template-columns:.7fr 1.3fr;gap:44px}.footer-dark .contact-fields{gap:27px 21px}.footer-dark .contact-field>label{font-size:14px;gap:8px}.footer-dark .contact-actions{display:block}.footer-dark .contact-actions>p{margin-top:16px}.footer-dark .contact-actions>p>br{display:none}.footer.footer-dark .contact-submit{max-width:340px;width:100%;min-width:0}.footer-dark .contact-intro h3{font-size:47px}.footer-dark .contact-intro>p:not(.contact-kicker){font-size:14px}.footer-dark .contact-field input,.footer-dark .contact-field select,.footer-dark .contact-field textarea{font-size:16px}.footer-dark .footer-signature{margin-top:58px;margin-bottom:42px}}
@media(max-width:1000px){.footer-dark .contact-layout{display:block;padding:45px 0 54px}.footer-dark .contact-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 32px;margin-bottom:35px}.footer-dark .contact-intro h3{grid-column:1;grid-row:1;font-size:47px;max-width:350px}.footer-dark .contact-direct{grid-column:2;grid-row:1;align-self:end;margin-top:0}.footer-dark .contact-intro>p:not(.contact-kicker){margin-top:0;max-width:none}.footer-dark .contact-intro .contact-demo-note{margin-top:20px;padding-top:16px;font-size:11px}.footer-dark .contact-required-note{margin-bottom:23px}.footer-dark .contact-actions{display:flex;align-items:center;gap:25px}.footer-dark .contact-actions>p{margin-top:0;max-width:170px}.footer-dark .contact-submit{max-width:290px}.footer-dark .contact-field textarea{min-height:165px}}
@media(max-width:760px){.footer.footer-dark{padding-top:58px;padding-bottom:25px}.footer-dark .contact-heading{display:block;padding-bottom:38px}.footer-dark .contact-heading-copy>p{font-size:11px;margin-bottom:27px}.footer.footer-dark .contact-heading h2{font-size:clamp(44px,13.7vw,65px);line-height:1.02}.footer-dark .contact-heading-side{display:flex;flex-direction:row;align-items:center;gap:22px;margin-top:30px;padding-bottom:0}.footer-dark .footer-lottie{width:96px;height:96px;min-width:96px}.footer-dark .contact-heading-side>p{max-width:240px;font-size:12px;line-height:1.45}.footer-dark .contact-layout{padding-top:36px}.footer-dark .contact-intro{display:block;margin-bottom:35px}.footer-dark .contact-intro h3{font-size:47px;max-width:330px}.footer-dark .contact-intro>p:not(.contact-kicker){font-size:14px;margin-top:21px;max-width:330px}.footer-dark .contact-intro .contact-demo-note{font-size:11px;max-width:330px;padding-top:19px;margin-top:24px}.footer-dark .contact-required-note{font-size:11px;max-width:325px;margin-bottom:25px}.footer-dark .contact-fields{grid-template-columns:1fr;gap:27px}.footer-dark .contact-field-wide{grid-column:auto}.footer-dark .contact-field>label{font-size:14px;margin-bottom:10px}.footer-dark .contact-field>label>span{font-size:10px}.footer-dark .contact-field input,.footer-dark .contact-field select,.footer-dark .contact-field textarea{font-size:16px;min-height:48px;padding-bottom:12px}.footer-dark .contact-field textarea{min-height:165px;padding:12px}.footer-dark .contact-field-error{font-size:13px}.footer-dark .contact-field-help{font-size:12px}.footer-dark .contact-actions{display:block;margin-top:32px}.footer.footer-dark .contact-submit{max-width:none}.footer-dark .contact-submit .button-inner{font-size:15px}.footer-dark .contact-actions>p{max-width:none;font-size:10px;margin-top:17px}.footer-dark .contact-status{font-size:12px;margin-top:22px}.footer-dark .contact-preview{margin-top:28px;padding-top:25px}.footer-dark .contact-preview-heading h3{font-size:25px;max-width:260px}.footer-dark .contact-preview-notice{font-size:11px}.footer-dark .contact-preview-label{font-size:11px;margin-top:22px}.footer-dark .contact-preview-text{font-size:13px;padding:14px;min-height:265px}.footer-dark .contact-copy{font-size:13px}.footer.footer-dark .footer-bottom{grid-template-columns:1fr 1fr;gap:32px 22px;font-size:11px;margin-top:33px}.footer-dark .footer-bottom nav :is(a,button){font-size:12px}.footer-dark .footer-back-top{font-size:11px;gap:14px}.footer-dark .footer-back-top>span[aria-hidden]{font-size:31px}.footer-dark .footer-signature{margin-top:49px;margin-bottom:35px}.footer-dark .footer-signature:is(:hover,:focus-visible) .footer-signature-shadow{transform:translate(4px,5px)}}
@media(max-width:760px){.footer-dark .contact-direct{margin-top:28px}.footer-dark .contact-direct>a{font-size:clamp(18px,5vw,22px)}}
@media(prefers-reduced-motion:reduce){.footer-dark *,.footer-dark *::before,.footer-dark *::after{transition:none!important}.footer-dark .contact-submit:is(:hover,:focus-visible),.footer-dark .contact-copy:is(:hover,:focus-visible),.footer-dark .footer-signature:is(:hover,:focus-visible) .footer-signature-main,.footer-dark .footer-signature:is(:hover,:focus-visible) .footer-signature-shadow{transform:none}}
html[data-motion=reduce] .footer-dark *{transition:none!important}
/* La réduction garde les contrastes et les ombres d’état, sans déplacement. */
@media(prefers-reduced-motion:reduce){.footer-dark .footer-bottom nav :is(a,button),.footer-dark .footer-back-top>span[aria-hidden],.footer-dark .contact-submit .button-inner>span[aria-hidden]{transform:none!important}}
html[data-motion=reduce] .footer-dark :is(.contact-submit,.contact-copy,.footer-signature-main,.footer-signature-shadow),html[data-motion=reduce] .footer-dark .footer-bottom nav :is(a,button),html[data-motion=reduce] .footer-dark .footer-back-top>span[aria-hidden],html[data-motion=reduce] .footer-dark .contact-submit .button-inner>span[aria-hidden]{transform:none!important}
/* Consentement manifeste (Loi 25) : une vraie case, jamais cochée d’avance,
   et un avis clair au moment de la collecte, juste avant l’envoi. */
.footer-dark .contact-field.contact-consent{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;margin-top:6px}
.footer-dark .contact-field.contact-consent input[type=checkbox]{appearance:none;-webkit-appearance:none;display:grid;place-items:center;width:28px;height:28px;min-height:0;margin:0;padding:0;border:1.5px solid var(--paper);border-radius:0;background:transparent;cursor:pointer;transition:background-color .25s,border-color .25s}
.footer-dark .contact-field.contact-consent input[type=checkbox]::after{content:'';width:12px;height:7px;border:solid var(--ink);border-width:0 0 2.5px 2.5px;transform:translateY(-2px) rotate(-45deg) scale(0);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.footer-dark .contact-field.contact-consent input[type=checkbox]:checked{background:var(--orange);border-color:var(--orange)}
.footer-dark .contact-field.contact-consent input[type=checkbox]:checked::after{transform:translateY(-2px) rotate(-45deg) scale(1)}
.footer-dark .contact-field.contact-consent input[type=checkbox]:hover{background:#F2F0EA22}
.footer-dark .contact-field.contact-consent input[type=checkbox]:checked:hover{background:var(--orange)}
.footer-dark .contact-field.contact-consent input[type=checkbox]:focus-visible{outline:2px solid var(--paper);outline-offset:5px;background:transparent}
.footer-dark .contact-field.contact-consent input[type=checkbox]:checked:focus-visible{background:var(--orange)}
.footer-dark .contact-field.contact-consent input[type=checkbox][aria-invalid=true]{border:2px solid var(--orange);background:transparent}
.footer-dark .contact-field.contact-consent>label{display:block;margin:0;padding-top:3px;font-size:15px;font-weight:500;line-height:1.5;cursor:pointer}
.footer-dark .contact-field.contact-consent>label>span{display:inline;margin-left:8px;font-size:10px;font-weight:400;white-space:nowrap}
.footer-dark .contact-field.contact-consent .contact-field-error{grid-column:1/-1;margin-top:0}
.footer-dark .contact-notice{max-width:680px;margin-top:26px;padding-top:20px;border-top:1px solid var(--contact-rule);font-size:13px;line-height:1.6;color:#d6d3cb}
.footer-dark .contact-notice a{display:inline-flex;gap:6px;color:var(--paper);font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;white-space:nowrap;transition:color .2s}
.footer-dark .contact-notice a:is(:hover,:focus-visible){color:var(--orange)}
.footer-dark .contact-notice a:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
@media(max-width:760px){.footer-dark .contact-field.contact-consent>label{font-size:14px}.footer-dark .contact-notice{font-size:13px}}
@media(prefers-reduced-motion:reduce){.footer-dark .contact-field.contact-consent input[type=checkbox]::after{transition:none}}

/* Le bouton indique le mode réduit sans ajouter une nouvelle fenêtre. */
.footer-consent[data-motion-toggle][aria-pressed=true]{color:var(--orange);text-decoration:underline;text-underline-offset:4px}
.footer-consent[data-motion-toggle]:disabled{cursor:default;opacity:.75}

@media(min-width:1101px){.footer-dark .footer-legal{grid-template-columns:repeat(3,max-content) minmax(0,1fr)}.footer-consent[data-motion-toggle]{white-space:nowrap}}
