:root{
  --noir:#0b0b0c;
  --noir-soft:#17161a;
  --blanc:#fbfaf7;
  --blanc-pur:#ffffff;
  --or:#b08d57;
  --or-clair:#d9c08c;
  --or-a11y:#8a6d41;
  --or-clair-a11y:#8c6d2e;
  --texte:#3d3a34;
  --texte-doux:#7a7669;
  --texte-doux-a11y:#767266;
  --ligne:#e6e2d8;
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--blanc);
  color:var(--texte);
  font-family:'Work Sans',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:'Fraunces',serif;}
h1,h2,h3{color:var(--noir);margin:0;font-weight:500;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
#services,#approche,#apropos,#contact{scroll-margin-top:90px;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
:focus-visible{outline:2px solid var(--or);outline-offset:3px;}

.skip-link{
  position:absolute;left:16px;top:-60px;z-index:100;
  background:var(--noir);color:var(--blanc-pur);
  padding:12px 20px;border-radius:2px;transition:top .2s ease;
}
.skip-link:focus{top:16px;}

/* TRAJECTOIRE — fine ligne de progression globale, fil conducteur du parcours */
.page-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none;background:transparent;}
.page-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--or-clair),var(--or));}
@media (prefers-reduced-motion: reduce){
  .page-progress-fill{transition:none;}
}

/* NAV */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,250,247,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--ligne);
  transition:background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
header.scrolled{
  background:rgba(251,250,247,0.98);
  box-shadow:0 8px 24px -18px rgba(11,11,12,0.35);
  border-bottom-color:var(--or-clair);
}
nav.wrap{display:flex;align-items:center;justify-content:space-between;height:76px;}
.logo{display:flex;align-items:center;}
.logo-img{height:38px;width:auto;display:block;}
.logo-img-footer{height:56px;}
.nav-links{display:flex;align-items:center;gap:32px;}
.nav-links a{font-size:0.95rem;color:var(--texte);transition:color .2s;position:relative;}
.nav-links a:hover,.nav-links a.active{color:var(--or);}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--or);transition:width .28s cubic-bezier(.16,.84,.44,1);}
.nav-links a:not(.btn):hover::after,.nav-links a.active::after{width:100%;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:13px 26px;border-radius:2px;
  font-size:0.92rem;font-weight:500;
  border:1px solid var(--noir);
  background:var(--noir);color:var(--blanc-pur);
  cursor:pointer;transition:background .25s, color .25s, border-color .25s, transform .25s ease;
}
.btn:hover{background:var(--or);border-color:var(--or);color:var(--noir);transform:translateY(-2px);box-shadow:0 6px 18px -8px rgba(176,141,87,0.55);}
.btn:active{transform:translateY(0) scale(.98);box-shadow:none;}
.btn-outline{background:transparent;color:var(--noir);border:1px solid var(--noir);}
.btn-outline:hover{background:var(--noir);color:var(--blanc-pur);}
.btn-gold{background:var(--or);border-color:var(--or);color:var(--noir);}
.btn-gold:hover{background:var(--or-clair);border-color:var(--or-clair);}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--noir);margin:5px 0;}

/* BREADCRUMB */
.breadcrumb{padding:18px 0;font-size:0.85rem;color:var(--texte-doux);border-bottom:1px solid var(--ligne);}
.breadcrumb a{color:var(--texte-doux);transition:color .2s;}
.breadcrumb a:hover{color:var(--or);}
.breadcrumb span{margin:0 8px;color:var(--ligne);}
.breadcrumb .current{color:var(--noir);}

/* HERO */
.hero{padding:88px 0 100px;}
.hero .wrap{display:grid;grid-template-columns:1.15fr 0.85fr;gap:64px;align-items:center;}
.eyebrow{color:var(--or-a11y);font-size:0.86rem;font-weight:600;letter-spacing:0.08em;margin-bottom:20px;text-transform:uppercase;}
.eyebrow-line{width:44px;height:2px;background:var(--or);margin-bottom:24px;}
.hero-h1{font-size:clamp(2.1rem,4vw,3.2rem);line-height:1.16;letter-spacing:-0.01em;}
.hero-h1-line{overflow:hidden;display:block;}
.hero-h1-line span{display:inline-block;transform:translateY(115%);animation:lineUp .6s cubic-bezier(.16,.84,.44,1) forwards;}
.hero-h1-line:nth-child(1) span{animation-delay:.03s;}
.hero-h1-line:nth-child(2) span{animation-delay:.09s;color:var(--texte-doux);font-size:0.62em;font-family:'Work Sans',sans-serif;font-weight:500;}
@keyframes lineUp{to{transform:translateY(0);}}
.hero-anim{opacity:0;transform:translateY(16px);animation:heroFade .5s ease forwards;}
@keyframes heroFade{to{opacity:1;transform:none;}}
.hero p.lead{margin-top:26px;font-size:1.1rem;color:var(--texte-doux-a11y);max-width:50ch;}
.hero .cta-row{margin-top:36px;display:flex;gap:16px;flex-wrap:wrap;}
.hero-subline{margin-top:22px;font-family:'Fraunces',serif;font-style:italic;color:var(--texte-doux-a11y);font-size:0.98rem;}
.hero-signature{margin-top:28px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.hero-signature span{font-size:0.78rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--texte-doux-a11y);}
.hero-signature .sig-dot{color:var(--or);font-size:0.55rem;letter-spacing:0;}

.hero-card{
  background:var(--noir);color:var(--blanc-pur);
  padding:40px 36px;border-radius:2px;
  position:relative;overflow:hidden;
}
.hero-anim-card{opacity:0;transform:translateY(18px) scale(.98);animation:heroFade .5s ease forwards;animation-delay:.12s;}
.hero-card svg{width:100%;height:auto;margin-bottom:28px;}
.hero-card .draw-path{clip-path:url(#drawClipPath);}
.draw-clip-rect{transform:scaleX(0);transform-origin:0px 0px;will-change:transform;}
.hero-graphic.replay .draw-clip-rect{animation:draw 1.6s cubic-bezier(.16,.84,.44,1) .2s forwards;}
@keyframes draw{to{transform:scaleX(1);}}
@keyframes liFadeIn{to{opacity:1;transform:none;}}
.graphic-point{opacity:0;}
.hero-graphic.replay .graphic-point{animation:pointIn .4s ease forwards;animation-delay:var(--pd);}
@keyframes pointIn{to{opacity:1;}}
.pulse-ring{transform-origin:316px 14px;will-change:transform,opacity;}
.hero-graphic.replay .pulse-ring{animation:pulse-ring 1.8s ease-out 1.4s 2;}
@keyframes pulse-ring{0%{transform:scale(1);opacity:0.7;}100%{transform:scale(4);opacity:0;}}
.hero-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.hero-card li{display:flex;gap:12px;font-size:0.96rem;color:#e9e6de;opacity:0;transform:translateX(-10px);animation:liFadeIn .6s ease-out forwards;}
.hero-card li:nth-child(1){animation-delay:1.3s;}
.hero-card li:nth-child(2){animation-delay:1.45s;}
.hero-card li:nth-child(3){animation-delay:1.6s;}
.hero-card li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--or);margin-top:8px;flex-shrink:0;}
@media (prefers-reduced-motion: reduce){
  .hero-card li,.hero-anim,.hero-anim-card,.hero-h1-line span{animation:none !important;opacity:1 !important;transform:none !important;}
  .pulse-ring,.draw-path,.draw-clip-rect,.graphic-point{animation:none !important;}
  .draw-clip-rect{transform:scaleX(1) !important;}
  .graphic-point{opacity:1;}
  .reveal{opacity:1 !important;transform:none !important;transition:none !important;}
}
@media (prefers-reduced-motion: reduce){
  .reveal-calm,.reveal-strong,.reveal-approche,.reveal-side,.reveal-scale{opacity:1 !important;transform:none !important;transition:none !important;}
  .timeline-line-fill{transition:none !important;}
}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in-view{opacity:1;transform:translateY(0);}
.reveal-group > *:nth-child(1){transition-delay:0s;}
.reveal-group > *:nth-child(2){transition-delay:.08s;}
.reveal-group > *:nth-child(3){transition-delay:.16s;}
.reveal-group > *:nth-child(4){transition-delay:.24s;}
.reveal-group > *:nth-child(5){transition-delay:.32s;}
.reveal-group > *:nth-child(6){transition-delay:.4s;}
.reveal-group > *:nth-child(7){transition-delay:.48s;}
.reveal-group > *:nth-child(8){transition-delay:.56s;}
/* Variante calme — section À propos */
.reveal-calm{opacity:0;transform:translateY(8px);transition:opacity 1s ease, transform 1s ease;}
.reveal-calm.in-view{opacity:1;transform:none;}
/* Variante appuyée — section Contact, marque la fin du parcours */
.reveal-strong{opacity:0;transform:translateY(34px) scale(.97);transition:opacity .8s cubic-bezier(.16,.84,.44,1), transform .8s cubic-bezier(.16,.84,.44,1);}
.reveal-strong.in-view{opacity:1;transform:none;}
/* Variante approche — plus sobre, le mouvement vient de la timeline elle-même */
.reveal-approche{opacity:0;transform:translateY(10px);transition:opacity .6s ease, transform .6s ease;}
.reveal-approche.in-view{opacity:1;transform:none;}
/* Variante latérale — léger déplacement horizontal */
.reveal-side{opacity:0;transform:translateX(-18px);transition:opacity .65s ease, transform .65s cubic-bezier(.16,.84,.44,1);}
.reveal-side.in-view{opacity:1;transform:none;}
/* Variante échelle — très léger zoom d'entrée */
.reveal-scale{opacity:0;transform:scale(.98);transition:opacity .6s ease, transform .6s ease;}
.reveal-scale.in-view{opacity:1;transform:none;}

/* BANDE PROFILS */
.profils{border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne);padding:44px 0;}
.profils .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.profils .item{border-left:2px solid var(--or);padding-left:18px;transition:transform .3s ease, border-color .3s ease;}
.profils .item:hover{transform:translateX(6px);border-color:var(--or-clair);}
.profils .item h3{font-size:1.05rem;font-weight:600;font-family:'Work Sans',sans-serif;}
.profils .item p{color:var(--texte-doux);font-size:0.94rem;margin-top:6px;}

/* SECTION GENERIQUE */
section{padding:100px 0;}
.section-head{max-width:640px;margin-bottom:60px;}
.section-head .tag{color:var(--or);font-size:0.92rem;font-weight:600;margin-bottom:14px;display:block;}
.section-head h2{font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.2;}
.section-head p{margin-top:18px;color:var(--texte-doux);font-size:1.05rem;}
.section-alt{background:var(--blanc-pur);border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne);}

/* PROBLEMATIQUES */
.problemes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne);}
.probleme{background:var(--blanc);padding:30px 32px;transition:background .25s ease;}
.probleme:hover{background:var(--blanc-pur);}
.probleme p{font-size:1rem;color:var(--texte);position:relative;padding-left:20px;}
.probleme p::before{content:"—";position:absolute;left:0;color:var(--or);}

/* SERVICES */
.services-list{display:flex;flex-direction:column;}
.service-row{
  display:grid;grid-template-columns:0.9fr 1.4fr;gap:56px;
  padding:44px 20px;border-top:1px solid var(--ligne);
  align-items:start;border-left:2px solid transparent;
  margin-left:-20px;
  transition:background .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.service-row:hover{background:rgba(176,141,87,0.05);border-left-color:var(--or);transform:translateY(-3px);box-shadow:0 16px 32px -26px rgba(11,11,12,0.3);}
.service-row:last-child{border-bottom:1px solid var(--ligne);}
.service-row h3{font-size:1.45rem;}
.service-row h3 a{position:relative;display:inline-block;transition:color .25s ease, transform .3s ease;}
.service-row h3 a::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:var(--or);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,.84,.44,1);}
.service-row:hover h3 a{color:var(--or);transform:translateX(6px);}
.service-row:hover h3 a::after{transform:scaleX(1);}
.service-row .service-num{font-family:'Fraunces',serif;font-style:italic;color:var(--or-clair);font-size:1.1rem;margin-bottom:10px;display:inline-block;transition:transform .3s ease, color .3s ease;}
.service-row:hover .service-num{color:var(--or);transform:scale(1.15);}
.service-row p{color:var(--texte-doux);margin-top:14px;max-width:56ch;}
.service-row .service-points{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px 28px;}
.service-points span{font-size:0.88rem;color:var(--texte);position:relative;padding-left:16px;}
.service-points span::before{content:"—";position:absolute;left:0;color:var(--or);}
.service-row .service-link{margin-top:16px;display:inline-flex;align-items:center;gap:8px;font-size:0.9rem;font-weight:600;color:var(--or);border-bottom:1px solid var(--or-clair);width:fit-content;}
.service-row .service-link::after{content:"→";display:inline-block;transition:transform .25s ease;}
.service-row .service-link:hover{color:var(--noir);border-color:var(--noir);}
.service-row .service-link:hover::after{transform:translateX(4px);}
.form-status{margin-top:4px;font-size:0.9rem;min-height:1.2em;}
.form-status.success{color:#c9e4b0;}
.form-status.error{color:#e6b0b0;}

/* APPROCHE — TIMELINE */
.approche{background:var(--noir-soft);color:var(--blanc);}
.approche .section-head h2, .approche .section-head p{color:var(--blanc-pur);}
.approche .section-head p{color:#c9c6bd;}
.timeline{position:relative;margin-top:64px;}
.timeline-line{position:absolute;top:29px;left:0;right:0;height:2px;background:rgba(255,255,255,0.14);}
.timeline-line-fill{width:0%;height:100%;background:var(--or);}
.timeline-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;position:relative;}
.timeline-step{padding-top:56px;position:relative;opacity:.4;transition:opacity .4s ease;}
.timeline-step.active{opacity:1;}
.timeline-dot{position:absolute;top:22px;left:0;width:16px;height:16px;border-radius:50%;background:var(--noir-soft);border:2px solid rgba(255,255,255,0.3);transition:background .3s ease, border-color .3s ease, transform .3s ease;}
.timeline-step.active .timeline-dot{background:var(--or);border-color:var(--or);transform:scale(1.2);}
.timeline-step .num{font-family:'Fraunces',serif;font-style:italic;font-size:1.6rem;color:rgba(255,255,255,0.6);transition:color .3s ease;}
.timeline-step h3{color:var(--blanc-pur);}
.timeline-step.active .num{color:var(--or);}
.timeline-step h3{color:var(--blanc-pur);font-size:1.08rem;margin-top:10px;font-family:'Work Sans',sans-serif;font-weight:600;}
.timeline-step p{color:#c9c6bd;font-size:0.92rem;margin-top:10px;}

/* POUR QUI */
.pourqui-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pourqui-card{background:var(--blanc-pur);border:1px solid var(--ligne);border-top:3px solid var(--or);padding:28px;transition:transform .25s ease, border-color .25s ease;}
.pourqui-card:hover{transform:translateY(-4px);border-top-color:var(--or-clair);}
.pourqui-card h3{font-size:1.1rem;font-family:'Work Sans',sans-serif;font-weight:600;}
.pourqui-card p{margin-top:10px;color:var(--texte-doux);font-size:0.94rem;}

/* POURQUOI */
.avantages-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne);}
.avantage{background:var(--blanc);padding:30px 28px;transition:background .25s ease;}
.avantage:hover{background:var(--blanc-pur);}
.avantage .num{font-family:'Fraunces',serif;font-style:italic;color:var(--or-clair-a11y);font-size:1.2rem;}
.avantage h3{font-size:1.02rem;margin-top:10px;font-family:'Work Sans',sans-serif;font-weight:600;}
.avantage p{margin-top:8px;color:var(--texte-doux);font-size:0.92rem;}

/* A PROPOS */
.apropos .wrap{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:start;}
.apropos-card{background:var(--blanc-pur);border:1px solid var(--ligne);padding:32px;border-top:3px solid var(--or);}
.apropos-card .name{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--noir);}
.apropos-card .role{color:var(--texte-doux);font-size:0.92rem;margin-top:4px;}
.apropos p{color:var(--texte-doux);font-size:1.06rem;margin-top:20px;}
.apropos p:first-of-type{margin-top:0;}
.apropos p + p{margin-top:18px;}

/* CTA FINAL */
.cta-final{background:var(--noir);color:var(--blanc-pur);text-align:center;}
.cta-final h2{color:var(--blanc-pur);font-size:clamp(1.8rem,3.4vw,2.6rem);}
.cta-final p{color:#c9c6bd;margin-top:16px;font-size:1.1rem;max-width:52ch;margin-left:auto;margin-right:auto;}
.cta-final .btn-gold{margin-top:32px;}

/* CONTACT */
.contact{background:var(--noir);color:var(--blanc-pur);}
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.contact h2{color:var(--blanc-pur);font-size:clamp(1.8rem,3vw,2.4rem);}
.contact .section-head p{color:#c9c6bd;}
.contact .section-head .tag{color:var(--or-clair);}
.reassurance{margin-top:16px;color:var(--or-clair);font-size:0.95rem;}
.coord{margin-top:32px;display:flex;flex-direction:column;gap:14px;}
.coord a{font-size:1rem;color:var(--blanc-pur);border-bottom:1px solid rgba(255,255,255,0.25);padding-bottom:2px;width:fit-content;}
.coord a:hover{border-color:var(--or);}
form{display:flex;flex-direction:column;gap:18px;}
label{font-size:0.85rem;color:#c9c6bd;margin-bottom:6px;display:block;transition:color .25s ease;}
.field:focus-within label{color:var(--or-clair);}
input,textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,0.28);
  color:var(--blanc-pur);font-family:'Work Sans',sans-serif;font-size:0.98rem;
  padding:10px 2px;transition:border-color .25s ease, box-shadow .25s ease;
}
input:focus,textarea:focus{border-color:var(--or);outline:none;box-shadow:0 1px 0 0 var(--or);}
textarea{resize:vertical;min-height:90px;}
.field{display:flex;flex-direction:column;}
.contact .btn-gold{margin-top:6px;align-self:flex-start;}

/* CONTENU LONG (pages services / légal) */
.contenu{max-width:760px;}
.contenu h2{font-size:1.6rem;margin-top:48px;}
.contenu h2:first-child{margin-top:0;}
.contenu p{color:var(--texte-doux);font-size:1.05rem;margin-top:16px;}
.contenu ul{margin:16px 0 0;padding-left:20px;color:var(--texte-doux);}
.contenu li{margin-top:8px;font-size:1.02rem;}
.contenu li::marker{color:var(--or);}

footer{padding:56px 0 32px;border-top:1px solid var(--ligne);}
.footer-top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;padding-bottom:36px;}
.footer-brand p{color:var(--texte-doux);font-size:0.92rem;margin-top:14px;max-width:32ch;}
.footer-col h4{font-size:0.9rem;font-weight:600;color:var(--noir);margin-bottom:14px;}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.footer-col a{font-size:0.92rem;color:var(--texte-doux-a11y);transition:color .2s;}
.footer-col a:hover{color:var(--or);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:24px;border-top:1px solid var(--ligne);}
.footer-bottom p{color:var(--texte-doux-a11y);font-size:0.86rem;}
.footer-bottom .legal-links{display:flex;gap:20px;}
.footer-bottom .legal-links a{color:var(--texte-doux-a11y);font-size:0.86rem;transition:color .2s;}
.footer-bottom .legal-links a:hover{color:var(--or);}

@media (max-width:860px){
  .nav-links{position:fixed;top:76px;left:0;right:0;background:var(--blanc-pur);border-bottom:1px solid var(--ligne);
    flex-direction:column;align-items:flex-start;padding:24px 32px;gap:20px;
    transform:translateY(-130%);transition:transform .3s ease;}
  .nav-links.open{transform:translateY(0);}
  .menu-toggle{display:block;}
  .hero .wrap,.profils .wrap,.approche .wrap,.apropos .wrap,.contact .wrap{grid-template-columns:1fr;}
  .service-row{grid-template-columns:1fr;gap:16px;}
  .problemes-grid,.pourqui-grid,.avantages-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;gap:28px;}
  section{padding:72px 0;}
  .hero{padding:56px 0 72px;}
  .timeline-steps{grid-template-columns:1fr;gap:36px;}
  .timeline-line{top:0;left:7px;width:2px;height:100%;right:auto;}
  .timeline-step{padding-top:0;padding-left:34px;}
  .timeline-dot{top:2px;left:0;}
}
@media (max-width:520px){
  .wrap{padding:0 22px;}
}
