/* ============================================================
   Marrakech Artisana — feuille de style unique
   Palette : voir :root ci-dessous. Ne change que ces valeurs
   pour changer les couleurs de TOUT le site.
   ============================================================ */

:root{
  --ivoire:#F7F3EA;
  --sable:#EADFC8;
  --cuir:#A15C38;
  --cuir-fonce:#7E4526;
  --vert:#2C4A3B;
  --or:#B08D3F;
  --encre:#1C1A17;
  --argile:#6B6257;
  --ligne:#E3D8C3;
  --blanc:#FFFFFF;

  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Jost',-apple-system,'Segoe UI',sans-serif;
  --arabe:'Amiri',Georgia,serif;

  --max:1240px;
  --pad:24px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;background:var(--ivoire);color:var(--encre);
  font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--cuir);text-decoration:none}
a:hover{color:var(--cuir-fonce)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;margin:0}
h1{font-size:clamp(34px,5vw,58px)}
h2{font-size:clamp(26px,3.4vw,38px)}
h3{font-size:21px}
p{margin:0}

/* --- arabe : direction droite-à-gauche --- */
html[dir="rtl"] body{font-family:var(--arabe);font-weight:400}
html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3{font-family:var(--arabe);font-weight:700}
html[dir="rtl"] .eyebrow,html[dir="rtl"] .btn,html[dir="rtl"] .nav a{letter-spacing:0}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.eyebrow{font-size:11px;letter-spacing:.26em;color:var(--cuir);text-transform:uppercase}
.muted{color:var(--argile);font-size:14px}
.center{text-align:center}

/* ---------- boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:48px;padding:0 26px;border-radius:3px;border:1px solid transparent;
  font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  cursor:pointer;transition:background .15s,color .15s;
}
.btn--primary{background:var(--cuir);color:#fff}
.btn--primary:hover{background:var(--cuir-fonce);color:#fff}
.btn--ghost{border-color:var(--vert);color:var(--vert);background:transparent}
.btn--ghost:hover{background:var(--vert);color:var(--ivoire)}
.btn--light{border-color:var(--sable);color:#fff;background:transparent}
.btn--wide{width:100%}

/* ---------- barre du haut ---------- */
.topbar{background:var(--vert);color:var(--sable);font-size:11px;letter-spacing:.14em}
.topbar .wrap{display:flex;gap:18px;align-items:center;justify-content:center;
  min-height:38px;flex-wrap:wrap;text-transform:uppercase}
.ticker{position:relative;width:100%;height:38px;overflow:hidden}
.ticker .tick{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  gap:9px;text-align:center;opacity:0;transform:translateY(8px);
  transition:opacity .55s ease,transform .55s ease;pointer-events:none;padding:0 4px}
.ticker .tick.is-on{opacity:1;transform:none}
.ticker .tick::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--or);flex:none}
@media (prefers-reduced-motion:reduce){
  .ticker{height:auto;min-height:38px}
  .ticker .tick{position:static;opacity:1;transform:none;display:none}
  .ticker .tick.is-on{display:flex}
}
.dot{width:3px;height:3px;border-radius:50%;background:var(--or);flex:none}

/* ---------- en-tête ---------- */
.header{background:var(--ivoire);border-bottom:1px solid var(--ligne);position:sticky;top:0;z-index:40}
.header .wrap{display:flex;align-items:center;gap:22px;min-height:78px}
.brand{display:flex;align-items:center;gap:11px}
.brand svg{width:40px;height:40px;flex:none}
.brand b{font-family:var(--serif);font-size:19px;font-weight:500;letter-spacing:.13em;
  color:var(--encre);display:block;line-height:1}
.brand i{font-size:9px;letter-spacing:.42em;color:var(--cuir);display:block;margin-top:3px;font-style:normal}
.nav{display:flex;gap:22px;margin-inline-start:auto}
.nav a{font-size:13px;color:var(--encre);letter-spacing:.04em}
.nav a.is-active{color:var(--cuir);border-bottom:1px solid var(--cuir)}
.header-tools{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.nav+.header-tools{margin-inline-start:0}

/* sélecteur de langue */
.lang{display:flex;border:1px solid var(--ligne);border-radius:3px;overflow:hidden}
.lang button{
  min-width:46px;min-height:44px;border:0;background:transparent;cursor:pointer;
  font-family:var(--sans);font-size:11px;letter-spacing:.12em;color:var(--argile);
}
.lang button[aria-pressed="true"]{background:var(--vert);color:var(--ivoire)}

.burger{display:none;width:44px;height:44px;border:0;background:none;cursor:pointer}
.burger span{display:block;height:1.5px;background:var(--encre);margin:5px auto;width:22px}

/* ---------- héros ---------- */
.hero{position:relative;min-height:clamp(340px,54vh,540px);display:flex;align-items:center;
  overflow:hidden;background:var(--sable)}
.hero-slides{position:absolute;inset:0}
.hero-slides .slide,.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 42%;opacity:0;transition:opacity 1.1s ease}
.hero-slides .slide.is-on,.hero-slide.is-on{opacity:1}
.hero-dots{position:absolute;bottom:14px;inset-inline-end:20px;z-index:3;display:flex;gap:4px}
.hero-dots button{width:34px;height:34px;padding:0;border:0;background:none;cursor:pointer;
  display:grid;place-items:center}
.hero-dots button::before{content:"";width:9px;height:9px;border-radius:50%;
  background:rgba(247,243,234,.45);transition:background .2s,transform .2s}
.hero-dots button[aria-current="true"]::before{background:#EFC377;transform:scale(1.4)}
@media (prefers-reduced-motion:reduce){.hero-slides .slide,.hero-slide{transition:none}}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(24,22,19,.86) 0%,rgba(24,22,19,.66) 20%,rgba(24,22,19,.26) 44%,rgba(24,22,19,0) 64%)}
html[dir="rtl"] .hero::after{background:linear-gradient(-90deg,rgba(24,22,19,.86) 0%,rgba(24,22,19,.66) 20%,rgba(24,22,19,.26) 44%,rgba(24,22,19,0) 64%)}
.hero .wrap{position:relative;z-index:2;max-width:none;width:100%;flex:1 1 auto;margin:0;
  padding-inline-start:clamp(18px,4.5vw,64px);padding-inline-end:clamp(18px,4.5vw,64px)}
.hero-box{max-width:min(560px,92%);display:flex;flex-direction:column;gap:18px;padding:52px 0;
  align-items:flex-start;text-align:start;margin-inline-end:auto}
html[dir="rtl"] .hero-box{margin-inline-end:auto;margin-inline-start:0}
.hero h1{color:#fff}
.hero p{color:#F0E7D6;font-size:16px;max-width:430px}
.hero .eyebrow{color:#EFC377}
.hero-actions{display:flex;gap:11px;flex-wrap:wrap}

/* ---------- sections ---------- */
.section{padding:64px 0}
.section--sable{background:var(--sable)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;
  gap:20px;flex-wrap:wrap;margin-bottom:28px}
.section-head div{display:flex;flex-direction:column;gap:8px;min-width:0}
.section-head h2{overflow-wrap:break-word}
@media(max-width:560px){.section-head{gap:10px}.section-head>a{font-size:13px}}

/* ---------- grille produits ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:24px}
.card{display:flex;flex-direction:column;gap:10px}
.card-media{position:relative;aspect-ratio:1/1;background:var(--sable);border-radius:4px;overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
@media (hover:hover){.card:hover .card-media img{transform:scale(1.04)}}
.tag{position:absolute;top:10px;inset-inline-start:10px;background:var(--ivoire);color:var(--vert);
  font-size:9px;letter-spacing:.18em;padding:5px 9px;border-radius:2px;text-transform:uppercase}
.tag--sold{background:var(--encre);color:var(--sable)}
.tag--order{background:var(--vert);color:var(--ivoire)}
.tag--low{background:#8B4A2E;color:#fff}
.tag--in{background:var(--ivoire);color:var(--vert)}
.tag--promo{inset-inline-start:auto;inset-inline-end:10px;background:#A23232;color:#fff}
.tag--illus{top:auto;bottom:10px;inset-inline-start:10px;background:rgba(28,26,23,.72);color:var(--sable);
  backdrop-filter:blur(2px)}
.illus{font-size:12.5px;font-weight:300;line-height:1.55;color:var(--argile);
  background:var(--sable);border-inline-start:3px solid var(--or);border-radius:0 3px 3px 0;
  padding:11px 14px}
.illus b{font-weight:400;color:var(--vert)}
.card .price del{color:var(--argile);font-size:13px;margin-inline-end:8px}
.card h3{font-size:19px;color:var(--encre)}
.card .price{color:var(--cuir);font-size:15px}

/* ---------- fiche produit ---------- */
.product{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;padding:40px 0 72px}
.gallery{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;align-items:start}
.gview{display:flex;flex-direction:column;gap:10px;min-width:0}
.gtrack{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:4px;
  background:var(--sable);scrollbar-width:none;-ms-overflow-style:none;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.gtrack::-webkit-scrollbar{display:none}
.gslide{flex:0 0 100%;scroll-snap-align:center;aspect-ratio:1/1;position:relative}
.gslide img{width:100%;height:100%;object-fit:cover}
.gslide video{width:100%;height:100%;object-fit:cover;display:block;background:#1C1A17}
.gdots{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.gdots button{width:26px;height:26px;padding:0;border:0;background:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.gdots button::before{content:"";width:7px;height:7px;border-radius:50%;
  background:var(--ligne);transition:background .2s,transform .2s}
.gdots button[aria-current="true"]::before{background:var(--cuir);transform:scale(1.35)}
.gdots button.isvid::before{border-radius:2px;width:9px;height:7px}
.gallery--one{grid-template-columns:minmax(0,1fr)}
.thumbs button.isvid{position:relative}
.thumbs button.isvid::after{content:"";position:absolute;inset:0;background:rgba(28,26,23,.34)}
.thumbs button.isvid::before{content:"\25B6";position:absolute;inset:0;z-index:2;display:flex;
  align-items:center;justify-content:center;color:#F7F3EA;font-size:15px;padding-inline-start:2px}
.card-media .play{position:absolute;bottom:10px;inset-inline-end:10px;width:27px;height:27px;
  border-radius:50%;background:rgba(28,26,23,.55);color:#F7F3EA;font-size:9px;
  display:flex;align-items:center;justify-content:center;padding-inline-start:2px;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.thumbs{display:grid;grid-template-columns:1fr;gap:10px;max-height:640px;overflow-y:auto;
  scrollbar-width:thin}
.thumbs button{padding:0;border:1px solid var(--ligne);border-radius:4px;overflow:hidden;
  background:var(--sable);cursor:pointer;aspect-ratio:1/1}
.thumbs button[aria-current="true"]{border-color:var(--cuir)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.pinfo{display:flex;flex-direction:column;gap:18px}
.pprice{font-family:var(--serif);font-size:34px;color:var(--cuir);line-height:1;
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.pprice del{font-size:21px;color:var(--argile)}
.pprice .off{font-family:var(--sans);font-size:12px;letter-spacing:.14em;background:#A23232;
  color:#fff;padding:5px 9px;border-radius:2px}

/* diaporama « Notre famille » */
.story-media{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/3;background:var(--sable)}
.story-slides{position:absolute;inset:0}
.story-slides .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1s ease}
.story-slides .slide.is-on{opacity:1}
.story-dots{position:absolute;bottom:12px;inset-inline-end:14px;z-index:3;display:flex;gap:4px}
.story-dots button{width:22px;height:22px;padding:0;border:0;background:none;cursor:pointer;
  display:grid;place-items:center}
.story-dots button::before{content:"";width:6px;height:6px;border-radius:50%;
  background:rgba(247,243,234,.55);transition:transform .25s ease,background .25s ease}
.story-dots button[aria-current="true"]::before{background:#EFC377;transform:scale(1.4)}

/* la promesse */
.promise{border:1px solid var(--ligne);border-radius:4px;padding:16px 18px;background:var(--blanc)}
.promise-t{font-family:var(--serif);font-size:19px;margin:0 0 11px;color:var(--vert)}
.promise ol{list-style:none;counter-reset:pr;margin:0;padding:0;
  display:flex;flex-direction:column;gap:9px}
.promise li{counter-increment:pr;position:relative;padding-inline-start:27px;
  font-size:13.5px;font-weight:300;line-height:1.55;color:var(--argile)}
.promise li::before{content:counter(pr);position:absolute;inset-inline-start:0;top:1px;
  width:18px;height:18px;border-radius:50%;background:var(--sable);color:var(--cuir-fonce);
  font-size:10px;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.promise li b{font-weight:400;color:var(--encre)}
.promise-more{display:inline-block;margin-top:13px;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase}

/* la promesse, page complète + accueil */
.pledge{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;
  background:var(--ligne);border:1px solid var(--ligne);border-radius:4px;overflow:hidden}
.pledge > div{background:var(--blanc);padding:24px 22px;display:flex;flex-direction:column;gap:9px}
.pledge .n{font-family:var(--serif);font-size:30px;line-height:1;color:var(--or)}
.pledge h3{font-size:19px}
.pledge p{font-size:13.5px;font-weight:300;color:var(--argile);line-height:1.6;margin:0}
.pledge p b{font-weight:400;color:var(--vert)}

/* fil d'ariane, remise, livraison, accordéons */
.crumb{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:12px;
  letter-spacing:.06em;color:var(--argile);margin-bottom:-6px}
.crumb a{color:var(--cuir)}
.crumb span:last-child{color:var(--encre)}

.saved{margin-top:-10px;font-size:13px;letter-spacing:.04em;color:#A23232}

.ship{font-size:13px;color:var(--argile);border:1px dashed var(--ligne);
  border-radius:3px;padding:11px 14px;margin:0}
.ship--on{border-style:solid;border-color:#2F7A4F;color:#2F7A4F;background:rgba(47,122,79,.06)}
.ship--on::before{content:"✓ ";font-weight:500}

.trust-list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px}
.trust-list li{font-size:12px;letter-spacing:.04em;color:var(--argile);
  padding-inline-start:16px;position:relative;line-height:1.45}
.trust-list li::before{content:"";position:absolute;inset-inline-start:0;top:7px;
  width:5px;height:5px;border-radius:50%;background:var(--or)}

.acc{border-top:1px solid var(--ligne)}
.acc:last-of-type{border-bottom:1px solid var(--ligne)}
.acc summary{cursor:pointer;list-style:none;padding:15px 0;font-family:var(--sans);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--cuir);
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:17px;letter-spacing:0;color:var(--argile);flex:none}
.acc[open] summary::after{content:"–"}
.acc-body{padding-bottom:17px;font-size:14px;font-weight:300;line-height:1.65;
  display:flex;flex-direction:column;gap:12px}
.acc-body p{margin:0}
.acc-body .specs{border-top:0;margin-top:2px}
.acc-body ul.plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.acc-body ul.plain li{display:flex;justify-content:space-between;gap:14px;
  border-bottom:1px solid var(--ligne);padding-bottom:6px}

@media(max-width:430px){ .trust-list{grid-template-columns:1fr} }

/* compte à rebours de la promotion */
.cdown{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:-6px}
.cdlab{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--argile)}
.cdset{display:flex;gap:7px}
.cdbox{display:flex;flex-direction:column;align-items:center;min-width:44px;
  background:var(--sable);border-radius:3px;padding:7px 6px 5px}
.cdbox b{font-family:var(--serif);font-weight:500;font-size:20px;line-height:1;
  color:var(--encre);font-variant-numeric:tabular-nums}
.cdbox i{font-style:normal;font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--argile);margin-top:3px}

/* pastille de disponibilité */
.badge{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:400;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--vert)}
.badge i{width:8px;height:8px;border-radius:50%;background:#2F7A4F;flex:none}
.badge--order i{background:var(--or)}
.badge--low i{background:#8B4A2E}
.badge--sold i{background:var(--argile)}
.badge--unique i,.badge--in i{background:#2F7A4F}

/* bloc fait main / stock / retours */
.info{border-top:1px solid var(--ligne);margin-top:6px}
.info>div{padding:15px 0;border-bottom:1px solid var(--ligne)}
.info h4{font-family:var(--sans);font-weight:400;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cuir);margin:0 0 7px}
.info p{font-size:13px;font-weight:300;color:var(--encre);line-height:1.65}
.info b{font-weight:400;color:var(--vert)}
.notice{background:var(--sable);border-inline-start:3px solid var(--cuir);border-radius:3px;
  padding:14px 16px;display:flex;flex-direction:column;gap:5px}
.notice b{font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.14em;
  color:var(--vert);text-transform:uppercase}
.specs{border-top:1px solid var(--ligne)}
.specs div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;
  border-bottom:1px solid var(--ligne);font-size:14px}
.specs dt{color:var(--argile)}
.specs dd{margin:0;color:var(--encre)}

/* ---------- bandeau confiance ---------- */
.trust{background:var(--sable)}
.trust .wrap{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;justify-content:space-around;
  min-height:72px;padding-block:14px}
.trust span{font-size:11px;letter-spacing:.16em;color:var(--vert);text-transform:uppercase}

/* ---------- atelier / famille ---------- */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
.person{position:relative;background:var(--blanc);border:1px solid var(--ligne);border-radius:5px;
  padding:26px 24px 22px;display:flex;flex-direction:column;gap:11px;overflow:hidden;
  transition:border-color .18s,transform .18s,box-shadow .18s}
.person::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;
  background:linear-gradient(var(--or),var(--cuir));opacity:.55}
@media (hover:hover){
  .person:hover{border-color:var(--or);transform:translateY(-3px);
    box-shadow:0 10px 26px rgba(28,26,23,.09)}
}
.pnum{position:absolute;top:16px;inset-inline-end:20px;font-family:var(--serif);font-size:38px;
  line-height:1;color:var(--sable);pointer-events:none}
.picon{width:58px;height:58px;border-radius:50%;background:var(--sable);color:var(--cuir);
  display:flex;align-items:center;justify-content:center;flex:none;
  box-shadow:inset 0 0 0 1px rgba(176,141,63,.28)}
.picon svg{width:32px;height:32px}
.person .role{font-size:11px;letter-spacing:.2em;color:var(--cuir);text-transform:uppercase}
.person h3{font-size:24px}
.person > p:last-of-type{font-size:14px;font-weight:300;color:var(--argile);line-height:1.68}
.ptags{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ptags li{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--argile);
  border:1px solid var(--ligne);border-radius:999px;padding:4px 10px;white-space:nowrap}
html[dir="rtl"] .ptags li,html[dir="rtl"] .person .role{letter-spacing:0}

/* ---------- contact / localisation ---------- */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:32px;align-items:start}
.box{background:var(--blanc);border:1px solid var(--ligne);border-radius:4px;padding:28px;
  display:flex;flex-direction:column;gap:16px}
.box--green{background:var(--vert);border-color:var(--vert);color:var(--ivoire)}
.box--green h2,.box--green a{color:var(--ivoire)}
.box--green .eyebrow{color:#E0B463}
.line{display:flex;gap:13px;align-items:flex-start}
.line svg{width:19px;height:19px;flex:none;margin-top:3px}
.map{border:0;width:100%;aspect-ratio:4/3;border-radius:4px;background:var(--sable)}

/* ---------- pied de page ---------- */
.footer{background:var(--vert);color:var(--sable);padding:44px 0 28px;margin-top:8px}
.footer .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:30px}
.footer a{color:var(--sable);font-size:13px}
.footer a:hover{color:#fff}
.footer h4{font-size:10px;letter-spacing:.24em;color:var(--or);margin:0 0 12px;
  font-weight:400;font-family:var(--sans);text-transform:uppercase}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.legal{border-top:1px solid rgba(234,223,200,.2);margin-top:30px;padding-top:18px;
  font-size:11px;color:rgba(234,223,200,.7);text-align:center}

/* ---------- carrousel de l'accueil : les pieces defilent ---------- */
.rail-wrap{position:relative}
.rail{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.rail > .card{flex:0 0 calc((100% - 72px)/4);scroll-snap-align:start;min-width:0}
/* les fleches sont a cote de « Tout voir », JAMAIS par-dessus les pieces :
   posees sur les cartes elles bloquaient le clic du client */
.head-nav{display:flex;align-items:center;gap:8px;margin:0}
.head-nav a{font-size:13px;margin-inline-end:6px;white-space:nowrap}
.rail-nav{width:40px;height:40px;border-radius:50%;flex:none;
  border:1px solid var(--ligne);background:var(--blanc);color:var(--vert);cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;
  font-family:var(--sans);transition:background .15s,border-color .15s}
.rail-nav:hover{background:var(--vert);border-color:var(--vert);color:var(--ivoire)}
.rail-nav:focus-visible{outline:2px solid var(--cuir);outline-offset:2px}
html[dir="rtl"] .rail-nav{transform:scaleX(-1)}
@media (max-width:520px){ .head-nav .rail-nav{display:none} }
.rail-bar{height:2px;background:var(--ligne);border-radius:2px;margin-top:16px;overflow:hidden}
.rail-bar i{display:block;height:100%;background:var(--cuir);border-radius:2px;width:30%;
  transition:transform .25s ease;transform-origin:left center}
html[dir="rtl"] .rail-bar i{transform-origin:right center}

/* ---------- promesse courte de l'accueil ---------- */
.pact{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;
  background:var(--ligne);border:1px solid var(--ligne);border-radius:5px;overflow:hidden}
.pact > div{background:var(--blanc);padding:20px 16px;display:flex;flex-direction:column;gap:8px}
.pact svg{width:24px;height:24px;stroke:var(--cuir);fill:none;stroke-width:1.4;
  stroke-linecap:round;stroke-linejoin:round}
.pact h3{font-family:var(--sans);font-weight:400;font-size:13px;letter-spacing:.03em;
  line-height:1.35;color:var(--vert)}
.pact p{font-size:12.5px;font-weight:300;color:var(--argile);line-height:1.55;margin:0}
.pact-foot{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;
  margin-top:18px;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.pact-foot a{color:var(--vert);border-bottom:1px solid var(--or);padding-bottom:3px}
.section--promise{padding:40px 0}

/* ---------- quantite ---------- */
.qty{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.qty-lab{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--argile)}
.qty-set{display:flex;align-items:center;border:1px solid var(--ligne);border-radius:3px;
  background:var(--blanc);overflow:hidden}
.qty-set button{width:44px;height:44px;border:0;background:none;cursor:pointer;
  font-size:19px;line-height:1;color:var(--vert);font-family:var(--sans)}
.qty-set button:disabled{color:var(--ligne);cursor:default}
.qty-set button:not(:disabled):hover{background:var(--sable)}
.qty-set output{min-width:46px;text-align:center;font-family:var(--serif);font-size:20px;
  border-inline:1px solid var(--ligne);line-height:44px}
.qty-total{font-size:13px;color:var(--argile)}
.qty-total b{font-family:var(--serif);font-size:19px;color:var(--cuir);font-weight:500}

/* ---------- bouton WhatsApp bien visible ---------- */
.btn--wa{background:#25D366;color:#06301A;border-color:#25D366;
  min-height:60px;flex-direction:column;gap:2px;padding:10px 22px;line-height:1.2}
.btn--wa:hover{background:#1FBE5B;color:#06301A}
.btn--wa .wa-line{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.14em}
.btn--wa svg{width:20px;height:20px;flex:none;fill:#06301A}
.btn--wa small{font-size:10px;letter-spacing:.08em;text-transform:none;opacity:.78;font-weight:400}

/* ---------- rassurance sous le bouton ---------- */
.reassure{display:grid;gap:1px;background:var(--ligne);border:1px solid var(--ligne);
  border-radius:4px;overflow:hidden}
.reassure > div{background:var(--blanc);padding:13px 15px;display:grid;
  grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:start}
.reassure svg{width:19px;height:19px;stroke:var(--vert);fill:none;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.reassure b{display:block;font-weight:400;font-size:13px;color:var(--encre);letter-spacing:.02em}
.reassure span{display:block;font-size:12.5px;font-weight:300;color:var(--argile);line-height:1.55}
.approx{font-size:11.5px;color:var(--argile);margin-top:-10px;font-style:italic}

/* ---------- avis clients ---------- */
.stars{display:inline-flex;gap:2px;vertical-align:middle}
.stars svg{width:15px;height:15px;fill:var(--or);stroke:none}
.stars svg.off{fill:var(--ligne)}
.rev-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rev-avg{font-family:var(--serif);font-size:30px;line-height:1;color:var(--cuir)}
.rev-n{font-size:12px;color:var(--argile);letter-spacing:.06em}
.revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.rev{background:var(--blanc);border:1px solid var(--ligne);border-radius:4px;padding:18px 19px;
  display:flex;flex-direction:column;gap:10px}
.rev p{font-size:14px;font-weight:300;line-height:1.65;color:var(--encre)}
.rev-who{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12px;color:var(--argile)}
.rev-who b{font-weight:400;color:var(--encre);font-size:13px}
.rev-ok{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:#2F7A4F}
.rev-ok::before{content:"✓";font-size:11px}
.rev img{border-radius:3px;aspect-ratio:4/3;object-fit:cover;width:100%}
.rev-empty{border:1px dashed var(--ligne);border-radius:4px;padding:22px;text-align:center;
  display:flex;flex-direction:column;gap:13px;align-items:center;background:var(--blanc)}
.rev-empty p{font-size:14px;font-weight:300;color:var(--argile);max-width:520px}

/* ---------- WhatsApp flottant ---------- */
/* Petit rond par defaut : comme ca il ne recouvre jamais une piece.
   Le nom s'ouvre quand la souris passe dessus (pc seulement). */
.wa{position:fixed;inset-inline-end:calc(16px + env(safe-area-inset-right));
  bottom:calc(16px + env(safe-area-inset-bottom));z-index:50;
  width:58px;height:58px;padding:0;
  border-radius:999px;background:#25D366;color:#06301A;display:flex;align-items:center;
  justify-content:center;overflow:hidden;white-space:nowrap;
  box-shadow:0 8px 24px rgba(37,211,102,.38);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;
  transition:background .15s,opacity .25s,transform .25s,width .22s ease,padding .22s ease}
.wa:hover{background:#1FBE5B;color:#06301A}
.wa.is-hidden{opacity:0;transform:translateY(12px);pointer-events:none}
.wa svg{width:26px;height:26px;flex:none;fill:#06301A}
.wa b{font-weight:400;max-width:0;opacity:0;margin-inline-start:0;
  transition:max-width .22s ease,opacity .18s ease,margin .22s ease}
@media (hover:hover){
  .wa:hover{width:auto;padding:0 22px}
  .wa:hover b{max-width:280px;opacity:1;margin-inline-start:11px}
}

/* ---------- grand écran : cartes plus larges ---------- */
@media (min-width:1200px){
  .grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:26px}
}

/* ---------- tablette ---------- */
@media (max-width:1024px){
  .section{padding:52px 0}
  .header .wrap{gap:16px;min-height:72px}
  .nav{gap:18px}
}

@media (max-width:900px){
  .product{grid-template-columns:1fr;gap:26px;padding:26px 0 56px}
  .gallery{max-width:560px}
  .contact{grid-template-columns:1fr}
  .pinfo{max-width:620px}
  .map{aspect-ratio:16/10}
}
@media (max-width:760px){
  :root{--pad:16px}
  /* --- telephone : la photo prend sa propre bande, le texte passe dessous ---
     comme ca la banniere n'est plus zoomee et on la voit en entier --- */
  .hero{display:block;min-height:0;background:var(--vert)}
  .hero-slides{position:relative;inset:auto;width:100%;aspect-ratio:16/9;background:var(--sable)}
  .hero-slides .slide,.hero-slide{position:absolute;inset:0}
  .hero::after{display:none}
  .hero-dots{position:static;justify-content:flex-end;padding:7px 16px 0;background:var(--vert)}
  .hero .wrap{padding-block:0}
  .hero-box{padding:22px 0 28px;max-width:100%}
  .hero h1{font-size:clamp(28px,8.4vw,40px)}
  .hero p{font-size:15px;max-width:100%}
  .header .wrap{position:relative;flex-wrap:nowrap;gap:8px;min-height:68px}
  .brand svg{width:34px;height:34px}
  .brand b{font-size:16px;letter-spacing:.1em}
  .brand i{font-size:8px;letter-spacing:.34em}
  .topbar .wrap{gap:10px;font-size:10px}
  .burger{display:block;flex:none}
  .nav{display:none;position:absolute;top:100%;inset-inline:0;background:var(--ivoire);
    border-bottom:1px solid var(--ligne);flex-direction:column;gap:0;padding:8px 16px 16px;margin:0}
  .nav.is-open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid var(--ligne)}
  .header-tools{margin-inline-start:0}
  .section{padding:44px 0}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
  .thumbs{grid-template-columns:repeat(4,1fr);gap:8px}
  .card h3{font-size:17px}
  .footer{padding:36px 0 22px}
  .footer .wrap{gap:24px}
  .trust .wrap{justify-content:flex-start;gap:10px 16px}
  .trust span{font-size:10px}
}

/* ---------- petits téléphones ---------- */
@media (max-width:430px){
  .topbar .wrap .dot,.topbar .wrap span:last-child{display:none}
  .hero-actions .btn{width:100%}
  .lang button{min-width:38px;font-size:10px;letter-spacing:.06em}
  .brand b{font-size:15px}
  .brand svg{width:30px;height:30px}
  .header .wrap{gap:6px}
}

/* ---------- téléphone couché ---------- */
@media (max-height:520px) and (orientation:landscape){
  .hero{min-height:400px}
  .header{position:static}
}

/* ---------- adaptations tablette / telephone des nouveaux blocs ---------- */
@media (max-width:1100px){
  .pact{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pact > div:nth-child(4),.pact > div:nth-child(5){grid-column:span 1}
}
@media (max-width:1024px){
  .rail > .card{flex:0 0 calc((100% - 48px)/3)}
  .gallery{grid-template-columns:68px minmax(0,1fr)}
}
@media (max-width:900px){
  .gallery{grid-template-columns:minmax(0,1fr);max-width:620px;margin-inline:auto}
  .gview{order:1}
  .thumbs{order:2;grid-template-columns:repeat(5,1fr);max-height:none;overflow:visible}
  .rail > .card{flex:0 0 calc((100% - 48px)/3)}
}
@media (max-width:760px){
  .pact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pact > div{padding:16px 14px}
  .rail{gap:16px}
  .rail > .card{flex:0 0 calc((100% - 22px)/2)}
  .thumbs{grid-template-columns:repeat(5,1fr);gap:7px}
  .qty-set button{width:48px;height:48px}
  .qty-set output{line-height:48px}
  .revs{grid-template-columns:1fr}
  .hero-box{padding:42px 0}
}
@media (max-width:560px){
  .pact{grid-template-columns:1fr}
  .pact > div{flex-direction:row;align-items:flex-start;gap:12px;padding:14px}
  .pact svg{flex:none;margin-top:2px}
  .pact .pact-txt{display:flex;flex-direction:column;gap:5px;min-width:0}
  .rail > .card{flex:0 0 76%}
  .thumbs{display:none}
  .btn--wa{min-height:64px}
}

/* ---------- impression ---------- */
@media print{
  .header,.topbar,.wa,.hero-actions,.footer{display:none}
  body{background:#fff}
}
