/* ============ Griffondart - Maquette accueil ============ */
:root{
  --blanc:#FFFFFF;
  --papier:#FBF8F3;
  --papier-2:#F5EFE6;
  --encre:#1C1A17;
  --encre-fort:#000000;
  --gris-doux:#7A736B;
  --ligne:#ECE5DB;

  --terracotta:#E29B7B;
  --ocre:#E7C46A;
  --rose-poudre:#E6B2AE;
  --sauge:#A7BE9E;
  --bleu-doux:#8FB7BC;
  --or:#C2A368;

  --ff-titre:"Fraunces",Georgia,serif;
  --ff-texte:"Mulish",-apple-system,BlinkMacSystemFont,sans-serif;
  --ff-script:"Caveat",cursive;

  --container:1240px;
  --pad:clamp(20px,5vw,40px);
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow-soft:0 1px 2px rgba(28,26,23,.04),0 10px 30px rgba(28,26,23,.06);
  --shadow-lift:0 2px 6px rgba(28,26,23,.06),0 22px 50px rgba(28,26,23,.10);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--blanc);color:var(--encre);
  font-family:var(--ff-texte);font-size:17px;line-height:1.6;
  font-weight:400;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;}
::selection{background:var(--ocre);color:var(--encre-fort);}

h1,h2,h3,h4{font-family:var(--ff-titre);color:var(--encre-fort);font-weight:500;
  margin:0;line-height:1.08;letter-spacing:-.01em;text-wrap:balance;
  font-optical-sizing:auto;}
p{margin:0;text-wrap:pretty;}

.container{max-width:var(--container);margin:0 auto;padding-inline:var(--pad);}
.section{padding-block:clamp(56px,8vw,104px);}
.section--paper{background:var(--papier);}
.section--paper2{background:var(--papier-2);}

.kicker{font-family:var(--ff-texte);font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.18em;color:var(--gris-doux);
  display:inline-flex;align-items:center;gap:.55em;margin:0 0 .9rem;}
.kicker .dot{width:6px;height:6px;border-radius:50%;background:var(--accent,var(--terracotta));display:inline-block;}
.kicker--hand{font-family:var(--ff-script);font-size:1.45rem;font-weight:600;
  text-transform:none;letter-spacing:0;color:var(--accent,var(--terracotta));}

.h2{font-size:clamp(1.7rem,3.4vw,2.6rem);}
.lead{font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--encre);line-height:1.55;max-width:46ch;}
.muted{color:var(--gris-doux);}

/* ============ Marqueur / highlighter ============ */
.mark{position:relative;display:inline;white-space:nowrap;}
.mark > span{position:relative;z-index:1;}
.mark::after{
  content:"";position:absolute;left:-.18em;right:-.18em;bottom:.02em;
  height:.46em;background:var(--mark-color,var(--ocre));opacity:.6;z-index:0;
  border-radius:3px 6px 4px 7px;
  clip-path:polygon(0% 28%,3% 8%,40% 14%,72% 4%,100% 18%,98% 86%,60% 96%,22% 90%,1% 98%);
  transform:scaleX(1);transform-origin:left center;
  transition:transform .28s var(--ease);
}
.mark.is-on::after,.mark:hover::after{transform:scaleX(1);}

/* nav link marker */
.navlink{position:relative;font-size:.86rem;font-weight:600;letter-spacing:.02em;
  color:var(--encre);padding:.35em .1em;white-space:nowrap;}
.navlink::after{
  content:"";position:absolute;left:-3px;right:-3px;bottom:.18em;height:.5em;
  background:var(--mark-color,var(--ocre));opacity:.62;z-index:-1;
  border-radius:4px 7px 5px 8px;
  clip-path:polygon(0% 30%,4% 6%,45% 16%,78% 2%,100% 22%,97% 88%,55% 98%,20% 88%,2% 100%);
  transform:scaleX(0) skewX(-2deg);transform-origin:left center;
  transition:transform .26s var(--ease);
}
.navlink:hover::after,.navlink[aria-current="page"]::after{transform:scaleX(1) skewX(-2deg);}

/* ============ Buttons ============ */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--ff-texte);
  font-weight:700;font-size:.92rem;letter-spacing:.01em;padding:.85em 1.5em;
  border-radius:6px;transition:transform .14s var(--ease),box-shadow .2s var(--ease),background .2s;}
.btn .arrow{transition:transform .2s var(--ease);}
.btn:hover .arrow{transform:translateX(3px);}
.btn--primary{background:var(--encre-fort);color:#fff;box-shadow:0 6px 16px rgba(28,26,23,.16);}
.btn--primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(28,26,23,.22);}
.btn--primary:active{transform:translateY(1px);}
.btn--ghost{background:transparent;color:var(--encre);border:1.5px solid var(--encre);}
.btn--ghost:hover{background:var(--encre-fort);color:#fff;}
.btn--light{background:#fff;color:var(--encre-fort);box-shadow:var(--shadow-soft);}
.btn--light:hover{transform:translateY(-1px);box-shadow:var(--shadow-lift);}
.btn--lg{padding:1.02em 1.8em;font-size:1rem;}
.btn--photo{background:rgba(255,255,255,.1);color:#fff;border:1.5px solid rgba(255,255,255,.7);backdrop-filter:blur(4px);}
.btn--photo:hover{background:#fff;color:var(--encre-fort);border-color:#fff;}

/* ============ Hero V2 : full-bleed ============ */
.hero2{position:relative;height:clamp(560px,92vh,880px);overflow:hidden;background:#000;}
.hero2__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s var(--ease);}
.hero2__slide.is-active{opacity:1;}
.hero2__bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);}
.hero2__slide.is-active .hero2__bg{animation:kenburns 7.5s ease-out forwards;}
@keyframes kenburns{from{transform:scale(1.04);}to{transform:scale(1.13);}}
.hero2__scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,18,15,.34) 0%,rgba(20,18,15,0) 26%,rgba(20,18,15,.18) 58%,rgba(20,18,15,.82) 100%),
             linear-gradient(80deg,rgba(20,18,15,.6) 0%,rgba(20,18,15,.12) 48%,transparent 72%);}
.hero2__inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;
  padding-block:clamp(2.4rem,6vw,4.5rem);color:#fff;}
.hero2__text{max-width:40rem;}
.hero2__text .kicker--hand{display:block;margin-bottom:.3rem;}
.hero2 h1{color:#fff;font-size:clamp(2.6rem,6vw,5rem);line-height:1.02;font-weight:500;margin-bottom:1.1rem;
  text-shadow:0 2px 30px rgba(0,0,0,.4);}
.hero2 h1 em{font-style:italic;}
.hero2__sub{font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:36ch;margin-bottom:1.8rem;color:rgba(255,255,255,.92);
  text-shadow:0 1px 16px rgba(0,0,0,.5);}
.hero2__cta{display:flex;gap:.8rem;flex-wrap:wrap;}
.hero2__controls{display:flex;align-items:center;gap:1rem;margin-top:clamp(2rem,4vw,3rem);}
.hero2__pause{width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;transition:.15s var(--ease);}
.hero2__pause:hover{background:rgba(255,255,255,.16);}
.hero2__dots{display:flex;gap:.5rem;}
.hero2__dot{width:34px;height:4px;border-radius:100px;background:rgba(255,255,255,.32);overflow:hidden;position:relative;}
.hero2__dot.is-active{background:rgba(255,255,255,.4);}
.hero2__dot .fill{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left;}
.hero2__dot.is-active .fill{animation:dotfill var(--slidedur,6s) linear forwards;}
.hero2__dot.is-paused .fill{animation-play-state:paused;}
.hero2__count{font-family:var(--ff-titre);font-size:1.05rem;letter-spacing:.05em;color:#fff;}
.hero2__count span{color:rgba(255,255,255,.6);font-size:.85em;}
.hero2__arrows{margin-left:auto;display:flex;gap:.5rem;}
.hero2__arrow{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);color:#fff;background:rgba(255,255,255,.06);
  display:inline-flex;align-items:center;justify-content:center;transition:.15s var(--ease);}
.hero2__arrow:hover{background:#fff;color:var(--encre-fort);}
@media(max-width:620px){
  .hero2__controls{flex-wrap:wrap;gap:.7rem;}
  .hero2__count{display:none;}
  .hero2__arrows{margin-left:0;}
}

.textlink{font-weight:700;font-size:.92rem;display:inline-flex;align-items:center;gap:.45em;
  border-bottom:1.5px solid transparent;transition:border-color .2s,gap .2s;padding-bottom:2px;}
.textlink .arrow{transition:transform .2s var(--ease);}
.textlink:hover{border-color:var(--encre);}
.textlink:hover .arrow{transform:translateX(3px);}

/* ============ Badge ============ */
.badge{display:inline-flex;align-items:center;gap:.4em;font-size:.72rem;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;padding:.4em .7em;border-radius:100px;
  background:var(--badge-bg,var(--papier-2));color:var(--encre);}

/* ============ Top utility bar ============ */
.topbar{background:var(--blanc);border-bottom:1px solid var(--ligne);font-size:.8rem;color:var(--gris-doux);}
.topbar .container{display:flex;align-items:center;justify-content:space-between;height:38px;}
.topbar__msg{display:flex;align-items:center;gap:.5em;letter-spacing:.01em;}
.topbar__msg .sep{color:var(--ligne);}
.topbar__right{display:flex;align-items:center;gap:1.1rem;}
.topbar__right button,.topbar__right a{display:inline-flex;align-items:center;gap:.4em;color:var(--gris-doux);font-weight:600;transition:color .18s;}
.topbar__right button:hover,.topbar__right a:hover{color:var(--encre-fort);}
.lang{display:inline-flex;gap:.3em;}
.lang b{color:var(--encre-fort);}
.cartcount{background:var(--encre-fort);color:#fff;border-radius:100px;font-size:.66rem;
  min-width:1.5em;height:1.5em;display:inline-flex;align-items:center;justify-content:center;padding:0 .35em;}

/* ============ Header / nav ============ */
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--ligne);transition:box-shadow .2s;}
.header.is-scrolled{box-shadow:0 6px 24px rgba(28,26,23,.06);}
.header .container{display:flex;align-items:center;gap:1.5rem;height:74px;}
.logo{display:inline-flex;align-items:center;line-height:1;}
.logo-img{height:54px;width:auto;display:block;}
.footer__brand .logo-img{height:64px;}
.nav{display:flex;align-items:center;gap:clamp(.6rem,1.3vw,1.35rem);margin-left:auto;flex-wrap:nowrap;}
.nav__item{position:relative;}
.nav__item.has-menu > .navlink::before{content:"";}
.dropdown{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);
  background:#fff;border:1px solid var(--ligne);border-radius:12px;box-shadow:var(--shadow-lift);
  padding:.5rem;min-width:210px;opacity:0;visibility:hidden;transition:.2s var(--ease);z-index:70;}
.nav__item:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.dropdown a{display:block;padding:.55em .8em;border-radius:8px;font-size:.88rem;font-weight:600;color:var(--encre);transition:background .15s;}
.dropdown a:hover{background:var(--papier);}
.dropdown a .d-sub{display:block;font-weight:400;font-size:.76rem;color:var(--gris-doux);margin-top:.05em;}
.dropdown--mega{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem 1rem;min-width:600px;padding:1rem 1.1rem;}
.dropcol__h{font-family:var(--ff-texte);font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--gris-doux);margin:.2rem .8rem .5rem;font-weight:800;}
.dropcol a{display:block;padding:.4em .8em;border-radius:8px;font-size:.85rem;font-weight:600;color:var(--encre);transition:background .15s,color .15s;}
.dropcol a:hover{background:var(--papier);color:var(--mark-color,var(--terracotta));}
.header__icons{display:flex;align-items:center;gap:.4rem;}
.iconbtn{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  color:var(--encre);transition:background .16s;position:relative;}
.iconbtn:hover{background:var(--papier-2);}
.iconbtn .cc{position:absolute;top:2px;right:2px;background:var(--terracotta);color:#fff;border-radius:100px;
  font-size:.6rem;font-weight:700;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;}
.burger{display:none;}

/* ============ Hero carousel ============ */
.hero{position:relative;height:clamp(520px,80vh,760px);overflow:hidden;background:var(--papier);}
.hero__track{position:absolute;inset:0;}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity .9s var(--ease);pointer-events:none;}
.hero__slide.is-active{opacity:1;pointer-events:auto;}
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;
  filter:blur(34px) saturate(.82) brightness(1.12);transform:scale(1.25);}
.hero__veil{position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.78) 38%,rgba(255,255,255,.5) 66%,rgba(255,255,255,.34) 100%);}
.hero__inner{position:relative;height:100%;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:2rem;}
.hero__text{max-width:33rem;}
.hero__text .kicker--hand{margin-bottom:.2rem;display:block;}
.hero h1{font-size:clamp(2.3rem,4.9vw,3.9rem);font-weight:500;line-height:1.1;margin-bottom:1.7rem;}
.hero h1 em{font-style:italic;}
.hero__sub{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--encre);max-width:34ch;margin-bottom:1.7rem;}
.hero__cta{display:flex;gap:.8rem;flex-wrap:wrap;}
.hero__art{position:relative;height:100%;display:flex;align-items:center;justify-content:center;}

/* hero visual variants */
.hero-halo{position:absolute;width:min(34vw,420px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 38% 35%,rgba(255,255,255,.9),transparent 70%);}
.hero-jewel-wrap{position:relative;display:flex;align-items:center;justify-content:center;gap:1.4rem;
  filter:drop-shadow(0 26px 40px rgba(28,26,23,.22));}
.hero-stack{position:relative;width:min(30vw,360px);height:min(30vw,360px);}
.hero-stack .sw{position:absolute;width:60%;aspect-ratio:.66;border-radius:10px;overflow:hidden;
  box-shadow:0 14px 34px rgba(28,26,23,.20);background-size:cover;background-position:center;border:5px solid #fff;}
.hero-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:min(30vw,360px);}
.hero-grid .sw{aspect-ratio:.7;border-radius:10px;background-size:cover;background-position:center;
  box-shadow:0 10px 26px rgba(28,26,23,.16);border:4px solid #fff;}
.hero-photo{margin:0;position:relative;width:min(34vw,440px);background:#fff;padding:12px 12px 0;border-radius:16px;
  box-shadow:0 30px 60px rgba(28,26,23,.22);transform:rotate(-1.5deg);}
.hero-photo img{width:100%;aspect-ratio:1.25;object-fit:cover;border-radius:10px;display:block;}
.hero-photo figcaption{font-family:var(--ff-texte);font-size:.78rem;font-weight:600;color:var(--gris-doux);
  text-align:center;padding:.7rem .4rem .8rem;letter-spacing:.01em;}

.hero__controls{position:absolute;left:0;right:0;bottom:24px;z-index:5;}
.hero__controls .container{display:flex;align-items:center;gap:1rem;}
.hero__dots{display:flex;gap:.5rem;}
.hero__dot{width:30px;height:4px;border-radius:100px;background:rgba(28,26,23,.2);transition:background .2s;overflow:hidden;position:relative;}
.hero__dot.is-active{background:rgba(28,26,23,.25);}
.hero__dot .fill{position:absolute;inset:0;background:var(--terracotta);transform:scaleX(0);transform-origin:left;}
.hero__dot.is-active .fill{animation:dotfill var(--slidedur,6s) linear forwards;}
.hero__dot.is-paused .fill{animation-play-state:paused;}
@keyframes dotfill{to{transform:scaleX(1);}}
.hero__pause{width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:var(--shadow-soft);
  display:inline-flex;align-items:center;justify-content:center;color:var(--encre);transition:transform .15s;}
.hero__pause:hover{transform:scale(1.06);}
.hero__arrows{margin-left:auto;display:flex;gap:.5rem;}
.hero__arrow{width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:var(--shadow-soft);
  display:inline-flex;align-items:center;justify-content:center;transition:transform .15s,background .15s;}
.hero__arrow:hover{transform:scale(1.06);background:var(--papier);}

/* ============ Réassurance bar ============ */
.assure{border-bottom:1px solid var(--ligne);background:#fff;}
.assure .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 2.6rem;padding-block:1.5rem;}
.assure__item{display:flex;align-items:center;gap:.6em;font-size:.92rem;font-weight:600;color:var(--encre);}
.assure__item .ic{color:var(--terracotta);display:inline-flex;}
.assure__item .stars{color:var(--ocre);letter-spacing:.05em;}
.assure__sep{width:1px;height:26px;background:var(--ligne);}

/* ============ Section heading ============ */
.shead{margin-bottom:clamp(2rem,4vw,3.2rem);}
.shead--center{text-align:center;display:flex;flex-direction:column;align-items:center;}
.shead p{margin-top:.9rem;}

/* ============ Configurator ============ */
.config{background:linear-gradient(180deg,var(--papier) 0%,#fff 100%);}
.config__grid{display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.config__stage{position:relative;background:#fff;border:1px solid var(--ligne);border-radius:22px;
  padding:clamp(1.5rem,3vw,2.5rem);box-shadow:var(--shadow-lift);}
.config__view{position:relative;aspect-ratio:1.15;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 40%,#fff,var(--papier) 78%);overflow:hidden;}
.config__view::after{content:"";position:absolute;left:50%;bottom:16%;width:46%;height:14px;transform:translateX(-50%);
  background:radial-gradient(ellipse,rgba(28,26,23,.16),transparent 70%);filter:blur(3px);}
.config__models{display:flex;gap:.5rem;margin-top:1.1rem;flex-wrap:wrap;justify-content:center;}
.cmodel{display:inline-flex;align-items:center;gap:.5em;padding:.55em 1em;border-radius:100px;border:1.5px solid var(--ligne);
  font-size:.85rem;font-weight:700;color:var(--encre);transition:.18s var(--ease);background:#fff;}
.cmodel:hover{border-color:var(--encre);}
.cmodel.is-on{border-color:var(--sauge);background:#fff;box-shadow:inset 0 0 0 1px var(--sauge);}
.cmodel.is-on .mk{position:relative;}
.config__swhead{display:flex;align-items:baseline;justify-content:space-between;margin:1.6rem 0 .9rem;}
.config__swhead .cur{font-size:.85rem;color:var(--gris-doux);}
.config__swhead .cur b{color:var(--encre);}
.config__swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;}
.cswatch{aspect-ratio:1;border-radius:9px;background-size:cover;background-position:center;cursor:pointer;
  border:2.5px solid transparent;box-shadow:0 2px 8px rgba(28,26,23,.1);transition:transform .16s var(--ease),border-color .16s;position:relative;}
.cswatch:hover{transform:translateY(-2px) scale(1.04);}
.cswatch.is-on{border-color:var(--encre-fort);transform:translateY(-2px) scale(1.04);}
.cswatch.is-on::after{content:"✓";position:absolute;top:-7px;right:-7px;width:19px;height:19px;background:var(--encre-fort);
  color:#fff;border-radius:50%;font-size:.66rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;}
.config__copy .step-tag{font-family:var(--ff-script);color:var(--sauge);font-size:1.5rem;font-weight:700;}
.config__steps{list-style:none;padding:0;margin:1.4rem 0 1.8rem;display:flex;flex-direction:column;gap:1rem;}
.config__steps li{display:flex;gap:1rem;align-items:flex-start;}
.config__steps .n{flex:none;width:34px;height:34px;border-radius:50%;background:var(--papier-2);color:var(--encre-fort);
  font-family:var(--ff-titre);font-weight:600;display:flex;align-items:center;justify-content:center;font-size:1.05rem;}
.config__steps .t b{display:block;font-weight:700;font-size:1.02rem;}
.config__steps .t span{color:var(--gris-doux);font-size:.92rem;}

/* jewel renders */
.jewel{position:relative;filter:drop-shadow(0 16px 24px rgba(28,26,23,.22));}
.jewel .clasp{position:absolute;background:linear-gradient(135deg,#e6cf9c,var(--or));border-radius:50%;
  box-shadow:0 1px 3px rgba(0,0,0,.25),inset 0 1px 1px rgba(255,255,255,.6);z-index:3;}
.fabric{background-size:cover;background-position:center;}

/* ============ Category cards ============ */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
.cat{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:.82;background:var(--papier-2);
  box-shadow:var(--shadow-soft);transition:transform .25s var(--ease),box-shadow .25s var(--ease);display:block;}
.cat:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);}
.cat__img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s var(--ease);}
.cat:hover .cat__img{transform:scale(1.06);}
.cat__tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,26,23,0) 38%,rgba(28,26,23,.62) 100%);}
.cat__accent{position:absolute;top:14px;left:14px;width:34px;height:5px;border-radius:100px;background:var(--accent);}
.cat__label{position:absolute;left:18px;right:18px;bottom:16px;color:#fff;z-index:2;}
.cat__label h3{color:#fff;font-size:1.22rem;}
.cat__label span{font-size:.82rem;opacity:.9;font-weight:600;}

/* ============ Lookbook (réalisations) ============ */
.look-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.look{position:relative;border-radius:14px;overflow:hidden;background:var(--papier-2);box-shadow:var(--shadow-soft);
  aspect-ratio:.82;transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.look:hover{transform:translateY(-3px);}
.look .ph{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s var(--ease);}
.look:hover{box-shadow:var(--shadow-lift);}
.look:hover .ph{transform:scale(1.05);}
.look .meta{position:absolute;left:0;right:0;bottom:0;padding:.9rem 1rem;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(28,26,23,.6));opacity:0;transform:translateY(8px);transition:.25s var(--ease);}
.look:hover .meta{opacity:1;transform:translateY(0);}
.look .meta b{font-family:var(--ff-titre);font-weight:500;font-size:1.02rem;display:block;}
.look .meta span{font-size:.78rem;opacity:.9;}

/* ============ Galerie des tissus ============ */
.tissus__filters{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.8rem;}
.chip{padding:.5em 1em;border-radius:100px;border:1.5px solid var(--ligne);font-size:.84rem;font-weight:700;
  color:var(--encre);transition:.18s var(--ease);position:relative;background:#fff;}
.chip:hover{border-color:var(--encre);}
.chip.is-on{border-color:transparent;}
.chip.is-on .mark::after{transform:scaleX(1);}
.tissus__strip{display:grid;grid-template-columns:repeat(9,1fr);gap:.7rem;}
.tswatch{position:relative;aspect-ratio:.72;border-radius:10px;overflow:hidden;background-size:cover;background-position:center;
  box-shadow:0 4px 14px rgba(28,26,23,.12);cursor:pointer;transition:transform .18s var(--ease);border:4px solid #fff;}
.tswatch:hover{transform:translateY(-3px) scale(1.03);z-index:2;}
.tswatch__tip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(4px);
  background:var(--encre-fort);color:#fff;padding:.5em .7em;border-radius:8px;font-size:.74rem;font-weight:600;white-space:nowrap;
  opacity:0;visibility:hidden;transition:.18s var(--ease);z-index:6;pointer-events:none;box-shadow:var(--shadow-lift);}
.tswatch__tip b{display:block;font-weight:700;}
.tswatch__tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:var(--encre-fort);}
.tswatch:hover .tswatch__tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.tswatch__zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .18s;
  background:rgba(28,26,23,.28);}
.tswatch:hover .tswatch__zoom{opacity:1;}
.tswatch__zoom span{width:34px;height:34px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--encre);}
.tissus__note{margin-top:1.6rem;display:flex;align-items:center;gap:.7rem;color:var(--gris-doux);font-size:.95rem;flex-wrap:wrap;}

/* ============ Pièces uniques ============ */
.uniq-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
.uniq{background:#fff;border:1px solid var(--ligne);border-radius:16px;overflow:hidden;
  box-shadow:var(--shadow-soft);transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.uniq:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);}
.uniq__img{position:relative;aspect-ratio:1;background-size:cover;background-position:center;background-color:var(--papier-2);}
.uniq__img .badge{position:absolute;top:12px;left:12px;}
.uniq__b{padding:1rem 1.1rem 1.2rem;}
.uniq__b h3{font-size:1.08rem;}
.uniq__b span{color:var(--gris-doux);font-size:.85rem;}

/* ============ Avis ============ */
.avis__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:2.2rem;}
.avis__score{display:flex;align-items:center;gap:1rem;}
.avis__score .big{font-family:var(--ff-titre);font-size:2.6rem;line-height:1;color:var(--encre-fort);}
.avis__score .stars{color:var(--ocre);font-size:1.1rem;letter-spacing:.08em;}
.avis__score .sub{font-size:.88rem;color:var(--gris-doux);}
.avis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.avis{background:#fff;border:1px solid var(--ligne);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:.8rem;}
.avis .stars{color:var(--ocre);letter-spacing:.08em;font-size:.95rem;}
.avis__topline{display:flex;align-items:center;justify-content:space-between;gap:.8rem;}
.avis__photo{width:54px;height:54px;border-radius:10px;object-fit:cover;box-shadow:var(--shadow-soft);flex:none;}
.avis p{font-size:1rem;line-height:1.55;}
.avis q{font-family:var(--ff-titre);font-style:italic;quotes:"« " " »";}
.avis__who{display:flex;align-items:center;gap:.7rem;margin-top:auto;padding-top:.4rem;}
.avis__ava{width:40px;height:40px;border-radius:50%;background:var(--accent,var(--papier-2));color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--ff-titre);font-weight:600;}
.avis__who b{font-size:.92rem;}
.avis__who div span{font-size:.78rem;color:var(--gris-doux);display:block;}

/* ============ À propos ============ */
.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.about__media{position:relative;}
.about__media .frame{border-radius:18px;overflow:hidden;box-shadow:var(--shadow-lift);aspect-ratio:.92;background-size:cover;background-position:center;background-color:var(--papier-2);}
.about__media .chip-img{position:absolute;width:42%;aspect-ratio:.8;border-radius:14px;overflow:hidden;border:6px solid #fff;
  box-shadow:var(--shadow-lift);background-size:cover;background-position:center;bottom:-26px;right:-18px;}
.about__media .since{position:absolute;top:-22px;left:-16px;background:#fff;border-radius:14px;box-shadow:var(--shadow-lift);
  padding:.5rem .95rem;font-family:var(--ff-script);font-size:1.5rem;line-height:1.1;color:var(--terracotta);transform:rotate(-4deg);white-space:nowrap;}
.about__body p+p{margin-top:1rem;}

/* ============ Carte cadeau ============ */
.giftcard{background:linear-gradient(110deg,var(--papier-2),var(--papier));}
.giftcard__inner{display:grid;grid-template-columns:1.3fr 1fr;gap:2.5rem;align-items:center;}
.gc-visual{position:relative;aspect-ratio:1.6;border-radius:18px;background:linear-gradient(135deg,var(--bleu-doux),#bcd6d9);
  box-shadow:var(--shadow-lift);overflow:hidden;display:flex;align-items:flex-end;padding:1.4rem;color:#fff;}
.gc-visual .gc-logo{position:absolute;top:1.1rem;left:1.4rem;font-family:var(--ff-script);font-size:1.8rem;color:#fff;z-index:2;}
.gc-visual .gc-tag{position:absolute;top:1.5rem;right:1.4rem;font-family:var(--ff-texte);font-size:.7rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;opacity:.9;z-index:2;}
.gc-visual .gc-amt-big{position:absolute;top:50%;left:1.4rem;transform:translateY(-46%);font-family:var(--ff-titre);
  font-weight:500;font-size:3.6rem;line-height:1;z-index:2;display:flex;align-items:flex-start;gap:.1em;}
.gc-visual .gc-amt-big span{font-size:1.5rem;margin-top:.25em;}
.gc-visual .gc-wax{position:absolute;inset:0;opacity:.18;background-size:cover;background-position:center;mix-blend-mode:luminosity;}
.gc-visual b{position:relative;font-family:var(--ff-titre);font-weight:500;font-size:1.1rem;z-index:2;}
.gc-amounts{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin-top:1.5rem;}
.gc-chip{padding:.5em 1em;border-radius:100px;border:1.5px solid var(--ligne);background:#fff;
  font-family:var(--ff-titre);font-weight:500;font-size:1rem;color:var(--encre);transition:.16s var(--ease);}
.gc-chip:hover{border-color:var(--encre);transform:translateY(-1px);}
.gc-chip.is-on{border-color:transparent;background:var(--bleu-doux);color:#fff;box-shadow:0 6px 14px rgba(143,183,188,.5);}
.gc-range{font-size:.88rem;margin-left:.3rem;}
.gc-custom{display:flex;align-items:center;gap:.8rem;margin-top:1rem;flex-wrap:wrap;}
.gc-custom label{font-size:.85rem;font-weight:700;color:var(--encre);}
.gc-field{display:inline-flex;align-items:center;gap:.3em;border:1.5px solid var(--ligne);border-radius:8px;padding:.4em .7em;background:#fff;}
.gc-field:focus-within{border-color:var(--bleu-doux);}
.gc-field input{width:4.5em;border:0;outline:none;font-family:var(--ff-titre);font-size:1.2rem;font-weight:500;color:var(--encre);background:transparent;}
.gc-field span{font-family:var(--ff-titre);font-size:1.1rem;color:var(--gris-doux);}

/* ============ Newsletter ============ */
.news{text-align:center;}
.news__inner{max-width:620px;margin:0 auto;}
.news form{display:flex;gap:.6rem;margin-top:1.6rem;}
.news input{flex:1;padding:.9em 1.1em;border-radius:8px;border:1.5px solid var(--ligne);font-family:inherit;font-size:1rem;background:#fff;color:var(--encre);}
.news input:focus{outline:none;border-color:var(--encre);}
.news .ok{color:var(--sauge);font-weight:700;margin-top:1rem;min-height:1.2em;}

/* ============ Guide des tailles ============ */
.guide-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
.guide{background:#fff;border:1px solid var(--ligne);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-soft);
  display:flex;flex-direction:column;gap:.55rem;transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.guide:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);}
.guide__ic{width:46px;height:46px;border-radius:12px;background:var(--papier-2);color:var(--bleu-doux);
  display:flex;align-items:center;justify-content:center;margin-bottom:.3rem;}
.guide h3{font-size:1.08rem;}
.guide p{color:var(--gris-doux);font-size:.92rem;line-height:1.5;flex:1;}
.guide .textlink{align-self:flex-start;border:0;}
@media(max-width:1080px){.guide-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.guide-grid{grid-template-columns:1fr;}}

/* ============ Bouton thème clair/sombre ============ */
.theme-toggle{position:fixed;right:clamp(16px,3vw,28px);bottom:clamp(16px,3vw,28px);z-index:80;
  width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:var(--papier-2);color:var(--encre);border:1px solid var(--ligne);box-shadow:var(--shadow-lift);
  transition:transform .18s var(--ease),box-shadow .2s var(--ease),color .2s var(--ease);}
.theme-toggle:hover{transform:translateY(-2px) rotate(-12deg);color:var(--or);}
.theme-toggle:active{transform:translateY(0) scale(.94);}
.theme-toggle svg{transition:transform .3s var(--ease);}

/* ============ Footer ============ */
.footer{background:var(--papier);border-top:1px solid var(--ligne);padding-block:clamp(3rem,5vw,4.5rem) 2rem;}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem;}
.footer__brand .logo{margin-bottom:.9rem;}
.footer__brand p{color:var(--gris-doux);font-size:.95rem;max-width:30ch;}
.footer__social{display:flex;gap:.6rem;margin-top:1.2rem;}
.footer__social a{width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid var(--ligne);
  display:flex;align-items:center;justify-content:center;color:var(--encre);transition:.16s;}
.footer__social a:hover{background:var(--encre-fort);color:#fff;}
.footer__col h4{font-family:var(--ff-texte);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-doux);margin-bottom:1rem;}
.footer__col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem;}
.footer__col a{font-size:.92rem;color:var(--encre);transition:color .15s;}
.footer__col a:hover{color:var(--terracotta);}
.footer__bottom{margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--ligne);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;font-size:.82rem;color:var(--gris-doux);}
.footer__pay{display:flex;gap:.5rem;align-items:center;}
.footer__pay .pm{height:24px;padding:0 .5em;border:1px solid var(--ligne);border-radius:5px;background:#fff;
  display:flex;align-items:center;font-size:.66rem;font-weight:800;letter-spacing:.02em;color:var(--encre);}

/* ============ Mobile nav ============ */
.scrim{position:fixed;inset:0;background:rgba(28,26,23,.4);z-index:90;opacity:0;visibility:hidden;transition:.25s;}
.scrim.is-on{opacity:1;visibility:visible;}
.offcanvas{position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);background:#fff;z-index:95;
  transform:translateX(100%);transition:transform .32s var(--ease);display:flex;flex-direction:column;padding:1.4rem;overflow-y:auto;}
.offcanvas.is-on{transform:translateX(0);}
.offcanvas__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.4rem;}
.offcanvas nav{display:flex;flex-direction:column;}
.offcanvas nav a{padding:.85em 0;border-bottom:1px solid var(--ligne);font-family:var(--ff-titre);font-size:1.2rem;font-weight:500;}
.offcanvas nav a .mark::after{height:.4em;}
.offcanvas__foot{margin-top:auto;padding-top:1.4rem;color:var(--gris-doux);font-size:.85rem;}

/* ============ Reveal (toujours visible - pas de gating) ============ */
.reveal{opacity:1;transform:none;}

/* ============ Responsive ============ */
@media(max-width:1080px){
  .cat-grid{grid-template-columns:repeat(2,1fr);}
  .look-grid{grid-template-columns:repeat(3,1fr);}
  .uniq-grid{grid-template-columns:repeat(2,1fr);}
  .tissus__strip{grid-template-columns:repeat(6,1fr);}
  .config__swatches{grid-template-columns:repeat(6,1fr);}
}
@media(max-width:920px){
  .nav,.header__icons .desk{display:none;}
  .burger{display:inline-flex;margin-left:auto;}
  .header__icons{margin-left:0;}
  .hero__inner{grid-template-columns:1fr;}
  .hero__art{display:none;}
  .hero__text{max-width:none;}
  .config__grid,.about__grid,.giftcard__inner{grid-template-columns:1fr;}
  .avis-grid{grid-template-columns:1fr;}
  .footer__grid{grid-template-columns:1fr 1fr;gap:1.8rem 1.4rem;}
  .footer__brand{grid-column:1/-1;}
}
@media(max-width:620px){
  body{font-size:16px;}
  .topbar__msg{display:none;}
  .cat-grid,.look-grid{grid-template-columns:repeat(2,1fr);}
  .uniq-grid{grid-template-columns:1fr 1fr;}
  .tissus__strip{grid-template-columns:repeat(4,1fr);}
  .config__swatches{grid-template-columns:repeat(5,1fr);}
  .news form{flex-direction:column;}
  .footer__grid{grid-template-columns:1fr 1fr;}
  .look .meta{opacity:1;transform:none;}
}
@media(max-width:420px){
  .cat-grid{grid-template-columns:1fr;}
  .tissus__strip{grid-template-columns:repeat(3,1fr);}
}
