:root{
  --wine:#6b1212;
  --wine-deep:#4d0c0c;
  --wine-bright:#8a1a1a;
  --ink:#17110f;
  --paper:#f5f0e7;
  --bone:#ece4d6;
  --card:#fbf8f2;
  --gold:#b08a4f;
  --muted:#6f635a;
  --line:#d9cfbe;
  --display:"Bodoni Moda", Georgia, serif;
  --ui:"Jost", system-ui, sans-serif;
  --script:"Pinyon Script", cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--ui);font-weight:300;font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{width:min(1280px,92vw);margin-inline:auto}
.eyebrow{
  font-family:var(--ui);font-weight:500;font-size:12px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--wine);
}
.eyebrow.muted{color:var(--muted)}
h1,h2,h3{font-family:var(--display);font-weight:500;margin:0;line-height:1.02}
.serif-italic{font-style:italic;font-weight:400}

/* ---------- wordmark ---------- */
.mark{display:inline-flex;align-items:baseline;gap:.18em;line-height:1;white-space:nowrap}
.mark .maison{font-family:var(--script);font-size:1.45em;transform:translateY(.06em)}
.mark .da{font-family:var(--display);font-weight:600;font-size:1.55em;letter-spacing:.01em}
.mark .da .dot{color:var(--wine)}

/* ---------- nav ---------- */
header.nav{
  position:fixed;inset:0 0 auto 0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(18px,4vw,48px);
  transition:background .4s ease, color .4s ease, padding .4s ease, border-color .4s;
  border-bottom:1px solid transparent;color:var(--paper);
  mix-blend-mode:normal;
}
header.nav.solid, header.nav.static{
  background:rgba(245,240,231,.98);
  color:var(--ink);border-bottom:1px solid var(--line);padding-block:12px;
}
header.nav .brand{font-size:18px}
header.nav nav{display:flex;gap:30px;align-items:center}
header.nav nav a{
  font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:400;
  opacity:.85;transition:opacity .25s, color .25s;position:relative;
}
header.nav nav a::after{content:"";position:absolute;left:0;bottom:-5px;height:1px;width:0;background:currentColor;transition:width .3s}
header.nav nav a:hover, header.nav nav a.active{opacity:1}
header.nav nav a:hover::after, header.nav nav a.active::after{width:100%}
.langs{display:flex;gap:10px;align-items:center;font-size:11px;letter-spacing:.15em}
.langs a{opacity:.55}
.langs a.on{opacity:1;color:var(--wine)}
header.nav.solid .langs a.on, header.nav.static .langs a.on{color:var(--wine)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:0;padding:6px}
.burger span{width:26px;height:1.5px;background:currentColor;display:block;transition:.3s}

/* ---------- icône Instagram (nav) ---------- */
.nav-insta{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:999px;border:1px solid currentColor;opacity:.85;transition:opacity .25s,background .25s,color .25s,transform .25s}
.nav-insta svg{width:17px;height:17px;display:block}
.nav-insta:hover{opacity:1;background:var(--wine);border-color:var(--wine);color:#fff;transform:translateY(-1px)}
header.nav nav.open .nav-insta{margin-top:10px;width:44px;height:44px}
header.nav nav.open .nav-insta svg{width:20px;height:20px}

/* ---------- hero (grand, page d'accueil) ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;
  background:var(--ink);color:var(--paper);overflow:hidden}
.hero .bg{position:absolute;inset:0}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;
  filter:grayscale(.15) contrast(1.02) brightness(.82);transform:scale(1.04);
  animation:heroZoom 16s ease-out forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero .scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,7,6,.55) 0%,rgba(11,7,6,.05) 32%,rgba(11,7,6,.15) 60%,rgba(11,7,6,.85) 100%)}
.hero .wrap{position:relative;z-index:2;width:min(1280px,92vw);padding-block:0 8vh}
.hero .lockup{margin-bottom:26px}
.hero .lockup .mark{font-size:clamp(30px,5vw,52px)}
.hero .lockup .tag{display:block;margin-top:8px;font-size:11px;letter-spacing:.42em;
  text-transform:uppercase;color:var(--bone);opacity:.85;padding-left:2px}
.hero h1{font-size:clamp(46px,9.5vw,140px);letter-spacing:-.01em;max-width:14ch}
.hero h1 .serif-italic{color:#e9d9b8}
.hero p.lede{max-width:46ch;margin:26px 0 0;font-size:clamp(15px,1.6vw,19px);
  color:#efe7da;font-weight:300;line-height:1.65}
.hero .cta-row{margin-top:38px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--ui);
  font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;padding:15px 26px;
  border:1px solid currentColor;border-radius:999px;transition:.3s;cursor:pointer}
.btn.solid{background:var(--wine);border-color:var(--wine);color:#fff}
.btn.solid:hover{background:var(--wine-bright);border-color:var(--wine-bright)}
.btn.ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.hero .meta{position:absolute;right:clamp(18px,4vw,48px);bottom:8vh;z-index:2;
  writing-mode:vertical-rl;font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--bone);opacity:.8}

/* ---------- page banner (pages secondaires) ---------- */
.pagehero{position:relative;background:var(--ink);color:var(--paper);
  padding:clamp(150px,20vw,220px) 0 clamp(60px,8vw,90px);overflow:hidden}
.pagehero .bg{position:absolute;inset:0;opacity:.5}
.pagehero .bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) brightness(.6)}
.pagehero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,7,6,.35),rgba(11,7,6,.92))}
.pagehero .wrap{position:relative;z-index:2}
.pagehero .eyebrow{color:var(--gold)}
.pagehero h1{font-size:clamp(38px,6.6vw,80px);margin-top:16px;max-width:18ch;letter-spacing:-.01em}
.pagehero h1 .serif-italic{color:#e9d9b8}
.pagehero p.lede{max-width:56ch;margin:22px 0 0;color:#efe7da;font-size:clamp(15px,1.4vw,17.5px);line-height:1.65}
.breadcrumb{font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:18px}
.breadcrumb a{opacity:.8}
.breadcrumb a:hover{opacity:1;text-decoration:underline}

/* ---------- marquee ---------- */
.marquee{background:var(--wine);color:var(--paper);overflow:hidden;
  padding-block:18px;border-block:1px solid var(--wine-deep)}
.marquee .track{display:flex;gap:0;white-space:nowrap;width:max-content;
  animation:scroll 38s linear infinite;font-family:var(--display);font-size:clamp(18px,2.4vw,28px)}
.marquee .track span{padding:0 26px}
.marquee .track .sep{color:var(--gold);font-size:.7em;transform:translateY(-.1em)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- generic section ---------- */
.section{padding-block:clamp(72px,11vw,140px)}
.section.tight{padding-block:clamp(50px,7vw,90px)}
.sec-head{display:flex;align-items:baseline;gap:14px;margin-bottom:46px}
.sec-head .ix{font-family:var(--display);font-style:italic;color:var(--wine);font-size:20px}

/* ---------- manifesto ---------- */
.manifest{display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(36px,6vw,90px);align-items:center}
.manifest h2{font-size:clamp(34px,5.4vw,68px);line-height:1.04;letter-spacing:-.01em}
.manifest h2 .serif-italic{color:var(--wine)}
.manifest p{margin:26px 0 0;color:var(--muted);max-width:46ch}
.manifest .figure{position:relative}
.manifest .figure img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 30%}
.manifest .figure .cap{position:absolute;left:14px;bottom:14px;background:var(--wine);
  color:#fff;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;padding:7px 12px}
.manifest .stats{margin-top:34px;display:flex;gap:38px;flex-wrap:wrap}
.manifest .stats .n{font-family:var(--display);font-size:40px;color:var(--ink);line-height:1}
.manifest .stats .l{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:6px}

/* ---------- valeurs / cards texte ---------- */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px)}
.values .card{background:var(--card);border:1px solid var(--line);padding:30px 26px}
.values .card .k{font-family:var(--display);font-style:italic;color:var(--wine);font-size:16px}
.values .card h3{font-size:21px;margin:10px 0 12px}
.values .card p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.6}

/* ---------- disciplines ---------- */
.disc{background:var(--ink);color:var(--paper)}
.disc .sec-head .ix{color:var(--gold)}
.disc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12)}
.disc-grid .cell{background:var(--ink);padding:clamp(28px,3vw,44px);min-height:340px;
  display:flex;flex-direction:column;transition:background .35s}
.disc-grid .cell:hover{background:var(--wine-deep)}
.disc-grid .cell .k{font-family:var(--display);font-style:italic;color:var(--gold);font-size:15px;margin-bottom:auto}
.disc-grid .cell h3{font-size:clamp(24px,2.6vw,34px);margin:0 0 16px;line-height:1.05}
.disc-grid .cell ul{list-style:none;margin:0;padding:0;color:#d9cdbe;font-size:14.5px;line-height:1.45}
.disc-grid .cell li{padding:7px 0;border-top:1px solid rgba(255,255,255,.1)}
.disc-grid .cell p{color:#d9cdbe;font-size:14.5px;line-height:1.6;margin:0}

/* ---------- talents ---------- */
.talents .sec-head{justify-content:space-between}
.talents .sec-head a.more{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--wine)}
.tal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
.tal{position:relative;overflow:hidden;background:var(--bone);display:block}
.tal img{width:100%;aspect-ratio:425/600;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.tal:hover img{transform:scale(1.05)}
.tal .cap{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 4px 2px}
.tal .cap .nm{font-family:var(--display);font-size:18px}
.tal .cap .ro{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:right}

/* ---------- process ---------- */
.process{background:var(--bone)}
.proc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--line)}
.proc-grid .step{padding:30px 22px 34px;border-right:1px solid var(--line);position:relative}
.proc-grid .step:last-child{border-right:0}
.proc-grid .step .no{font-family:var(--display);font-style:italic;font-size:34px;color:var(--wine);line-height:1}
.proc-grid .step h3{font-size:19px;margin:14px 0 10px}
.proc-grid .step p{font-size:13.5px;color:var(--muted);margin:0;line-height:1.5}

/* ---------- formules ---------- */
.formules .sub{max-width:52ch;color:var(--muted);margin:-30px 0 44px}
.f-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.4vw,20px)}
.f-card{background:var(--card);border:1px solid var(--line);padding:28px 24px 26px;
  display:flex;flex-direction:column;transition:transform .35s, box-shadow .35s;position:relative}
.f-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(23,17,15,.4)}
.f-card.elite{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.f-card.elite .price,.f-card.elite h3{color:var(--paper)}
.f-card .tier{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--wine)}
.f-card.elite .tier{color:var(--gold)}
.f-card h3{font-family:var(--display);font-size:23px;margin:8px 0 0}
.f-card .price{font-family:var(--display);font-size:42px;margin:14px 0 4px;color:var(--ink)}
.f-card .price small{font-size:14px;color:var(--muted);font-family:var(--ui);letter-spacing:.04em}
.f-card .inc{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  margin:16px 0 10px;padding-top:14px;border-top:1px solid var(--line)}
.f-card.elite .inc{border-color:rgba(255,255,255,.18);color:#bcae9d}
.f-card ul{list-style:none;margin:0 0 22px;padding:0;font-size:13.5px;line-height:1.5;flex:1}
.f-card li{padding:4px 0 4px 18px;position:relative;color:inherit}
.f-card li::before{content:"✦";position:absolute;left:0;color:var(--gold);font-size:9px;top:6px}
.f-card .pick{margin-top:auto}
.badge{position:absolute;top:-10px;right:18px;background:var(--wine);color:#fff;font-size:9.5px;
  letter-spacing:.18em;text-transform:uppercase;padding:5px 11px}

/* ---------- gallery band ---------- */
.band{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.band img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;filter:grayscale(.1)}
.band a{position:relative;overflow:hidden;display:block;background:var(--ink)}
.band a img{transition:transform .8s, opacity .5s}
.band a:hover img{transform:scale(1.06);opacity:.85}
.band a .ig{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#fff;opacity:0;transition:.3s;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.band a:hover .ig{opacity:1;background:rgba(107,18,18,.45)}

/* ---------- contact ---------- */
.contact{background:var(--wine);color:var(--paper)}
.contact .grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(34px,6vw,80px);align-items:start}
.contact h2{font-size:clamp(38px,6.4vw,86px);line-height:1;letter-spacing:-.01em}
.contact h1{font-size:clamp(38px,6.4vw,74px);line-height:1.02;letter-spacing:-.01em}
.contact h2 .serif-italic,.contact h1 .serif-italic{color:#e9d9b8}
.contact .lines{display:flex;flex-direction:column;gap:18px;margin-top:6px}
.contact .lines a,.contact .lines span{display:flex;justify-content:space-between;gap:20px;
  padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.28);font-size:15px;letter-spacing:.02em}
.contact .lines .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.contact .cta-row{margin-top:40px}
.contact .btn.solid{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.contact .btn.solid:hover{background:transparent;color:var(--paper)}

/* ---------- contact form ---------- */
.contact-form{display:flex;flex-direction:column;gap:16px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.22);padding:clamp(22px,3vw,34px);border-radius:2px;align-self:start}
.cf-row{display:flex;flex-direction:column;gap:16px}
.cf-row.cf-two{flex-direction:row;gap:16px}
.cf-row.cf-two label{flex:1}
.contact-form label{display:flex;flex-direction:column;gap:8px;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--bone);opacity:.9}
.contact-form input,.contact-form select,.contact-form textarea{
  font-family:var(--ui);font-size:15px;font-weight:300;color:var(--ink);
  background:var(--paper);border:1px solid transparent;border-radius:2px;
  padding:12px 14px;outline:none;transition:border-color .25s,box-shadow .25s;width:100%}
.contact-form select{appearance:none;cursor:pointer}
.contact-form textarea{resize:vertical;min-height:110px;font-family:var(--ui)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,138,79,.25)}
.cf-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cf-submit{align-self:flex-start;margin-top:4px;border:0}
.cf-submit[disabled]{opacity:.6;cursor:progress}
.cf-status{margin:0;font-size:13px;letter-spacing:.02em;min-height:18px}
.cf-status.ok{color:#cfe8c9}
.cf-status.ko{color:#f0b8b8}
@media(max-width:640px){.cf-row.cf-two{flex-direction:column}}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--bone);padding:54px 0 40px}
footer .grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
footer .mark{font-size:22px;color:var(--paper)}
footer .tag{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-top:8px}
footer nav{display:flex;gap:26px;flex-wrap:wrap;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
footer nav a{opacity:.7}
footer nav a:hover{opacity:1;color:var(--paper)}
footer .legal{margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;letter-spacing:.1em;color:#8a7d72}
footer .legal a{opacity:.9}
footer .legal a:hover{opacity:1;text-decoration:underline}

/* ---------- faq ---------- */
.faq{background:var(--bone)}
.faq .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(34px,6vw,80px);align-items:start}
.faq h2{font-size:clamp(32px,4.6vw,58px);line-height:1.04}
.faq h2 .serif-italic{color:var(--wine)}
.faq .intro{color:var(--muted);margin-top:22px;max-width:34ch}
.faq .list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;position:relative;
  font-family:var(--display);font-size:clamp(18px,2vw,23px);color:var(--ink);transition:color .25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--wine)}
.faq summary::after{content:"+";position:absolute;right:6px;top:20px;font-family:var(--ui);
  font-weight:300;font-size:26px;color:var(--wine);transition:transform .3s}
.faq details[open] summary::after{content:"–"}
.faq .ans{padding:0 40px 24px 0;color:var(--muted);font-size:15.5px;line-height:1.65;max-width:62ch}
.faq .ans strong{color:var(--ink);font-weight:500}

/* ---------- blog / astuces ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px)}
.blog-card{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;transition:transform .35s,box-shadow .35s}
.blog-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(23,17,15,.4)}
.blog-card .thumb{aspect-ratio:4/3;overflow:hidden;background:var(--bone)}
.blog-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.blog-card:hover .thumb img{transform:scale(1.06)}
.blog-card .body{padding:22px 22px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.blog-card .cat{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--wine)}
.blog-card h3{font-size:21px;line-height:1.2;margin:0}
.blog-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.55;flex:1}
.blog-card .read{margin-top:6px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
article.post{padding-block:clamp(50px,7vw,80px)}
article.post .wrap{max-width:760px}
article.post .cat{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--wine);margin-bottom:14px;display:block}
article.post h1{font-size:clamp(30px,4.6vw,48px);line-height:1.1;margin-bottom:16px}
article.post .meta-line{font-size:12.5px;color:var(--muted);letter-spacing:.06em;margin-bottom:32px}
article.post .cover{width:100%;aspect-ratio:16/9;object-fit:cover;margin:0 0 40px}
article.post h2{font-family:var(--display);font-size:clamp(22px,2.8vw,30px);margin:42px 0 16px;line-height:1.15}
article.post p{color:#3a322c;font-size:16.5px;line-height:1.75;margin:0 0 20px}
article.post ul{color:#3a322c;font-size:16px;line-height:1.7;padding-left:22px;margin:0 0 20px}
article.post li{margin-bottom:8px}
article.post .cta-box{background:var(--wine);color:#fff;padding:32px clamp(24px,4vw,44px);margin-top:48px;border-radius:2px}
article.post .cta-box h3{font-family:var(--display);font-size:24px;margin:0 0 10px}
article.post .cta-box p{color:#f0e2d2;margin:0 0 20px}
article.post .cta-box a.btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
article.post .cta-box a.btn:hover{background:transparent;color:#fff}

/* ---------- reveal (au scroll) ---------- */
/* Le contenu reste visible par défaut (accessibilité + si JS ne charge pas).
   La classe .js est ajoutée très tôt par un script inline dans <head> (header.php) :
   seuls les navigateurs avec JS actif masquent puis révèlent le contenu au scroll. */
html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
/* variantes optionnelles : ajouter une 2e classe sur l'élément .reveal */
html.js .reveal.slide-left{transform:translateX(-46px)}
html.js .reveal.slide-right{transform:translateX(46px)}
html.js .reveal.scale-in{transform:translateY(18px) scale(.94)}
html.js .reveal.fade-only{transform:none}
html.js .reveal.in{opacity:1;transform:none;will-change:auto}
@media(max-width:640px){
  /* sur mobile, on garde uniquement un fondu simple : plus fluide et plus lisible */
  html.js .reveal.slide-left,html.js .reveal.slide-right,html.js .reveal.scale-in{transform:translateY(20px)}
}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .manifest,.contact .grid,.faq .grid{grid-template-columns:1fr}
  .disc-grid,.values{grid-template-columns:1fr}
  .tal-grid,.blog-grid{grid-template-columns:repeat(2,1fr)}
  .proc-grid{grid-template-columns:1fr 1fr}
  .proc-grid .step{border-bottom:1px solid var(--line)}
  .f-grid{grid-template-columns:1fr 1fr}
  .band{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  header.nav nav{display:none}
  header.nav nav.open{display:flex;position:fixed;inset:0;background:var(--ink);color:var(--paper);
    flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:19px;
    padding-top:env(safe-area-inset-top)}
  header.nav nav.open a{opacity:1;padding:14px 10px;min-width:44px;text-align:center}
  .burger{display:flex;padding:11px;margin:-11px}
  .burger span{width:24px}
  .langs{display:none}
  .tal-grid,.blog-grid{grid-template-columns:1fr}
  .f-grid,.proc-grid{grid-template-columns:1fr}
  .manifest .stats{gap:26px}
  .hero .meta{display:none}
  .btn{padding:14px 22px;min-height:44px}
  .cf-row.cf-two{flex-direction:column}
  .contact-form input,.contact-form select,.contact-form textarea{font-size:16px} /* évite le zoom auto iOS */
}
/* ---------- petits smartphones ---------- */
@media(max-width:480px){
  .wrap{width:min(1280px,94vw)}
  header.nav{padding:14px 16px}
  header.nav.solid,header.nav.static{padding-block:10px}
  .mark .maison{font-size:1.3em}
  .mark .da{font-size:1.4em}
  .hero{align-items:flex-end}
  .hero h1{font-size:clamp(36px,10.5vw,58px);max-width:12ch}
  .hero p.lede{font-size:14.5px}
  .hero .cta-row{gap:12px}
  .hero .cta-row .btn{width:100%;justify-content:center}
  .pagehero{padding:clamp(120px,26vw,150px) 0 40px}
  .pagehero h1{font-size:clamp(30px,9vw,42px)}
  .section{padding-block:52px}
  .manifest h2,.faq h2{font-size:clamp(26px,7vw,34px)}
  .manifest .stats{gap:18px;flex-wrap:wrap}
  .manifest .stats .n{font-size:30px}
  .values .card,.f-card,.disc-grid .cell{padding:22px 18px}
  .blog-card .body{padding:18px}
  .contact-form{padding:20px 16px}
  .contact .lines a,.contact .lines span{font-size:13.5px;flex-direction:column;gap:4px;align-items:flex-start}
  article.post h1{font-size:clamp(24px,7.5vw,32px)}
  article.post .cta-box{padding:24px 20px}
  footer .grid{gap:24px}
  footer .legal{flex-direction:column;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important}
  .reveal{opacity:1!important;transform:none!important}
  html{scroll-behavior:auto}
}
