/* ============================================================================
   Roamloom — design system EDITORIAL-MAG (archétype A)
   Palette : terracotta + sable + encre · Polices : DM Serif Display + Mukta
   Classes préfixées .rl-  ·  liens/assets root-relative
   ============================================================================ */

:root{
  --ink:#221E1A;          /* encre */
  --ink-soft:#4A4138;
  --terra:#B85C38;        /* terracotta */
  --terra-deep:#9C4A2C;
  --clay:#9C5A3C;
  --sand:#E4D5BE;         /* sable */
  --sand-deep:#D6C2A2;
  --cream:#F5EDE1;        /* fond page */
  --paper:#FBF6EE;
  --line:#D8C8B0;
  --line-soft:#E7DAC6;
  --white:#ffffff;
  --ok:#4F7A52;
  --maxw:1320px;
  --gut:clamp(18px,4vw,56px);
  --r:3px;
  --shadow:0 18px 50px -28px rgba(34,30,26,.45);
  --shadow-sm:0 8px 24px -16px rgba(34,30,26,.4);
  --serif:"DM Serif Display",Georgia,serif;
  --sans:"Mukta",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);
  font-size:17px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.04;margin:0;letter-spacing:.005em}
p{margin:0 0 1em}
.rl-wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.rl-serif{font-family:var(--serif)}
.rl-eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:var(--terra)}
.rl-num{font-family:var(--serif);color:var(--terra);font-size:.85em}
.rl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* ---- filet anti contenu invisible (reveals) ---- */
.rl-reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.rl-reveal.rl-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rl-reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* ====================== Annonce ====================== */
.rl-anno{background:var(--ink);color:var(--sand);font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;text-align:center;padding:9px 16px;font-weight:500}
.rl-anno b{color:var(--terra);font-weight:700}

/* ====================== Header — masthead éditorial (logo centré, nav sur 2e rang) ====================== */
.rl-head{position:sticky;top:0;z-index:60;background:rgba(245,237,225,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.rl-mast{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.rl-mast-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:18px 0 15px}
.rl-mast-side{display:flex;align-items:center;gap:10px}
.rl-mast-left{justify-self:start}
.rl-mast-est{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;white-space:nowrap}
.rl-brand{justify-self:center;display:flex;align-items:center}
.rl-brand img{height:42px;width:auto}
.rl-brand .rl-wordmark{font-family:var(--serif);font-size:34px;letter-spacing:.05em;color:var(--ink)}
.rl-tools{justify-self:end;display:flex;align-items:center;gap:8px}
.rl-mast-nav{display:flex;justify-content:center;gap:clamp(22px,4vw,54px);align-items:center;
  padding:13px 0;border-top:1px solid var(--line-soft)}
.rl-mast-nav a{font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  display:inline-flex;gap:8px;align-items:baseline;color:var(--ink);transition:color .25s}
.rl-mast-nav a .rl-nn{font-family:var(--serif);font-size:13px;letter-spacing:0;color:var(--terra)}
.rl-mast-nav a:hover{color:var(--terra-deep)}
.rl-ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  border:none;background:transparent;color:var(--ink);border-radius:50%;transition:background .2s,color .2s}
.rl-ic:hover{background:var(--sand);color:var(--terra-deep)}
.rl-ic svg{width:22px;height:22px}
.rl-cart-ic{position:relative}
.rl-cart-count{position:absolute;top:4px;right:3px;min-width:18px;height:18px;padding:0 4px;
  background:var(--terra);color:#fff;font-size:11px;font-weight:700;border-radius:9px;
  display:flex;align-items:center;justify-content:center;font-family:var(--sans);line-height:1}
.rl-lang{border:1px solid var(--line);background:transparent;border-radius:20px;font-size:12px;
  font-weight:600;letter-spacing:.08em;padding:7px 12px;color:var(--ink-soft);text-transform:uppercase}
.rl-burger{display:none}

/* recherche overlay */
.rl-search{position:fixed;inset:0;z-index:90;background:rgba(34,30,26,.5);backdrop-filter:blur(4px);
  display:none;align-items:flex-start;justify-content:center;padding-top:14vh}
.rl-search.rl-open{display:flex}
.rl-search-box{background:var(--paper);width:min(640px,92vw);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.rl-search-box input{width:100%;border:none;border-bottom:2px solid var(--ink);background:transparent;
  font-family:var(--serif);font-size:30px;padding:8px 0;outline:none;color:var(--ink)}
.rl-search-res{margin-top:16px;max-height:46vh;overflow:auto}
.rl-search-res a{display:flex;gap:14px;align-items:center;padding:10px;border-radius:var(--r)}
.rl-search-res a:hover{background:var(--sand)}
.rl-search-res img{width:54px;height:54px;object-fit:cover;border-radius:var(--r)}

/* ====================== Boutons ====================== */
.rl-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.02em;
  padding:15px 30px;border:1.5px solid var(--ink);background:var(--ink);color:var(--cream);
  border-radius:var(--r);transition:transform .2s,background .2s,color .2s}
.rl-btn:hover{background:var(--terra);border-color:var(--terra);color:#fff;transform:translateY(-2px)}
.rl-btn--terra{background:var(--terra);border-color:var(--terra);color:#fff}
.rl-btn--terra:hover{background:var(--terra-deep);border-color:var(--terra-deep)}
.rl-btn--ghost{background:transparent;color:var(--ink)}
.rl-btn--ghost:hover{background:var(--ink);color:var(--cream)}
.rl-btn--block{width:100%}
.rl-btn--lg{padding:18px 38px;font-size:16px}
.rl-link-u{display:inline-flex;gap:8px;align-items:center;font-weight:600;font-size:15px;
  border-bottom:1.5px solid var(--terra);padding-bottom:2px;color:var(--ink);transition:gap .2s}
.rl-link-u:hover{gap:14px;color:var(--terra-deep)}
.rl-link-u svg{width:18px;height:18px}

/* ====================== HERO ====================== */
.rl-hero{position:relative;padding:clamp(40px,7vw,90px) 0 clamp(48px,8vw,120px);overflow:hidden}
.rl-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,4vw,60px);align-items:center}
.rl-hero h1{font-size:clamp(48px,9vw,116px);line-height:.92;letter-spacing:-.01em}
.rl-hero h1 em{font-style:italic;color:var(--terra)}
.rl-hero-lead{font-size:clamp(17px,1.5vw,20px);max-width:46ch;color:var(--ink-soft);margin:26px 0 30px}
.rl-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.rl-hero-meta{margin-top:34px;display:flex;gap:30px;flex-wrap:wrap;align-items:center}
.rl-hero-meta div{display:flex;flex-direction:column}
.rl-hero-meta b{font-family:var(--serif);font-size:30px;line-height:1;color:var(--ink)}
.rl-hero-meta span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}
.rl-hero-img{position:relative}
.rl-hero-img img{width:100%;height:clamp(340px,52vw,640px);object-fit:cover;border-radius:var(--r)}
.rl-hero-img .rl-tagchip{position:absolute;left:-26px;bottom:38px;background:var(--paper);
  padding:16px 22px;border-radius:var(--r);box-shadow:var(--shadow);max-width:230px}
.rl-hero-img .rl-tagchip b{font-family:var(--serif);font-size:18px;display:block;margin-bottom:3px}
.rl-hero-img .rl-tagchip span{font-size:13px;color:var(--ink-soft)}
.rl-stars{color:var(--terra);display:inline-flex;gap:1px;vertical-align:middle}
.rl-stars svg{width:15px;height:15px}

/* marquee fine sous le hero */
.rl-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.rl-strip-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;padding:18px var(--gut);
  max-width:var(--maxw);margin:0 auto}
.rl-strip-in div{display:flex;gap:11px;align-items:center;font-size:13.5px;font-weight:500;letter-spacing:.02em}
.rl-strip-in svg{width:22px;height:22px;color:var(--terra);flex:none}

/* ====================== Sections génériques ====================== */
.rl-sec{padding:clamp(54px,8vw,110px) 0}
.rl-sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.rl-sec-head h2{font-size:clamp(34px,5vw,64px)}
.rl-sec-head .rl-kick{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}
.rl-sec-head .rl-kick .rl-num{font-size:20px}
.rl-sec-sub{max-width:48ch;color:var(--ink-soft);font-size:17px}

/* ---- Manifeste (split éditorial débordant) ---- */
.rl-manifest{position:relative}
.rl-manifest-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:center}
.rl-manifest-img{position:relative}
.rl-manifest-img img{width:108%;margin-left:-8%;height:clamp(320px,40vw,520px);object-fit:cover;border-radius:var(--r)}
.rl-manifest-txt h2{font-size:clamp(30px,4.4vw,56px);margin-bottom:22px}
.rl-manifest-txt p{font-size:18px;color:var(--ink-soft);max-width:50ch}
.rl-drop::first-letter{font-family:var(--serif);font-size:3.6em;float:left;line-height:.78;
  padding:6px 12px 0 0;color:var(--terra)}

/* ====================== Rail produits horizontal ====================== */
.rl-rail-wrap{position:relative}
.rl-rail{display:flex;gap:clamp(18px,2.4vw,34px);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:6px 4px 28px;scrollbar-width:thin}
.rl-rail::-webkit-scrollbar{height:6px}
.rl-rail::-webkit-scrollbar-thumb{background:var(--sand-deep);border-radius:6px}
.rl-rail-nav{display:flex;gap:10px}
.rl-rail-nav button{width:46px;height:46px;border:1.5px solid var(--ink);background:transparent;
  border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.2s}
.rl-rail-nav button:hover{background:var(--ink);color:var(--cream)}
.rl-rail-nav svg{width:20px;height:20px}

/* ---- Carte produit éditoriale (numéro d'index, texte sous image) ---- */
.rl-card{flex:0 0 clamp(260px,30vw,340px);scroll-snap-align:start;position:relative}
.rl-card-media{position:relative;background:var(--paper);border-radius:var(--r);overflow:hidden;aspect-ratio:4/5}
.rl-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.rl-card:hover .rl-card-media img{transform:scale(1.05)}
.rl-card-idx{position:absolute;top:12px;left:14px;font-family:var(--serif);font-size:26px;color:var(--paper);
  mix-blend-mode:difference;z-index:2}
.rl-badges{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-end;z-index:2}
.rl-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;padding:5px 9px;border-radius:2px;background:var(--ink);color:var(--cream)}
.rl-badge--terra{background:var(--terra);color:#fff}
.rl-badge--sale{background:var(--paper);color:var(--terra-deep);border:1px solid var(--terra)}
.rl-quickadd{position:absolute;left:12px;right:12px;bottom:12px;transform:translateY(12px);opacity:0;
  transition:.3s;z-index:2}
.rl-card-media:hover .rl-quickadd,.rl-card-media:focus-within .rl-quickadd{transform:none;opacity:1}
@media (hover:none){.rl-quickadd{opacity:1;transform:none}}
.rl-card-body{padding:16px 2px 0}
.rl-card-cat{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
.rl-card-name{font-family:var(--serif);font-size:23px;margin:6px 0 4px;line-height:1.05}
.rl-card-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.rl-price{display:flex;align-items:baseline;gap:9px}
.rl-price b{font-family:var(--serif);font-size:22px;color:var(--ink)}
.rl-price s{color:var(--ink-soft);font-size:15px;opacity:.7}
.rl-card-rate{font-size:13px;color:var(--ink-soft);display:flex;gap:5px;align-items:center}

/* ====================== Collections — index éditorial numéroté (rangées) ====================== */
.rl-catindex{border-top:1px solid var(--line)}
.rl-cx{display:grid;grid-template-columns:auto 1fr auto auto;gap:clamp(16px,3vw,40px);align-items:center;
  padding:clamp(18px,2.6vw,32px) clamp(4px,1.4vw,18px);border-bottom:1px solid var(--line);
  transition:background .35s,padding-left .35s}
.rl-cx:hover{background:var(--paper);padding-left:clamp(12px,2vw,28px)}
.rl-cx-num{font-family:var(--serif);font-size:clamp(18px,1.9vw,28px);color:var(--terra);line-height:1}
.rl-cx-main{min-width:0}
.rl-cx-main h3{font-size:clamp(26px,3.8vw,50px);line-height:1;letter-spacing:-.01em}
.rl-cx-price{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:8px;display:block}
.rl-cx-thumb{width:clamp(64px,8vw,104px);aspect-ratio:1;border-radius:var(--r);overflow:hidden;
  opacity:0;transform:translateX(14px);transition:opacity .35s,transform .35s}
.rl-cx:hover .rl-cx-thumb{opacity:1;transform:none}
.rl-cx-thumb img{width:100%;height:100%;object-fit:cover}
.rl-cx-arrow{display:inline-flex;color:var(--ink-soft);transition:color .25s,transform .25s}
.rl-cx:hover .rl-cx-arrow{color:var(--terra);transform:translateX(6px)}
.rl-cx-arrow svg{width:24px;height:24px}

/* ====================== Citation en exergue ====================== */
.rl-quote{position:relative;color:var(--cream);text-align:center;overflow:hidden}
.rl-quote-bg{position:absolute;inset:0}
.rl-quote-bg img{width:100%;height:100%;object-fit:cover}
.rl-quote-bg::after{content:"";position:absolute;inset:0;background:rgba(34,30,26,.62)}
.rl-quote-in{position:relative;z-index:2;padding:clamp(70px,11vw,150px) var(--gut);max-width:980px;margin:0 auto}
.rl-quote blockquote{font-family:var(--serif);font-size:clamp(28px,4.4vw,56px);line-height:1.18;margin:0}
.rl-quote blockquote em{color:var(--sand);font-style:italic}
.rl-quote cite{display:block;margin-top:26px;font-style:normal;font-size:13px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--sand)}

/* ====================== Journal / lookbook ====================== */
.rl-journal{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,2.4vw,34px)}
.rl-jcard{position:relative}
.rl-jcard img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
.rl-jcard h3{font-size:clamp(22px,2vw,30px);margin:16px 0 8px}
.rl-jcard p{color:var(--ink-soft);font-size:16px;margin-bottom:12px}
.rl-j1{grid-column:span 7}
.rl-j2{grid-column:span 5}
.rl-j3{grid-column:span 12}
.rl-j3{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,40px);align-items:center}
.rl-j3 img{aspect-ratio:16/10}

/* ====================== Avis — témoignage vedette + appuis ====================== */
.rl-feat-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(20px,3vw,40px);align-items:stretch}
.rl-feat-rev{background:var(--ink);color:var(--cream);border-radius:var(--r);padding:clamp(28px,4vw,52px);
  display:flex;flex-direction:column;justify-content:center}
.rl-feat-rev .rl-stars{color:var(--terra);margin-bottom:20px}
.rl-feat-rev blockquote{font-family:var(--serif);font-size:clamp(24px,2.8vw,38px);line-height:1.28;margin:0;color:var(--cream)}
.rl-feat-rev .rl-rev-by{display:flex;gap:14px;align-items:baseline;margin-top:26px;font-size:14px;color:var(--sand-deep)}
.rl-feat-rev .rl-rev-by b{font-family:var(--sans);font-weight:600;color:var(--sand)}
.rl-feat-side{display:grid;grid-template-rows:1fr 1fr;gap:clamp(20px,3vw,40px)}
.rl-revwall{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rl-rev{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:26px}
.rl-rev .rl-stars{margin-bottom:12px}
.rl-rev p{font-size:16.5px;color:var(--ink)}
.rl-rev .rl-rev-by{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-soft);margin-top:14px;border-top:1px solid var(--line-soft);padding-top:12px}
.rl-rev .rl-rev-by b{font-weight:600;color:var(--ink)}
.rl-trustline{display:flex;align-items:center;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:34px;
  font-size:14px;color:var(--ink-soft)}
.rl-trustline b{font-family:var(--serif);font-size:28px;color:var(--ink)}

/* ====================== Réassurance ====================== */
.rl-assure{background:var(--ink);color:var(--sand)}
.rl-assure-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:clamp(46px,6vw,72px) 0}
.rl-assure-grid>div{display:flex;flex-direction:column;gap:12px}
.rl-assure svg{width:34px;height:34px;color:var(--terra)}
.rl-assure h3{font-size:22px;color:var(--cream)}
.rl-assure p{font-size:14.5px;color:var(--sand-deep);margin:0}

/* ====================== Newsletter ====================== */
.rl-news{background:var(--sand)}
.rl-news-in{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,60px);align-items:center;
  padding:clamp(48px,7vw,90px) 0}
.rl-news h2{font-size:clamp(32px,4.4vw,56px)}
.rl-news p{color:var(--ink-soft);font-size:17px;max-width:42ch;margin-top:14px}
.rl-news-form{display:flex;gap:10px;flex-wrap:wrap}
.rl-news-form input{flex:1;min-width:220px;padding:16px 18px;border:1.5px solid var(--ink);
  background:var(--cream);border-radius:var(--r);font-size:15px;font-family:inherit;color:var(--ink)}
.rl-news-form input::placeholder{color:var(--ink-soft)}
.rl-news-note{font-size:12.5px;color:var(--ink-soft);margin-top:12px}

/* ====================== Footer — éditorial / manifeste ====================== */
.rl-foot{background:var(--ink);color:var(--sand-deep);padding:clamp(64px,9vw,118px) 0 36px}
.rl-foot-manifesto{max-width:64ch}
.rl-foot-kick{color:var(--terra);display:block;margin-bottom:22px}
.rl-foot-lede{font-family:var(--serif);font-size:clamp(21px,2.5vw,33px);line-height:1.4;color:var(--cream);margin:0;font-weight:400}
.rl-foot-sign{display:flex;align-items:baseline;gap:18px;margin-top:32px;flex-wrap:wrap}
.rl-foot-sig{font-family:var(--serif);font-style:italic;font-size:clamp(30px,4vw,46px);line-height:1;color:var(--terra)}
.rl-foot-sigrole{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-deep)}
.rl-foot-rule{height:1px;background:rgba(228,213,190,.18);margin:clamp(44px,6vw,72px) 0 30px}
.rl-foot-links{display:flex;flex-wrap:wrap;gap:11px 30px}
.rl-foot-links a{font-size:13px;letter-spacing:.04em;color:var(--sand-deep);transition:color .2s}
.rl-foot-links a:hover{color:var(--terra)}
.rl-foot-base{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:40px}
.rl-foot-social{display:flex;gap:10px}
.rl-foot-social a{width:38px;height:38px;border:1px solid rgba(228,213,190,.3);border-radius:50%;
  display:flex;align-items:center;justify-content:center;transition:.2s}
.rl-foot-social a:hover{background:var(--terra);border-color:var(--terra);color:#fff}
.rl-foot-social svg{width:18px;height:18px}
.rl-foot-pay{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.rl-foot-pay-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sand-deep)}
.rl-foot-pay svg{height:24px;width:auto;border-radius:3px;opacity:.92}
.rl-foot-legal{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:42px;
  padding-top:24px;border-top:1px solid rgba(228,213,190,.12);font-size:12px;color:rgba(228,213,190,.7)}

/* ====================== Drawer panier ====================== */
.rl-scrim{position:fixed;inset:0;background:rgba(34,30,26,.5);z-index:95;opacity:0;visibility:hidden;transition:.3s}
.rl-scrim.rl-open{opacity:1;visibility:visible}
.rl-drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,94vw);background:var(--cream);z-index:100;
  transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:var(--shadow)}
.rl-drawer.rl-open{transform:none}
.rl-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}
.rl-drawer-head h3{font-size:26px}
.rl-ship-bar{padding:16px 24px;background:var(--sand);font-size:13.5px}
.rl-ship-track{height:7px;background:var(--cream);border-radius:6px;margin-top:9px;overflow:hidden}
.rl-ship-fill{height:100%;background:var(--terra);width:0;transition:width .5s}
.rl-drawer-items{flex:1;overflow:auto;padding:8px 24px}
.rl-ditem{display:grid;grid-template-columns:74px 1fr auto;gap:14px;padding:18px 0;border-bottom:1px solid var(--line-soft)}
.rl-ditem img{width:74px;height:88px;object-fit:cover;border-radius:var(--r)}
.rl-ditem h4{font-family:var(--serif);font-size:18px}
.rl-ditem .rl-dmeta{font-size:12.5px;color:var(--ink-soft);margin:3px 0 8px}
.rl-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r)}
.rl-qty button{width:30px;height:30px;background:transparent;border:none;font-size:16px;color:var(--ink)}
.rl-qty span{min-width:30px;text-align:center;font-weight:600;font-size:14px}
.rl-ditem .rl-dprice{font-family:var(--serif);font-size:18px;text-align:right}
.rl-dremove{background:none;border:none;color:var(--ink-soft);font-size:12px;text-decoration:underline;padding:6px 0 0}
.rl-drawer-foot{padding:22px 24px;border-top:1px solid var(--line);background:var(--paper)}
.rl-drawer-foot .rl-dtot{display:flex;justify-content:space-between;font-size:17px;margin-bottom:6px}
.rl-drawer-foot .rl-dtot b{font-family:var(--serif);font-size:26px}
.rl-drawer-note{font-size:12px;color:var(--ink-soft);text-align:center;margin-top:10px;display:flex;gap:7px;justify-content:center;align-items:center}
.rl-drawer-note svg{width:15px;height:15px}
.rl-empty{text-align:center;padding:60px 20px;color:var(--ink-soft)}
.rl-empty svg{width:46px;height:46px;color:var(--sand-deep);margin-bottom:14px}

/* ====================== PDP ====================== */
.rl-pdp{padding:clamp(28px,4vw,56px) 0 0}
.rl-crumbs{font-size:13px;color:var(--ink-soft);margin-bottom:26px;display:flex;gap:8px;flex-wrap:wrap}
.rl-crumbs a:hover{color:var(--terra)}
.rl-pdp-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:start}
.rl-gallery{position:sticky;top:90px}
.rl-gallery-main{background:var(--paper);border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;position:relative}
.rl-gallery-main img{width:100%;height:100%;object-fit:cover}
.rl-gallery-thumbs{display:flex;gap:12px;margin-top:14px}
.rl-gallery-thumbs button{flex:0 0 84px;height:100px;border:1.5px solid transparent;border-radius:var(--r);
  overflow:hidden;background:var(--paper);padding:0}
.rl-gallery-thumbs button.rl-act{border-color:var(--terra)}
.rl-gallery-thumbs img{width:100%;height:100%;object-fit:cover}
.rl-pdp-cat{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);font-weight:600}
.rl-pdp h1{font-size:clamp(36px,5vw,62px);margin:10px 0 14px}
.rl-pdp-rate{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ink-soft);margin-bottom:22px}
.rl-pdp-rate a{text-decoration:underline;text-underline-offset:3px}
.rl-pdp-price{display:flex;align-items:baseline;gap:14px;margin-bottom:8px}
.rl-pdp-price b{font-family:var(--serif);font-size:42px;color:var(--ink)}
.rl-pdp-price s{font-size:22px;color:var(--ink-soft)}
.rl-pdp-price .rl-save{background:var(--terra);color:#fff;font-size:13px;font-weight:700;padding:4px 10px;border-radius:2px;font-family:var(--sans)}
.rl-pdp-short{font-size:18px;color:var(--ink-soft);margin:8px 0 26px;max-width:46ch}
.rl-opt{margin-bottom:22px}
.rl-opt label{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;display:block;margin-bottom:10px}
.rl-swatches{display:flex;gap:10px;flex-wrap:wrap}
.rl-swatches button{padding:10px 16px;border:1.5px solid var(--line);background:var(--paper);border-radius:var(--r);
  font-size:14px;font-weight:500;transition:.2s}
.rl-swatches button.rl-act{border-color:var(--ink);background:var(--ink);color:var(--cream)}
.rl-buybar{display:flex;gap:12px;align-items:stretch;margin:24px 0 16px}
.rl-buybar .rl-qty{border:1.5px solid var(--ink);border-radius:var(--r)}
.rl-buybar .rl-qty button{width:46px;height:auto}
.rl-buybar .rl-qty span{min-width:40px;font-size:16px}
.rl-pdp-assure{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rl-pdp-assure div{display:flex;gap:11px;align-items:center;font-size:14px}
.rl-pdp-assure svg{width:24px;height:24px;color:var(--terra);flex:none}
.rl-stock{display:inline-flex;gap:8px;align-items:center;font-size:14px;font-weight:600;color:var(--ok);margin-bottom:18px}
.rl-stock.rl-low{color:var(--terra-deep)}
.rl-stock .rl-dot{width:9px;height:9px;border-radius:50%;background:currentColor}

/* PDP sommaire latéral + corps éditorial */
.rl-pdp-body{display:grid;grid-template-columns:230px 1fr;gap:clamp(28px,4vw,64px);
  margin-top:clamp(56px,7vw,100px);align-items:start}
.rl-toc{position:sticky;top:90px}
.rl-toc h4{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:16px;font-family:var(--sans);font-weight:700}
.rl-toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line)}
.rl-toc a{display:block;padding:8px 16px;font-size:14px;color:var(--ink-soft);border-left:2px solid transparent;margin-left:-1px;transition:.2s}
.rl-toc a:hover,.rl-toc a.rl-act{color:var(--terra);border-color:var(--terra)}
.rl-pdp-section{margin-bottom:clamp(44px,6vw,72px);scroll-margin-top:90px}
.rl-pdp-section h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:8px}
.rl-pdp-section h2 .rl-num{font-size:.6em;margin-right:12px}
.rl-pdp-section p{font-size:17px;color:var(--ink-soft);max-width:62ch}
.rl-bullets{list-style:none;padding:0;margin:18px 0;display:grid;gap:12px}
.rl-bullets li{display:flex;gap:12px;font-size:16px}
.rl-bullets svg{width:22px;height:22px;color:var(--terra);flex:none}
.rl-specs{width:100%;border-collapse:collapse;margin-top:8px}
.rl-specs td{padding:13px 4px;border-bottom:1px solid var(--line-soft);font-size:15px}
.rl-specs td:first-child{color:var(--ink-soft);width:40%}
.rl-specs td:last-child{font-weight:500}
.rl-faq details{border-bottom:1px solid var(--line-soft);padding:16px 0}
.rl-faq summary{font-family:var(--serif);font-size:20px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.rl-faq summary::-webkit-details-marker{display:none}
.rl-faq summary .rl-pl{transition:transform .2s;flex:none}
.rl-faq details[open] summary .rl-pl{transform:rotate(45deg)}
.rl-faq p{margin-top:12px}
.rl-rev-dist{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;margin-bottom:30px;
  background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:26px}
.rl-rev-big{text-align:center}
.rl-rev-big b{font-family:var(--serif);font-size:60px;line-height:1;display:block}
.rl-rev-bars{display:flex;flex-direction:column;gap:7px}
.rl-rev-bars .rl-rb{display:flex;gap:10px;align-items:center;font-size:13px}
.rl-rev-bars .rl-rb span:first-child{display:inline-flex;gap:3px;align-items:center}
.rl-rev-bars .rl-rb svg{width:11px;height:11px;color:var(--terra)}
.rl-dremove svg{vertical-align:middle}
.rl-rev-bars .rl-rbt{flex:1;height:7px;background:var(--sand);border-radius:5px;overflow:hidden}
.rl-rev-bars .rl-rbt i{display:block;height:100%;background:var(--terra)}

/* sticky ATC mobile */
.rl-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--cream);
  border-top:1px solid var(--line);padding:12px var(--gut);display:none;
  grid-template-columns:auto 1fr;gap:14px;align-items:center;box-shadow:0 -10px 30px -22px rgba(34,30,26,.5)}
.rl-sticky-atc .rl-sa-price b{font-family:var(--serif);font-size:22px}
.rl-sticky-atc .rl-sa-price s{font-size:13px;color:var(--ink-soft);margin-left:6px}

/* ====================== Shop ====================== */
.rl-shop-hero{position:relative;border-radius:var(--r);overflow:hidden;margin-bottom:40px;min-height:280px;display:flex;align-items:flex-end}
.rl-shop-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rl-shop-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,30,26,.7),rgba(34,30,26,.1))}
.rl-shop-hero-cap{position:relative;z-index:2;color:var(--cream);padding:clamp(28px,4vw,52px)}
.rl-shop-hero-cap h1{font-size:clamp(36px,5vw,64px);color:#fff}
.rl-shop-hero-cap p{color:var(--sand);margin-top:8px;max-width:46ch}
.rl-filters{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:34px;
  padding-bottom:20px;border-bottom:1px solid var(--line)}
.rl-chips{display:flex;gap:10px;flex-wrap:wrap}
.rl-chip{padding:9px 16px;border:1.5px solid var(--line);background:transparent;border-radius:30px;
  font-size:13.5px;font-weight:500;transition:.2s}
.rl-chip:hover{border-color:var(--ink)}
.rl-chip.rl-act{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.rl-sort{border:1.5px solid var(--line);border-radius:var(--r);padding:10px 14px;background:var(--paper);
  font-family:inherit;font-size:14px;color:var(--ink)}
.rl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,40px)}
.rl-grid .rl-card{flex:none;width:auto}
.rl-count{font-size:13px;color:var(--ink-soft);letter-spacing:.04em}

/* ====================== Cart page ====================== */
.rl-cartpage{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(28px,4vw,56px);align-items:start}
.rl-cart-list{display:flex;flex-direction:column}
.rl-cart-line{display:grid;grid-template-columns:110px 1fr auto;gap:20px;padding:24px 0;border-bottom:1px solid var(--line-soft)}
.rl-cart-line img{width:110px;height:132px;object-fit:cover;border-radius:var(--r)}
.rl-cart-line h3{font-family:var(--serif);font-size:24px}
.rl-summary{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:28px;position:sticky;top:90px}
.rl-summary h3{font-size:26px;margin-bottom:18px}
.rl-sumrow{display:flex;justify-content:space-between;padding:9px 0;font-size:15px;color:var(--ink-soft)}
.rl-sumrow.rl-tot{border-top:1px solid var(--line);margin-top:10px;padding-top:16px;color:var(--ink);font-size:18px}
.rl-sumrow.rl-tot b{font-family:var(--serif);font-size:28px}

/* ====================== Pages texte ====================== */
.rl-page{padding:clamp(40px,6vw,80px) 0}
.rl-page-hero{text-align:center;max-width:760px;margin:0 auto clamp(40px,6vw,70px)}
.rl-page-hero h1{font-size:clamp(40px,6vw,82px)}
.rl-page-hero p{font-size:19px;color:var(--ink-soft);margin-top:18px}
.rl-prose{max-width:720px;margin:0 auto}
.rl-prose h2{font-size:clamp(26px,3vw,38px);margin:38px 0 14px}
.rl-prose p,.rl-prose li{font-size:17px;color:var(--ink-soft)}
.rl-prose ul{padding-left:20px}
.rl-about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:50px 0}
.rl-about-grid img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--r)}
.rl-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:start}
.rl-field{margin-bottom:18px}
.rl-field label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;display:block;margin-bottom:8px}
.rl-field input,.rl-field textarea{width:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--r);
  font-family:inherit;font-size:15px;background:var(--paper);color:var(--ink)}
.rl-field textarea{min-height:140px;resize:vertical}

/* toast */
.rl-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120%);z-index:120;
  background:var(--ink);color:var(--cream);padding:14px 22px;border-radius:var(--r);font-size:14px;
  display:flex;gap:10px;align-items:center;box-shadow:var(--shadow);transition:transform .35s;max-width:92vw}
.rl-toast.rl-show{transform:translateX(-50%)}
.rl-toast svg{width:18px;height:18px;color:var(--terra)}

/* ====================== Responsive ====================== */
@media (max-width:1080px){
  .rl-feat-grid{grid-template-columns:1fr}
  .rl-assure-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:920px){
  .rl-mast-nav{display:none}
  .rl-mast-est{display:none}
  .rl-burger{display:inline-flex}
  .rl-mast-top{grid-template-columns:auto 1fr auto;padding:14px 0}
  .rl-hero-grid,.rl-manifest-grid,.rl-news-in,.rl-pdp-grid,.rl-cartpage,.rl-contact-grid{grid-template-columns:1fr}
  .rl-pdp-body{grid-template-columns:1fr}
  .rl-toc{position:static;display:none}
  .rl-gallery{position:static}
  .rl-grid{grid-template-columns:repeat(2,1fr)}
  .rl-journal{grid-template-columns:1fr}
  .rl-j1,.rl-j2,.rl-j3{grid-column:span 1}
  .rl-j3{grid-template-columns:1fr}
  .rl-cx{grid-template-columns:auto 1fr auto;gap:18px}
  .rl-cx-thumb{display:none}
  .rl-about-grid{grid-template-columns:1fr}
  .rl-sticky-atc{display:grid}
  .rl-hero-img .rl-tagchip{left:14px}
  body{padding-bottom:74px}
}
@media (max-width:560px){
  .rl-grid{grid-template-columns:1fr 1fr;gap:16px}
  .rl-assure-grid{grid-template-columns:1fr}
  .rl-lang{display:none}
  :root{--gut:18px}
  .rl-card-name{font-size:19px}
}

/* menu mobile plein écran */
.rl-mob{position:fixed;inset:0;z-index:110;background:var(--cream);transform:translateX(-100%);
  transition:transform .35s;display:flex;flex-direction:column;padding:24px}
.rl-mob.rl-open{transform:none}
.rl-mob-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}
.rl-mob nav{display:flex;flex-direction:column;gap:4px}
.rl-mob nav a{font-family:var(--serif);font-size:34px;padding:10px 0;border-bottom:1px solid var(--line-soft);
  display:flex;gap:14px;align-items:baseline}
.rl-mob nav a .rl-nn{font-size:16px;color:var(--terra)}
.rl-mob-foot{margin-top:auto;font-size:13px;color:var(--ink-soft)}
