/* =========================================================
   [NOM DU STUDIO] — feuille de style globale
   Direction : encre profonde + parchemin chaud, accent terre cuite
   Display : Fraunces · Body : Inter
   ========================================================= */
:root{
  --ink:#13161B;
  --ink-soft:#2A2F38;
  --parchment:#F1ECE3;
  --paper:#FBF9F4;
  --line:#C9C0B2;
  --clay:#B45B3E;
  --clay-dark:#9A4A30;
  --muted:#6A6357;
  --display:'Fraunces',Georgia,serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --maxw:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;letter-spacing:.02em;padding:15px 26px;border-radius:2px;transition:.25s;cursor:pointer;border:1px solid transparent;font-family:var(--body)}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:var(--clay)}
.btn-ghost{border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-light{background:var(--paper);color:var(--ink)}
.btn-light:hover{background:var(--clay);color:var(--paper)}
.arrow{transition:transform .25s}
.btn:hover .arrow{transform:translateX(4px)}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(251,249,244,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{font-family:var(--display);font-size:21px;letter-spacing:.04em;font-weight:500;color:var(--ink)}
.logo span{color:var(--clay)}
.navlinks{display:flex;gap:32px;font-size:14px;letter-spacing:.01em;align-items:center}
.navlinks a{color:var(--ink-soft);transition:.2s;position:relative;padding:4px 0}
.navlinks a:hover,.navlinks a.active{color:var(--ink)}
.navlinks a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--clay);transition:.25s}
.navlinks a:hover::after,.navlinks a.active::after{width:100%}
.nav-cta{padding:10px 20px!important;background:transparent!important;color:var(--clay)!important;border:1px solid var(--clay)!important}
.nav-cta:hover{background:var(--clay)!important;color:var(--paper)!important}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:0;padding:6px}
.burger span{width:24px;height:2px;background:var(--ink);transition:.3s}
.mobile-menu{display:none;position:fixed;inset:74px 0 0 0;background:var(--paper);z-index:49;padding:32px;flex-direction:column;gap:8px}
.mobile-menu.open{display:flex}
.mobile-menu a{font-family:var(--display);font-size:26px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}

/* ---------- generic section ---------- */
section{padding:96px 0}
.sec-head{max-width:680px;margin-bottom:56px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:12px}
.sec-head.center .sec-label{justify-content:center}
.sec-label .num{font-family:var(--display);color:var(--clay)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);font-weight:600;margin-bottom:24px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--clay)}
h1{font-family:var(--display);font-weight:300;font-size:clamp(38px,5.2vw,66px);line-height:1.05;letter-spacing:-.015em}
h1 em{font-style:italic;color:var(--clay)}
h2{font-family:var(--display);font-weight:300;font-size:clamp(28px,3.6vw,42px);line-height:1.1;letter-spacing:-.01em}
.sec-sub{margin-top:16px;color:var(--ink-soft);font-size:17px}
.lead{font-size:18px;color:var(--ink-soft);max-width:32em}

/* ---------- page hero (interior pages) ---------- */
.page-hero{padding:72px 0 56px;background:var(--parchment);border-bottom:1px solid var(--line)}
.page-hero .lead{margin-top:20px}

/* ---------- aperture frame signature ---------- */
.frame{position:relative;overflow:visible}
.frame>img{width:100%;height:560px;object-fit:cover;border-radius:2px;transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.frame .c,.frame::before,.frame::after{content:"";position:absolute;width:30px;height:30px;border:2px solid var(--clay);z-index:2;transition:opacity .9s ease .3s,transform .9s cubic-bezier(.16,1,.3,1) .3s}
.frame::before{top:-9px;left:-9px;border-right:0;border-bottom:0}
.frame::after{top:-9px;right:-9px;border-left:0;border-bottom:0}
.frame .c1{bottom:-9px;left:-9px;border-right:0;border-top:0}
.frame .c2{bottom:-9px;right:-9px;border-left:0;border-top:0}
.frame .tag{position:absolute;bottom:18px;left:18px;z-index:3;background:rgba(19,22,27,.78);color:var(--paper);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;backdrop-filter:blur(4px)}
/* image clip-reveal élégant à l'entrée */
.frame .img-clip{overflow:hidden;border-radius:2px}
.frame .img-clip>img{width:100%;height:560px;object-fit:cover;display:block;transform:scale(1.08);transition:transform 1.8s cubic-bezier(.16,1,.3,1),clip-path 1.4s cubic-bezier(.16,1,.3,1);clip-path:inset(0 0 100% 0)}
.frame.in .img-clip>img{transform:scale(1);clip-path:inset(0 0 0 0)}
.frame .c{opacity:0;transform:scale(.6)}
.frame.in .c{opacity:1;transform:scale(1)}

/* ---------- hero (home) ---------- */
.hero{padding:96px 0 104px;position:relative}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:72px;align-items:center}
.hero h1{margin-bottom:24px}
.hero .lead{margin-bottom:36px}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:42px}
.trust{display:flex;gap:30px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.trust b{color:var(--ink);font-weight:600}
/* entrée échelonnée du texte hero */
.hero-stagger>*{opacity:0;transform:translateY(18px);animation:heroUp .9s cubic-bezier(.16,1,.3,1) forwards}
.hero-stagger>*:nth-child(1){animation-delay:.05s}
.hero-stagger>*:nth-child(2){animation-delay:.18s}
.hero-stagger>*:nth-child(3){animation-delay:.31s}
.hero-stagger>*:nth-child(4){animation-delay:.44s}
.hero-stagger>*:nth-child(5){animation-delay:.57s}
@keyframes heroUp{to{opacity:1;transform:none}}

/* ---------- why (dark) ---------- */
.dark{background:var(--ink);color:var(--parchment)}
.dark h2,.dark h1{color:var(--parchment)}
.dark .sec-label{color:#9A9483}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
.why-card{background:var(--ink);padding:38px 28px}
.why-card .n{font-family:var(--display);font-size:15px;color:var(--clay);margin-bottom:22px}
.why-card h3{font-family:var(--display);font-weight:400;font-size:22px;margin-bottom:12px}
.why-card p{font-size:14.5px;color:#A9A293;line-height:1.6}

/* ---------- portfolio grid ---------- */
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pf{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:4/3;cursor:pointer}
.pf.big{grid-column:span 2;aspect-ratio:auto}
.pf img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.pf::after{content:"";position:absolute;inset:0;background:rgba(19,22,27,.0);transition:background .5s ease;z-index:1}
.pf:hover img{transform:scale(1.06)}
.pf:hover::after{background:rgba(19,22,27,.12)}
.pf .meta{position:absolute;inset:auto 0 0 0;padding:22px;background:linear-gradient(transparent,rgba(19,22,27,.85));color:var(--paper);transform:translateY(8px);opacity:0;transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .55s ease;z-index:2}
.pf:hover .meta{transform:translateY(0);opacity:1}
.pf .meta h4{font-family:var(--display);font-weight:400;font-size:19px}
.pf .meta span{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--clay)}
.center-cta{text-align:center;margin-top:48px}

/* portfolio filters */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.filter{font-size:13px;letter-spacing:.04em;padding:9px 18px;border:1px solid var(--line);border-radius:40px;background:none;cursor:pointer;transition:.2s;color:var(--ink-soft);font-family:var(--body)}
.filter:hover{border-color:var(--ink)}
.filter.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* ---------- process steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:34px}
.step{padding-top:30px;border-top:1px solid var(--line)}
.step .idx{font-family:var(--display);font-size:38px;font-weight:300;color:var(--clay);line-height:1;margin-bottom:18px}
.step h3{font-family:var(--display);font-weight:400;font-size:20px;margin-bottom:10px}
.step p{font-size:14.5px;color:var(--muted)}

/* ---------- pricing ---------- */
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:880px}
.price{border:1px solid var(--line);border-radius:3px;padding:42px 38px;background:var(--paper);transition:.3s}
.price:hover{border-color:var(--ink);box-shadow:0 18px 40px -28px rgba(19,22,27,.4)}
.price .k{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.price .amount{font-family:var(--display);font-weight:300;font-size:54px;line-height:1}
.price .amount sup{font-size:20px;vertical-align:super;color:var(--clay);letter-spacing:0}
.price ul{list-style:none;margin:26px 0 30px}
.price li{font-size:14.5px;padding:9px 0;border-bottom:1px solid var(--parchment);display:flex;gap:10px;color:var(--ink-soft)}
.price li::before{content:"—";color:var(--clay)}

/* ---------- testimonials ---------- */
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.quote{border-left:2px solid var(--clay);padding-left:24px}
.quote p{font-family:var(--display);font-weight:300;font-style:italic;font-size:19px;line-height:1.45;margin-bottom:20px}
.quote .who{font-size:13px;color:#A9A293}
.dark .quote .who b{color:var(--parchment);font-weight:600;display:block;font-style:normal}
.quote .who b{color:var(--ink);font-weight:600;display:block;font-style:normal}

/* ---------- faq ---------- */
.faq-list{max-width:820px;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:26px 0;font-family:var(--display);font-size:21px;font-weight:400;color:var(--ink);display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:20px}
.faq-q .pm{font-family:var(--body);color:var(--clay);font-size:26px;font-weight:300;transition:.3s;flex-shrink:0}
.faq-item.open .pm{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a p{padding:0 0 26px;color:var(--ink-soft);max-width:64ch}

/* ---------- services blocks ---------- */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:64px 0;border-bottom:1px solid var(--line)}
.svc:nth-child(even) .svc-media{order:2}
.svc-media{position:relative}
.svc-media img{width:100%;height:380px;object-fit:cover;border-radius:2px}
.svc h2{margin-bottom:18px}
.svc .svc-desc{color:var(--ink-soft);margin-bottom:24px}
.svc h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);font-weight:600;margin:20px 0 10px}
.svc ul{list-style:none}
.svc li{font-size:15px;padding:6px 0 6px 20px;position:relative;color:var(--ink-soft)}
.svc li::before{content:"—";position:absolute;left:0;color:var(--clay)}
.svc .btn{margin-top:26px}

/* ---------- value / about ---------- */
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.val-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--line);border:1px solid var(--line);margin-top:40px}
.val{background:var(--paper);padding:32px}
.val h3{font-family:var(--display);font-weight:400;font-size:21px;margin-bottom:10px}
.val p{font-size:14.5px;color:var(--muted)}

/* ---------- forms ---------- */
.form-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:start}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form label{display:block;font-size:13px;font-weight:500;margin:16px 0 7px;color:var(--ink-soft)}
form input,form select,form textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:2px;background:var(--paper);font-family:var(--body);font-size:15px;color:var(--ink);transition:.2s}
form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--clay)}
form textarea{min-height:130px;resize:vertical}
form .btn{margin-top:24px;width:100%;justify-content:center}
.contact-aside h3{font-family:var(--display);font-weight:400;font-size:24px;margin-bottom:16px}
.contact-aside p{color:var(--ink-soft);margin-bottom:10px;font-size:15px}
.contact-aside a{color:var(--clay)}
.aside-block{padding:28px;background:var(--parchment);border-radius:3px;margin-top:24px}

/* ---------- cta band ---------- */
.cta-band{background:var(--clay);color:var(--paper);text-align:center;padding:100px 0}
.cta-band h2{color:var(--paper);max-width:18em;margin:0 auto 14px}
.cta-band p{color:rgba(251,249,244,.88);margin-bottom:34px;font-size:17px}

/* ---------- blog ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.post-card{border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--paper);transition:.3s;display:flex;flex-direction:column}
.post-card:hover{border-color:var(--ink);transform:translateY(-3px)}
.post-card .pc-img{height:190px;background:var(--parchment);overflow:hidden}
.post-card .pc-img img{width:100%;height:100%;object-fit:cover}
.post-card .pc-body{padding:24px;display:flex;flex-direction:column;flex:1}
.post-card .pc-cat{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--clay);font-weight:600;margin-bottom:12px}
.post-card h3{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.25;margin-bottom:12px}
.post-card p{font-size:14px;color:var(--muted);flex:1}
.post-card .pc-link{margin-top:16px;font-size:13px;font-weight:600;color:var(--ink);display:inline-flex;gap:8px}

/* ---------- article ---------- */
.article{max-width:720px;margin:0 auto;padding:72px 32px 40px}
.article .a-meta{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--clay);font-weight:600;margin-bottom:18px}
.article h1{font-size:clamp(30px,4.5vw,46px);margin-bottom:28px}
.article .a-lead{font-size:19px;color:var(--ink-soft);margin-bottom:36px;font-family:var(--display);font-weight:300;line-height:1.5}
.article h2{font-size:27px;margin:40px 0 16px}
.article h3{font-family:var(--display);font-weight:500;font-size:21px;margin:28px 0 10px}
.article p{margin-bottom:18px;color:var(--ink-soft);font-size:16.5px}
.article ul{margin:0 0 18px 22px;color:var(--ink-soft)}
.article li{margin-bottom:8px}
.article .a-cta{margin:48px 0 0;padding:36px;background:var(--parchment);border-radius:3px;text-align:center}
.article .a-cta h3{font-family:var(--display);font-size:24px;margin-bottom:8px}
.article .a-cta p{margin-bottom:20px}

/* ---------- footer ---------- */
footer{background:var(--ink);color:#8E8779;padding:64px 0 40px;font-size:14px}
.foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-top .logo{color:var(--parchment)}
.foot-top p{margin-top:14px;max-width:24em}
.foot-cols{display:flex;gap:64px;flex-wrap:wrap}
.foot-col h5{color:var(--parchment);font-family:var(--body);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;font-weight:600}
.foot-col a{display:block;padding:5px 0;color:#8E8779;transition:.2s}
.foot-col a:hover{color:var(--clay)}
.foot-bot{padding-top:28px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:#6A6457}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
/* reveal en cascade pour grilles (cartes successives) */
.why-grid .reveal.in,.pf-grid .reveal.in,.steps .reveal.in,.t-grid .reveal.in,.blog-grid .reveal.in{transition-delay:var(--d,0s)}

/* ---------- responsive ---------- */
@media(max-width:920px){
  .hero-grid,.price-grid,.form-grid,.cols-2,.svc{grid-template-columns:1fr}
  .svc:nth-child(even) .svc-media{order:0}
  .why-grid,.steps,.t-grid,.blog-grid{grid-template-columns:1fr 1fr}
  .pf.big{grid-column:span 2}
}
@media(max-width:620px){
  .wrap{padding:0 22px}
  .navlinks,.nav-cta{display:none}
  .burger{display:flex}
  section{padding:56px 0}
  .sec-head{margin-bottom:36px}

  /* hero mobile : texte d'abord, image grande en dessous */
  .hero{padding:44px 0 64px}
  .hero-grid{gap:36px}
  .hero h1{font-size:clamp(34px,9vw,46px);margin-bottom:18px}
  .hero .lead{font-size:16.5px;margin-bottom:28px}
  .hero-cta{gap:12px;margin-bottom:32px}
  .hero-cta .btn{width:100%;justify-content:center}
  .trust{gap:0;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px}
  .trust>div{flex:1;font-size:12px}
  .trust b{font-size:13px}
  .frame .img-clip>img,.frame>img{height:300px}
  .frame .tag{font-size:10px;padding:6px 10px;bottom:14px;left:14px}

  /* page hero intérieures */
  .page-hero{padding:48px 0 40px}

  /* grilles en pleine largeur, plus aérées */
  .why-grid,.steps,.t-grid,.blog-grid,.pf-grid{grid-template-columns:1fr;gap:14px}
  .pf{aspect-ratio:16/11}
  .pf.big{grid-column:span 1;aspect-ratio:16/11}
  /* sur mobile, la légende portfolio reste visible (pas de survol possible) */
  .pf .meta{opacity:1;transform:none;padding:18px}

  .why-card{padding:30px 24px}
  .steps{gap:26px}
  .step{padding-top:24px}

  /* tarifs */
  .price{padding:34px 28px}
  .price .amount{font-size:46px}

  /* services empilés */
  .svc{padding:44px 0;gap:28px}
  .svc-media img{height:280px}

  /* formulaires */
  form .row{grid-template-columns:1fr}

  /* CTA fixe en bas */
  body{padding-bottom:74px}
  .mobile-cta{display:block}
  .cta-band{padding:64px 0}

  /* footer empilé proprement */
  .foot-top{flex-direction:column;gap:28px}
  .foot-cols{gap:32px}
  .foot-bot{flex-direction:column;gap:8px;text-align:center}
}
.mobile-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;padding:12px 20px;background:var(--ink);box-shadow:0 -8px 24px -12px rgba(0,0,0,.4)}
.mobile-cta .btn{width:100%;justify-content:center;background:var(--clay);color:var(--paper)}
@media(prefers-reduced-motion:reduce){.reveal,.frame .img-clip>img,.frame .c,.hero-stagger>*{transition:none!important;animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}*{scroll-behavior:auto}}

