
.sec{padding:clamp(80px,12vw,180px) 0}
.sec .etiquette{display:block;margin-bottom:clamp(18px,2.4vw,32px)}

.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:96px 0 clamp(24px,3vw,40px)}
.hero h1{font-weight:inherit;letter-spacing:0;line-height:1}
.hero .geant{font-weight:800;letter-spacing:-.055em;font-size:20vw;padding:.02em 0 .08em}
.hero .bas{display:block;margin-top:clamp(20px,3vw,36px)}
.hero .accroche{display:block;max-width:34ch;font-size:clamp(1.3rem,2.6vw,2.3rem);font-weight:600;letter-spacing:-.02em;line-height:1.1}
.hero .villes{display:block}
.hero .defile{display:block;height:1.2em;line-height:1.2;overflow:hidden;font-weight:800;letter-spacing:-.03em}
.hero .piste{display:block;will-change:transform}
.hero .piste span{display:block;width:max-content;color:var(--accent)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hero .piste span{color:transparent;-webkit-background-clip:text;background-clip:text;
    background-image:linear-gradient(90deg,var(--orange),var(--ambre),var(--vert),var(--ambre),var(--orange));background-size:400% 100%}
  .hero .piste span:nth-child(9n+2){background-position:25% 0}
  .hero .piste span:nth-child(9n+3){background-position:50% 0}
  .hero .piste span:nth-child(9n+4){background-position:75% 0}
  .hero .piste span:nth-child(9n+5){background-position:100% 0}
  .hero .piste span:nth-child(9n+6){background-position:62% 0}
  .hero .piste span:nth-child(9n+7){background-position:38% 0}
  .hero .piste span:nth-child(9n+8){background-position:88% 0}
  .hero .piste span:nth-child(9n+9){background-position:12% 0}
}

.manifeste{display:grid;grid-template-columns:minmax(0,1fr);gap:.04em;margin-bottom:clamp(48px,7vw,104px)}
.manifeste .fit{font-weight:800;letter-spacing:-.05em;font-size:15vw;color:var(--gris-fonce);transition:color .7s var(--ease)}
.manifeste .fit.lu{color:var(--blanc)}
.manifeste .fit.lu em{color:var(--accent)}
.manifeste em{font-style:normal}
.studio{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px)}
.studio p{color:var(--gris)}
.studio p strong{color:var(--blanc);font-weight:600}
.portrait{aspect-ratio:4/5;border-radius:clamp(18px,2.4vw,32px);background:var(--accent);color:var(--noir);display:grid;place-items:center;text-align:center;padding:20px;font-weight:600}

.liste{list-style:none;border-top:1px solid var(--ligne)}
.prestation{--fond:var(--orange);--texte:var(--noir);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,22rem);align-items:center;gap:8px clamp(16px,3vw,48px);
  padding:clamp(14px,2vw,26px) 0;border-bottom:1px solid var(--ligne);transition:background-color .35s var(--ease),color .35s var(--ease),padding .45s var(--ease)}
.prestation:nth-child(2){--fond:var(--bleu);--texte:var(--blanc)}
.prestation:nth-child(3){--fond:var(--vert)}
.prestation:nth-child(4){--fond:var(--violet);--texte:var(--blanc)}
.prestation .pastille{display:block;width:clamp(20px,2.6vw,44px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(100% 100% at 28% 1%,#F49412 0,#F18714 7.5%,#EF6617 17.5%,#E54732 27.5%,#D62C53 37.5%,#C61367 47.5%,#A11978 57.5%,#6F288A 67.5%,#423699 77.5%,#3C3C9C 87.5%,#3344A1 100%)}
.prestation h3{font-size:clamp(2.2rem,5.8vw,6.8rem);font-weight:800;letter-spacing:-.05em;line-height:.9;transition:transform .45s var(--ease)}
.prestation p{font-size:1rem;color:var(--gris)}
.prestation:hover{background:var(--fond);color:var(--texte);padding-left:clamp(12px,2vw,28px);padding-right:clamp(12px,2vw,28px)}
.prestation:hover p{color:var(--texte)}
.prestation:hover h3{transform:translateX(.08em)}
.prestation h3 a{text-decoration:none}
.prestation h3 a::after{content:"";position:absolute;inset:0}

.projets .titre{font-weight:800;letter-spacing:-.055em;font-size:22vw;margin-bottom:clamp(28px,4vw,56px)}
.fiches{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,6vw,80px) clamp(14px,2vw,28px)}
.fiche .visuel{aspect-ratio:4/3;border-radius:clamp(18px,2.4vw,32px);overflow:hidden;background:var(--ligne);margin-bottom:clamp(18px,2vw,26px)}
.fiche .visuel.clair{background:var(--blanc)}
.fiche .visuel img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.fiche .visuel.clair img{object-fit:contain}
.fiche:hover .visuel img{transform:scale(1.03)}
.fiche .etiquette{margin-bottom:10px}
.fiche h3{font-size:clamp(2.2rem,4.6vw,4.4rem);font-weight:800;letter-spacing:-.05em;line-height:.9;margin-bottom:clamp(12px,1.4vw,18px)}
.fiche p{color:var(--gris);max-width:44ch}
.fiche.large{grid-column:1/-1}
.fiche.large .visuel{aspect-ratio:2/1}
.fiche.large .visuel img{object-fit:cover}
.fiche.large p{max-width:60ch}

.etapes{--num:clamp(3.6rem,10vw,9.5rem);list-style:none;counter-reset:etape;border-top:1px solid var(--ligne)}
.etapes li{counter-increment:etape;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.2fr);gap:12px clamp(16px,3vw,48px);align-items:baseline;padding:clamp(18px,2.4vw,32px) 0;border-bottom:1px solid var(--ligne)}
.etapes li::before{content:counter(etape,decimal-leading-zero);font-weight:800;letter-spacing:-.05em;line-height:.85;font-size:var(--num);color:transparent;-webkit-text-stroke:2px var(--gris-fonce);transition:color .35s,-webkit-text-stroke-color .35s}
.etapes li:hover::before{color:var(--accent);-webkit-text-stroke-color:var(--accent)}
.etapes h3{font-size:clamp(1.6rem,2.8vw,2.4rem)}
.etapes p{color:var(--gris)}

.blanc{background:var(--blanc);color:var(--noir)}
.blanc .etiquette{color:#555}
.blanc .titre{font-weight:800;letter-spacing:-.055em;font-size:18vw;margin-bottom:clamp(28px,4vw,56px)}
.questions{max-width:960px;border-top:2px solid var(--noir)}
.questions details{border-bottom:1px solid #D4D4D4}
.questions summary{cursor:pointer;padding:22px 0;font-weight:600;font-size:clamp(1.1rem,1.8vw,1.5rem);list-style:none;display:flex;justify-content:space-between;gap:24px}
.questions summary::-webkit-details-marker{display:none}
.questions summary::after{content:"+";font-weight:400;font-size:1.6em;line-height:.8}
.questions details[open] summary::after{content:"−"}
.questions details p{padding:0 0 24px;max-width:62ch;color:#444}
.blanc a:focus-visible,.blanc summary:focus-visible{outline-color:var(--noir)}

.contact .titre{font-weight:800;letter-spacing:-.055em;font-size:20vw;color:var(--accent)}
.contact .mail{display:inline-block;margin-top:clamp(20px,3vw,40px);font-weight:700;letter-spacing:-.03em;font-size:clamp(1.4rem,5.4vw,4.8rem);line-height:1.05;text-decoration:underline;text-decoration-thickness:.05em;text-underline-offset:.14em;text-decoration-color:var(--accent);word-break:break-all}
.contact .mail:hover{text-decoration-color:currentColor}
.contact .moyens{list-style:none;display:flex;flex-wrap:wrap;gap:14px clamp(32px,8vw,120px);margin-top:clamp(32px,5vw,64px);font-size:clamp(1.1rem,1.6vw,1.4rem)}
.contact .moyens a{text-decoration:none}
.contact .moyens a:hover{color:var(--accent)}

@media (max-width:900px){
    .studio{grid-template-columns:1fr 1fr}
    .studio .portrait{grid-column:1/-1;max-width:320px}
    .prestation{grid-template-columns:auto minmax(0,1fr)}
    .prestation p{grid-column:2}
    .etapes li{grid-template-columns:calc(var(--num) * 1.12) minmax(0,1fr)}
    .etapes p{grid-column:2}
  }
@media (max-width:560px){
    .studio,.fiches{grid-template-columns:1fr}
  }
