/* ==========================================================
   Les Frères Teymen — v2 « Acier & lumière »
   Base noir et blanc, reflets d'acier, lignes en forme de lame.
   Animations : transform et opacity uniquement.
   ========================================================== */
:root{
  --noir:#050505; --charbon:#0d0d0e; --graphite:#17181a; --ligne:rgba(255,255,255,.14);
  --blanc:#f6f6f3; --gris:#a7abb0; --acier:#d9dde2; --acier-sombre:#7d838a;
  --serif:"Cormorant Garamond","Iowan Old Style",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gutter:clamp(1.25rem,5vw,4rem); --wrap:1320px;
  --ease:cubic-bezier(.16,1,.3,1);
  --header-h:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
/* avec JavaScript, jamais de défilement « smooth » natif : ScrollTrigger recalcule ses positions en remontant la page
   à 0 ; en mode smooth ce retour est animé et toutes les positions épinglées sont décalées (grands vides noirs). Lenis gère le fluide. */
html.js,html.js body{scroll-behavior:auto!important}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
html,body{overflow-x:clip}
body{margin:0;background:var(--noir);color:var(--blanc);font-family:var(--sans);font-weight:300;font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04;margin:0 0 .5em;letter-spacing:-.01em}
h2{font-size:clamp(2.3rem,6vw,5rem)}
h3{font-size:clamp(1.5rem,3vw,2rem)}
p{margin:0 0 1em}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:200;background:var(--blanc);color:var(--noir);padding:.7rem 1rem}
.skip-link:focus{top:1rem}
:focus-visible{outline:2px solid var(--blanc);outline-offset:4px}
::selection{background:var(--blanc);color:var(--noir)}

/* grain très léger sur toute la page */
body::after{content:"";position:fixed;inset:0;z-index:150;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}


/* lumière qui suit la souris */
.spot{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .6s;
  background:radial-gradient(420px circle at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.07),transparent 65%)}
.has-pointer .spot{opacity:1}

/* ---------- textes communs ---------- */
.eyebrow{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gris);margin:0 0 1.4rem;font-weight:400}
.lead{font-size:clamp(1.02rem,1.5vw,1.2rem);color:#c9cdd1;max-width:46ch}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.wi{display:inline-block;will-change:transform}
.steel,.steel.is-split .wi{background:linear-gradient(100deg,#40454b 0%,#fff 13%,#69707a 26%,#fff 41%,#2b2f34 58%,#f4f7fa 73%,#4c5259 88%,#fff 100%);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:shine 5.5s linear infinite}
.steel.is-split{background:none;animation:none}
.steel.is-split .wi:nth-child(n){animation-delay:calc(var(--i,0)*-.5s)}
@keyframes shine{from{background-position:130% 0}to{background-position:-130% 0}}
.link-arrow{display:inline-flex;align-items:center;gap:.8rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;padding:.5rem 0;position:relative}
.link-arrow::before{content:"";width:2.4rem;height:1px;background:currentColor;transition:width .5s var(--ease)}
.link-arrow:hover::before{width:4rem}

/* ---------- boutons : reflet d'acier ---------- */
.btn-row{display:flex;flex-wrap:wrap;gap:1rem}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;padding:1.05rem 2rem;min-height:3.2rem;background:var(--blanc);color:var(--noir);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%);border:0;font-family:inherit;cursor:pointer}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(70,80,92,.75) 50%,transparent 70%);transform:translateX(-120%)}
.btn:hover::after{transform:translateX(120%);transition:transform .8s var(--ease)}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn span{position:relative;z-index:1}
.btn--ghost{background:transparent;color:var(--blanc);border:1px solid rgba(255,255,255,.55);clip-path:none}
.btn--ghost::after{background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%)}

/* ---------- en-tête ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .5s,transform .6s var(--ease)}
.site-header.is-solid{background:rgba(5,5,5,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header.menu-open,.site-header:has(.main-nav.is-open){transform:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:var(--header-h);padding-inline:var(--gutter)}
.brand img{height:46px;width:auto}
.main-nav ul{display:flex;align-items:center;gap:clamp(1rem,2vw,2.2rem)}
.main-nav a,.nav-toggle{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:#dfe2e5;position:relative;padding:.6rem 0;display:inline-flex;align-items:center;gap:.5rem}
.main-nav a::after,.nav-toggle::after{content:"";position:absolute;left:0;right:0;bottom:.2rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.main-nav a:hover::after,.main-nav a[aria-current]::after,.nav-toggle:hover::after{transform:scaleX(1)}
.pill{font-size:.55rem;letter-spacing:.14em;border:1px solid currentColor;padding:.1rem .45rem;border-radius:99px;line-height:1.5}
.has-sub{position:relative}
.sub-nav{position:absolute;top:100%;left:-1rem;min-width:15rem;background:rgba(10,10,10,.96);border:1px solid var(--ligne);padding:.8rem 1rem;display:grid;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .35s,transform .45s var(--ease),visibility .35s}
.has-sub:hover .sub-nav,.has-sub:focus-within .sub-nav,.nav-toggle[aria-expanded=true]+.sub-nav{opacity:1;visibility:visible;transform:none}
.sub-nav a{padding:.5rem 0}
.header-actions{display:flex;align-items:center;gap:1rem}
.cart-link{position:relative;display:inline-grid;place-items:center;min-width:44px;min-height:44px}
.cart-link svg{width:24px;height:24px}
.cart-count{position:absolute;top:4px;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:var(--blanc);color:var(--noir);font-size:.62rem;font-weight:600;line-height:18px;text-align:center;transform:scale(0);transition:transform .5s var(--ease)}
.cart-count.has-items{transform:scale(1)}
.burger{display:none;width:44px;height:44px;position:relative;z-index:3}
.burger span{position:absolute;left:10px;right:10px;height:1px;background:#fff;transition:transform .5s var(--ease)}
.burger span:first-child{top:18px}.burger span:last-child{top:26px}
.burger[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.progress{position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.08)}
.progress i{display:block;height:100%;background:linear-gradient(90deg,transparent,#fff);transform:scaleX(0);transform-origin:left}

/* ---------- 1. ouverture ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2;background:#000}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.08) brightness(.8);opacity:.9}
.hero-veil{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(5,5,5,.65) 0%,rgba(5,5,5,.1) 30%,rgba(5,5,5,.55) 65%,var(--noir) 100%),
  radial-gradient(120% 80% at 70% 40%,transparent 30%,rgba(5,5,5,.7) 100%)}
.hero-blades{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero-blades .bl{stroke-dasharray:1;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.hero-copy{position:relative;width:min(100% - 2*var(--gutter),var(--wrap));margin:0 auto;padding:calc(var(--header-h) + 3rem) 0 clamp(5.5rem,12vh,8rem)}
.hero h1{font-size:clamp(3.4rem,11.5vw,10.5rem);font-weight:500;line-height:.92;letter-spacing:-.025em;margin:0 0 1.4rem;max-width:11ch}
/* titre d'accueil : « Coutellerie artisanale » moyen, « Les Frères Teymen » imposant */
.hero h1.hero-title{font-size:clamp(3.4rem,9.2vw,10rem);max-width:none}
.hero-kicker{display:block;font-family:var(--sans,Inter,sans-serif);font-size:max(.95rem,.19em);font-weight:300;letter-spacing:.38em;text-transform:uppercase;line-height:1.2;margin:0 0 .5em .12em}
.steel.is-split .hero-kicker .wi,.hero-title .hero-kicker{background:none;color:rgba(255,255,255,.82);-webkit-text-fill-color:currentColor;animation:none}
.hero-name{display:block;filter:drop-shadow(0 2px 22px rgba(0,0,0,.65))}
@media (min-width:900px){.hero-name{white-space:nowrap}}
@media (max-width:899px){.hero h1.hero-title{font-size:clamp(3.4rem,17vw,5.6rem)}.hero-kicker{font-size:max(.9rem,.22em);letter-spacing:.3em}
  .steel.is-split .hero-name .wi{background-image:linear-gradient(100deg,#a7adb4 0%,#fff 18%,#cfd4d9 40%,#fff 62%,#b4bac1 82%,#fff 100%)}}
.tagline{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,3vw,2.3rem);color:#e7eaed;margin:0 0 2.2rem;max-width:24ch;line-height:1.15}
.scroll-cue{position:absolute;right:var(--gutter);bottom:2rem;display:flex;flex-direction:column;align-items:center;gap:.8rem;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gris);writing-mode:vertical-rl}
.scroll-cue i{width:1px;height:56px;background:linear-gradient(#fff,transparent);transform-origin:top;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

@media (min-width:900px){
  /* ordinateur : la vidéo (portrait, 480x848) est présentée dans une fenêtre en forme de lame, à droite */
  .hero-media{background:var(--noir)}
  .hero-video{left:auto;right:0;width:54%;clip-path:url(#blade-clip);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%),linear-gradient(0deg,transparent 0,#000 30%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 22%),linear-gradient(0deg,transparent 0,#000 30%);mask-composite:intersect}
  .hero-veil{background:linear-gradient(90deg,var(--noir) 0,rgba(5,5,5,.55) 42%,transparent 70%),linear-gradient(0deg,var(--noir) 0,transparent 30%),linear-gradient(180deg,rgba(5,5,5,.6),transparent 22%)}
}
html.js:not(.is-ready) [data-hero]{opacity:0}

/* ---------- bandeau ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--ligne);padding:1.1rem 0;background:var(--noir);position:relative;z-index:1}
.marquee-track{display:flex;width:max-content;animation:mq 38s linear infinite}
.marquee span{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.6vw,2rem);padding-right:3.2rem;color:#cfd3d7;white-space:nowrap}
.marquee span::after{content:"";display:inline-block;width:26px;height:1px;background:var(--acier-sombre);margin-left:3.2rem;vertical-align:middle;transform:rotate(-24deg)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- 2. manifeste ---------- */
.manifeste{padding:clamp(6rem,16vw,13rem) 0 clamp(4rem,8vw,7rem);position:relative}
.manif-text{font-size:clamp(1.9rem,4.8vw,4.3rem);line-height:1.12;max-width:22ch;font-weight:400;margin-bottom:clamp(3rem,7vw,6rem)}
.manif-text{max-width:26ch}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;border-top:1px solid var(--ligne);padding-top:2rem}
.fact strong{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,5vw,4rem);line-height:1}
.fact span{display:block;color:var(--gris);font-size:.85rem;margin-top:.6rem}

/* ---------- 3. rideau ---------- */
.curtain{position:relative;height:100vh;height:100svh;min-height:520px;overflow:hidden}
.curtain-frame{position:absolute;inset:0;overflow:hidden;will-change:clip-path}
.curtain-frame img{width:100%;height:100%;object-fit:cover;will-change:transform}
.curtain-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.85),rgba(5,5,5,.2) 60%,rgba(5,5,5,.5)),linear-gradient(0deg,rgba(5,5,5,.7),transparent 40%)}
.curtain-text{position:absolute;left:var(--gutter);bottom:clamp(2.5rem,9vh,6rem);max-width:min(100% - 2*var(--gutter),760px)}
.curtain-text h2{font-size:clamp(2.2rem,6vw,5.2rem);max-width:14ch}

/* ---------- 4. collections ---------- */
.collections{position:relative;overflow-x:clip;padding:clamp(5rem,10vw,9rem) 0 clamp(4rem,8vw,7rem)}
.coll-head,.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;width:min(100% - 2*var(--gutter),var(--wrap));margin:0 auto clamp(2rem,5vw,4rem)}
.section-head{width:auto;margin-bottom:clamp(2rem,5vw,4rem)}
.coll-head h2,.section-head h2{margin:0}
.coll-viewport{scroll-padding-inline:var(--gutter);overflow-x:auto;scroll-snap-type:x proximity;padding:0 var(--gutter) 1.5rem;scrollbar-width:thin;scrollbar-color:#333 transparent}
.coll-track{display:flex;gap:clamp(1rem,2.4vw,2rem);width:max-content}
.coll-card{flex:0 0 min(82vw,520px);scroll-snap-align:start}
.coll-card a{display:block}
.coll-img{position:relative;aspect-ratio:4/3;background:radial-gradient(70% 60% at 50% 55%,#202225,#070707);overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) 100%,0 100%)}
.coll-img img{width:100%;height:100%;object-fit:contain;transition:transform 1.2s var(--ease)}
.coll-img::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.2) 50%,transparent 62%);transform:translateX(-110%)}
.coll-card a:hover .coll-img::after{transform:translateX(110%);transition:transform 1.1s var(--ease)}
.coll-card a:hover .coll-img img{transform:scale(1.06)}
.coll-body{padding:1.3rem 0 0;position:relative}
.coll-body h3{margin:.2rem 0 .3rem}
.coll-body p{color:var(--gris);font-size:.92rem;margin:0}
.count{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--acier-sombre)}
.coll-bar{display:none;height:1px;background:var(--ligne);width:min(100% - 2*var(--gutter),var(--wrap));margin:2rem auto 0}
.coll-bar i{display:block;height:100%;background:#fff;transform:scaleX(0);transform-origin:left}
@media (min-width:900px){
  .collections.is-pinned .coll-pin{min-height:calc(100vh - var(--admin-h,0px));display:flex;flex-direction:column;justify-content:center}
  .collections.is-pinned .coll-viewport{overflow:visible;padding-bottom:0}
  .collections.is-pinned .coll-bar{display:block}
  .collections.is-pinned{padding-block:0}
  .coll-card{flex-basis:min(40vw,560px)}
  .coll-card:nth-child(even){margin-top:3rem}
}

/* ---------- 5. galerie ---------- */
.gallery{position:relative;background:#000}
/* La section .gallery peut hériter d'un display:grid (styles du site) qui réduisait la galerie à ~150 px : on force la pleine largeur */
body section.gallery{display:block!important}
.gal-stage{width:100%;grid-column:1/-1;position:relative;height:calc(100vh - var(--admin-h,0px));height:calc(100svh - var(--admin-h,0px));min-height:480px;overflow:hidden}
/* « .gal-slide » et non « .slide » : l'extension de cookies utilise la classe « slide » sur son bandeau (#cm) */
.gal-slide{position:absolute;inset:0;margin:0;overflow:hidden;will-change:clip-path}
.gal-slide img{width:100%;height:100%;object-fit:cover;will-change:transform}
.gal-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.6),transparent 40%)}
.gal-ui{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(1.5rem,5vh,3rem);z-index:5;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}
.gal-title{font-family:var(--serif);font-style:italic;font-size:clamp(2rem,6vw,5rem);line-height:1}
.gal-count{font-size:.75rem;letter-spacing:.25em;color:#cfd3d7}
.gal-count b{font-family:var(--serif);font-size:clamp(1.8rem,4vw,3rem);font-weight:500;letter-spacing:0}
/* sans JS : les images se suivent simplement */
html:not(.js) .gal-stage{height:auto;overflow:visible}
html:not(.js) .gal-slide{position:relative;height:60vh}
html:not(.js) .gal-ui{display:none}

/* ---------- 6. sélection ---------- */
.selection{padding:clamp(5rem,10vw,9rem) 0 clamp(4rem,8vw,7rem);background:linear-gradient(180deg,var(--noir),var(--charbon) 30%,var(--noir))}
.rail{scroll-padding-inline:var(--gutter);overflow-x:auto;scroll-snap-type:x proximity;padding:1rem var(--gutter) 2.5rem;cursor:grab;scrollbar-width:thin;scrollbar-color:#333 transparent}
.rail.is-drag{cursor:grabbing;scroll-snap-type:none}
.rail-track{display:flex;gap:clamp(1rem,2vw,1.8rem);width:max-content}
.loading{color:var(--gris)}
.rail .pcard-item{flex:0 0 min(74vw,340px);scroll-snap-align:start}
.price-old{color:var(--gris);text-decoration:line-through;margin-left:.5rem}
.price-ask{color:var(--gris)}
.empty{color:var(--gris)}

/* ---------- 7. savoir-faire ---------- */
.craft{padding:clamp(5rem,10vw,9rem) 0}
.craft-inner{display:grid;grid-template-columns:1fr;gap:3rem}
.craft-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:#111;clip-path:polygon(0 0,100% 0,100% 100%,18% 100%,0 86%)}
.craft-frame .cm{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.craft-frame .cm-2,.craft-frame .cm-3{opacity:0}
html:not(.js) .craft-frame .cm-2,html:not(.js) .craft-frame .cm-3{display:none}
.pillar{padding:1.6rem 0;border-top:1px solid var(--ligne);display:grid;grid-template-columns:3rem 1fr;column-gap:1rem}
.pillar .num{grid-row:span 2;font-family:var(--serif);font-style:italic;color:var(--acier-sombre);font-size:1.2rem}
.pillar h3{font-size:clamp(1.4rem,2.4vw,1.8rem);margin:0 0 .4rem}
.pillar p{color:var(--gris);margin:0;max-width:44ch}
.craft-copy .link-arrow{margin-top:2rem}
@media (min-width:900px){
  .craft-inner{grid-template-columns:1fr 1fr;gap:6rem;align-items:start}
  .craft-media{position:sticky;top:calc(var(--header-h) + 2rem);align-self:start}
  .craft-frame{aspect-ratio:4/5;max-height:80vh}
}

/* ---------- 8/9. restaurants & Hunic ---------- */
.duo{position:relative;display:grid;grid-template-columns:1fr;gap:3rem;padding:clamp(4rem,9vw,8rem) var(--gutter);border-top:1px solid var(--ligne);overflow:hidden}
.duo--resto{background:radial-gradient(80% 80% at 10% 30%,#1a1b1e,var(--noir) 70%)}
.duo--hunic{background:radial-gradient(80% 80% at 90% 30%,#1a1b1e,var(--noir) 70%)}
.duo-copy{align-self:center;max-width:560px}
.duo-copy h2{font-size:clamp(3rem,9vw,8rem)}
.duo-media{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;align-items:center}
.duo-img{overflow:hidden;background:#0a0a0a;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%)}
.duo-img img{width:100%;height:100%;object-fit:cover}
.duo-img--b{margin-top:3rem}
.duo--hunic .duo-media{grid-template-columns:1.25fr .75fr}
.duo--hunic .duo-img--b{margin-top:0}
.duo--hunic .duo-img--wide{grid-column:auto;margin-top:-3rem}
@media (min-width:900px){
  .duo{grid-template-columns:1fr 1fr;gap:5rem;min-height:90vh}
  .duo--hunic .duo-media{order:2}
}

/* ---------- 10. matières ---------- */
.matieres{padding:clamp(4rem,9vw,8rem) 0;overflow:hidden}
.mat-grid{display:grid;grid-template-columns:1fr;gap:1.2rem;padding:0 var(--gutter);margin-top:1rem}
.mat-grid figure{margin:0;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%)}
.mat-grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/2}
.mat-grid figure:nth-child(3) img{aspect-ratio:3/4;object-position:center 40%}
@media (min-width:900px){
  .mat-grid{grid-template-columns:1.1fr 1fr .8fr;gap:2rem;align-items:center}
  .mat-grid figure:nth-child(2){margin-top:6rem}
}

/* ---------- 11. garantie ---------- */
.garantie{position:relative;padding:clamp(6rem,14vw,12rem) 0;text-align:center;background:radial-gradient(60% 70% at 50% 50%,#1c1d20,var(--noir) 75%);overflow:hidden}
.garantie .lead{margin-inline:auto}
.garantie h2{font-size:clamp(3.4rem,12vw,10rem);margin-bottom:.3em}
.seal{position:absolute;left:50%;top:50%;width:min(130vw,900px);margin:calc(min(130vw,900px)/-2) 0 0 calc(min(130vw,900px)/-2);color:rgba(255,255,255,.14);animation:spin 90s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.garantie .wrap{position:relative}

/* ---------- 12/13. réassurance et avis ---------- */
.reassure-sec{padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--ligne)}
.reassure{display:grid;grid-template-columns:1fr;gap:2rem}
.reassure svg{width:34px;height:34px;color:var(--acier);margin-bottom:1rem}
.reassure h3{font-size:1.5rem;margin-bottom:.3rem}
.reassure p{color:var(--gris);font-size:.92rem;margin:0}
@media (min-width:700px){.reassure{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.reassure{grid-template-columns:repeat(4,1fr);gap:3rem}}
.avis{padding:clamp(4rem,8vw,7rem) 0}
.quotes{display:grid;grid-template-columns:1fr;gap:1.5rem}
.quote{margin:0;border-top:1px solid var(--ligne);padding-top:1.6rem}
.quote blockquote{margin:0}
.quote p{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.25;color:#eceef0}
.quote figcaption{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
@media (min-width:900px){.quotes{grid-template-columns:repeat(3,1fr);gap:3rem}}
.note-maquette{font-size:.78rem;color:var(--acier-sombre);margin-top:2.5rem}

/* ---------- 14. signature ---------- */
.signature{padding:clamp(5rem,12vw,10rem) var(--gutter);text-align:center;border-top:1px solid var(--ligne);background:radial-gradient(60% 80% at 50% 100%,#1b1c1f,var(--noir) 70%)}
.sig-logo{width:min(80vw,760px);margin:0 auto clamp(2rem,5vw,3.5rem);filter:drop-shadow(0 0 40px rgba(255,255,255,.12))}
.signature .btn-row{justify-content:center}

/* ---------- pied ---------- */
.site-footer{border-top:1px solid var(--ligne);padding:4rem 0 5rem;font-size:.9rem;color:var(--gris);background:var(--noir)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:2.5rem}
.footer-brand img{width:180px;margin-bottom:1rem}
.footer-brand p{max-width:34ch}
.site-footer h2{font-family:var(--sans);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--blanc);font-weight:500;margin-bottom:1.2rem}
.site-footer li{padding:.25rem 0}
.site-footer a:hover{color:var(--blanc)}
address{font-style:normal}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--ligne);font-size:.78rem}
@media (min-width:900px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr}}

/* ---------- mobile ---------- */
@media (max-width:899px){
  .burger{display:block}
  .brand img{height:38px}
  .main-nav{position:fixed;inset:0;z-index:2;background:rgba(5,5,5,.97);padding:calc(var(--header-h) + 1rem) var(--gutter) 2rem;overflow:auto;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
  .main-nav.is-open{opacity:1;visibility:visible}
  .main-nav ul{flex-direction:column;align-items:flex-start;gap:0}
  .main-nav li{width:100%;border-bottom:1px solid var(--ligne)}
  .main-nav a,.nav-toggle{font-family:var(--serif);font-size:1.9rem;letter-spacing:0;text-transform:none;padding:.9rem 0;width:100%}
  .main-nav a::after,.nav-toggle::after{display:none}
  .sub-nav{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;padding:0 0 1rem;min-width:0}
  .sub-nav a{font-family:var(--sans);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gris);padding:.55rem 0}
  .header-actions{position:relative;z-index:3}
  .facts{grid-template-columns:1fr;gap:1.4rem}
  .hero h1{font-size:clamp(3.3rem,17vw,5.5rem)}
  .scroll-cue{display:none}
  .duo-img--b{margin-top:1.5rem}
}

/* ==========================================================
   MISSION 2 : animations plus marquées, boutique, produit, atelier
   ========================================================== */

/* ---------- curseur personnalisé (souris uniquement) ---------- */
.cursor{position:fixed;left:0;top:0;z-index:400;pointer-events:none;mix-blend-mode:difference;opacity:0;transition:opacity .4s}
.cursor.is-on{opacity:1}
.c-dot,.c-ring,.c-lab{position:absolute;left:0;top:0;will-change:transform}
.c-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff}
.c-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1px solid rgba(255,255,255,.9)}
.c-lab{width:90px;margin:-.5em 0 0 -45px;text-align:center;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;opacity:0;white-space:nowrap}
html.has-cursor,html.has-cursor a,html.has-cursor button,html.has-cursor label,html.has-cursor summary,html.has-cursor [data-cursor]{cursor:none}
html.has-cursor select,html.has-cursor input:not([type=radio]),html.has-cursor textarea{cursor:auto}

/* ---------- transition entre les pages : une lame traverse l'écran ---------- */
.pt{position:fixed;inset:0;z-index:300;pointer-events:none;visibility:hidden;overflow:hidden}
.pt-slab{position:absolute;top:-8%;bottom:-8%;left:-24%;width:148%;background:#08080a;transform:translateX(-115%) skewX(-16deg);will-change:transform}
.pt-slab--b{background:linear-gradient(90deg,#16171a,#2d3035 55%,#1a1b1e)}
.pt-slab--c{background:linear-gradient(90deg,transparent 40%,rgba(255,255,255,.07) 80%,rgba(255,255,255,.35) 99%,#fff 100%);width:20%;left:-6%}
.pt-slab::before,.pt-slab::after{content:"";position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent,#fff 15%,#fff 85%,transparent);opacity:.9}
.pt-slab::before{left:0}.pt-slab::after{right:0}
.pt-slab--c::before,.pt-slab--c::after{display:none}
.pt-logo{position:absolute;left:50%;top:50%;width:min(62vw,440px);transform:translate(-50%,-50%);opacity:0;filter:drop-shadow(0 0 30px rgba(255,255,255,.18))}
html.pt-enter body::before{content:"";position:fixed;inset:0;z-index:299;background:#08080a}
html.pt-enter .pt{visibility:visible}
html.pt-enter .pt-slab{transform:translateX(0) skewX(-16deg)}
html.pt-enter .pt-logo{opacity:1}

/* ---------- balayage de lame entre les sections ---------- */
.sweep{position:relative;height:clamp(230px,58vh,540px);overflow:hidden;background:var(--noir);isolation:isolate;border-block:1px solid var(--ligne)}
.sweep-layer{position:absolute;inset:0;display:grid;place-items:center}
.sweep-word{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(3.3rem,14vw,13.5rem);line-height:1;white-space:nowrap;text-align:center;padding-bottom:.08em}
.sweep-layer--line .sweep-word{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.3)}
.sweep-layer--fill .sweep-word{background:linear-gradient(100deg,#5b626a,#fff 25%,#9aa1a9 50%,#fff 75%,#b8bec5);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.sweep-bar{position:absolute;top:0;bottom:0;left:0;width:17vw;transform:translateX(-40vw) skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.04) 30%,rgba(255,255,255,.5) 93%,#fff 98%,transparent);mix-blend-mode:screen;pointer-events:none;will-change:transform}
.sweep-bar::after{content:"";position:absolute;top:0;bottom:0;right:-3.5vw;width:2px;background:linear-gradient(180deg,transparent,#fff,transparent);opacity:.8}

/* ---------- reflets d'acier plus contrastés ---------- */
.coll-img::after,.pc-media::after,.duo-img::after{background:linear-gradient(110deg,transparent 34%,rgba(255,255,255,.42) 50%,transparent 66%)}
.duo-img{position:relative}
.duo-img::after{content:"";position:absolute;inset:0;pointer-events:none;transform:translateX(-120%)}
.duo-img:hover::after{transform:translateX(120%);transition:transform 1.2s var(--ease)}
.coll-card a:hover .coll-img img{transform:scale(1.1)}
.btn--ghost:hover{background:var(--blanc);color:var(--noir)}
.btn--ghost{transition:background .45s var(--ease),color .45s var(--ease)}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:1.2rem;z-index:210;transform:translate(-50%,160%);display:flex;gap:1.4rem;align-items:center;max-width:calc(100vw - 2rem);padding:.9rem 1.3rem;background:rgba(246,246,243,.97);color:var(--noir);font-size:.88rem;transition:transform .7s var(--ease);clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%)}
.toast.show{transform:translate(-50%,0)}
.toast a{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid;font-weight:500;white-space:nowrap}

/* ---------- fil d'Ariane, petits éléments ---------- */
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:.3rem .8rem;margin:0 0 2rem;padding:0;list-style:none;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.breadcrumb li+li::before{content:"/";margin-right:.8rem;opacity:.5}
.breadcrumb a:hover{color:var(--blanc)}
.breadcrumb [aria-current]{color:var(--blanc)}

/* ---------- carte produit « vitrine » ---------- */
.pcard-item{perspective:1100px;list-style:none}
.pcard{position:relative;display:flex;flex-direction:column;height:100%;background:linear-gradient(160deg,#17181b,#08080a);border:1px solid var(--ligne);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),border-color .4s,box-shadow .6s;clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%);-webkit-user-drag:none;user-select:none;will-change:transform}
.pcard.is-tilt{transition:transform .12s linear,border-color .4s}
.pcard::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;background:radial-gradient(300px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.22),transparent 60%);opacity:0;transition:opacity .4s}
.pcard:hover{border-color:rgba(255,255,255,.6)}
.pcard:hover::after{opacity:1}
.pc-media{position:relative;aspect-ratio:3/2;overflow:hidden;background:#050505}
.pc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),opacity .8s var(--ease);-webkit-user-drag:none}
.pc-img--2{opacity:0}
.pcard:hover .pc-img--2{opacity:1}
.pcard:hover .pc-img{transform:scale(1.09)}
.pc-media::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;transform:translateX(-120%)}
.pcard:hover .pc-media::after{transform:translateX(120%);transition:transform 1.1s var(--ease)}
.pc-badge{position:absolute;left:.8rem;top:.8rem;z-index:4;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;background:var(--blanc);color:var(--noir);padding:.25rem .65rem;font-weight:500}
.pc-badge--out{background:rgba(5,5,5,.8);color:var(--blanc);border:1px solid rgba(255,255,255,.4)}
.pc-body{position:relative;padding:1.15rem 1.3rem 1.5rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.pc-tag{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--acier-sombre)}
.pc-title{font-family:var(--serif);font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.08;margin:0;font-weight:500;text-wrap:balance}
.pc-price{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:.7rem;font-size:1rem;color:#eceef0}
.pc-arrow{width:34px;height:1px;background:currentColor;position:relative;transform:scaleX(.55);transform-origin:right;transition:transform .6s var(--ease)}
.pc-arrow::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid;border-right:1px solid;transform:rotate(45deg)}
.pcard:hover .pc-arrow{transform:scaleX(1)}
.pgrid{display:grid;grid-template-columns:1fr;gap:clamp(1rem,2.2vw,2rem);list-style:none;margin:0;padding:0}
@media (min-width:600px){.pgrid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.pgrid{grid-template-columns:repeat(3,1fr)}}
.pgrid--sim{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}
.pgrid .loading,.pgrid .empty{grid-column:1/-1}

/* ---------- boutique : en-tête immersif ---------- */
.shop-hero{position:relative;min-height:clamp(440px,78svh,780px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;background:#000}
.sh-media{position:absolute;inset:-8% 0;z-index:-3}
.sh-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:grayscale(.3) contrast(1.12) brightness(.78);transition:opacity 1.6s ease}
.sh-img.is-on{opacity:1}
.sh-veil{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(5,5,5,.78) 0%,rgba(5,5,5,.1) 32%,rgba(5,5,5,.55) 72%,var(--noir) 100%),linear-gradient(90deg,rgba(5,5,5,.85),transparent 70%)}
.sh-blades{opacity:.5;position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.sh-blades .bl{stroke-dasharray:1;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.sh-copy{position:relative;width:min(100% - 2*var(--gutter),var(--wrap));margin:0 auto;padding:calc(var(--header-h) + 3rem) 0 clamp(2.5rem,6vw,4.5rem)}
.sh-copy h1{font-size:clamp(3.2rem,11vw,9.5rem);line-height:.93;letter-spacing:-.025em;margin:0 0 1.4rem;max-width:12ch}
.sh-intro{max-width:58ch;color:#d3d7da;font-size:clamp(1rem,1.5vw,1.2rem);margin-bottom:2.2rem}
.sh-stats{display:flex;flex-wrap:wrap;gap:1.2rem 3rem;border-top:1px solid var(--ligne);padding-top:1.4rem}
.sh-stats div{display:flex;flex-direction:column}
.sh-stats strong{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);line-height:1;font-weight:500}
.sh-stats span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);margin-top:.3rem}

/* ---------- boutique : barre de filtres collante et tiroir ---------- */
.fbar{position:sticky;top:0;z-index:90;background:rgba(5,5,5,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-block:1px solid var(--ligne);transition:transform .6s var(--ease)}
.fbar.is-stuck{transform:translateY(var(--header-h))}
html.hdr-off .fbar.is-stuck{transform:none}
.fbar-inner{width:min(100% - 2*var(--gutter),var(--wrap));margin:0 auto;display:flex;align-items:center;gap:1rem;min-height:64px;padding-block:.6rem}
.fbar-count{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);margin:0;white-space:nowrap}
.fbar-count b{color:var(--blanc);font-weight:500}
.f-open{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.1rem;border:1px solid rgba(255,255,255,.5);border-radius:99px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.f-open svg{width:16px;height:16px}
.f-open .n[hidden]{display:none}
.f-open .n{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:99px;background:var(--blanc);color:var(--noir);font-size:.62rem}
.fbar-sort{margin-left:auto;display:flex;align-items:center;gap:.7rem}
.fbar-sort label{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.fselect{appearance:none;-webkit-appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23f6f6f3' stroke-width='1.2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right .95rem center;border:1px solid var(--ligne);color:var(--blanc);padding:.62rem 2.4rem .62rem 1.1rem;border-radius:99px;font:inherit;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;min-height:44px}
.fselect option{background:#0d0d0e;color:#fff}
.fselect:hover{border-color:rgba(255,255,255,.5)}
.fform{display:contents}
#f-slot{display:contents}
.fgroup{border:0;margin:0;padding:0;min-width:0}
.fgroup legend{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gris);padding:0;margin-bottom:.9rem}
.fpills{display:flex;flex-wrap:wrap;gap:.45rem}
.fpill{position:relative;display:inline-flex}
.fpill input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.fpill span{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:.5rem 1.05rem;border:1px solid var(--ligne);border-radius:99px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:#d3d7da;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s}
.fpill small{font-size:.62rem;opacity:.55}
.fpill:hover span{border-color:rgba(255,255,255,.55)}
.fpill input:checked+span{background:var(--blanc);color:var(--noir);border-color:var(--blanc)}
.fpill input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}
.f-drawer-head,.f-drawer-foot,.fscrim{display:none}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.6rem;min-height:0}
.chip{display:inline-flex;align-items:center;gap:.6rem;padding:.35rem .5rem .35rem 1rem;border:1px solid rgba(255,255,255,.4);border-radius:99px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.chip button{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.12);font-size:1rem;line-height:1}
.chip button:hover{background:var(--blanc);color:var(--noir)}
.shop-body{padding:clamp(1.6rem,4vw,3rem) 0 clamp(4rem,9vw,8rem)}
.more{text-align:center;margin-top:clamp(2.5rem,5vw,4rem)}
.more[hidden]{display:none}
.shop-empty{grid-column:1/-1;text-align:center;padding:4rem 0;color:var(--gris)}
.shop-empty .link-arrow{margin-top:1rem;color:var(--blanc)}

@media (min-width:1100px){
  .fform{display:flex;align-items:center;gap:1.2rem;min-width:0;flex:1}
  .f-scroll{display:flex;align-items:center;gap:1.2rem;min-width:0;flex:1}
  .f-drawer-head,.f-drawer-foot{display:none}
  .fgroup legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .fgroup--col{min-width:0;flex:1 1 auto}
  .fgroup--col .fpills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-block:3px;-webkit-mask-image:linear-gradient(90deg,#000 94%,transparent);mask-image:linear-gradient(90deg,#000 94%,transparent)}
  .fgroup--ac,.fgroup--pr{flex:none}
  .fgroup--col .fpill small{display:none}
  .fgroup--col .fpills,.fgroup--ac .fpills{gap:.35rem}
  .fgroup--col .fpill span,.fgroup--ac .fpill span{padding-inline:.8rem;letter-spacing:.1em}
  .fbar-count{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0}
  .fbar-sort label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .fgroup--pr .fselect,.fbar-sort .fselect{padding-block:.5rem;min-height:40px}
  .fgroup--col .fpill span{padding:.45rem .9rem;min-height:40px}
  .fgroup--ac .fpills{flex-wrap:nowrap}
  .fgroup--ac .fpill span{padding:.45rem .9rem;min-height:40px}
  .fgroup--pr{display:block}
  .f-open,.f-count-m{display:none}
  .fbar-count{order:5}
  .fbar-sort{margin-left:0}
}
@media (max-width:1099px){
  .fform{position:fixed;top:0;right:0;bottom:0;z-index:220;width:min(92vw,430px);display:flex;flex-direction:column;background:#0b0b0c;border-left:1px solid var(--ligne);transform:translateX(105%);visibility:hidden;transition:transform .7s var(--ease),visibility .7s}
  .fform.is-open{transform:none;visibility:visible}
  .f-drawer-head{display:flex;flex:none;height:4.2rem;align-items:center;justify-content:space-between;padding:0 1.5rem;border-bottom:1px solid var(--ligne)}
  .f-drawer-head h2{font-size:1.7rem;margin:0}
  .f-close{width:44px;height:44px;font-size:1.6rem;line-height:1;border:1px solid var(--ligne);border-radius:50%}
  .f-scroll{flex:1;overflow:auto;padding:1.6rem 1.5rem;display:flex;flex-direction:column;gap:1.8rem;overscroll-behavior:contain}
  .f-drawer-foot{display:flex;flex:none;gap:.8rem;padding:1rem 1.5rem;border-top:1px solid var(--ligne)}
  .f-drawer-foot .btn{flex:1;padding-inline:1rem}
  .fscrim{display:block;position:fixed;inset:0;z-index:215;background:rgba(0,0,0,.65);opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
  .fscrim.is-on{opacity:1;visibility:visible}
  .fgroup--pr .fselect{width:100%}
  .fbar-sort label{display:none}
  .fbar-count{margin-left:auto}
  .fbar-sort{margin-left:0}
}
@media (max-width:520px){
  .fbar-count{display:none}
  .fbar-sort{margin-left:auto}
}

/* ---------- fiche produit ---------- */
.pdp-sec{padding:calc(var(--header-h) + 2rem) 0 clamp(3rem,6vw,5rem)}
.pdp{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem 4rem;align-items:start}
.pdp .breadcrumb{grid-column:1/-1}
.pdp-gallery{position:relative}
.pdp-main{position:relative;aspect-ratio:3/2;overflow:hidden;background:radial-gradient(70% 60% at 50% 55%,#202225,#050505);clip-path:polygon(0 0,100% 0,100% calc(100% - 34px),calc(100% - 34px) 100%,0 100%);touch-action:pan-y}
.pdp-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:var(--zx,50%) var(--zy,50%);transition:transform .8s var(--ease)}
.pdp-main::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.38) 50%,transparent 64%);transform:translateX(-120%)}
.pdp-main.is-sheen::after{transform:translateX(120%);transition:transform 1.2s var(--ease)}
.pdp-main.is-zoom img{transform:scale(1.9)}
.thumbs{display:flex;gap:.6rem;margin-top:.8rem;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.thumb{flex:0 0 clamp(72px,9vw,108px);aspect-ratio:3/2;border:1px solid var(--ligne);padding:0;overflow:hidden;background:#050505;opacity:.55;transition:opacity .4s,border-color .4s}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb:hover,.thumb[aria-current=true]{opacity:1;border-color:var(--blanc)}
.pdp-info h1{font-size:clamp(2.4rem,5vw,4.6rem);line-height:1;margin:0 0 1rem;text-wrap:balance}
.pdp-price{font-family:var(--serif);font-size:clamp(2rem,3.4vw,2.8rem);line-height:1;margin:0 0 1.2rem}
.pdp-summary{color:#c9cdd1;max-width:52ch}
.variants{border:0;padding:0;margin:1.6rem 0}
.variants legend{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gris);padding:0;margin-bottom:.9rem}
.variants-list{display:flex;flex-wrap:wrap;gap:.5rem}
.vpill{position:relative;display:inline-flex}
.vpill input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.vpill span{display:inline-flex;align-items:center;min-height:44px;padding:.45rem 1.1rem;border:1px solid var(--ligne);font-size:.78rem;letter-spacing:.1em;text-transform:capitalize;transition:background .35s,color .35s,border-color .35s;clip-path:polygon(0 0,100% 0,calc(100% - 9px) 100%,0 100%)}
.vpill:hover span{border-color:rgba(255,255,255,.6)}
.vpill input:checked+span{background:var(--blanc);color:var(--noir);border-color:var(--blanc)}
.vpill input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}
.buy-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:stretch;margin-top:1.6rem}
.qty{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.4)}
.qty button{width:48px;height:100%;min-height:3.2rem;font-size:1.3rem}
.qty button:hover{background:rgba(255,255,255,.1)}
.qty output{min-width:2.4rem;text-align:center}
.form-msg{min-height:1.5em;font-size:.88rem;margin:.9rem 0 0;color:var(--gris)}
.form-msg.error{color:#ffb4a8}.form-msg.ok{color:#cfe8cf}
.reassure--compact{display:grid;grid-template-columns:1fr;gap:1.1rem;margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--ligne)}
.reassure-item{display:grid;grid-template-columns:34px 1fr;gap:.9rem}
.reassure-item svg{width:30px;height:30px;color:var(--acier)}
.reassure-item h3{font-size:1.25rem;margin:0 0 .15rem}
.reassure-item p{color:var(--gris);font-size:.88rem;margin:0}
.pdp-details{padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--ligne)}
.pdp-cols{display:grid;grid-template-columns:1fr;gap:3rem}
.pdp-details h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}
.pdp-details .lead{max-width:58ch}
.specs{margin:0}
.specs div{display:grid;grid-template-columns:minmax(7rem,.8fr) 1.2fr;gap:1rem;padding:.9rem 0;border-top:1px solid var(--ligne)}
.specs dt{color:var(--gris);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.specs dd{margin:0}
.pdp-sim{padding:clamp(3rem,7vw,6rem) 0;background:linear-gradient(180deg,var(--noir),var(--charbon) 40%,var(--noir))}
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:120;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom));background:rgba(5,5,5,.94);border-top:1px solid var(--ligne);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translateY(110%);transition:transform .6s var(--ease)}
.buybar.is-on{transform:none}
.buybar strong{font-family:var(--serif);font-size:1.5rem;font-weight:500}
.buybar .btn{padding:.8rem 1.4rem;min-height:3rem}
@media (min-width:960px){
  .pdp{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
  .pdp-gallery{position:sticky;top:calc(var(--header-h) + 1.5rem)}
  .pdp-cols{grid-template-columns:1fr 1fr;gap:6rem}
  .reassure--compact{grid-template-columns:1fr 1fr}
  .buybar{display:none}
}

/* ---------- atelier : feuille blanche ---------- */
:root{--papier:#f4f2ec;--encre:#101113}
.at-hero{position:relative;height:calc(100vh - var(--admin-h,0px));height:calc(100svh - var(--admin-h,0px));min-height:560px;background:var(--noir);overflow:hidden}
.sheet{position:absolute;inset:0;background:var(--papier);color:var(--encre);clip-path:polygon(9% 15%,91% 15%,91% 80%,85% 86%,9% 86%);display:grid;place-items:center;text-align:center}
.sheet::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;background:radial-gradient(90% 70% at 30% 20%,rgba(255,255,255,.9),transparent 60%),radial-gradient(80% 60% at 80% 90%,rgba(0,0,0,.07),transparent 60%)}
.sketch{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sketch path,.sketch circle,.sketch line{fill:none;stroke:#2a2c30;stroke-linecap:round;vector-effect:non-scaling-stroke}
.sketch .sk{stroke-dasharray:1;stroke-dashoffset:0}
.sheet-copy{position:relative;padding:0 var(--gutter);max-width:1100px}
.sheet .eyebrow{color:#55585d;margin-bottom:1.6rem}
.sheet h1{font-size:clamp(2.8rem,min(9vw,14vh),8.6rem);line-height:.94;letter-spacing:-.025em;margin:0 auto 1.6rem;max-width:11ch;color:var(--encre)}
.sheet-lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,2.4vw,1.9rem);color:#3a3c40;max-width:30ch;margin:0 auto}
.at-hero .scroll-cue{z-index:3;color:#55585d;right:auto;left:50%;margin-left:-.5px;bottom:calc(14% + .6rem)}
.at-hero .scroll-cue span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.at-hero .scroll-cue i{height:38px;background:linear-gradient(#101113,transparent)}
.sheet-copy{transform:translateY(-3vh)}
.sketch{opacity:.75}

/* ---------- atelier : chapitres ---------- */
.chap{position:relative;background:var(--noir);overflow:clip}
.chap--paper{background:var(--papier);color:var(--encre)}
.chap-pin{position:relative;display:grid;grid-template-columns:1fr;gap:2.4rem;align-items:center;padding:clamp(5rem,12vw,7rem) var(--gutter) clamp(3.5rem,8vw,5rem);width:min(100%,1500px);margin:0 auto}
.chap--rev .chap-media{order:2}
.chap-num{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(5rem,13vw,11rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.3);margin-bottom:1rem}
.chap--paper .chap-num{-webkit-text-stroke:1px rgba(16,17,19,.35)}
.chap--paper .eyebrow{color:#55585d}
.chap--paper .lead{color:#33353a}
.chap-copy h2{font-size:clamp(2.3rem,5.4vw,4.8rem);max-width:14ch}
.chap-copy .lead{max-width:44ch}
.chap-copy .lead+.lead{margin-top:-.2em}
.frame{position:relative;width:min(100%,430px);aspect-ratio:3/4;margin-inline:auto;overflow:hidden;background:#111;clip-path:polygon(0 0,100% 0,100% calc(100% - 32px),calc(100% - 32px) 100%,0 100%)}
.fi{position:absolute;inset:0;will-change:clip-path}
.fi>img{width:100%;height:100%;object-fit:cover;will-change:transform}
.frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.35) 50%,transparent 64%);transform:translateX(-120%)}
.frame.is-lit::after{transform:translateX(120%);transition:transform 1.6s var(--ease)}
.chap--paper .frame{box-shadow:0 30px 70px rgba(0,0,0,.25)}
.trace{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.trace path{fill:none;stroke:#0c0d0f;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.trace .tr-soft{stroke:rgba(12,13,15,.55);stroke-width:2}
.stitch{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.stitch rect{fill:none;stroke:#e9ecef;stroke-width:1.6;stroke-dasharray:11 8;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px rgba(0,0,0,.7))}
.chap-note{font-size:.8rem;color:var(--acier-sombre);margin-top:1.4rem;max-width:44ch}
.wipe{position:absolute;inset:-2px;z-index:6;background:var(--noir);pointer-events:none;clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}
.chap-copy .tag-line{display:inline-flex;align-items:center;gap:.8rem;margin-top:1.4rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--acier)}
.chap-copy .tag-line::before{content:"";width:2.4rem;height:1px;background:currentColor}
@media (min-width:900px){
  .chap-pin{grid-template-columns:1fr 1fr;gap:6vw;min-height:calc(100vh - var(--admin-h,0px));min-height:calc(100svh - var(--admin-h,0px));padding-block:5.5rem 2.5rem}
  .frame{width:auto;height:min(70vh,740px);max-width:100%}
}

/* vidéo */
.chap--video .chap-pin{grid-template-columns:1fr;justify-items:center;text-align:left;gap:2rem}
.vframe-wrap{width:100%;display:grid;justify-items:center;will-change:clip-path,transform}
.vframe{position:relative;width:min(100%,1080px);aspect-ratio:16/9;background:linear-gradient(120deg,#6c737b,#fff 30%,#555b62 60%,#e8ecf0);clip-path:polygon(0 0,calc(100% - 46px) 0,100% 46px,100% 100%,46px 100%,0 calc(100% - 46px));will-change:clip-path}
.vframe-in{position:absolute;inset:2px;overflow:hidden;background:#000;clip-path:polygon(0 0,calc(100% - 45px) 0,100% 45px,100% 100%,45px 100%,0 calc(100% - 45px))}
.vframe video,.vframe .vposter{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.1) brightness(.85)}
.vframe-veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,5,5,.88),transparent 55%),linear-gradient(90deg,rgba(5,5,5,.5),transparent 55%)}
.vframe-cap{position:absolute;left:clamp(1.2rem,4vw,3rem);bottom:clamp(1.2rem,4vw,2.6rem);right:1.2rem;z-index:2}
.vframe-cap h2{font-size:clamp(2rem,5.2vw,4.6rem);margin:0 0 .4rem;max-width:12ch}
.vframe-cap p{margin:0;color:#d3d7da;max-width:40ch}
.vplay{position:absolute;right:1.2rem;top:1.2rem;z-index:3;width:44px;height:44px;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(5,5,5,.5);display:grid;place-items:center}
.vplay svg{width:16px;height:16px}

/* tirage photo : les trois frères */
.print-stage{position:relative;display:grid;place-items:center;min-height:420px;background:radial-gradient(60% 60% at 50% 45%,#202225,var(--noir) 75%)}
.print-stage::before,.print-stage::after{content:"";position:absolute;inset:8% 8%;border:1px solid var(--ligne);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);pointer-events:none}
.print-stage::after{inset:14% 14%;border-color:rgba(255,255,255,.07)}
.print{position:relative;margin:0;width:min(100%,328px);background:#f1efe8;padding:14px 14px 56px;box-shadow:0 40px 80px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.4) inset;transform:rotate(-3deg);transform-origin:50% 40%;transition:transform .8s var(--ease)}
.print-photo{position:relative;overflow:hidden;background:#222;line-height:0}
.print-photo img{display:block;width:100%;max-width:300px;height:auto;margin:0 auto}
.print-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-130%);pointer-events:none}
.print:hover .print-photo::after{transform:translateX(130%);transition:transform 1.3s var(--ease)}
.print-dev{position:absolute;inset:0;background:#f1efe8;opacity:0;pointer-events:none}
.print figcaption{position:absolute;left:14px;right:14px;bottom:16px;text-align:center;font-family:var(--serif);font-style:italic;font-size:1.25rem;color:#2a2b2e;line-height:1}
.print::before{content:"";position:absolute;left:50%;top:-14px;width:96px;height:28px;margin-left:-48px;background:rgba(220,224,228,.55);transform:rotate(-2deg);border:1px solid rgba(255,255,255,.35)}

/* chronologie */
.tl-sec{padding:clamp(5rem,12vw,10rem) 0;background:radial-gradient(70% 50% at 20% 0%,#16171a,var(--noir) 70%)}
.tl-sec h2{font-size:clamp(3rem,10vw,9rem);margin-bottom:clamp(2.5rem,6vw,5rem)}
.tl-wrap{position:relative}
.tl{position:relative;list-style:none;margin:0;padding:0 0 0 2.4rem}
.tl-line{position:absolute;left:0;top:.5rem;bottom:.5rem;width:1px;background:var(--ligne)}
.tl-line i{display:block;height:100%;background:linear-gradient(#fff,#9aa1a9);transform:scaleY(1);transform-origin:top}
.tl li{position:relative;display:grid;grid-template-columns:1fr;gap:.6rem;padding:0 0 clamp(2.4rem,5vw,4rem)}
.tl li::before{content:"";position:absolute;left:calc(-2.4rem - 4px);top:1.2rem;width:9px;height:9px;border-radius:50%;background:var(--blanc);box-shadow:0 0 0 5px rgba(255,255,255,.12);transform:scale(var(--dot,1))}
.tl strong{font-family:var(--serif);font-weight:500;font-size:clamp(3.4rem,10vw,8.6rem);line-height:.9;letter-spacing:-.02em}
.tl p{max-width:50ch;color:#c9cdd1;margin:0}
@media (min-width:900px){
  .tl{padding-left:0}
  .tl li{grid-template-columns:minmax(260px,.9fr) 1.2fr;gap:4rem;align-items:start;padding-left:3.2rem}
  .tl-line{left:0}
  .tl li::before{left:-4px}
  .tl p{padding-top:1.4rem;font-size:1.08rem}
}

/* engagements */
.eng{position:relative;padding:clamp(5rem,11vw,9rem) 0;text-align:center;overflow:hidden;background:radial-gradient(60% 70% at 50% 50%,#1c1d20,var(--noir) 75%)}
.eng .seal{opacity:.9}
.eng-grid{position:relative;display:grid;grid-template-columns:1fr;gap:2.4rem;margin-top:clamp(2.5rem,6vw,4.5rem);text-align:left}
.eng-item{border-top:1px solid rgba(255,255,255,.3);padding-top:1.4rem}
.eng-item h3{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:.5rem}
.eng-item p{color:#c9cdd1;margin:0;max-width:34ch}
.eng-item .num{font-family:var(--serif);font-style:italic;color:var(--acier-sombre);display:block;margin-bottom:.6rem}
.eng h2{font-size:clamp(3rem,10vw,8.4rem)}
@media (min-width:800px){.eng-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}

/* ---------- mobile : réglages communs de la mission 2 ---------- */
@media (max-width:899px){
  .sweep{height:clamp(190px,38vh,320px)}
  .sh-copy h1{font-size:clamp(3rem,15vw,5.2rem)}
  .sheet{clip-path:polygon(4% 12%,96% 12%,96% 84%,90% 89%,4% 89%)}
  .sheet h1{font-size:clamp(2.7rem,13.5vw,4.6rem)}
  .at-hero .scroll-cue{display:flex;bottom:calc(11% + 1rem)}
  .vframe{clip-path:polygon(0 0,calc(100% - 26px) 0,100% 26px,100% 100%,26px 100%,0 calc(100% - 26px))}
  .vframe-in{clip-path:polygon(0 0,calc(100% - 25px) 0,100% 25px,100% 100%,25px 100%,0 calc(100% - 25px))}
  .vframe{aspect-ratio:4/5}
  .vframe-cap h2{font-size:clamp(1.9rem,9vw,3rem)}
  .print-stage{min-height:360px}
}

/* ---------- mouvement réduit : tout est visible, rien ne bouge ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .steel,.steel .wi{background-position:30% 0}
  .marquee-track{transform:none}
  .sweep-bar,.pt,.cursor{display:none}
  .sweep-layer--fill{display:none}
  .sweep-layer--line .sweep-word{color:#e6e9ec;-webkit-text-stroke:0}
  .wipe,.print-dev{display:none}
  .pcard{transform:none!important}
}

/* ==========================================================
   Page Restaurants (mission 3)
   ========================================================== */
.rs-hero .sh-copy h1{font-size:clamp(2.9rem,8.4vw,7.6rem);max-width:13ch}
.rs-hero .btn-row{margin-top:2rem}
@media (max-width:899px){.rs-hero .sh-copy h1{font-size:clamp(2.6rem,12.5vw,4.4rem)}}

.rs-table{position:relative;background:radial-gradient(70% 55% at 80% 20%,#16171a,var(--noir) 70%);overflow:clip}
.rs-table-in{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center;padding:clamp(4.5rem,11vw,7rem) var(--gutter) clamp(2.5rem,6vw,4rem);width:min(100%,1500px);margin:0 auto}
.rs-copy h2{font-size:clamp(2.4rem,5.6vw,5rem);max-width:12ch}
.rs-copy .lead{max-width:44ch}
.rs-stage{width:100%;max-width:760px;margin-inline:auto}
.rs-svg{width:100%;height:auto;overflow:visible}
.rs-ln{stroke:rgba(232,236,240,.8);stroke-dasharray:1;stroke-dashoffset:0;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.rs-hl{stroke:#fff}
.rs-fill{opacity:.9}
@media (min-width:900px){
  .rs-table-in{grid-template-columns:.9fr 1.1fr;gap:5vw;min-height:calc(100vh - var(--admin-h,0px));min-height:calc(100svh - var(--admin-h,0px));padding-block:5.5rem 2.5rem}
}
.rs-mats{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;padding:0 var(--gutter) clamp(4rem,9vw,7rem);width:min(100%,1500px);margin:0 auto}
.rs-mats li{position:relative;aspect-ratio:4/5;overflow:hidden;background:#111;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%)}
.rs-mats img{width:100%;height:100%;object-fit:cover;filter:contrast(1.05)}
.rs-mats li::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.3) 50%,transparent 64%);transform:translateX(-120%)}
.rs-mats li:hover::after{transform:translateX(120%);transition:transform 1.2s var(--ease)}
@media (min-width:800px){.rs-mats{grid-template-columns:repeat(4,1fr);gap:1.2rem}}

.rs-know .chap-copy h2{max-width:13ch}

.rs-exp{background:var(--noir);overflow:clip}
.rs-exp-in{display:grid;grid-template-columns:1fr;gap:2.4rem;align-items:center;padding:clamp(4.5rem,11vw,8rem) var(--gutter);width:min(100%,1500px);margin:0 auto}
.rs-exp-img{position:relative;width:min(100%,360px);margin-inline:auto;aspect-ratio:1/1;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 32px),calc(100% - 32px) 100%,0 100%);background:#111}
.rs-exp-img img{width:100%;height:100%;object-fit:cover}
.rs-big{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(2.1rem,5.6vw,4.8rem);line-height:1.08;letter-spacing:-.01em;margin:0 0 1.6rem;max-width:16ch;color:var(--blanc)}
.rs-ph{display:inline}
@media (min-width:900px){.rs-exp-in{grid-template-columns:.8fr 1.2fr;gap:6vw;min-height:90vh}}

.rs-steps{background:radial-gradient(70% 60% at 20% 0%,#16171a,var(--noir) 70%);padding:clamp(4.5rem,11vw,8rem) 0;overflow:clip}
.rs-steps h2{font-size:clamp(3rem,9vw,7.5rem);margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.rs-ol-wrap{position:relative}
.rs-ol{list-style:none;margin:0;padding:0 0 0 2.4rem;display:grid;gap:2.6rem}
.rs-line{position:absolute;left:0;top:.4rem;bottom:.4rem;width:1px;background:var(--ligne)}
.rs-line i{display:block;width:100%;height:100%;background:linear-gradient(#fff,#9aa1a9);transform:scaleY(1);transform-origin:top}
.rs-step{position:relative}
.rs-step::before{content:"";position:absolute;left:calc(-2.4rem - 4px);top:1rem;width:9px;height:9px;border-radius:50%;background:var(--blanc);box-shadow:0 0 0 5px rgba(255,255,255,.12)}
.rs-n{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(4.5rem,12vw,8rem);line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.4);margin-bottom:.6rem}
.rs-step h3{font-size:clamp(1.9rem,3vw,2.6rem);margin-bottom:.4rem}
.rs-step p{color:#c9cdd1;margin:0;max-width:30ch}
.rs-fine{display:block;margin-top:.6rem;font-size:.74rem;letter-spacing:.06em;color:var(--acier-sombre)}
@media (min-width:900px){
  .rs-ol{grid-template-columns:repeat(4,1fr);gap:2.5rem;padding:3rem 0 0}
  .rs-line{left:0;right:0;top:0;bottom:auto;width:auto;height:1px}
  .rs-line i{transform:scaleX(1);transform-origin:left}
  .rs-step::before{left:0;top:-4px}
  .rs-step{padding-right:.5rem}
  .rs-steps-in{min-height:calc(100vh - 11rem);display:flex;flex-direction:column;justify-content:center}
}

.rs-cta h2{font-size:clamp(2.6rem,8vw,6.5rem);margin:2rem auto 2.2rem;max-width:14ch}
.rs-cta .sig-logo{margin-inline:auto}
@media (prefers-reduced-motion:reduce){.rs-mats li::after{display:none}}