/* ============================================================
   USHER — feuille de style
   Noir et blanc strict. Aucune couleur. Les photos sont en N&B.
   ============================================================ */

@font-face{font-family:'Anton';src:url('fonts/anton.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Instrument';src:url('fonts/instrument.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Instrument';src:url('fonts/instrument-italic.woff2') format('woff2');font-style:italic;font-display:swap}
@font-face{font-family:'Mono';src:url('fonts/mono.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Archivo';src:url('fonts/archivo.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Archivo';src:url('fonts/archivo-600.woff2') format('woff2');font-weight:600;font-display:swap}

:root{
  --noir:#0B0A08;
  --creme:#F4EDE1;
  --sable:#E7DAC6;
  --blanc:#FFFFFF;
  --pad:clamp(20px,5vw,90px);
  --max:1320px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--creme);color:var(--noir);font-family:'Archivo',Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
::selection{background:var(--noir);color:var(--creme)}
.dark ::selection{background:var(--creme);color:var(--noir)}

/* ---------- typographie ---------- */
.display{font-family:'Anton';text-transform:uppercase;line-height:.93;letter-spacing:-.014em}
.h1{font-size:clamp(46px,9.6vw,140px)}
.h2{font-size:clamp(34px,6.2vw,86px)}
.h3{font-size:clamp(24px,3.4vw,46px)}
.h4{font-size:clamp(19px,2.2vw,30px)}
.serif{font-family:'Instrument',Georgia,serif;font-style:italic;line-height:1.05;letter-spacing:-.01em}
.mono{font-family:'Mono',ui-monospace,monospace;text-transform:uppercase;letter-spacing:.22em;
  font-size:clamp(10px,1.05vw,12.5px)}
.lead{font-size:clamp(17px,1.85vw,23px);line-height:1.45;max-width:48ch}
p{font-size:clamp(15px,1.3vw,17.5px);line-height:1.62;max-width:64ch}

/* ---------- structure ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
section{position:relative}
.dark{background:var(--noir);color:var(--creme)}
.creme{background:var(--creme);color:var(--noir)}
.sable{background:var(--sable);color:var(--noir)}
.pt{padding-top:clamp(70px,9vw,140px)}
.pb{padding-bottom:clamp(70px,9vw,140px)}
.rule{height:1px;background:currentColor;width:100%}
.eyebrow{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding-bottom:16px}
.grid{display:grid;gap:clamp(22px,3vw,52px)}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.mt{margin-top:clamp(28px,4vw,60px)}
.z{position:relative;z-index:2}

/* ---------- photos ---------- */
.shot{position:relative;overflow:hidden;background:#000}
.shot img{width:100%;height:100%;object-fit:cover;
  filter:saturate(1.04) contrast(1.03);
  transform:scale(1.02);transition:transform 1.4s cubic-bezier(.2,.7,.3,1)}
.shot:hover img{transform:scale(1.07)}
.shot.static:hover img{transform:scale(1.02)}
.shot .cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(16px,2vw,26px);
  background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff}
.shot .cap .t{font-family:'Anton';text-transform:uppercase;font-size:clamp(16px,1.8vw,24px)}
.shot .cap .s{font-family:'Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  margin-top:6px;opacity:.9}
.ratio-16{aspect-ratio:16/9}.ratio-43{aspect-ratio:4/3}.ratio-34{aspect-ratio:3/4}.ratio-11{aspect-ratio:1/1}

/* ---------- en-tête ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;color:#fff;
  transition:transform .5s cubic-bezier(.2,.7,.3,1),background .4s,color .4s,border-color .4s;
  border-bottom:1px solid rgba(255,255,255,.28)}
header.solid{background:rgba(244,237,225,.93);backdrop-filter:blur(14px);color:var(--noir);
  border-bottom-color:rgba(11,10,8,.5)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:22px;height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand svg{width:24px;height:24px}
.brand .nm{font-family:'Anton';font-size:23px;letter-spacing:.06em;text-transform:uppercase}
.nav nav{display:flex;gap:clamp(14px,2.1vw,30px);align-items:center}
.nav nav a{text-decoration:none;position:relative;padding-bottom:3px}
.nav nav a::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:0;background:currentColor;
  transition:width .35s cubic-bezier(.2,.7,.3,1)}
.nav nav a:hover::after{width:100%}
@media(max-width:900px){.nav nav{display:none}}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;border:1.5px solid currentColor;border-radius:999px;
  padding:13px 24px;text-decoration:none;font-family:'Mono',monospace;text-transform:uppercase;
  letter-spacing:.18em;font-size:11.5px;white-space:nowrap;overflow:hidden;position:relative;
  transition:color .35s}
.btn::before{content:'';position:absolute;inset:0;background:currentColor;transform:translateY(101%);
  transition:transform .45s cubic-bezier(.76,0,.24,1);z-index:0}
.btn:hover::before{transform:translateY(0)}
.btn .lbl{position:relative;z-index:1;transition:color .35s}
.btn:hover .lbl{color:var(--creme)}
.dark .btn:hover .lbl,.on-photo .btn:hover .lbl{color:var(--noir)}
.btn-solid{background:var(--noir);color:var(--creme);border-color:var(--noir)}
.btn-solid::before{background:var(--creme)}
.btn-solid:hover .lbl{color:var(--noir)}
.dark .btn-solid,.on-photo .btn-solid{background:var(--creme);color:var(--noir);border-color:var(--creme)}
.dark .btn-solid::before,.on-photo .btn-solid::before{background:var(--noir)}
.dark .btn-solid:hover .lbl,.on-photo .btn-solid:hover .lbl{color:var(--creme)}

/* ---------- étapes ---------- */
.step{display:flex;gap:clamp(16px,2.2vw,32px);align-items:flex-start;padding:clamp(20px,2.4vw,30px) 0;
  border-top:1px solid currentColor}
.step .num{font-family:'Anton';font-size:clamp(26px,3vw,44px);min-width:58px;line-height:1}
.step h3{font-family:'Anton';text-transform:uppercase;font-size:clamp(18px,2.1vw,28px);letter-spacing:-.01em}
.step p{margin-top:7px}

.card{border:1.5px solid currentColor;padding:clamp(20px,2.4vw,34px)}
.stat{font-family:'Anton';font-size:clamp(52px,8.4vw,124px);line-height:.95}
.stat + .mono{margin-top:6px;display:block}

/* ---------- tarifs ---------- */
.price{border:1.5px solid currentColor;padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;gap:18px}
.price .amount{font-family:'Anton';font-size:clamp(46px,6vw,86px);line-height:1}
.price ul{list-style:none;display:grid;gap:11px;margin-top:4px}
.price li{font-size:15.5px;line-height:1.5;padding-left:22px;position:relative}
.price li::before{content:'';position:absolute;left:0;top:9px;width:10px;height:1.5px;background:currentColor}

/* ---------- FAQ ---------- */
.faq details{border-top:1px solid currentColor;padding:20px 0;overflow:hidden}
.faq summary{font-family:'Anton';text-transform:uppercase;font-size:clamp(16px,1.9vw,25px);cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:'Mono',monospace;font-size:20px;flex:0 0 auto;transition:transform .4s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.7,.3,1)}
.faq details[open] .ans{grid-template-rows:1fr}
.faq .ans>div{overflow:hidden}
.faq p{margin-top:13px}

/* ---------- pied ---------- */
footer{border-top:1px solid rgba(244,237,225,.3)}
.foot{display:flex;flex-wrap:wrap;gap:34px;justify-content:space-between;align-items:flex-start}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline;text-underline-offset:5px}

/* ---------- grain léger ---------- */
.grain{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.045;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='.6'/></svg>")}

body.nohero{padding-top:74px}
