@font-face{font-family:'ITC Blair';src:url('/fonts/ITCBlair-Light.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'ITC Blair';src:url('/fonts/ITCBlair-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'ITC Blair';src:url('/fonts/ITCBlair-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Nominee';src:url('/fonts/Nominee-UltraLightExtended.woff2') format('woff2');font-weight:200;font-display:swap}
@font-face{font-family:'Nominee';src:url('/fonts/Nominee-MediumExtended.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--ink:#2A2622;--grey:#8C857C;--paper:#FFFFFF;--pad:60px}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--paper);color:var(--ink)}
body{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
a{color:var(--ink);text-decoration:none;transition:opacity .3s}
a:hover{opacity:.6}
.caps{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase}
.title{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:500;font-size:11px;letter-spacing:.18em}
.num{font-family:'Nominee','Helvetica Neue',sans-serif;font-weight:200;font-size:9.5px;letter-spacing:.2em}
.body{font-weight:300;letter-spacing:.02em;text-align:justify;hyphens:manual;-webkit-hyphens:manual}
.top{position:absolute;top:64px;left:0;right:0;text-align:center}

/* HOME */
.hero{position:relative;height:100vh;height:100svh;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .mark{position:absolute;top:38px;left:0;right:0;text-align:center;color:#fff;font-size:12px;letter-spacing:.18em;font-weight:500}
.intro{position:relative;display:flex;align-items:center;justify-content:center;padding:clamp(120px,27vh,340px) clamp(24px,6vw,80px) calc(clamp(120px,27vh,340px) - 48px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.intro p{max-width:min(820px,100%);font-size:clamp(15px,1.1vw,18px);line-height:2.05;text-align-last:center}

/* FOOTER */
footer{padding:48px 48px 36px}
.f-top{display:flex;justify-content:space-between;align-items:flex-start;gap:60px}
footer nav{display:flex;flex-direction:column}
footer nav a{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:500;font-size:9px;letter-spacing:.18em;line-height:2.6}
.f-bottom{display:flex;justify-content:space-between;align-items:baseline;margin-top:30px}
.f-bottom .small{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:7px;letter-spacing:.2em;color:var(--grey)}
footer .colophon{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:9px;letter-spacing:.2em}
footer .colophon span{margin-left:2.2em}
.news{width:400px;max-width:100%}
.news h2{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:500;font-size:10px;letter-spacing:.18em}
.news .lead{margin-top:14px;font-size:13px;line-height:1.7;letter-spacing:.015em}
.news .field{margin-top:30px;display:flex;align-items:flex-end;gap:16px;border-bottom:1px solid var(--ink);padding-bottom:8px}
.news label{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:7.5px;letter-spacing:.2em;color:var(--grey);padding-bottom:3px}
.news input{flex:1;min-width:0;border:0;outline:0;background:none;font:300 14px/1.4 'Helvetica Neue',Helvetica,sans-serif;letter-spacing:.02em;color:var(--ink);padding:0}
.news button{background:none;border:0;cursor:pointer;color:var(--ink);font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:7.5px;letter-spacing:.2em;padding:0 0 3px}
.news .legal{margin-top:14px;font-size:10.5px;line-height:1.7;color:var(--grey);letter-spacing:.015em}
.news .legal a{color:var(--grey);border-bottom:1px solid var(--grey)}
.news .done{margin-top:30px;font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:8px;letter-spacing:.2em}

/* COOKIES */
.cookies[hidden]{display:none}
.cookies{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;min-height:48px;padding:6px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.cookies p,.cookies button{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:7.5px;letter-spacing:.2em;line-height:2}
.cookies p a{margin-left:18px;border-bottom:1px solid var(--ink)}
.cookies div{display:flex;gap:40px}
.cookies button{background:none;border:0;color:var(--ink);cursor:pointer;min-height:40px;font-size:7.5px}
.cookies button.no{color:var(--grey)}

/* ABOUT */
.about{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:170px 24px 120px}
.about .cols{width:960px;max-width:100%;column-count:2;column-gap:44px;column-fill:balance;font-size:14.5px;line-height:1.8}
.about .cols p{margin-bottom:1.75em;orphans:2;widows:2}
.about .cols .dash{text-align:right;margin:0;text-align-last:right;font-size:14.5px}

/* SERVICES : photo à fond perdu à gauche, grille libellé / texte à droite */
.services{position:relative}
.services .stick>h2{display:block}
.panel figure{overflow:hidden;aspect-ratio:4/5}
.panel figure img{width:100%;height:100%;object-fit:cover;display:block}
.grid dt{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:7.5px;letter-spacing:.22em;line-height:2.2;color:var(--ink)}
.grid .name{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:10px;letter-spacing:.2em;line-height:1.7}
.grid .body{font-size:14px;line-height:1.85}
.grid ol{list-style:none}
.grid ol{margin-top:-4px}
.grid li{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:300;font-size:9px;letter-spacing:.18em;line-height:2.4;color:#6F685F}
.dots{display:flex;gap:10px}
.dots span{display:block;width:44px;height:1px;background:#D5D0CA;transition:background .8s ease}
.dots span.on{background:var(--ink)}

/* Services en défilement épinglé (écrans larges et assez hauts) */
@media (min-width:641px) and (min-height:621px){
  .services{height:300vh}
  .services .stick{position:sticky;top:0;height:100vh;overflow:hidden}
  .services .stick>h2{position:absolute;top:64px;left:48px;z-index:3}
  .dots{position:absolute;left:48px;bottom:56px;z-index:3}
  .panel{position:absolute;inset:0;pointer-events:none;z-index:1}
  .panel.on{pointer-events:auto;z-index:2}
  .panel figure{position:absolute;right:48px;top:64px;bottom:56px;width:36vw;aspect-ratio:auto;opacity:0;transition:opacity .35s ease}
  /* d'abord le texte, ensuite la photo */
  .services.seen .panel.on figure{opacity:1;transition:opacity 1.1s cubic-bezier(.25,.6,.25,1) 1.25s}
  .copy{position:absolute;left:0;right:calc(36vw + 48px);top:0;bottom:0;display:flex;align-items:center;padding:130px 5vw 120px 48px}
  .grid{width:100%;max-width:640px}
  .grid .r{display:grid;grid-template-columns:130px minmax(0,1fr);column-gap:3vw;padding-bottom:30px}
  .grid .r:first-child{padding-bottom:26px}
  .services .panel .tx.in{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
}
@media (min-width:641px) and (min-height:621px) and (max-width:900px){
  .grid .r{grid-template-columns:1fr;row-gap:6px}
}
/* Services empilés (téléphone, écran bas) */
@media (max-width:640px),(min-width:641px) and (max-height:620px){
  .grid .r{padding-bottom:24px}
  .grid dt{margin-bottom:6px}
  .dots{display:none}
}
@media (min-width:641px) and (max-height:620px){
  .services .stick{display:flex;flex-direction:column;gap:80px;padding:110px 0 60px 48px}
  .panel{display:grid;grid-template-columns:minmax(0,1fr) 40vw;column-gap:5vw;align-items:center}
  .panel figure{grid-column:2;grid-row:1}
  .grid .r{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:3vw}
}

@media (max-width:640px){
  :root{--pad:28px}
  .top{top:40px}
  .hero .mark{top:30px;font-size:11px}
  .intro{padding:120px 28px 72px}
  .intro p{font-size:14px;line-height:1.9}
  .about{padding:130px 28px 60px;display:block}
  .about .cols{column-count:1;font-size:14px;line-height:1.85}
  .services{padding:40px 0 20px}
  .services .stick>h2{padding:0 28px 40px}
  .services .stick{display:flex;flex-direction:column;gap:64px}
  .copy{padding:30px 28px 0}
  .panel figure{margin:0 28px}
  footer{padding:64px 28px 36px}
  .f-top{flex-direction:column;gap:48px}
  .f-bottom{flex-direction:column-reverse;gap:18px;align-items:flex-start}
  footer .colophon{font-size:8px}
  .cookies{flex-direction:column;align-items:flex-start;padding:22px 24px 16px;gap:8px}
  .cookies p{font-size:7.5px}
  .cookies p a{margin-left:0}
}

/* PRIVACY */
.privacy{padding:200px 24px 60px 250px;position:relative}
.privacy h1{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:500;font-size:12px;letter-spacing:.16em;margin-bottom:60px}
.privacy .row{display:grid;grid-template-columns:300px minmax(0,600px);column-gap:60px;padding:30px 0}
.privacy h2{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:8.5px;letter-spacing:.18em;line-height:1.9}
.privacy p{font-size:13.5px;line-height:1.8;letter-spacing:.015em;text-align:justify;hyphens:manual;-webkit-hyphens:manual}
@media (max-width:640px){
  .privacy{padding:130px 28px 40px}
  .privacy h1{font-size:13px;line-height:1.8}
  .privacy .row{grid-template-columns:1fr;row-gap:12px;padding:18px 0}
  .privacy p{font-size:13px}
}
.reveal{opacity:0;transform:translateY(12px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.panel{transition:none}}

/* MENU */
.menu{position:absolute;right:48px;top:64px;z-index:30;display:flex;flex-direction:column;align-items:flex-end;color:var(--ink)}
.menu.light{top:38px;color:#fff}
.menu button{background:none;border:0;cursor:pointer;height:14px;width:44px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;padding:0;color:inherit}
.menu button span{display:block;width:18px;height:1px;background:currentColor}
.menu ul{list-style:none;margin-top:18px;text-align:right;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .35s,transform .35s}
.menu.open ul{opacity:1;transform:none;pointer-events:auto}
.menu li a{display:block;color:inherit;font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:500;font-size:9px;letter-spacing:.18em;line-height:2.6}
@media (max-width:640px){.menu{right:28px;top:40px}.menu.light{top:30px}}

/* TRANSITIONS */
.js body{opacity:0;transition:opacity .9s ease}
.js body.ready{opacity:1}
.js body.leaving{opacity:0;transition:opacity .35s ease}
.hero img{transform:scale(1.035);transition:transform 2.8s cubic-bezier(.2,.6,.2,1)}
body.ready .hero img{transform:none}
.hero .mark,.hero .menu{opacity:0;transition:opacity 1.4s ease .6s}
body.ready .hero .mark,body.ready .hero .menu{opacity:1}
.cookies{transform:translateY(100%);transition:transform .8s cubic-bezier(.2,.6,.2,1) 1.2s}
body.ready .cookies{transform:none}
.menu li{opacity:0;transform:translateY(-3px);transition:opacity .4s ease,transform .4s ease}
.menu.open li{opacity:1;transform:none}
.menu.open li:nth-child(2){transition-delay:.06s}
.menu.open li:nth-child(3){transition-delay:.12s}
/* Entrée commune : services, pied de page, déroulé du texte d'accueil */
.tx,.intro .w{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
.intro .w{display:inline-block;transition:opacity 1.3s cubic-bezier(.25,.6,.25,1),transform 1.3s cubic-bezier(.25,.6,.25,1)}
.intro .w.in{opacity:1;transform:none}
.foot.in .tx,.panel .tx.in,.services.seen .stick>.tx,.services.seen .panel.on .tx{opacity:1;transform:none;
  transition:opacity 1.1s cubic-bezier(.25,.6,.25,1) calc(var(--d,0) * .13s + .45s),transform 1.1s cubic-bezier(.25,.6,.25,1) calc(var(--d,0) * .13s + .45s)}
.foot.in .tx{transition-delay:calc(var(--d,0) * .13s + .1s)}
@media (max-width:640px),(min-width:641px) and (max-height:620px){
  .panel .tx.in{transition-duration:.9s;transition-delay:0s}
}
.hero .pl{position:absolute;inset:0}
@media (prefers-reduced-motion:reduce){
  .js body,.hero img,.hero .mark,.hero .menu,.cookies,.tx,.intro .w,.panel figure{transition:none!important;transform:none!important}
  .intro .w,.foot .tx{opacity:1!important}
}

/* RESPONSIVE : grands écrans, tablettes, paysage téléphone */
@media (min-width:1800px){.intro p{max-width:960px}.about .cols{width:1120px;font-size:15.5px}.grid{max-width:720px}.grid .body{font-size:15px}}
@media (min-width:641px) and (max-width:1024px){
  :root{--pad:32px}
  footer{padding:48px 32px 32px}
  .cookies{padding:6px 32px}
  .menu{right:32px}
  .about{padding:150px 32px 100px}
  .about .cols{column-gap:32px;font-size:14px}
  .privacy{padding:170px 32px 60px}
  .privacy .row{grid-template-columns:200px minmax(0,1fr);column-gap:40px}
  .grid .body{font-size:13.5px}
}
@media (max-width:380px){
  .intro p,.about .cols{font-size:13.5px}
  .cookies p{font-size:7px}
}

/* CONTACT */
.contact{position:relative;min-height:88vh;padding:230px 120px 80px;display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);column-gap:140px;align-items:start}
.c-addr{margin-top:40px;font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:9px;letter-spacing:.2em;line-height:2.8}
.c-addr a{border-bottom:1px solid var(--ink)}
.c-people{margin-top:34px;font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:9px;letter-spacing:.2em;line-height:2.8}
.c-people>div+div{margin-top:18px}
.c-people span{display:block;color:var(--grey)}
.c-people a{border-bottom:1px solid var(--ink)}
.c-form{display:flex;flex-direction:column;gap:34px}
.c-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.c-form label{display:flex;flex-direction:column;gap:10px}
.c-form label>span{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:8.5px;letter-spacing:.2em;color:var(--grey)}
.c-form input[type=text],.c-form input[type=email],.c-form textarea{border:0;border-bottom:1px solid var(--ink);border-radius:0;background:none;padding:10px 0;font:300 14px/1.6 'Helvetica Neue',Helvetica,sans-serif;color:var(--ink);outline:0;resize:vertical;-webkit-appearance:none}
.c-form textarea{min-height:110px}
.c-form input:focus,.c-form textarea:focus{border-bottom-color:var(--grey)}
.c-form .c-ok{flex-direction:row;gap:12px;align-items:flex-start}
.c-form .c-ok input{appearance:none;-webkit-appearance:none;width:11px;height:11px;border:1px solid var(--ink);margin:3px 0 0;flex:none;cursor:pointer}
.c-form .c-ok input:checked{background:var(--ink)}
.c-form .c-ok span{font:300 11.5px/1.6 'Helvetica Neue',Helvetica,sans-serif;letter-spacing:0;text-transform:none;color:var(--grey)}
.c-form .c-ok a{color:var(--grey);border-bottom:1px solid var(--grey)}
.c-form button{align-self:flex-start;background:none;border:0;border-bottom:1px solid var(--ink);padding:0 0 6px;font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:10px;letter-spacing:.22em;color:var(--ink);cursor:pointer;min-height:32px}
.c-msg{font:300 12px/1.6 'Helvetica Neue',Helvetica,sans-serif;color:var(--grey);min-height:1em}
.c-done{font-family:'ITC Blair','Helvetica Neue',sans-serif;text-transform:uppercase;font-weight:700;font-size:10px;letter-spacing:.2em;line-height:2.4}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
@media (max-width:900px) and (min-width:641px){.contact{padding:170px 32px 80px;column-gap:60px}}
@media (max-width:640px){.contact{display:block;padding:130px 28px 60px}.c-addr{margin-top:30px;font-size:8px}.c-people{margin-top:26px;font-size:8px}.c-people>div+div{margin-top:14px}.c-form{margin-top:56px}.c-row{grid-template-columns:1fr;gap:34px}}

/* Mobile : services sans libellés (Service, Approach, Engagements) */
@media (max-width:640px){.services .grid dt{display:none}.services .grid .nb{display:none}.services .grid .r{padding-bottom:18px}}
