
.page-contact{
  --ct-encre:#1C1916;--ct-texte:#4E4943;--ct-gris:#8C867E;--ct-ligne:rgba(28,25,22,.13);
  --ct-papier:#FFFFFF;--ct-survol:#F3F3F2;
  --ct-max:1440px;--ct-marge:56px;--ct-gout:max(var(--ct-marge),(100% - var(--ct-max))/2);
  
  --cf-survol:#A9A7A2;          
  --cf-choisi:#6B645C;          
  --cf-choisi-survol:#57514A;   
  --cf-dep:#1C1916;             
  --cf-ressort:cubic-bezier(.34,1.56,.64,1);
  background:var(--ct-papier);color:var(--ct-encre);
}

.page-contact #header-placeholder{min-height:60px}
@media (max-width:768px){.page-contact #header-placeholder{min-height:75px}}

.ct a{color:inherit}
.ct p{font-weight:400}
.ct h2,.ct h3{font-weight:400}
.ct-bloc p a,.ct-chapo a{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px;transition:opacity .25s}
.ct-bloc p a:hover{opacity:.6}


.ct-bloc{position:relative;padding:clamp(72px,8vw,120px) var(--ct-gout)}
.ct-bloc::before{content:"";position:absolute;top:0;left:var(--ct-gout);right:var(--ct-gout);height:1px;background:var(--ct-ligne)}
.ct-surtitre{display:block;margin:0 0 14px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ct-gris)}
.ct-entete{max-width:74ch;margin-bottom:clamp(40px,4.5vw,64px)}
.ct-h2{margin:0;font-size:clamp(28px,2.8vw,42px);line-height:1.15;letter-spacing:-.01em}
.ct-bloc p{margin:14px 0 0;font-size:15.5px;line-height:1.85;color:var(--ct-texte)}


.ct-hero{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,4.5vw,80px);align-items:start;
  padding:clamp(32px,4vw,64px) var(--ct-gout) clamp(48px,5vw,84px);
}
.ct-ariane{display:flex;flex-wrap:wrap;gap:10px;font-size:12.5px;letter-spacing:.04em;color:var(--ct-gris);margin-bottom:clamp(24px,2.8vw,40px)}
.ct-ariane a{text-decoration:none}
.ct-ariane a:hover{color:var(--ct-encre)}
.ct-titre{margin:0;font-weight:400;font-size:clamp(38px,4vw,60px);line-height:1.04;letter-spacing:-.02em;color:var(--ct-encre);text-wrap:balance}
.ct-titre .ct-surtitre{margin-bottom:18px;line-height:1.6;letter-spacing:.22em}
.ct .ct-chapo{margin:clamp(40px,4vw,56px) 0 0;padding-top:clamp(24px,2.6vw,32px);border-top:1px solid var(--ct-ligne);max-width:52ch;font-size:clamp(16px,1.2vw,18px);line-height:1.7;color:var(--ct-texte)}


.ct-fiche{margin-top:6px;max-width:520px;scroll-margin-top:90px}
.ct .ct-fiche p{margin:0}
.ct .ct-fiche__zone{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ct-gris)}
.ct .ct-fiche__nom{margin:0;font-size:clamp(28px,2.5vw,38px);line-height:1.1;letter-spacing:-.01em;color:var(--ct-encre)}
.ct .ct-fiche__role{margin-top:6px;font-size:15px;color:var(--ct-texte)}
.ct .ct-fiche__tel{margin-top:18px;font-size:clamp(22px,1.9vw,27px);line-height:1.2;letter-spacing:.01em}
.ct .ct-fiche__mail{margin-top:4px;font-size:15.5px}
.ct-fiche__tel a,.ct-fiche__mail a{text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s}
.ct-fiche__tel a:hover,.ct-fiche__mail a:hover{border-bottom-color:currentColor}
.ct .ct-fiche__texte{margin-top:16px;font-size:14.5px;line-height:1.7;color:var(--ct-texte)}
.ct .ct-fiche__note{margin-top:16px;max-width:46ch;font-size:14px;line-height:1.65;color:var(--ct-gris)}
.ct .ct-fiche__standard{margin-top:16px;font-size:15.5px;color:var(--ct-texte)}
.ct-fiche__standard a{text-decoration:none;border-bottom:1px solid currentColor;color:var(--ct-encre)}

.ct-fiche.is-entree > *{animation:ctEntree .5s cubic-bezier(.2,.7,.2,1) both}
.ct-fiche.is-entree > :nth-child(2){animation-delay:.05s}
.ct-fiche.is-entree > :nth-child(3){animation-delay:.1s}
.ct-fiche.is-entree > :nth-child(4){animation-delay:.15s}
.ct-fiche.is-entree > :nth-child(5){animation-delay:.2s}
.ct-fiche.is-entree > :nth-child(6){animation-delay:.25s}
.ct-fiche.is-entree > :nth-child(n+7){animation-delay:.3s}
@keyframes ctEntree{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}



.ct-form{margin-top:clamp(28px,3vw,44px);max-width:560px;scroll-margin-top:90px}
.ct-form__titre{margin:0;font-size:clamp(25px,2.1vw,31px);line-height:1.15;letter-spacing:-.01em;color:var(--ct-encre)}
.ct .ct-form__pour{margin:10px 0 0;max-width:52ch;font-size:14.5px;line-height:1.65;color:var(--ct-texte)}
.ct-champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px;margin-top:30px;padding-top:28px;border-top:1px solid var(--ct-ligne)}
.ct-champ{display:flex;flex-direction:column;min-width:0;margin:0;padding:0;border:0}
.ct-champ[hidden]{display:none}
.ct-champ--large{grid-column:1/-1}
.ct-champ > label,.ct-champ > legend{
  display:block;float:left;width:100%;margin:0 0 6px;padding:0;
  font-size:11.5px;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:var(--ct-gris);
}
.ct-champ__paire{clear:both;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ct-champ input,.ct-champ select,.ct-champ textarea{
  width:100%;margin:0;padding:9px 0 10px;border:0;border-bottom:1px solid rgba(28,25,22,.32);border-radius:0;
  background:transparent;font:inherit;font-size:16px;line-height:1.4;color:var(--ct-encre);outline:none;
  -webkit-appearance:none;appearance:none;transition:border-color .2s,box-shadow .2s;
}
.ct-champ input::placeholder,.ct-champ textarea::placeholder{color:#B4AEA6}
.ct-champ select{
  padding-right:24px;cursor:pointer;background-repeat:no-repeat;background-position:right 4px center;background-size:10px 6px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%234E4943' stroke-width='1.3'/%3E%3C/svg%3E");
}
.ct-champ select:invalid,.ct-champ select option[value=""]{color:#8C867E}

.ct-champ select:has(option[value=""]:checked){color:#8C867E}
.ct-champ select option{color:var(--ct-encre)}
.ct-champ textarea{min-height:128px;padding:12px 14px;border:1px solid rgba(28,25,22,.32);resize:vertical}
.ct-champ input:focus-visible,.ct-champ select:focus-visible{border-bottom-color:var(--ct-encre);box-shadow:0 1px 0 0 var(--ct-encre)}
.ct-champ textarea:focus-visible{border-color:var(--ct-encre);box-shadow:0 0 0 1px var(--ct-encre)}
.ct-champ [aria-invalid="true"]{border-color:#A3402F;box-shadow:0 1px 0 0 #A3402F}
.ct-champ textarea[aria-invalid="true"]{box-shadow:0 0 0 1px #A3402F}
.ct-champ__unite{display:flex;align-items:center;border-bottom:1px solid rgba(28,25,22,.32);transition:border-color .2s,box-shadow .2s}
.ct-champ__unite input{flex:1;border-bottom:0}
.ct-champ__unite input:focus-visible{box-shadow:none}
.ct-champ__unite span{flex:none;padding-left:10px;font-size:16px;color:var(--ct-gris)}
.ct-champ__unite:focus-within{border-bottom-color:var(--ct-encre);box-shadow:0 1px 0 0 var(--ct-encre)}
.ct-champ__unite:has([aria-invalid="true"]){border-bottom-color:#A3402F;box-shadow:0 1px 0 0 #A3402F}

.ct-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ct .ct-form__legal{margin:28px 0 0;font-size:12.5px;line-height:1.65;color:var(--ct-gris)}
.ct-form__legal strong{font-weight:400;color:var(--ct-texte)}
.ct-form__legal a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.ct .ct-form__erreur{margin:18px 0 0;font-size:14px;line-height:1.6;color:#A3402F}
.ct-form__erreur a{color:inherit}
.ct .ct-form__envoi{margin:24px 0 0}
.ct-form .ct-bouton{cursor:pointer;font:inherit;font-size:12.5px;letter-spacing:.14em}
.ct-form .ct-bouton[disabled]{opacity:.55;cursor:wait}

.ct-retour{display:none;margin-top:clamp(44px,4.5vw,64px);padding-top:clamp(28px,3vw,36px);border-top:1px solid var(--ct-ligne);max-width:560px;scroll-margin-top:90px;outline:none}
.ct-retour:target,.ct-retour.is-visible{display:block}
.ct .ct-retour__titre{margin:0;font-size:clamp(24px,2vw,30px);line-height:1.2;color:var(--ct-encre)}
.ct .ct-retour__texte{margin:10px 0 0;font-size:15px;line-height:1.7;color:var(--ct-texte)}
.ct-retour__texte a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}



.ct-hero__carte{position:sticky;top:84px}
.cf{
  position:relative;width:100%;max-width:840px;margin:0 auto;aspect-ratio:799.5/687.73;
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
.cf-piece{
  position:absolute;left:var(--x);top:var(--y);width:var(--w);z-index:1;pointer-events:none;
  translate:0 0;
  transition:transform .75s var(--cf-ressort),translate .45s cubic-bezier(.2,.8,.2,1),opacity .45s;
}
.cf-piece img,.cf-piece svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block;-webkit-user-drag:none}
.cf-piece .cf-base{position:relative;height:auto}
.cf-ombre{filter:brightness(0) blur(6px);opacity:0;translate:0 0;transition:opacity .35s,translate .45s cubic-bezier(.2,.8,.2,1)}
.cf-deps{overflow:visible}
.cf-deps path{fill:transparent;pointer-events:visiblePainted;cursor:pointer;transition:fill .28s}
.cf-traits{pointer-events:none}


.cf-piece.is-survol{z-index:2;translate:0 -5px}
.cf-piece.is-survol .cf-ombre{opacity:.13;translate:0 10px}
.cf-deps path.is-survol{fill:var(--cf-survol)}


.cf-piece[data-region="nordouest"]{--cx:-9px;--cy:-11px;--ex:-18px;--ey:-12px}
.cf-piece[data-region="nordest"]{--cx:9px;--cy:-12px;--ex:18px;--ey:-14px}
.cf-piece[data-region="sudouest"]{--cx:-9px;--cy:-6px;--ex:-16px;--ey:14px}
.cf-piece[data-region="sudest"]{--cx:9px;--cy:-6px;--ex:18px;--ey:14px}
.cf-piece[data-region="corse"]{--cx:8px;--cy:-8px;--ex:26px;--ey:10px}
.cf-piece.is-choisi{z-index:3;translate:var(--cx) var(--cy)}
.cf-piece.is-choisi .cf-ombre{opacity:.2;translate:calc(var(--cx) * -1) calc(var(--cy) * -1 + 8px)}
.cf-piece.is-choisi .cf-deps path{fill:var(--cf-choisi)}
.cf-piece.is-choisi .cf-deps path.is-survol{fill:var(--cf-choisi-survol)}
.cf-piece .cf-deps path.is-dep,.cf-piece.is-choisi .cf-deps path.is-dep.is-survol{fill:var(--cf-dep)}
.cf-piece .cf-deps path.is-dep.is-flash{animation:cfFlash 1.1s ease}
@keyframes cfFlash{0%,50%{fill:var(--cf-dep)}25%,75%{fill:#A39B91}}
.cf.a-choix .cf-piece:not(.is-choisi):not(.is-survol){opacity:.62}


.cf.hors-france .cf-piece{translate:var(--ex) var(--ey);opacity:.45}
.cf.hors-france .cf-piece.is-survol{opacity:.8}


.cf-piece.is-tenu{z-index:6;transition:translate .45s cubic-bezier(.2,.8,.2,1),opacity .45s}
.cf-piece.is-tenu .cf-ombre{opacity:.24;translate:0 24px}
body.cf-tenu,body.cf-tenu *{cursor:grabbing!important}


.cf-piece.is-rebond{animation:cfRebond .5s var(--cf-ressort)}
@keyframes cfRebond{0%{scale:1}30%{scale:.97}65%{scale:1.025}100%{scale:1}}


.cf-piece[data-region="nordouest"]{--mx:-26%;--my:-34%;--mr:-11deg}
.cf-piece[data-region="nordest"]{--mx:30%;--my:-28%;--mr:9deg}
.cf-piece[data-region="sudouest"]{--mx:-36%;--my:26%;--mr:8deg}
.cf-piece[data-region="sudest"]{--mx:30%;--my:32%;--mr:-10deg}
.cf-piece[data-region="corse"]{--mx:190%;--my:30%;--mr:22deg}

.js .cf.melange .cf-piece{opacity:.001;transform:translate(var(--mx),var(--my)) rotate(var(--mr)) scale(.93);
  animation:cfSecours 0s 4s forwards}

@keyframes cfSecours{to{opacity:1;transform:none}}
.cf.assemblage .cf-piece{
  transition:transform 1.05s cubic-bezier(.2,1.24,.38,1) calc(var(--i) * .13s),opacity .45s ease calc(var(--i) * .13s);
}


.cf-legende{position:absolute;left:0;bottom:3%;width:19%;margin:0;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.cf-legende.is-visible{opacity:1;transform:none}
.cf-legende span{display:block}
.cf-legende__num{font-size:clamp(30px,3vw,46px);line-height:1;letter-spacing:-.02em;color:var(--ct-encre)}
.cf-legende__nom{margin-top:8px;font-size:15px;line-height:1.3;color:var(--ct-encre)}
.cf-legende__qui{margin-top:5px;font-size:13px;line-height:1.35;color:var(--ct-gris)}


.cf-onglets{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin-top:clamp(18px,2vw,28px)}
.cf-onglets button{
  position:relative;padding:6px 0;border:0;background:none;font:inherit;font-size:14.5px;color:var(--ct-texte);cursor:pointer;
}
.cf-onglets button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ct-encre);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.cf-onglets button:hover,.cf-onglets button[aria-pressed="true"]{color:var(--ct-encre)}
.cf-onglets button:hover::after{transform:scaleX(.35)}
.cf-onglets button[aria-pressed="true"]::after{transform:scaleX(1)}
.cf-onglets button:focus-visible{outline:2px solid var(--ct-encre);outline-offset:4px}
.cf-onglets__export{margin-left:clamp(0px,1.4vw,18px)}


.ct-pieces{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:40px clamp(22px,2.4vw,40px);margin:0;padding:0;list-style:none}
.ct-piece{display:flex;flex-direction:column}
.ct-piece__img{display:block;width:var(--l);height:auto;align-self:flex-start;margin-top:auto;transition:translate .35s cubic-bezier(.2,.8,.2,1),filter .35s}
.ct-piece:hover .ct-piece__img{translate:0 -5px;filter:drop-shadow(0 9px 8px rgba(0,0,0,.13))}
.ct .ct-piece__zone{margin:22px 0 0;padding-top:14px;border-top:2px solid var(--ct-encre);font-size:16px;color:var(--ct-encre)}
.ct .ct-piece__info{margin:10px 0 0;font-size:14px;line-height:1.8}
.ct-piece__info strong{font-weight:400;color:var(--ct-encre)}
.ct-bloc .ct-piece__info a{border-bottom:0;padding-bottom:0}
.ct-bloc .ct-piece__info a:hover{opacity:1;color:var(--ct-encre);text-decoration:underline}
.ct-autres{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:40px clamp(22px,2.4vw,40px);margin-top:clamp(40px,4vw,60px)}
.ct-autre:first-child{grid-column:1}


.ct-duo{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(36px,5vw,90px);align-items:center}
.ct-photo{margin:0;overflow:hidden}
.ct-photo img{display:block;width:100%;height:auto}
.ct-societes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,48px);margin-top:clamp(28px,3vw,40px)}
.ct-societe h3{display:flex;align-items:center;gap:12px;margin:0;font-size:19px;line-height:1.3;color:var(--ct-encre)}
.ct-societe h3 img{width:auto;height:22px}
.ct .ct-societe .ct-societe__sous{margin-top:8px;font-size:14px;font-style:italic;line-height:1.6}
.ct-societe__sous strong{font-weight:400;color:var(--ct-encre)}
.ct .ct-societe p{font-size:14.5px;line-height:1.8}
.ct-societe p a{border-bottom:0!important;padding-bottom:0}
.ct-societe p a:hover{opacity:1;text-decoration:underline}
.ct-actions{margin-top:30px!important}
.ct-bouton{
  display:inline-block;padding:16px 26px;background:var(--ct-encre);color:#fff!important;border:1px solid var(--ct-encre)!important;
  font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .25s,color .25s;
}
.ct-bloc p a.ct-bouton{padding-bottom:16px}
.ct-bouton:hover{background:transparent;color:var(--ct-encre)!important;opacity:1!important}


@media (max-width:1180px){
  .ct-pieces{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ct-autres{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1024px){
  .page-contact{--ct-marge:32px}
  .ct-hero{grid-template-columns:1fr;gap:0}
  .ct-hero__texte{display:contents}
  .ct-ariane,.ct-titre,.ct-chapo{grid-column:1}
  .ct-form,.ct-retour{order:1;max-width:640px}
  .ct-chapo{order:2;max-width:60ch}
  .ct-hero__carte{order:3;margin-top:clamp(26px,4vw,40px);position:relative;top:auto}
  .cf{max-width:720px}
  .ct-duo{grid-template-columns:1fr}
  .ct-photo{max-width:520px}
}
@media (max-width:700px){
  .page-contact{--ct-marge:20px}
  .cf-legende{display:none}
  .ct-pieces{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}
  .ct-autres{grid-template-columns:1fr;gap:28px}
  .ct-societes{grid-template-columns:1fr}
  .ct-photo img{aspect-ratio:4/3;object-fit:cover;object-position:62% 40%}
  .cf-onglets{gap:4px 16px}
  .cf-onglets button{font-size:14px}
  .cf-onglets__export{margin-left:0}
}
@media (max-width:560px){
  .ct-champs{grid-template-columns:1fr;gap:20px}
  .ct-champ__paire{gap:18px}
}

@media (prefers-reduced-motion:reduce){
  .cf-piece,.cf-ombre,.cf-deps path,.cf-legende,.ct-piece__img{transition-duration:.01s!important}
  .cf.assemblage .cf-piece{transition:none!important}
  .ct-fiche.is-entree > *,.cf-piece.is-rebond,.cf-deps path.is-flash{animation:none!important}
}
