
body{background:#fff;color:var(--encre);
  font:16px/1.72 "Segoe UI",Roboto,-apple-system,Helvetica,Arial,sans-serif;font-weight:300}
strong,b{font-weight:600}

.titre-section{font-size:clamp(24px,3vw,34px);font-weight:300;letter-spacing:.06em;
  text-transform:uppercase;line-height:1.25}
.entete-section{max-width:600px;margin-bottom:44px}
.chapeau{color:var(--encre-douce);margin-top:14px;font-size:16px;text-transform:none;letter-spacing:0}
.section-creme{background:var(--creme)}
.section-sombre{background:var(--encre);color:#fff}

.entete{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.95);
  backdrop-filter:blur(9px);transition:box-shadow .25s}
.entete.compacte{box-shadow:0 1px 14px rgba(0,0,0,.07)}
.entete-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-top:20px;padding-bottom:20px;position:relative}
.marque{text-decoration:none}
.marque-bloc{display:flex;flex-direction:column;line-height:1.15}
.marque-nom{font-size:18px;font-weight:400;letter-spacing:.24em;text-transform:uppercase}
.marque-metier{font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--encre-douce);margin-top:5px}
.logo{max-height:42px;width:auto}
.nav-liens{display:flex;align-items:center;gap:32px;background:#fff}
.nav-liens a{text-decoration:none;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--encre-douce);font-weight:400}
.nav-liens a:hover{color:var(--accent)}

.btn{display:inline-block;background:var(--encre);color:#fff;text-decoration:none;
  padding:14px 32px;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--encre);transition:background .22s,color .22s}
.btn:hover{background:transparent;color:var(--encre)}
.btn.clair{background:#fff;color:var(--encre);border-color:#fff}
.btn.clair:hover{background:transparent;color:#fff}
.btn.creux{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn.creux:hover{background:#fff;color:var(--encre);border-color:#fff}

.hero{position:relative;min-height:min(92vh,760px);display:flex;align-items:flex-end;
  padding:100px 0 76px;overflow:hidden}
.hero-image{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-voile{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.34) 46%,rgba(0,0,0,.12) 100%)}
.hero-texte{position:relative;color:#fff;max-width:680px}
.sur-titre{font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(255,255,255,.72);margin-bottom:22px}
.hero h1{font-size:clamp(30px,4.8vw,52px);font-weight:200;line-height:1.14;letter-spacing:-.005em}
.accroche{margin:20px 0 34px;font-size:17.5px;color:rgba(255,255,255,.84);max-width:46ch}

.galerie{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:6px;
  padding:0 6px}
.photo{margin:0;position:relative;overflow:hidden}
.photo.grande{grid-column:span 2}
.photo-image{aspect-ratio:3/4;background-size:cover;background-position:center;
  transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.photo.grande .photo-image{aspect-ratio:3/2}
.photo:hover .photo-image{transform:scale(1.04)}
.photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 18px;color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.72));display:flex;flex-direction:column;gap:4px;
  opacity:0;transition:opacity .35s}
.photo:hover figcaption,.photo:focus-within figcaption{opacity:1}
.photo-cat{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.photo-titre{font-size:16px;font-weight:400}

.prestations{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:34px}
.prestation{background:#fff;padding:30px 28px;border:1px solid var(--filet)}
.prestation-tete{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--filet)}
.prestation h3{font-size:20px;font-weight:400;letter-spacing:.05em;text-transform:uppercase}
.prestation-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;margin-top:9px}
.prestation-prix{font-size:16px;font-weight:600;color:var(--accent)}
.prestation-duree{font-size:13px;color:var(--encre-douce)}
.prestation-texte{font-size:14.5px;color:var(--encre-douce);line-height:1.68}
.prestation-details{margin-top:16px;display:grid;gap:7px;font-size:13.5px;color:var(--encre-douce)}
.prestation-details li{padding-left:18px;position:relative}
.prestation-details li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:1px;
  background:var(--accent)}

.demarche{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
.demarche-photo{aspect-ratio:3/4;background-size:cover;background-position:center}
.demarche-texte .corps{margin-top:20px;color:var(--encre-douce)}
.corps p + p{margin-top:16px}
.etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:32px;
  margin-top:60px;padding-top:44px;border-top:1px solid var(--filet)}
.etape-num{display:block;font-size:13px;letter-spacing:.16em;color:var(--accent);margin-bottom:12px}
.etapes h3{font-size:16px;font-weight:400;letter-spacing:.07em;text-transform:uppercase;
  margin-bottom:9px}
.etapes p{font-size:14px;color:var(--encre-douce);line-height:1.65}

.contact{max-width:640px;margin:0 auto;text-align:center}
.contact h2{font-size:clamp(24px,3vw,34px);font-weight:200;letter-spacing:.05em;text-transform:uppercase}
.contact-texte{margin:20px 0 34px;color:rgba(255,255,255,.78);font-size:16.5px}
.contact-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.contact-infos{margin-top:34px;display:grid;gap:8px;font-size:13.5px;color:rgba(255,255,255,.58)}

.pied{background:var(--creme);border-top:1px solid var(--filet);padding:38px 0 28px}
.pied-inner{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center}
.pied-nom{font-size:14px;letter-spacing:.18em;text-transform:uppercase}
.reseaux{display:flex;gap:24px}
.reseaux a{font-size:12.5px;letter-spacing:.1em;color:var(--encre-douce);text-decoration:none}
.reseaux a:hover{color:var(--accent)}
.mentions{width:100%;font-size:11.5px;color:var(--encre-douce);border-top:1px solid var(--filet);
  padding-top:18px;margin-top:6px;letter-spacing:.02em}
.mentions a{color:var(--accent)}

.a-animer{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.a-animer.visible{opacity:1;transform:none}

@media (max-width:900px){
  .demarche{grid-template-columns:1fr;gap:32px}
  .demarche-photo{aspect-ratio:4/3}
  .photo.grande{grid-column:auto}
  .photo.grande .photo-image{aspect-ratio:3/4}
}
@media (max-width:860px){
  .nav-liens{padding-bottom:12px}
}
@media (max-width:640px){
  .hero{min-height:auto;padding:70px 0 52px}
  .galerie{grid-template-columns:1fr;gap:4px;padding:0 4px}
  .photo figcaption{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .a-animer{opacity:1;transform:none;transition:none}
  .photo:hover .photo-image{transform:none}
  html{scroll-behavior:auto}
}

.nav-liens a.btn{color:var(--sur-accent)}
.nav-liens a.btn.creux{color:var(--accent)}
