/*
Theme Name: Royal Beauty Child
Template: storefront
Version: 1.3
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Jost:wght@200;300;400;500&display=swap');

:root {
  --rb-cream:      #fdf6f0;
  --rb-beige:      #f5ede4;
  --rb-sand:       #e8d5c4;
  --rb-gold:       #c9a96e;
  --rb-gold-dark:  #a8834a;
  --rb-brown:      #8b6a5a;
  --rb-choco:      #5c3d2e;
  --rb-night:      #2c1810;
  --rb-font: 'Cormorant Garamond', Georgia, serif;
  --rb-font-ui: 'Jost', 'Arial', sans-serif;
  --rb-header-h:   72px;
  --rb-transition: 0.3s ease;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--rb-font-ui); background:var(--rb-cream); color:var(--rb-choco); overflow-x:hidden; padding-top:0 !important; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }

/* ── Cacher tout ce que Storefront génère ── */
.site-header,
.storefront-primary-navigation,
.storefront-header-cart,
.site-branding,
#site-navigation,
.storefront-handheld-footer-bar,
.woocommerce-breadcrumb { display:none !important; }
.site-main, #main, .site { margin-top:0 !important; padding-top:0 !important; }

/* ============================================
   HEADER
============================================ */
#rb-header {
  position:fixed; top:0; left:0; right:0;
  height:var(--rb-header-h);
  z-index:9999;
  background:var(--rb-cream);
  border-bottom:1px solid var(--rb-sand);
  transition:box-shadow var(--rb-transition);
}
#rb-header.scrolled { box-shadow:0 2px 24px rgba(92,61,46,0.1); }

.rb-header-inner {
  height:100%;
  max-width:1400px;
  margin:0 auto;
  padding:0 36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

/* Logo */
.rb-logo { flex-shrink:0; }
.rb-logo img { height:52px; width:auto; }

/* Burger (mobile) */
.rb-burger {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; background:none; border:none; padding:6px; flex-shrink:0;
}
.rb-burger span { display:block; width:22px; height:1.5px; background:var(--rb-choco); transition:all var(--rb-transition); }
.rb-burger.open span:nth-child(1) { transform:rotate(45deg) translate(4px,4px); }
.rb-burger.open span:nth-child(2) { opacity:0; }
.rb-burger.open span:nth-child(3) { transform:rotate(-45deg) translate(4px,-4px); }

/* Navigation desktop */
.rb-nav-wrap { flex:1; display:flex; justify-content:center; align-items:stretch; height:100%; }
.rb-nav { display:flex; align-items:stretch; list-style:none; height:100%; margin:0; padding:0; }
.rb-nav > li { position:static; display:flex; align-items:center; }
.rb-nav > li > a {
  display:flex; align-items:center; gap:5px;
  padding:0 16px; height:100%;
  font-family:var(--rb-font-ui); font-size:11px; font-weight:600;
  letter-spacing:2.5px; text-transform:uppercase;
  color:var(--rb-choco); white-space:nowrap;
  transition:color var(--rb-transition);
  position:relative;
}
.rb-nav > li > a:hover { color:var(--rb-gold); }
.rb-nav > li > a::after {
  content:''; position:absolute; bottom:0; left:16px; right:16px;
  height:2px; background:var(--rb-gold);
  transform:scaleX(0); transition:transform var(--rb-transition);
}
.rb-nav > li > a:hover::after { transform:scaleX(1); }
.rb-arrow { font-size:14px; color:var(--rb-gold); font-weight:300; }

/* Icônes droite */
.rb-header-icons { display:flex; align-items:center; gap:8px; flex-shrink:0; }

.rb-search-wrap {
  display:flex; align-items:center; gap:6px;
  background:var(--rb-beige); border:1px solid var(--rb-sand);
  border-radius:30px; padding:7px 14px;
  transition:border-color var(--rb-transition);
}
.rb-search-wrap:focus-within { border-color:var(--rb-gold); }
.rb-search-wrap svg { color:var(--rb-gold); flex-shrink:0; }
.rb-search-wrap input { border:none; background:transparent; font-family:var(--rb-font-ui); font-size:11px; color:var(--rb-choco); outline:none; width:100px; }
.rb-search-wrap input::placeholder { color:var(--rb-brown); }

/* Bouton icône avec CERCLE visible */
.rb-icon-btn {
  background:none; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  padding:0;
}
.rb-icon-circle {
  position:relative;
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px;
  border-radius:50%;
  border:1.5px solid var(--rb-sand);
  background:var(--rb-beige);
  color:var(--rb-choco);
  transition:all var(--rb-transition);
}
.rb-icon-btn:hover .rb-icon-circle {
  border-color:var(--rb-gold);
  background:white;
  color:var(--rb-gold);
}
.rb-cart-count {
  position:absolute; top:-4px; right:-4px;
  background:var(--rb-gold); color:white;
  font-family:var(--rb-font-ui); font-size:9px; font-weight:700;
  min-width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  padding:0 3px; line-height:1;
}

/* ============================================
   MEGA MENU — pleine largeur, fixé sous le header
============================================ */
.rb-megamenu {
  display:none;
  position:fixed;
  top:var(--rb-header-h);
  left:0; right:0;
  background:white;
  border-top:2px solid var(--rb-gold);
  border-bottom:1px solid var(--rb-sand);
  box-shadow:0 8px 32px rgba(92,61,46,0.1);
  z-index:9990;
  padding:32px 0;
}
.rb-nav > li:hover .rb-megamenu { display:block; }

.rb-megamenu-inner-old {
  max-width:860px;
  margin:0 auto;
  padding:0 40px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
}

/* Titre de colonne cliquable */
.rb-mm-title-link {
  display:block;
  font-family:var(--rb-font-ui); font-size:11px; font-weight:700;
  letter-spacing:2.5px; text-transform:uppercase;
  color:var(--rb-gold);
  margin-bottom:12px; padding-bottom:8px;
  border-bottom:1px solid var(--rb-sand);
  transition:color var(--rb-transition);
}
.rb-mm-title-link:hover { color:var(--rb-gold-dark); }

.rb-mm-col ul { list-style:none; }
.rb-mm-col ul li { margin-bottom:2px; }
.rb-mm-col ul li a {
  display:block; padding:5px 0;
  font-family:var(--rb-font-ui); font-size:12px; font-weight:400;
  color:var(--rb-brown);
  transition:color var(--rb-transition), padding-left var(--rb-transition);
}
.rb-mm-col ul li a:hover { color:var(--rb-choco); padding-left:8px; }

/* ============================================
   MINI PANIER
============================================ */
.rb-cart-dropdown {
  position:fixed; top:var(--rb-header-h); right:36px;
  width:320px;
  background:white;
  border:1px solid var(--rb-sand); border-top:2px solid var(--rb-gold);
  box-shadow:0 10px 40px rgba(92,61,46,0.12);
  z-index:9995; padding:20px;
  opacity:0; visibility:hidden;
  transition:opacity var(--rb-transition), visibility var(--rb-transition);
}
.rb-cart-dropdown.open { opacity:1; visibility:visible; }
.rb-cart-empty { text-align:center; padding:16px 0; }
.rb-cart-empty svg { color:var(--rb-sand); margin:0 auto 10px; }
.rb-cart-empty p { font-size:13px; color:var(--rb-brown); margin-bottom:14px; }
.rb-secure-badges { border-top:1px solid var(--rb-sand); padding-top:12px; margin-top:12px; display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; }
.rb-secure-badge { font-size:9px; color:var(--rb-brown); }

/* ============================================
   MODAL COMPTE
============================================ */
.rb-modal-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(44,24,16,0.5);
  backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  z-index:99990;
}
.rb-modal-overlay.active { display:block; }

.rb-account-modal {
  position:fixed; top:0; right:-440px; bottom:0;
  width:380px; max-width:90vw;
  background:var(--rb-cream);
  border-left:2px solid var(--rb-gold);
  box-shadow:-10px 0 50px rgba(44,24,16,0.15);
  z-index:99999; padding:48px 36px;
  transition:right 0.4s cubic-bezier(0.4,0,0.2,1);
  overflow-y:auto;
}
.rb-account-modal.open { right:0; }
.rb-modal-close { position:absolute; top:18px; right:20px; background:none; border:none; font-size:22px; cursor:pointer; color:var(--rb-choco); width:32px; height:32px; display:flex; align-items:center; justify-content:center; }
.rb-modal-logo { margin-bottom:24px; }
.rb-modal-title { font-family:var(--rb-font); font-size:28px; font-weight:400; color:var(--rb-choco); margin-bottom:28px; }

#rb-login-form p { margin-bottom:14px; }
#rb-login-form label { display:block; font-size:10px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--rb-brown); margin-bottom:6px; }
#rb-login-form input[type="text"],
#rb-login-form input[type="password"] { width:100%; padding:11px 14px; border:1px solid var(--rb-sand); background:white; font-family:var(--rb-font-ui); font-size:13px; color:var(--rb-choco); border-radius:2px; outline:none; transition:border-color var(--rb-transition); }
#rb-login-form input:focus { border-color:var(--rb-gold); }
#rb-login-form input[type="submit"] { width:100%; padding:13px; background:var(--rb-gold); color:white; border:none; font-family:var(--rb-font-ui); font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; cursor:pointer; border-radius:2px; margin-top:8px; box-shadow:0 4px 0 var(--rb-gold-dark),0 6px 14px rgba(201,169,110,0.35); transition:background var(--rb-transition); }
#rb-login-form input[type="submit"]:hover { background:var(--rb-gold-dark); }
.rb-modal-sep { text-align:center; font-size:11px; color:var(--rb-brown); margin:18px 0; position:relative; }
.rb-modal-sep::before,.rb-modal-sep::after { content:''; position:absolute; top:50%; width:42%; height:1px; background:var(--rb-sand); }
.rb-modal-sep::before { left:0; } .rb-modal-sep::after { right:0; }
.rb-btn-outline-dark { display:block; text-align:center; border:1px solid var(--rb-choco); color:var(--rb-choco); font-family:var(--rb-font-ui); font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; padding:12px; border-radius:2px; transition:all var(--rb-transition); }
.rb-btn-outline-dark:hover { background:var(--rb-choco); color:white; }
.rb-modal-forgot { display:block; text-align:center; font-size:11px; color:var(--rb-brown); margin-top:14px; }
.rb-modal-forgot:hover { color:var(--rb-gold); }
.rb-modal-links a { display:block; padding:12px 0; font-size:13px; color:var(--rb-choco); border-bottom:1px solid var(--rb-sand); transition:color var(--rb-transition), padding-left var(--rb-transition); }
.rb-modal-links a:hover { color:var(--rb-gold); padding-left:8px; }

/* ============================================
   HERO
============================================ */
#rb-hero {
  position:relative; width:100%;
  height:calc(100vh - var(--rb-header-h));
  margin-top:var(--rb-header-h);
  overflow:hidden;
  background:var(--rb-night);
}
#rb-hero video {
  position:absolute; top:50%; left:50%;
  min-width:100%; min-height:100%;
  transform:translate(-50%,-50%);
  object-fit:cover; z-index:0;
}
.rb-hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(110deg, rgba(20,10,5,0.65) 0%, rgba(20,10,5,0.2) 55%, rgba(20,10,5,0.55) 100%);
  z-index:1;
}
.rb-hero-content {
  position:relative; z-index:2;
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 80px;
}
.rb-hero-left { max-width:440px; }
.rb-hero-right { max-width:360px; text-align:right; }

.rb-hero-eyebrow {
  display:flex; align-items:center; gap:8px;
  font-family:var(--rb-font-ui); font-size:11px; font-weight:500;
  letter-spacing:4px; text-transform:uppercase;
  color:var(--rb-gold); margin-bottom:20px;
}
.rb-hero-right .rb-hero-eyebrow { justify-content:flex-end; }
.rb-diamond { font-size:12px; }

.rb-hero-left h1 {
  font-family:var(--rb-font); font-size:52px; font-weight:500;
  color:white; line-height:1.15; margin-bottom:20px;
  text-shadow:0 2px 20px rgba(0,0,0,0.3);
}
.rb-hero-left h1 em { font-style:italic; color:var(--rb-gold); font-weight:400; }

.rb-hero-right h2 {
  font-family:var(--rb-font); font-size:42px; font-weight:400; font-style:italic;
  color:white; line-height:1.2; margin-bottom:20px;
  text-shadow:0 2px 20px rgba(0,0,0,0.3);
}
.rb-hero-right h2 em { font-style:normal; color:var(--rb-gold); }

.rb-hero-tag-small {
  font-family:var(--rb-font-ui); font-size:10px; font-weight:500;
  letter-spacing:3px; text-transform:uppercase;
  color:rgba(255,255,255,0.6); margin-bottom:12px;
}

.rb-hero-sub {
  font-family:var(--rb-font-ui); font-size:13px; font-weight:300;
  color:rgba(255,255,255,0.82); line-height:1.9; margin-bottom:32px;
  text-shadow:0 1px 8px rgba(0,0,0,0.25);
}

.rb-hero-line { width:40px; height:1px; background:var(--rb-gold); margin-bottom:28px; }

/* Boutons 3D */
.rb-btn-gold {
  display:inline-block;
  background:linear-gradient(160deg, #d4b578 0%, #c9a96e 50%, #b8924f 100%);
  color:white;
  font-family:var(--rb-font-ui); font-size:11px; font-weight:600;
  letter-spacing:2.5px; text-transform:uppercase;
  padding:15px 38px; border-radius:3px; border:none; cursor:pointer;
  box-shadow:0 4px 0 #7a5e2e, 0 8px 20px rgba(168,131,74,0.4);
  transition:all 0.15s ease;
  position:relative; top:0;
}
.rb-btn-gold:hover { top:2px; box-shadow:0 2px 0 #7a5e2e, 0 4px 12px rgba(168,131,74,0.35); }
.rb-btn-gold:active { top:4px; box-shadow:none; }

.rb-btn-outline {
  display:inline-block;
  background:rgba(255,255,255,0.06);
  color:white;
  font-family:var(--rb-font-ui); font-size:11px; font-weight:600;
  letter-spacing:2.5px; text-transform:uppercase;
  padding:14px 38px; border-radius:3px;
  border:1.5px solid var(--rb-gold);
  box-shadow:0 4px 0 rgba(120,80,20,0.4), 0 8px 20px rgba(0,0,0,0.2);
  backdrop-filter:blur(4px);
  transition:all 0.15s ease;
  position:relative; top:0;
}
.rb-btn-outline:hover { background:rgba(201,169,110,0.2); top:2px; box-shadow:0 2px 0 rgba(120,80,20,0.35), 0 4px 12px rgba(0,0,0,0.15); }
.rb-btn-outline:active { top:4px; box-shadow:none; }

/* ============================================
   BARRE CONFIANCE
============================================ */
.rb-trust-bar { background:var(--rb-choco); padding:14px 40px; display:flex; align-items:center; justify-content:center; gap:48px; flex-wrap:wrap; }
.rb-trust-item { display:flex; align-items:center; gap:8px; font-family:var(--rb-font-ui); font-size:11px; font-weight:400; color:rgba(255,255,255,0.85); letter-spacing:0.5px; }
.rb-trust-item svg { color:var(--rb-gold); width:16px; height:16px; flex-shrink:0; stroke-width:1.5; }

/* ============================================
   MOBILE DRAWER
============================================ */
.rb-overlay { display:none; position:fixed; inset:0; background:rgba(44,24,16,0.5); z-index:9980; }
.rb-overlay.active { display:block; }
.rb-mobile-menu { position:fixed; top:0; left:0; width:80%; max-width:320px; height:100vh; background:var(--rb-cream); z-index:9985; transform:translateX(-100%); transition:transform 0.4s cubic-bezier(0.4,0,0.2,1); overflow-y:auto; padding:80px 28px 40px; }
.rb-mobile-menu.open { transform:translateX(0); }
.rb-mobile-menu-close { position:absolute; top:20px; right:20px; background:none; border:none; font-size:22px; cursor:pointer; color:var(--rb-choco); }
.rb-mob-nav { list-style:none; }
.rb-mob-nav > li { border-bottom:1px solid var(--rb-sand); }
.rb-mob-nav > li > a { display:flex; align-items:center; justify-content:space-between; padding:16px 0; font-family:var(--rb-font-ui); font-size:12px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--rb-choco); }
.rb-mob-arrow { font-size:16px; color:var(--rb-gold); transition:transform var(--rb-transition); }
.rb-mob-nav > li.open > a .rb-mob-arrow { transform:rotate(90deg); }
.rb-mob-submenu { display:none; padding:0 0 14px 12px; }
.rb-mob-nav > li.open .rb-mob-submenu { display:block; }
.rb-mob-submenu-title { font-size:9px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--rb-gold); padding:10px 0 4px; }
.rb-mob-submenu a { display:block; font-family:var(--rb-font-ui); font-size:12px; color:var(--rb-brown); padding:5px 0; }

/* ============================================
   RESPONSIVE MOBILE
============================================ */
@media (max-width:1024px) {
  :root { --rb-header-h: 64px; }
  .rb-nav-wrap { display:none; }
  .rb-burger { display:flex; }
  .rb-search-wrap { display:none; }

  .rb-header-inner {
    padding:0 16px;
    display:grid;
    grid-template-columns:44px 1fr 88px;
    align-items:center; gap:8px;
  }
  .rb-burger { justify-self:start; }
  .rb-logo { justify-self:center; display:flex; justify-content:center; }
  .rb-logo img { height:44px; }
  .rb-header-icons { justify-self:end; }
  .rb-icon-circle { width:34px; height:34px; }

  .rb-hero-content { padding:0 24px; flex-direction:column; justify-content:flex-end; padding-bottom:64px; gap:0; }
  .rb-hero-left { max-width:100%; text-align:center; }
  .rb-hero-left h1 { font-size:32px; }
  .rb-hero-left .rb-hero-eyebrow { justify-content:center; }
  .rb-hero-line { margin:0 auto 28px; }
  .rb-hero-right { display:none; }
  .rb-trust-bar { gap:16px; padding:12px 16px; }
  .rb-trust-item { font-size:10px; }
  .rb-cart-dropdown { right:8px; width:calc(100vw - 16px); }
}
@media (max-width:480px) {
  .rb-hero-left h1 { font-size:26px; }
  .rb-hero-sub { font-size:12px; }
}

/* ── WooCommerce overrides ── */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button {
  background:linear-gradient(160deg,#d4b578,#c9a96e,#b8924f) !important;
  color:white !important; font-family:var(--rb-font-ui) !important;
  font-size:11px !important; letter-spacing:2px !important;
  text-transform:uppercase !important; border-radius:2px !important;
  border:none !important; padding:12px 28px !important;
  box-shadow:0 4px 0 #7a5e2e,0 6px 14px rgba(201,169,110,0.35) !important;
}
.woocommerce a.button:hover,.woocommerce button.button:hover { background:var(--rb-gold-dark) !important; }

/* ── MEGA MENU FIX ── */
.rb-megamenu {
  display: none !important;
  position: fixed !important;
  top: var(--rb-header-h) !important;
  left: 0 !important;
  right: 0 !important;
  width: 100vw !important;
  background: white !important;
  border-top: 2px solid var(--rb-gold) !important;
  border-bottom: 1px solid var(--rb-sand) !important;
  box-shadow: 0 8px 32px rgba(92,61,46,0.1) !important;
  z-index: 9990 !important;
  padding: 32px 0 !important;
}
.rb-nav > li:hover .rb-megamenu { display: block !important; }

.rb-megamenu-inner {
  width: 100% !important;
  max-width: 1000px !important;
  margin: 0 auto !important;
  padding: 0 60px !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 40px !important;
  box-sizing: border-box !important;
}

/* ── ICÔNES CERCLES PLUS GRANDS ── */
.rb-icon-circle {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  border: 1.5px solid var(--rb-sand) !important;
  background: var(--rb-beige) !important;
  color: var(--rb-choco) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all var(--rb-transition) !important;
}
.rb-icon-btn:hover .rb-icon-circle {
  border-color: var(--rb-gold) !important;
  background: white !important;
  color: var(--rb-gold) !important;
}
.rb-icon-btn svg { display: block !important; }

/* ============================================
   MOBILE LOGO CENTRÉ — FIX
============================================ */
@media (max-width: 1024px) {
  .rb-header-inner {
    display: grid !important;
    grid-template-columns: 44px 1fr 88px !important;
    align-items: center !important;
    padding: 0 16px !important;
    height: 64px !important;
  }
  .rb-burger {
    grid-column: 1 !important;
    justify-self: start !important;
    align-self: center !important;
  }
  .rb-logo {
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
  }
  .rb-logo img { height: 46px !important; width: auto !important; }
  .rb-header-icons {
    grid-column: 3 !important;
    justify-self: end !important;
    align-self: center !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
  }
  .rb-nav-wrap { display: none !important; }
  .rb-search-wrap { display: none !important; }
}

/* ============================================
   POLICES LUXE — AJUSTEMENTS FINS
============================================ */

/* Titres hero — Cormorant fin et élégant */
.rb-hero-left h1 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 54px !important;
  font-weight: 300 !important;
  font-style: italic !important;
  letter-spacing: 1px !important;
  line-height: 1.1 !important;
}
.rb-hero-left h1 em {
  font-style: normal !important;
  font-weight: 400 !important;
  color: var(--rb-gold) !important;
}
.rb-hero-right h2 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 44px !important;
  font-weight: 300 !important;
  font-style: italic !important;
  letter-spacing: 1px !important;
}
.rb-hero-right h2 em {
  font-style: normal !important;
  color: var(--rb-gold) !important;
}

/* Eyebrow — Jost très fin et espacé */
.rb-hero-eyebrow {
  font-family: 'Jost', Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  letter-spacing: 5px !important;
  text-transform: uppercase !important;
}

/* Sous-texte hero — Jost light */
.rb-hero-sub {
  font-family: 'Jost', Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 200 !important;
  letter-spacing: 0.5px !important;
  line-height: 1.9 !important;
}

/* Nav menu — Jost fin */
.rb-nav > li > a {
  font-family: 'Jost', Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 3px !important;
}

/* Boutons — Jost medium espacé */
.rb-btn-gold, .rb-btn-outline {
  font-family: 'Jost', Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 3px !important;
}

/* Trust bar */
.rb-trust-item {
  font-family: 'Jost', Arial, sans-serif !important;
  font-weight: 300 !important;
  letter-spacing: 1px !important;
}

/* Mega menu titres */
.rb-mm-title-link, #rb-megamenu a[style*="font-weight:700"] {
  font-family: 'Jost', Arial, sans-serif !important;
  letter-spacing: 3px !important;
  font-weight: 500 !important;
}

/* Modal */
.rb-modal-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 32px !important;
  font-weight: 300 !important;
  font-style: italic !important;
}

/* Mobile nav */
.rb-mob-nav > li > a {
  font-family: 'Jost', Arial, sans-serif !important;
  font-weight: 300 !important;
  letter-spacing: 3px !important;
}

/* ============================================
   MEGA MENU — EFFET 3D SUR HOVER
============================================ */
#rb-megamenu a {
  transition: all 0.2s ease !important;
  display: block !important;
  padding: 5px 10px !important;
  border-radius: 3px !important;
  transform: translateZ(0) !important;
}
#rb-megamenu ul li a:hover {
  color: var(--rb-choco) !important;
  background: var(--rb-beige) !important;
  padding-left: 16px !important;
  box-shadow: 2px 3px 10px rgba(92,61,46,0.15), inset 0 1px 0 rgba(255,255,255,0.8) !important;
  transform: translateX(4px) translateY(-1px) !important;
  border-left: 2px solid var(--rb-gold) !important;
}

/* Titres colonnes hover */
#rb-megamenu > div > div > a:hover {
  color: var(--rb-gold-dark) !important;
  letter-spacing: 3.5px !important;
  text-shadow: 0 2px 8px rgba(201,169,110,0.3) !important;
}

/* Effet carte 3D sur chaque colonne */
#rb-megamenu > div > div {
  padding: 20px 16px !important;
  border-radius: 4px !important;
  transition: all 0.25s ease !important;
}
#rb-megamenu > div > div:hover {
  background: rgba(253,246,240,0.7) !important;
  box-shadow: 0 8px 24px rgba(92,61,46,0.1), 0 2px 6px rgba(201,169,110,0.15) !important;
  transform: translateY(-3px) !important;
}

/* ============================================
   BODONI MODA — TITRES ULTRA LUXE
============================================ */
.rb-hero-left h1 {
  font-family: 'Bodoni Moda', Georgia, serif !important;
  font-size: 56px !important;
  font-weight: 300 !important;
  font-style: italic !important;
  letter-spacing: 0px !important;
  line-height: 1.1 !important;
}
.rb-hero-left h1 em {
  font-style: italic !important;
  font-weight: 400 !important;
  color: var(--rb-gold) !important;
}
.rb-hero-right h2 {
  font-family: 'Bodoni Moda', Georgia, serif !important;
  font-size: 46px !important;
  font-weight: 300 !important;
  font-style: italic !important;
  line-height: 1.15 !important;
}
.rb-hero-right h2 em {
  font-style: italic !important;
  color: var(--rb-gold) !important;
}
.rb-modal-title {
  font-family: 'Bodoni Moda', Georgia, serif !important;
  font-style: italic !important;
  font-weight: 300 !important;
}

/* ============================================
   EFFET REMPLISSAGE MENU — FILL ON HOVER
============================================ */
.rb-nav > li > a {
  position: relative !important;
  overflow: hidden !important;
  z-index: 0 !important;
  padding: 0 18px !important;
}
.rb-nav > li > a::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(135deg, rgba(201,169,110,0.12), rgba(201,169,110,0.06)) !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
  z-index: -1 !important;
}
.rb-nav > li > a:hover::before {
  transform: scaleX(1) !important;
}
/* Garde le soulignement doré en bas */
.rb-nav > li > a::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important; left: 18px !important; right: 18px !important;
  height: 1.5px !important;
  background: var(--rb-gold) !important;
  transform: scaleX(0) !important;
  transition: transform 0.35s ease !important;
  z-index: 1 !important;
}
.rb-nav > li > a:hover::after { transform: scaleX(1) !important; }

/* ============================================
   EFFET REMPLISSAGE MEGA MENU LIENS
============================================ */
#rb-megamenu ul li a {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 3px !important;
  padding: 5px 10px !important;
}
#rb-megamenu ul li a::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(90deg, rgba(201,169,110,0.15), rgba(201,169,110,0.05)) !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform 0.3s cubic-bezier(0.4,0,0.2,1) !important;
  z-index: -1 !important;
  border-left: 2px solid var(--rb-gold) !important;
}
#rb-megamenu ul li a:hover::before {
  transform: scaleX(1) !important;
}
#rb-megamenu ul li a:hover {
  color: var(--rb-choco) !important;
  padding-left: 14px !important;
  box-shadow: 2px 3px 12px rgba(92,61,46,0.12) !important;
  transform: translateY(-1px) !important;
}

/* ============================================
   BOUTONS HERO — EFFET REMPLISSAGE AU HOVER
============================================ */

/* Bouton doré — se remplit en brun foncé */
.rb-btn-gold {
  position: relative !important;
  overflow: hidden !important;
  background: linear-gradient(160deg, #d4b578 0%, #c9a96e 50%, #b8924f 100%) !important;
  z-index: 0 !important;
  transition: color 0.4s ease, box-shadow 0.15s ease, top 0.15s ease !important;
}
.rb-btn-gold::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--rb-choco) !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
  z-index: -1 !important;
}
.rb-btn-gold:hover::before { transform: scaleX(1) !important; }
.rb-btn-gold:hover { color: var(--rb-gold) !important; }

/* Bouton outline — se remplit en doré */
.rb-btn-outline {
  position: relative !important;
  overflow: hidden !important;
  background: transparent !important;
  z-index: 0 !important;
  transition: color 0.4s ease, box-shadow 0.15s ease, top 0.15s ease !important;
}
.rb-btn-outline::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--rb-gold) !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
  z-index: -1 !important;
}
.rb-btn-outline:hover::before { transform: scaleX(1) !important; }
.rb-btn-outline:hover { color: white !important; border-color: var(--rb-gold) !important; }

/* ============================================
   MOBILE — TOUS LES FIXES
============================================ */
@media (max-width: 1024px) {

  /* Logo vraiment centré */
  #rb-header { height: 64px !important; }
  .rb-header-inner {
    display: grid !important;
    grid-template-columns: 44px 1fr 44px !important;
    height: 64px !important;
    padding: 0 14px !important;
    align-items: center !important;
  }
  .rb-burger {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .rb-logo {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .rb-logo a {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }
  .rb-logo img { height: 44px !important; width: auto !important; }
  .rb-header-icons {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    gap: 6px !important;
  }
  .rb-search-wrap { display: none !important; }
  .rb-nav-wrap { display: none !important; }
  .rb-icon-circle { width: 34px !important; height: 34px !important; }

  /* Police Bodoni sur mobile */
  .rb-hero-left h1 {
    font-family: 'Bodoni Moda', Georgia, serif !important;
    font-size: 36px !important;
    font-style: italic !important;
    font-weight: 300 !important;
    text-align: center !important;
    line-height: 1.2 !important;
  }
  .rb-hero-left h1 em {
    font-style: italic !important;
    color: var(--rb-gold) !important;
  }
  .rb-hero-sub {
    font-family: 'Jost', Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 200 !important;
    text-align: center !important;
  }
  .rb-hero-eyebrow {
    justify-content: center !important;
    font-family: 'Jost', Arial, sans-serif !important;
  }
  .rb-hero-line { margin: 0 auto 28px !important; }
  .rb-btn-gold {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
  }
}

/* ============================================
   MENU MOBILE — SOINS/MAQUILLAGE/PARFUM/SÉLECTION CLIQUABLES
============================================ */
.rb-mob-submenu-title-link {
  display: block !important;
  font-family: 'Jost', Arial, sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: var(--rb-gold) !important;
  padding: 10px 0 5px !important;
  transition: color var(--rb-transition) !important;
  text-decoration: none !important;
  border-bottom: none !important;
}
.rb-mob-submenu-title-link:hover { color: var(--rb-gold-dark) !important; }

/* Desktop/Mobile only utilities */
.rb-mobile-only { display: none !important; }
.rb-desktop-only { display: inline-block !important; }
@media (max-width: 1024px) {
  .rb-mobile-only { display: block !important; }
  .rb-desktop-only { display: none !important; }
}

/* ============================================
   MENU MOBILE — DISTINCTION TITRES / SOUS-TITRES
============================================ */
.rb-mob-submenu {
  padding: 8px 0 16px 0 !important;
}

/* Grand titre cliquable — bien visible, doré, grand */
.rb-mob-submenu-title-link {
  display: block !important;
  font-family: 'Jost', Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--rb-choco) !important;
  padding: 12px 0 6px !important;
  margin-top: 10px !important;
  border-bottom: 1.5px solid var(--rb-gold) !important;
  margin-bottom: 6px !important;
}
.rb-mob-submenu-title-link:first-child { margin-top: 4px !important; }
.rb-mob-submenu-title-link:hover { color: var(--rb-gold) !important; }

/* Petits sous-titres — plus petits, indentés, brun */
.rb-mob-submenu a:not(.rb-mob-submenu-title-link) {
  display: block !important;
  font-family: 'Jost', Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  color: var(--rb-brown) !important;
  padding: 5px 0 5px 14px !important;
  letter-spacing: 0.5px !important;
  border-left: 1px solid var(--rb-sand) !important;
  margin-left: 4px !important;
  transition: color var(--rb-transition), padding-left var(--rb-transition) !important;
}
.rb-mob-submenu a:not(.rb-mob-submenu-title-link):hover {
  color: var(--rb-choco) !important;
  padding-left: 20px !important;
}

/* ============================================
   MOBILE HERO — UN SEUL BOUTON + POLICE BODONI
============================================ */
@media (max-width: 1024px) {
  /* Cacher complètement le bouton boutique sur mobile */
  .rb-desktop-only { display: none !important; }
  .rb-mobile-only { display: block !important; width: 100% !important; text-align: center !important; }

  /* Police Bodoni forcée sur mobile */
  .rb-hero-left h1 {
    font-family: 'Bodoni Moda', 'Times New Roman', serif !important;
    font-size: 34px !important;
    font-weight: 300 !important;
    font-style: italic !important;
    line-height: 1.2 !important;
    text-align: center !important;
    letter-spacing: 0.5px !important;
  }
  .rb-hero-left h1 em {
    font-style: italic !important;
    color: var(--rb-gold) !important;
    font-weight: 400 !important;
  }
  .rb-hero-sub {
    font-family: 'Jost', Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 200 !important;
    text-align: center !important;
    letter-spacing: 0.3px !important;
  }

  /* Logo — légèrement décalé à droite pour compenser optiquement */
  .rb-logo {
    padding-right: 0 !important;
    margin-left: 8px !important;
  }
}






/* ============================================
   FOOTER FINAL
============================================ */
#rb-footer { background:#2c1810; font-family:var(--rb-font-ui); }

.rb-footer-topbar { background:linear-gradient(90deg,#2c1810,#3d1f10,#2c1810); border-top:1px solid rgba(201,169,110,0.35); border-bottom:1px solid rgba(201,169,110,0.12); padding:12px; text-align:center; display:flex; align-items:center; justify-content:center; gap:18px; }
.rb-ftagline { font-size:9px; font-weight:300; letter-spacing:5px; text-transform:uppercase; color:#c9a96e; }
.rb-fdiamond { color:#c9a96e; font-size:8px; }

.rb-footer-main { padding:48px 0 0; }

/* 3 colonnes desktop */
.rb-footer-grid { max-width:1280px; margin:0 auto; padding:0 48px; display:grid; grid-template-columns:200px 1fr 260px; gap:56px; align-items:start; }

/* Col 1 */
.rb-flogo-link { display:block; }
.rb-flogo-img { width:190px; height:auto; border-radius:10px; box-shadow:0 8px 28px rgba(201,169,110,0.18),0 2px 8px rgba(0,0,0,0.3); display:block; margin-bottom:14px; }
.rb-fslogan { font-family:var(--rb-font); font-style:italic; font-size:15px; font-weight:300; color:#c9a96e; text-shadow:0 2px 8px rgba(201,169,110,0.18); }

/* Titre sections */
.rb-ftitle { font-size:9px; font-weight:700; letter-spacing:3.5px; text-transform:uppercase; color:#c9a96e; margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid rgba(201,169,110,0.18); }

/* Explorer */
.rb-fexplorer-grid { display:grid; grid-template-columns:1fr 1fr; gap:4px 24px; }
.rb-fexplorer-col { display:flex; flex-direction:column; gap:2px; }
.rb-fexp-cat { font-family:var(--rb-font); font-style:italic; font-size:16px; font-weight:400; color:rgba(255,255,255,0.8); display:block; padding:4px 0; border-bottom:1px solid rgba(255,255,255,0.05); margin-bottom:2px; transition:color .2s; }
.rb-fexp-cat:hover { color:#c9a96e; }
.rb-fexp-sub { font-size:11px; font-weight:300; color:rgba(255,255,255,0.35); display:block; padding:3px 0 3px 10px; position:relative; transition:color .2s,padding-left .2s; }
.rb-fexp-sub::before { content:'—'; position:absolute; left:0; color:rgba(201,169,110,0.25); font-size:10px; }
.rb-fexp-sub:hover { color:rgba(201,169,110,0.65); padding-left:14px; }

/* Contact */
.rb-fcontact-list { display:flex; flex-direction:column; gap:6px; }
.rb-fcontact-row { display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid rgba(201,169,110,0.1); border-radius:8px; background:rgba(255,255,255,0.02); transition:all .22s; text-decoration:none; }
.rb-fcontact-row:hover { background:rgba(201,169,110,0.07); border-color:rgba(201,169,110,0.28); transform:translateX(4px); }
.rb-fci { width:38px; height:38px; flex-shrink:0; border-radius:9px; background:linear-gradient(145deg,rgba(201,169,110,0.18),rgba(44,24,16,0.5)); border:1px solid rgba(201,169,110,0.2); display:flex; align-items:center; justify-content:center; color:#c9a96e; box-shadow:0 4px 0 rgba(0,0,0,0.3),0 5px 12px rgba(0,0,0,0.18),inset 0 1px 0 rgba(255,255,255,0.07); transition:all .2s; }
.rb-fcontact-row:hover .rb-fci { transform:translateY(2px); box-shadow:0 2px 0 rgba(0,0,0,0.3),0 3px 7px rgba(0,0,0,0.15),inset 0 1px 0 rgba(255,255,255,0.07); }
.rb-fct { display:flex; flex-direction:column; gap:2px; }
.rb-fclabel { font-size:8px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:#c9a96e; }
.rb-fcval { font-size:11px; font-weight:300; color:rgba(255,255,255,0.55); transition:color .2s; }
.rb-fcontact-row:hover .rb-fcval { color:rgba(255,255,255,0.85); }

/* Newsletter */
.rb-fnewsletter { max-width:1280px; margin:40px auto 0; padding:26px 48px; border-top:1px solid rgba(201,169,110,0.1); background:rgba(0,0,0,0.12); }
.rb-fnl-inner { display:flex; align-items:center; gap:48px; }
.rb-fnl-text { flex-shrink:0; }
.rb-fnl-sub { font-size:11px; font-weight:300; color:rgba(255,255,255,0.35); margin-top:4px; }
.rb-fnl-form { flex:1; display:flex; max-width:480px; }
.rb-fnl-input { flex:1; padding:12px 16px; background:rgba(255,255,255,0.04); border:1px solid rgba(201,169,110,0.22); border-right:none; color:white; font-family:var(--rb-font-ui); font-size:12px; font-weight:300; outline:none; border-radius:2px 0 0 2px; transition:border-color .25s; }
.rb-fnl-input::placeholder { color:rgba(255,255,255,0.2); }
.rb-fnl-input:focus { border-color:rgba(201,169,110,0.45); }
.rb-fnl-btn { padding:12px 22px; background:linear-gradient(135deg,#c9a96e,#a8834a); color:white; font-family:var(--rb-font-ui); font-size:10px; font-weight:600; letter-spacing:2px; text-transform:uppercase; border:none; border-radius:0 2px 2px 0; cursor:pointer; white-space:nowrap; box-shadow:0 4px 0 #5a3d10,0 6px 14px rgba(201,169,110,0.2); transition:all .15s; position:relative; top:0; }
.rb-fnl-btn:hover { top:2px; box-shadow:0 2px 0 #5a3d10; }

/* Barre bas */
.rb-fbottom { border-top:1px solid rgba(201,169,110,0.08); padding:18px 0; background:rgba(0,0,0,0.22); }
.rb-fbottom-inner { max-width:1280px; margin:0 auto; padding:0 48px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.rb-fcopy { font-size:11px; font-weight:300; color:rgba(255,255,255,0.27); }
.rb-fcopy em { font-family:var(--rb-font); font-style:italic; color:rgba(201,169,110,0.5); }
.rb-flegal { display:flex; align-items:center; gap:10px; }
.rb-flegal a { font-size:11px; font-weight:300; color:rgba(255,255,255,0.27); transition:color .2s; }
.rb-flegal a:hover { color:#c9a96e; }
.rb-fsep { color:rgba(201,169,110,0.22); font-size:7px; }
.rb-fdev { font-size:11px; font-weight:300; color:rgba(255,255,255,0.27); }
.rb-fdev em { font-family:var(--rb-font); font-style:italic; font-size:14px; color:#c9a96e; }

/* ── MOBILE ── */
@media (max-width:1024px) {
  .rb-footer-grid {
    grid-template-columns:1fr 1fr !important;
    gap:20px !important;
    padding:0 20px !important;
  }
  /* Logo gauche col 1 row 1 */
  .rb-fcol-logo { grid-column:1; grid-row:1; }
  .rb-flogo-img { width:140px !important; }
  /* Contact droite col 2 row 1 */
  .rb-fcol-contact { grid-column:2; grid-row:1; }
  .rb-fci { width:32px !important; height:32px !important; border-radius:7px !important; }
  .rb-fcval { font-size:10px !important; }
  /* Explorer pleine largeur row 2 */
  .rb-fcol-explorer { grid-column:1 / -1; grid-row:2; }

  .rb-fnewsletter { padding:20px; margin-top:20px; }
  .rb-fnl-inner { flex-direction:column; gap:14px; align-items:flex-start; }
  .rb-fnl-form { width:100%; max-width:100%; flex-direction:column; }
  .rb-fnl-input { border-right:1px solid rgba(201,169,110,0.22); border-bottom:none; border-radius:2px 2px 0 0; }
  .rb-fnl-btn { border-radius:0 0 2px 2px; }

  .rb-fbottom-inner { flex-direction:column; text-align:center; padding:0 20px; gap:8px; }
  .rb-flegal { justify-content:center; flex-wrap:wrap; }
  .rb-footer-main { padding:28px 0 0; }
}

@media (max-width:480px) {
  .rb-footer-grid { grid-template-columns:1fr !important; }
  .rb-fcol-logo { grid-column:1 !important; grid-row:1 !important; }
  .rb-fcol-contact { grid-column:1 !important; grid-row:2 !important; }
  .rb-fcol-explorer { grid-column:1 !important; grid-row:3 !important; }
  .rb-flogo-img { width:160px !important; }
}

/* ============================================
   PAGE CONTACT
============================================ */
#rb-contact-page { background: var(--rb-cream); min-height: 80vh; }

/* Hero */
.rb-contact-hero { text-align:center; padding:52px 40px 32px; }
.rb-contact-hero-line { display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:14px; }
.rb-ch-line { width:60px; height:1px; background:var(--rb-gold); display:block; }
.rb-ch-diamond { color:var(--rb-gold); font-size:11px; }
.rb-contact-title { font-family:var(--rb-font); font-size:44px; font-weight:300; color:var(--rb-choco); letter-spacing:1px; }
.rb-contact-title em { font-style:italic; color:var(--rb-gold); }
.rb-contact-sub { font-size:12px; font-weight:300; color:var(--rb-brown); letter-spacing:2px; margin-top:8px; }

/* Layout */
.rb-contact-wrap { max-width:1200px; margin:0 auto; padding:0 48px 80px; }
.rb-contact-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:32px; align-items:start; }

/* Formulaire */
.rb-contact-form-card {
  background:white; border:1px solid var(--rb-sand);
  border-radius:16px; padding:36px;
  box-shadow:0 4px 24px rgba(92,61,46,0.06);
}
.rb-form-title {
  font-family:var(--rb-font); font-size:24px; font-weight:300;
  color:var(--rb-choco); margin-bottom:28px;
}
.rb-form-title em { font-style:italic; color:var(--rb-gold); }

.rb-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.rb-form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.rb-form-label { font-size:9px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--rb-gold); }

.rb-form-input, .rb-form-select, .rb-form-textarea {
  width:100%; padding:12px 16px;
  border:1px solid var(--rb-sand);
  background:var(--rb-cream);
  font-family:var(--rb-font-ui); font-size:13px; font-weight:300;
  color:var(--rb-choco); border-radius:6px; outline:none;
  transition:border-color 0.25s ease, box-shadow 0.25s ease;
}
.rb-form-input:focus, .rb-form-select:focus, .rb-form-textarea:focus {
  border-color:var(--rb-gold);
  box-shadow:0 0 0 3px rgba(201,169,110,0.1);
}
.rb-form-input::placeholder, .rb-form-textarea::placeholder { color:rgba(139,106,90,0.5); }
.rb-form-textarea { height:130px; resize:none; }

.rb-select-wrap { position:relative; }
.rb-form-select { appearance:none; cursor:pointer; padding-right:36px; }
.rb-select-arrow { position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--rb-gold); font-size:12px; pointer-events:none; }

.rb-form-btn {
  width:100%; padding:15px;
  background:linear-gradient(135deg, var(--rb-choco), var(--rb-night));
  color:white; border:none; border-radius:6px; cursor:pointer;
  font-family:var(--rb-font-ui); font-size:11px; font-weight:600;
  letter-spacing:2.5px; text-transform:uppercase;
  box-shadow:0 4px 0 rgba(0,0,0,0.2), 0 6px 16px rgba(44,24,16,0.2);
  transition:all 0.15s ease; position:relative; top:0; margin-top:4px;
  display:flex; align-items:center; justify-content:center; gap:10px;
}
.rb-form-btn:hover { top:2px; box-shadow:0 2px 0 rgba(0,0,0,0.2), 0 4px 10px rgba(44,24,16,0.15); }
.rb-btn-diamond { color:var(--rb-gold); }

.rb-form-success { background:rgba(201,169,110,0.1); border:1px solid var(--rb-gold); color:var(--rb-choco); padding:12px 16px; border-radius:6px; font-size:13px; font-weight:300; margin-bottom:20px; }
.rb-form-error { background:rgba(220,50,50,0.08); border:1px solid rgba(220,50,50,0.3); color:#8b2020; padding:12px 16px; border-radius:6px; font-size:13px; font-weight:300; margin-bottom:20px; }

/* Infos droite */
.rb-contact-info-col { display:flex; flex-direction:column; gap:10px; }

.rb-info-card {
  display:flex; align-items:center; gap:14px;
  background:white; border:1px solid var(--rb-sand);
  border-radius:12px; padding:16px;
  text-decoration:none;
  box-shadow:0 2px 12px rgba(92,61,46,0.04);
  transition:all 0.25s ease;
}
.rb-info-card:hover {
  border-color:var(--rb-gold);
  box-shadow:0 4px 20px rgba(201,169,110,0.12);
  transform:translateX(4px);
}
.rb-info-icon {
  width:46px; height:46px; flex-shrink:0; border-radius:12px;
  background:linear-gradient(145deg, rgba(201,169,110,0.15), rgba(92,61,46,0.06));
  border:1px solid rgba(201,169,110,0.3);
  display:flex; align-items:center; justify-content:center;
  color:var(--rb-gold);
  box-shadow:0 4px 0 rgba(0,0,0,0.06), 0 5px 12px rgba(0,0,0,0.06), inset 0 1px 0 rgba(255,255,255,0.8);
  transition:all 0.2s ease;
}
.rb-info-card:hover .rb-info-icon { transform:translateY(2px); box-shadow:0 2px 0 rgba(0,0,0,0.06); }
.rb-info-text { display:flex; flex-direction:column; gap:3px; }
.rb-info-label { font-size:8px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--rb-gold); }
.rb-info-val { font-size:13px; font-weight:300; color:var(--rb-choco); }
.rb-info-link { font-size:11px; color:var(--rb-gold); font-weight:400; margin-top:2px; }

/* Horaires */
.rb-horaires-card {
  background:white; border:1px solid var(--rb-sand);
  border-radius:12px; padding:20px;
  box-shadow:0 2px 12px rgba(92,61,46,0.04);
}
.rb-horaires-title {
  display:flex; align-items:center; gap:8px;
  font-family:var(--rb-font-ui); font-size:10px; font-weight:700;
  letter-spacing:2.5px; text-transform:uppercase; color:var(--rb-choco);
  margin-bottom:14px; padding-bottom:10px;
  border-bottom:1px solid var(--rb-sand);
}
.rb-horaires-title em { font-family:var(--rb-font); font-style:italic; font-size:14px; color:var(--rb-gold); text-transform:none; letter-spacing:0; }
.rb-horaires-title svg { color:var(--rb-gold); }
.rb-horaire-row { display:flex; justify-content:space-between; align-items:center; padding:8px 0; border-bottom:1px solid var(--rb-beige); }
.rb-horaire-row:last-child { border-bottom:none; }
.rb-horaire-day { font-size:12px; font-weight:300; color:var(--rb-brown); }
.rb-horaire-time { font-size:12px; font-weight:500; color:var(--rb-choco); }
.rb-horaire-closed { font-size:12px; color:var(--rb-gold); font-style:italic; }

/* ── MOBILE ── */
@media (max-width:1024px) {
  .rb-contact-wrap { padding:0 20px 60px; }
  .rb-contact-grid { grid-template-columns:1fr; gap:20px; }
  .rb-contact-title { font-size:32px; }
  .rb-contact-hero { padding:36px 20px 24px; }

  /* Infos en grille 2x2 en premier */
  .rb-contact-info-col { order:-1; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .rb-horaires-card { grid-column:1 / -1; }
  .rb-info-card { flex-direction:column; align-items:flex-start; gap:8px; padding:12px; }
  .rb-info-icon { width:38px; height:38px; }
  .rb-info-val { font-size:11px; }

  .rb-contact-form-card { padding:24px 20px; }
  .rb-form-row { grid-template-columns:1fr; }
}

@media (max-width:480px) {
  .rb-contact-info-col { grid-template-columns:1fr; }
  .rb-info-card { flex-direction:row; align-items:center; }
  .rb-horaires-card { grid-column:1; }
}

/* ============================================
   PAGE DIAGNOSTIC / ROUTINE
============================================ */
#rb-diagnostic-page {
  background: var(--rb-cream);
  min-height: 100vh;
  position: relative;
  overflow-x: hidden;
  padding-top: var(--rb-header-h);
}

/* ── ROBOT MASCOTTE ── */
#rb-robot {
  position: fixed;
  bottom: 32px;
  right: 32px;
  z-index: 9000;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  pointer-events: none;
}

.rb-robot-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  animation: rb-robot-float 3s ease-in-out infinite;
  filter: drop-shadow(0 8px 20px rgba(201,169,110,0.3));
}

@keyframes rb-robot-float {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-6px) rotate(2deg); }
  50% { transform: translateY(-10px) rotate(-1deg); }
  75% { transform: translateY(-4px) rotate(3deg); }
}

.rb-robot-head {
  width: 64px;
  height: 56px;
  background: linear-gradient(145deg, #f5ede4, #e8d5c4);
  border: 2px solid var(--rb-gold);
  border-radius: 16px 16px 10px 10px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 0 var(--rb-gold-dark), 0 8px 20px rgba(201,169,110,0.3), inset 0 1px 0 rgba(255,255,255,0.8);
}

.rb-robot-antenna {
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 14px;
  background: var(--rb-gold);
  border-radius: 2px;
}
.rb-robot-antenna-ball {
  width: 10px;
  height: 10px;
  background: var(--rb-gold);
  border-radius: 50%;
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  animation: rb-antenna-glow 2s ease-in-out infinite;
  box-shadow: 0 0 8px var(--rb-gold);
}
@keyframes rb-antenna-glow {
  0%, 100% { opacity: 1; box-shadow: 0 0 8px var(--rb-gold); }
  50% { opacity: 0.5; box-shadow: 0 0 3px var(--rb-gold); }
}

.rb-robot-face { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.rb-robot-eyes { display: flex; gap: 10px; }
.rb-robot-eye {
  width: 16px; height: 16px;
  background: var(--rb-choco);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  transition: height 0.1s;
}
.rb-robot-eye.rb-blink { height: 2px !important; border-radius: 2px; }
.rb-robot-pupil {
  width: 6px; height: 6px;
  background: var(--rb-gold);
  border-radius: 50%;
  transition: transform 0.1s;
}
.rb-robot-mouth {
  width: 20px; height: 6px;
  border: 2px solid var(--rb-choco);
  border-top: none;
  border-radius: 0 0 10px 10px;
  transition: all 0.3s;
}

.rb-robot-torso {
  width: 48px; height: 36px;
  background: linear-gradient(145deg, var(--rb-gold), var(--rb-gold-dark));
  border-radius: 8px 8px 12px 12px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 0 #5a3d10, 0 6px 16px rgba(201,169,110,0.3);
  margin-top: 2px;
}
.rb-robot-chest-light {
  width: 12px; height: 12px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  animation: rb-chest-pulse 1.5s ease-in-out infinite;
}
@keyframes rb-chest-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.8); }
}

.rb-robot-happy .rb-robot-mouth {
  border-radius: 0 0 12px 12px;
  height: 8px;
}
.rb-robot-happy .rb-robot-body {
  animation: rb-robot-bounce 0.4s ease;
}
@keyframes rb-robot-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* Bulle de dialogue */
.rb-robot-bubble {
  background: white;
  border: 1px solid var(--rb-sand);
  border-radius: 12px 12px 4px 12px;
  padding: 10px 14px;
  max-width: 200px;
  font-family: var(--rb-font-ui);
  font-size: 11px;
  font-weight: 300;
  color: var(--rb-choco);
  line-height: 1.5;
  text-align: right;
  box-shadow: 0 4px 16px rgba(92,61,46,0.1);
  pointer-events: none;
}
.rb-bubble-pop {
  animation: rb-bubble-pop 0.3s ease;
}
@keyframes rb-bubble-pop {
  0% { transform: scale(0.9); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* ── SECTIONS ── */
.rb-diag-section {
  max-width: 860px;
  margin: 0 auto;
  padding: 60px 40px;
  text-align: center;
}

/* Premier section : compense le header fixe */
#rb-diag-intro {
  padding-top: calc(72px + 48px) !important;
}
@media (max-width: 1024px) {
  #rb-diag-intro { padding-top: calc(64px + 36px) !important; }
}

/* INTRO */
.rb-diag-hero-tag {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin-bottom: 20px;
}
.rb-dtag-line { width: 50px; height: 1px; background: var(--rb-gold); display: block; }
.rb-dtag-diamond { color: var(--rb-gold); font-size: 10px; }
.rb-dtag-text { font-size: 10px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--rb-gold); }

.rb-diag-title {
  font-family: var(--rb-font); font-size: 52px; font-weight: 300;
  color: var(--rb-choco); margin-bottom: 16px; line-height: 1.2;
  letter-spacing: -0.5px;
}
.rb-diag-title em { font-style: italic; color: var(--rb-gold); font-weight: 400; }

.rb-diag-subtitle-fr, .rb-diag-subtitle-en, .rb-diag-subtitle-ar {
  font-family: var(--rb-font); font-style: italic; font-size: 20px; font-weight: 300;
  color: var(--rb-brown); margin-bottom: 8px; letter-spacing: 0.3px;
}
.rb-diag-subtitle-en, .rb-diag-subtitle-ar { font-size: 15px; opacity: 0.55; }

.rb-diag-desc {
  font-size: 14.5px; font-weight: 300; color: var(--rb-brown);
  line-height: 2; margin: 20px auto; max-width: 580px; letter-spacing: 0.2px;
}
.rb-diag-desc em { font-style: italic; color: var(--rb-gold); }
.rb-desc-en { font-style: italic; font-size: 13.5px; opacity: 0.75; }
.rb-desc-ar { font-size: 14px; direction: rtl; }
.rb-diag-sep {
  width: 32px; height: 1px; background: var(--rb-sand);
  margin: 4px auto; opacity: 0.8;
}

.rb-diag-badges { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 32px; }
.rb-badge {
  font-size: 10px; font-weight: 500; letter-spacing: 1.5px;
  color: var(--rb-choco); border: 1px solid var(--rb-sand);
  padding: 6px 16px; border-radius: 20px; background: white;
}

.rb-lang-section { margin-bottom: 32px; }
.rb-lang-label { font-size: 10px; font-weight: 500; letter-spacing: 2px; color: var(--rb-brown); text-transform: uppercase; margin-bottom: 12px; }
.rb-lang-btns { display: flex; gap: 10px; justify-content: center; }
.rb-lang-btn {
  padding: 10px 24px; border: 1px solid var(--rb-sand); border-radius: 4px;
  background: white; font-family: var(--rb-font-ui); font-size: 12px; font-weight: 400;
  color: var(--rb-brown); cursor: pointer; transition: all 0.25s;
}
.rb-lang-btn.active, .rb-lang-btn:hover {
  background: var(--rb-gold); color: white; border-color: var(--rb-gold);
}

.rb-start-btn {
  display: inline-block; padding: 16px 48px;
  background: linear-gradient(135deg, var(--rb-choco), var(--rb-night));
  color: white; font-family: var(--rb-font-ui); font-size: 12px; font-weight: 600;
  letter-spacing: 2px; text-transform: uppercase; border: none; border-radius: 4px;
  cursor: pointer; box-shadow: 0 4px 0 rgba(0,0,0,0.2), 0 6px 20px rgba(44,24,16,0.2);
  transition: all 0.15s; position: relative; top: 0;
}
.rb-start-btn:hover { top: 2px; box-shadow: 0 2px 0 rgba(0,0,0,0.2); }

/* ── INDICATEUR ÉTAPES ── */
.rb-step-indicator {
  display: flex; align-items: center; justify-content: center; gap: 0;
  margin-bottom: 40px;
}
.rb-step-dot {
  width: 36px; height: 36px; border-radius: 50%;
  border: 2px solid var(--rb-sand);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--rb-font-ui); font-size: 12px; font-weight: 600;
  color: var(--rb-brown); background: white;
  transition: all 0.3s;
}
.rb-step-dot.active { border-color: var(--rb-gold); color: var(--rb-gold); background: rgba(201,169,110,0.08); }
.rb-step-dot.done { border-color: var(--rb-gold); background: var(--rb-gold); color: white; }
.rb-step-line { width: 60px; height: 2px; background: var(--rb-sand); }
.rb-step-line.active { background: var(--rb-gold); }

.rb-step-question {
  font-family: var(--rb-font); font-size: 32px; font-weight: 300;
  color: var(--rb-choco); margin-bottom: 8px;
}
.rb-step-hint { font-size: 13px; color: var(--rb-brown); font-weight: 300; margin-bottom: 32px; }

/* ── CARTES GENRE ── */
.rb-genre-cards { display: flex; gap: 24px; justify-content: center; margin-bottom: 32px; }
.rb-genre-card {
  width: 220px; border-radius: 16px; overflow: hidden;
  border: 2px solid var(--rb-sand); cursor: pointer;
  transition: all 0.25s; position: relative;
  box-shadow: 0 4px 16px rgba(92,61,46,0.06);
}
.rb-genre-card img { width: 100%; height: 280px; object-fit: cover; display: block; }
.rb-genre-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(44,24,16,0.85));
  color: white; font-family: var(--rb-font-ui); font-size: 12px;
  font-weight: 600; letter-spacing: 3px; text-align: center; padding: 20px 12px 16px;
}
.rb-genre-card.selected { border-color: var(--rb-gold); box-shadow: 0 0 0 3px rgba(201,169,110,0.25), 0 8px 24px rgba(201,169,110,0.2); }
.rb-genre-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(92,61,46,0.12); }

/* ── CARTES ZONE ── */
.rb-zone-cards { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin-bottom: 32px; }
.rb-zone-card {
  width: 160px; border-radius: 14px; overflow: hidden;
  border: 2px solid var(--rb-sand); cursor: pointer;
  transition: all 0.25s; position: relative;
  box-shadow: 0 4px 16px rgba(92,61,46,0.06);
}
.rb-zone-card img { width: 100%; height: 180px; object-fit: cover; display: block; }
.rb-zone-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(44,24,16,0.8));
  color: white; font-size: 11px; font-weight: 600; letter-spacing: 2px;
  text-align: center; padding: 14px 8px 10px;
}
.rb-zone-card.selected { border-color: var(--rb-gold); box-shadow: 0 0 0 3px rgba(201,169,110,0.25); }
.rb-zone-card:hover { transform: translateY(-4px); }
.rb-zone-tout { width: 100%; max-width: 340px; }
.rb-zone-tout img { height: 140px; }

/* ── DATE DE NAISSANCE ── */
.rb-dob-wrap { display: flex; align-items: flex-end; gap: 12px; justify-content: center; margin-bottom: 32px; }
.rb-dob-group { display: flex; flex-direction: column; gap: 6px; align-items: center; }
.rb-dob-label { font-size: 9px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rb-gold); }
.rb-dob-input {
  width: 72px; padding: 12px; text-align: center;
  border: 1px solid var(--rb-sand); border-radius: 8px; background: white;
  font-family: var(--rb-font-ui); font-size: 18px; font-weight: 300; color: var(--rb-choco);
  outline: none; transition: border-color 0.25s;
}
.rb-dob-year { width: 96px; }
.rb-dob-input:focus { border-color: var(--rb-gold); box-shadow: 0 0 0 3px rgba(201,169,110,0.1); }
.rb-dob-sep { font-size: 24px; color: var(--rb-gold); padding-bottom: 10px; }

/* ── BOUTON SUIVANT ── */
.rb-next-btn {
  display: inline-block; padding: 14px 40px;
  background: linear-gradient(135deg, var(--rb-gold), var(--rb-gold-dark));
  color: white; font-family: var(--rb-font-ui); font-size: 11px; font-weight: 600;
  letter-spacing: 2px; text-transform: uppercase; border: none; border-radius: 4px;
  cursor: pointer; box-shadow: 0 4px 0 #5a3d10, 0 6px 16px rgba(201,169,110,0.3);
  transition: all 0.15s; position: relative; top: 0;
}
.rb-next-btn:hover:not(:disabled) { top: 2px; box-shadow: 0 2px 0 #5a3d10; }
.rb-next-btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* ── BOUTON RETOUR ── */
.rb-back-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: none; cursor: pointer;
  font-family: var(--rb-font-ui); font-size: 11px; font-weight: 500;
  color: var(--rb-brown); letter-spacing: 1px; text-transform: uppercase;
  padding: 8px 0; margin-bottom: 16px;
  opacity: 0.7; transition: opacity 0.2s, color 0.2s;
}
.rb-back-btn:hover { opacity: 1; color: var(--rb-gold); }

/* ── QUESTIONS ── */
.rb-questions-progress { margin-bottom: 32px; }
.rb-qprogress-bar { height: 4px; background: var(--rb-sand); border-radius: 2px; margin-bottom: 8px; overflow: hidden; }
.rb-qprogress-fill { height: 100%; background: var(--rb-gold); border-radius: 2px; transition: width 0.4s ease; }
.rb-qprogress-text { font-size: 11px; color: var(--rb-brown); font-weight: 300; letter-spacing: 1px; }

.rb-question-card { padding: 20px 0 32px; }
.rb-question-text { font-family: var(--rb-font); font-size: 28px; font-weight: 300; color: var(--rb-choco); margin-bottom: 32px; line-height: 1.3; }
.rb-options-grid { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.rb-option-btn {
  padding: 12px 24px; border: 1px solid var(--rb-sand); border-radius: 8px;
  background: white; font-family: var(--rb-font-ui); font-size: 13px; font-weight: 300;
  color: var(--rb-choco); cursor: pointer; transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(92,61,46,0.05);
}
.rb-option-btn:hover { border-color: var(--rb-gold); color: var(--rb-gold); transform: translateY(-2px); }
.rb-option-btn.selected { background: var(--rb-gold); color: white; border-color: var(--rb-gold); box-shadow: 0 4px 0 var(--rb-gold-dark); }

/* ── RÉSULTATS ── */
.rb-results-header { margin-bottom: 24px; text-align: center; }
.rb-results-title { font-family: var(--rb-font); font-size: 36px; font-weight: 300; color: var(--rb-choco); margin: 12px 0 8px; }
.rb-results-title em { font-style: italic; color: var(--rb-gold); }

/* ── Tableau Profil (liste verticale) ── */
.rb-profile-table {
  background: white; border: 1px solid var(--rb-sand); border-radius: 12px;
  overflow: hidden; margin-bottom: 24px;
  box-shadow: 0 4px 20px rgba(44,24,16,0.08), 0 1px 0 rgba(201,169,110,0.2);
  text-align: left;
}
.rb-profile-table-title {
  font-family: var(--rb-font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: 3px; text-transform: uppercase; color: var(--rb-brown);
  padding: 16px 20px 12px; border-bottom: 1px solid var(--rb-sand);
  background: var(--rb-beige);
}
.rb-profile-row {
  display: flex; align-items: center;
  padding: 13px 20px; border-bottom: 1px solid var(--rb-beige);
}
.rb-profile-row:last-child { border-bottom: none; }
.rb-profile-key {
  font-family: var(--rb-font-ui); font-size: 11px; font-weight: 400;
  color: var(--rb-brown); min-width: 90px; letter-spacing: 0.3px;
}
.rb-profile-val {
  font-family: var(--rb-font-ui); font-size: 13px; font-weight: 500;
  color: var(--rb-choco);
}

/* ── Tableau Analyse Clinique ── */
.rb-clinical-section { margin-bottom: 24px; }
.rb-clinical-label {
  font-family: var(--rb-font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: 3px; text-transform: uppercase; color: var(--rb-brown);
  padding: 0 0 12px;
}

/* Wrapper scrollable sur mobile */
.rb-table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 14px;
  /* Effet 3D : ombre portée sous le tableau */
  box-shadow:
    0 10px 40px rgba(44,24,16,0.12),
    0 4px 12px rgba(201,169,110,0.15),
    0 1px 0 rgba(255,255,255,0.8) inset;
  perspective: 1200px;
}

.rb-results-table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  min-width: 680px;
  border-radius: 14px;
  overflow: hidden;
  background: white;
  /* Légère inclinaison 3D */
  transform: rotateX(1deg);
  transform-origin: top center;
  transition: transform 0.3s ease;
}
.rb-table-scroll:hover .rb-results-table {
  transform: rotateX(0deg);
}

/* ── HEADER du tableau : chaque colonne a SA couleur ── */
.rb-results-table-header {
  display: grid;
  grid-template-columns: 1fr 1.1fr 1.4fr 1.6fr 1fr;
}
/* Col 1 – Problème : brun choco */
.rb-rth-cell:nth-child(1) { background: #5c3d2e; }
/* Col 2 – Nom scientifique : brun moyen */
.rb-rth-cell:nth-child(2) { background: #7a5444; }
/* Col 3 – Cause : brun clair/rosé */
.rb-rth-cell:nth-child(3) { background: #9a6e5a; }
/* Col 4 – Actifs : doré */
.rb-rth-cell:nth-child(4) { background: #c9a96e; }
/* Col 5 – Action : doré foncé */
.rb-rth-cell:nth-child(5) { background: #a8834a; }

.rb-rth-cell {
  padding: 13px 12px; font-size: 8.5px; font-weight: 700;
  letter-spacing: 1.8px; text-transform: uppercase; color: white;
  text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

/* ── LIGNES du tableau ── */
.rb-results-row {
  display: grid;
  grid-template-columns: 1fr 1.1fr 1.4fr 1.6fr 1fr;
  border-top: 1px solid var(--rb-beige);
  animation: rb-row-in 0.5s cubic-bezier(0.22,1,0.36,1) both;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  position: relative;
}
.rb-results-row:hover {
  z-index: 2;
  transform: translateY(-1px) scale(1.003);
  box-shadow: 0 6px 20px rgba(44,24,16,0.1);
}
@keyframes rb-row-in {
  from { opacity: 0; transform: translateY(10px) rotateX(4deg); }
  to   { opacity: 1; transform: translateY(0) rotateX(0); }
}

/* Couleur de fond alternée par colonne sur les lignes */
.rb-results-cell { padding: 14px 12px; font-size: 12px; font-weight: 400; color: var(--rb-choco); line-height: 1.45; vertical-align: top; }
.rb-results-cell:nth-child(1) { background: rgba(92,61,46,0.04); }
.rb-results-cell:nth-child(2) { background: rgba(122,84,68,0.04); }
.rb-results-cell:nth-child(3) { background: rgba(154,110,90,0.03); }
.rb-results-cell:nth-child(4) { background: rgba(201,169,110,0.06); }
.rb-results-cell:nth-child(5) { background: rgba(168,131,74,0.05); }

.rb-cell-prob { font-weight: 600; font-size: 12px; }
.rb-cell-sci { font-style: italic; color: var(--rb-brown); font-size: 11px; font-weight: 300; }
.rb-cell-cause { color: var(--rb-choco); font-size: 12px; font-weight: 300; }
.rb-cell-actifs { display: flex; flex-wrap: wrap; gap: 5px; align-items: flex-start; padding-top: 12px; }
.rb-actif-pill {
  background: rgba(201,169,110,0.15); border: 1px solid rgba(201,169,110,0.4);
  border-radius: 20px; padding: 4px 10px;
  font-family: var(--rb-font-ui); font-size: 10px; font-weight: 600;
  color: var(--rb-choco); letter-spacing: 0.5px; text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(201,169,110,0.2);
}
.rb-cell-action {
  font-size: 11.5px; font-weight: 500; color: var(--rb-choco);
}

/* ── Section Ingrédients ── */
.rb-ingredients-section { margin-top: 24px; margin-bottom: 32px; }
.rb-ingredients-label {
  font-family: var(--rb-font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: 3px; text-transform: uppercase; color: var(--rb-brown);
  padding: 0 0 12px;
}
.rb-ingredients-grid {
  background: white; border: 1px solid var(--rb-sand); border-radius: 12px;
  padding: 16px 20px; display: flex; flex-wrap: wrap; gap: 8px;
  box-shadow: 0 4px 20px rgba(44,24,16,0.06);
}
.rb-ingredient-tag {
  background: rgba(201,169,110,0.1); border: 1px solid rgba(201,169,110,0.3);
  border-radius: 20px; padding: 6px 14px;
  font-family: var(--rb-font-ui); font-size: 10px; font-weight: 600;
  color: var(--rb-choco); letter-spacing: 0.8px; text-transform: uppercase;
  box-shadow: 0 1px 4px rgba(201,169,110,0.15);
}

.rb-results-actions { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.rb-whatsapp-btn {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 18px 40px;
  background: #25d366; color: white; border-radius: 8px; text-decoration: none;
  font-family: var(--rb-font-ui); font-size: 12px; font-weight: 600; letter-spacing: 1.5px;
  text-transform: uppercase; box-shadow: 0 4px 0 #1aaa50, 0 6px 20px rgba(37,211,102,0.3);
  transition: all 0.15s; position: relative; top: 0;
}
.rb-whatsapp-btn:hover { top: 2px; box-shadow: 0 2px 0 #1aaa50; color: white; }
.rb-restart-btn {
  background: none; border: 1px solid var(--rb-sand); border-radius: 4px;
  padding: 10px 24px; font-family: var(--rb-font-ui); font-size: 11px; font-weight: 400;
  color: var(--rb-brown); cursor: pointer; transition: all 0.2s; letter-spacing: 1px;
}
.rb-restart-btn:hover { border-color: var(--rb-gold); color: var(--rb-gold); }

/* ── MOBILE ── */
@media (max-width: 768px) {
  .rb-diag-section { padding: 40px 20px; }
  .rb-diag-title { font-size: 32px; }
  .rb-genre-cards { flex-direction: column; align-items: center; }
  .rb-zone-cards { gap: 10px; }
  .rb-zone-card { width: 140px; }
  .rb-zone-card img { height: 150px; }
  .rb-question-text { font-size: 22px; }
  .rb-ingredients-grid { gap: 8px; }

  /* Robot : fixe en bas à droite, au-dessus de tout */
  #rb-robot {
    position: fixed;
    bottom: 16px;
    right: 12px;
    z-index: 99999;
  }
  .rb-robot-bubble { max-width: 130px; font-size: 9.5px; }

  /* Tableau résultats → cartes empilées sur mobile */
  .rb-table-scroll { overflow: visible; box-shadow: none; perspective: none; }
  .rb-results-table { min-width: unset; transform: none; display: block; }
  .rb-results-table-header { display: none; }
  .rb-results-row {
    display: flex; flex-direction: column; gap: 0;
    border: 1px solid var(--rb-sand); border-radius: 12px;
    margin-bottom: 14px; overflow: hidden;
    box-shadow: 0 4px 16px rgba(44,24,16,0.08);
    border-top: 1px solid var(--rb-sand) !important;
    animation: rb-row-in 0.4s ease both;
  }
  /* Chaque cellule devient une ligne avec label coloré */
  .rb-results-cell {
    display: flex; flex-direction: column; gap: 4px;
    padding: 12px 14px; border-top: 1px solid var(--rb-beige);
    background: white !important;
  }
  .rb-results-cell:first-child { border-top: none; }
  .rb-results-cell::before {
    content: attr(data-label);
    font-family: var(--rb-font-ui); font-size: 8px; font-weight: 700;
    letter-spacing: 2px; text-transform: uppercase;
    color: white; padding: 3px 10px; border-radius: 20px;
    display: inline-block; align-self: flex-start;
  }
  /* Couleur du label par colonne */
  .rb-cell-prob::before { content: attr(data-label); background: #5c3d2e; }
  .rb-cell-sci::before  { content: attr(data-label); background: #7a5444; }
  .rb-cell-cause::before { content: attr(data-label); background: #9a6e5a; }
  .rb-cell-actifs::before { content: attr(data-label); background: #c9a96e; }
  .rb-cell-action::before { content: attr(data-label); background: #a8834a; }

  .rb-cell-prob { font-weight: 600; font-size: 14px; }
  .rb-cell-actifs { flex-direction: column; padding-top: 12px; }
  .rb-cell-actifs > .rb-actif-pills-wrap { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
}

/* ============================================
   PAGE BOUTIQUE
============================================ */
#rb-boutique-page {
  background: var(--rb-cream);
  min-height: 100vh;
  padding-top: 72px;
}
@media (max-width:1024px){ #rb-boutique-page { padding-top: 64px; } }

/* HERO */
.rb-boutique-hero { text-align:center; padding:52px 40px 32px; }
.rb-bh-tag { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:16px; }
.rb-bh-line { width:48px; height:1px; background:var(--rb-gold); display:block; }
.rb-bh-diamond { color:var(--rb-gold); font-size:10px; }
.rb-bh-text { font-family:var(--rb-font-ui); font-size:10px; font-weight:600; letter-spacing:4px; text-transform:uppercase; color:var(--rb-gold); }
.rb-boutique-title { font-family:var(--rb-font); font-size:52px; font-weight:300; color:var(--rb-choco); margin-bottom:12px; line-height:1.1; }
.rb-boutique-title em { font-style:italic; color:var(--rb-gold); }
.rb-boutique-sub { font-family:var(--rb-font); font-style:italic; font-size:18px; font-weight:300; color:var(--rb-brown); line-height:1.8; }

/* CARROUSEL WRAP */
.rb-carousel-wrap {
  position: relative;
  padding: 0 0 48px;
  overflow: hidden;
}

/* FLÈCHES — sur les côtés, centrées verticalement sur les cartes */
.rb-carr-arrow {
  position: absolute;
  top: 50%; transform: translateY(-60%);
  z-index: 10;
  width: 52px; height: 52px; border-radius: 50%;
  background: white;
  border: 1.5px solid var(--rb-sand);
  color: var(--rb-choco);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(92,61,46,0.15), 0 2px 6px rgba(0,0,0,0.08);
  transition: all 0.25s ease;
}
.rb-carr-arrow:hover { border-color: var(--rb-gold); color: var(--rb-gold); box-shadow: 0 6px 24px rgba(201,169,110,0.25); transform: translateY(-60%) scale(1.05); }
.rb-carr-prev { left: 20px; }
.rb-carr-next { right: 20px; }

/* TRACK */
.rb-carousel-track {
  display: flex;
  gap: 20px;
  padding: 24px 90px;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

/* CARTE 3D */
.rb-cat-card {
  flex-shrink: 0;
  width: calc((100vw - 220px) / 3);
  max-width: 380px;
  min-width: 260px;
  height: 460px;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  background: var(--rb-night);
  transform: perspective(1000px) rotateY(0deg) rotateX(2deg) translateZ(0);
  transition: transform 0.45s cubic-bezier(0.23,1,0.32,1), box-shadow 0.45s ease;
  box-shadow:
    0 24px 48px rgba(44,24,16,0.22),
    0 8px 16px rgba(44,24,16,0.12),
    0 2px 4px rgba(0,0,0,0.08),
    inset 0 1px 0 rgba(255,255,255,0.1);
  border: 1px solid rgba(201,169,110,0.18);
}
.rb-cat-card:hover {
  transform: perspective(1000px) rotateY(-5deg) rotateX(5deg) translateY(-12px) translateZ(20px);
  box-shadow:
    24px 36px 60px rgba(44,24,16,0.3),
    12px 16px 30px rgba(44,24,16,0.18),
    0 4px 8px rgba(0,0,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.15);
}

.rb-cat-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: opacity 0.4s ease, transform 0.5s ease;
}
.rb-cat-card:hover .rb-cat-img { transform: scale(1.04); }

.rb-cat-grad {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(44,24,16,0.9) 0%, rgba(44,24,16,0.35) 45%, rgba(44,24,16,0.05) 100%);
  z-index: 1;
  transition: opacity 0.4s;
}
.rb-cat-shine {
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, transparent 55%);
  pointer-events: none;
}

.rb-cat-content {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 28px 24px;
  z-index: 3;
  transition: transform 0.4s ease;
}
.rb-cat-discover {
  font-family: var(--rb-font-ui); font-size: 9px; font-weight: 600;
  letter-spacing: 3.5px; text-transform: uppercase; color: var(--rb-gold);
  margin-bottom: 8px;
}
.rb-cat-title {
  font-family: var(--rb-font); font-size: 28px; font-weight: 300;
  color: white; line-height: 1.2;
  text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.rb-cat-border-bottom {
  position: absolute; bottom: 0; left: 0; right: 0; height: 2px; z-index: 4;
  background: linear-gradient(90deg, transparent, var(--rb-gold), transparent);
  opacity: 0; transition: opacity 0.4s;
}
.rb-cat-card:hover .rb-cat-border-bottom { opacity: 1; }

/* SOUS-MENU (Maquillage & Parfum) */
.rb-cat-submenu {
  position: absolute; inset: 0; z-index: 5;
  background: rgba(28,14,8,0.94);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 10px; padding: 28px;
  opacity: 0; transition: opacity 0.35s ease;
  backdrop-filter: blur(2px);
}
.rb-has-submenu:hover .rb-cat-submenu { opacity: 1; }
.rb-has-submenu:hover .rb-cat-grad { opacity: 0.2; }
.rb-has-submenu:hover .rb-cat-content { opacity: 0; }

.rb-sub-label {
  font-family: var(--rb-font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: 3px; text-transform: uppercase; color: var(--rb-gold);
  margin-bottom: 6px;
}
.rb-sub-item {
  display: block; width: 100%; text-align: center;
  font-family: var(--rb-font); font-style: italic; font-size: 18px; font-weight: 300;
  color: rgba(255,255,255,0.85);
  padding: 10px 20px;
  border: 1px solid rgba(201,169,110,0.25);
  border-radius: 40px;
  text-decoration: none;
  transition: all 0.2s ease;
}
.rb-sub-item:hover {
  background: rgba(201,169,110,0.15);
  border-color: var(--rb-gold);
  color: var(--rb-gold);
  transform: translateX(4px);
}

/* DOTS */
.rb-carr-dots {
  display: flex; justify-content: center; gap: 8px;
  margin-top: 24px;
}
.rb-carr-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--rb-sand); cursor: pointer;
  transition: all 0.3s ease;
}
.rb-carr-dot.active {
  background: var(--rb-gold);
  width: 22px; border-radius: 4px;
}

/* MOBILE */
@media (max-width: 768px) {
  .rb-boutique-hero { padding: 36px 20px 24px; }
  .rb-boutique-title { font-size: 36px; }
  .rb-boutique-sub { font-size: 15px; }
  .rb-carousel-track { padding: 20px 20px; gap: 16px; }
  .rb-cat-card {
    width: calc(100vw - 40px) !important;
    max-width: none !important;
    height: 380px;
  }
  .rb-carr-prev { left: 8px; }
  .rb-carr-next { right: 8px; }
  .rb-carr-arrow { width: 42px; height: 42px; }
  .rb-cat-title { font-size: 24px; }
}

@media (max-width: 1100px) and (min-width: 769px) {
  .rb-cat-card { width: calc((100vw - 220px) / 2) !important; }
}

/* ── MOBILE MENU — Boutique cliquable + flèche séparée ── */
.rb-mob-item-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  border-bottom: 1px solid var(--rb-sand);
}
.rb-mob-item-link {
  font-family: var(--rb-font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--rb-choco);
  text-decoration: none;
  flex: 1;
}
.rb-mob-item-link:hover { color: var(--rb-gold); }
.rb-mob-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 8px;
  color: var(--rb-gold);
}
.rb-mob-toggle .rb-mob-arrow {
  font-size: 18px;
  display: block;
  transition: transform 0.3s ease;
}
.rb-mob-has-sub.open .rb-mob-toggle .rb-mob-arrow {
  transform: rotate(90deg);
}
/* Supprimer la bordure du li quand on a rb-mob-item-row */
.rb-mob-has-sub { border-bottom: none; }


.rb-carr-arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 100 !important;
  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;
  background: rgba(44,24,16,0.75) !important;
  border: 1.5px solid var(--rb-gold) !important;
  color: var(--rb-gold) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3) !important;
  transition: all 0.25s ease !important;
  backdrop-filter: blur(4px) !important;
}
.rb-carr-arrow:hover {
  background: var(--rb-gold) !important;
  color: white !important;
  transform: translateY(-50%) scale(1.08) !important;
}
.rb-carr-prev { left: 16px !important; }
.rb-carr-next { right: 16px !important; }

/* Sur mobile encore plus visibles */
@media (max-width: 768px) {
  .rb-carr-prev { left: 8px !important; }
  .rb-carr-next { right: 8px !important; }
  .rb-carr-arrow {
    width: 44px !important;
    height: 44px !important;
    background: rgba(44,24,16,0.85) !important;
  }
}


.rb-carr-arrow svg {
  width: 28px !important;
  height: 28px !important;
  stroke-width: 2.5 !important;
}

/* ── FLÈCHES — SUR LES CARTES, PAS EN DEHORS ── */
.rb-carousel-wrap {
  position: relative !important;
}
.rb-carr-prev {
  left: 108px !important;
}
.rb-carr-next {
  right: 108px !important;
}

@media (max-width: 1100px) {
  .rb-carr-prev { left: 72px !important; }
  .rb-carr-next { right: 72px !important; }
}
@media (max-width: 768px) {
  .rb-carr-prev { left: 28px !important; }
  .rb-carr-next { right: 28px !important; }
}


.rb-carr-arrow {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  width: 60px !important;
  height: 60px !important;
}
.rb-carr-arrow svg {
  width: 48px !important;
  height: 48px !important;
  stroke-width: 2 !important;
  color: #c9a96e !important;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.5)) !important;
}
.rb-carr-arrow:hover {
  background: none !important;
  transform: translateY(-50%) scale(1.15) !important;
}
.rb-carr-arrow:hover svg {
  color: white !important;
}

/* ============================================
   FLÈCHES CARROUSEL — VERSION FINALE
============================================ */
#rb-carr-prev,
#rb-carr-next {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 999 !important;
  width: auto !important;
  height: auto !important;
  padding: 8px !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#rb-carr-prev { left: 12px !important; }
#rb-carr-next { right: 12px !important; }

#rb-carr-prev svg,
#rb-carr-next svg {
  width: 56px !important;
  height: 56px !important;
  stroke: #c9a96e !important;
  stroke-width: 2.5 !important;
  fill: none !important;
  filter: drop-shadow(0 0 6px rgba(0,0,0,0.8)) drop-shadow(0 0 2px rgba(0,0,0,1)) !important;
  display: block !important;
}
#rb-carr-prev:hover svg,
#rb-carr-next:hover svg {
  stroke: white !important;
}

/* ============================================
   PAGE SOINS CORPS
============================================ */
#rb-soins-corps {
  background: var(--rb-cream);
  min-height: 100vh;
  padding-top: 72px;
}
@media(max-width:1024px){ #rb-soins-corps { padding-top:64px; } }

/* TOPBAR */
.rb-sc-topbar { display:flex; align-items:center; justify-content:space-between; padding:16px 48px; border-bottom:1px solid var(--rb-sand); }
.rb-sc-breadcrumb { font-family:var(--rb-font-ui); font-size:11px; font-weight:300; color:var(--rb-brown); display:flex; align-items:center; gap:8px; }
.rb-sc-breadcrumb a { color:var(--rb-brown); transition:color .2s; }
.rb-sc-breadcrumb a:hover { color:var(--rb-gold); }
.rb-sc-sep { color:var(--rb-gold); font-size:8px; }
.rb-sc-back { display:flex; align-items:center; gap:6px; font-family:var(--rb-font-ui); font-size:10px; font-weight:500; letter-spacing:2px; text-transform:uppercase; color:var(--rb-choco); border:1px solid var(--rb-sand); padding:8px 16px; border-radius:4px; text-decoration:none; transition:all .25s; }
.rb-sc-back:hover { border-color:var(--rb-gold); color:var(--rb-gold); }

/* HERO */
.rb-sc-hero { text-align:center; padding:48px 40px 28px; }
.rb-sc-tag { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:16px; }
.rb-sc-tagline { width:48px; height:1px; background:var(--rb-gold); display:block; }
.rb-sc-diamond { color:var(--rb-gold); font-size:10px; animation:rb-diamond-spin 4s linear infinite; display:inline-block; }
@keyframes rb-diamond-spin { 0%,100%{transform:rotate(0) scale(1);}25%{transform:rotate(90deg) scale(1.2);}50%{transform:rotate(180deg) scale(1);}75%{transform:rotate(270deg) scale(1.2);} }
.rb-sc-tagtext { font-family:var(--rb-font-ui); font-size:10px; font-weight:600; letter-spacing:4px; text-transform:uppercase; color:var(--rb-gold); }
.rb-sc-title { font-family:var(--rb-font); font-size:52px; font-weight:300; color:var(--rb-choco); margin-bottom:10px; animation:rb-title-in 0.8s ease both; }
.rb-sc-title em { font-style:italic; color:var(--rb-gold); }
@keyframes rb-title-in { from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;} }
.rb-sc-subtitle { font-family:var(--rb-font); font-style:italic; font-size:17px; font-weight:300; color:var(--rb-brown); margin-bottom:6px; animation:rb-title-in 0.8s ease 0.2s both; }
.rb-sc-count { font-family:var(--rb-font-ui); font-size:11px; font-weight:300; color:var(--rb-brown); letter-spacing:2px; animation:rb-title-in 0.6s ease 0.4s both; }

/* TRI */
.rb-sc-sortbar { display:flex; justify-content:flex-end; padding:0 48px 20px; }
.rb-sc-sort { font-family:var(--rb-font-ui); font-size:12px; font-weight:300; color:var(--rb-choco); border:1px solid var(--rb-sand); padding:8px 16px; border-radius:4px; background:white; cursor:pointer; outline:none; transition:border-color .2s; }
.rb-sc-sort:focus { border-color:var(--rb-gold); }

/* GRILLE */
.rb-sc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; padding:0 48px 80px; max-width:1300px; margin:0 auto; }

/* CARTE PRODUIT */
.rb-sc-card {
  text-align:center; cursor:pointer;
  opacity:1; transform:none;
}

/* Image 3D */
.rb-sc-img-wrap { margin-bottom:24px; position:relative; }
.rb-sc-img-3d {
  width:100%; aspect-ratio:0.85;
  display:flex; align-items:center; justify-content:center;
  transform:perspective(600px) rotateX(4deg) rotateY(-3deg);
  filter:drop-shadow(0 20px 40px rgba(92,61,46,0.18)) drop-shadow(0 6px 14px rgba(0,0,0,0.08));
  transition:transform .45s cubic-bezier(.23,1,.32,1), filter .45s ease;
}
.rb-sc-card:hover .rb-sc-img-3d {
  transform:perspective(600px) rotateX(8deg) rotateY(-6deg) translateY(-10px) translateZ(20px);
  filter:drop-shadow(0 30px 52px rgba(92,61,46,0.26)) drop-shadow(0 12px 24px rgba(0,0,0,0.12));
}
.rb-sc-img { width:auto; max-width:100%; max-height:220px; object-fit:contain; display:block; margin:0 auto; transition:all .4s ease; }

/* Badges */
.rb-sc-badges { position:absolute; top:-10px; left:0; right:0; display:flex; justify-content:center; gap:6px; z-index:2; }
.rb-sc-badge-best { background:linear-gradient(135deg,var(--rb-gold),var(--rb-gold-dark)); color:white; font-family:var(--rb-font-ui); font-size:8px; font-weight:500; letter-spacing:1.5px; text-transform:uppercase; padding:4px 12px; border-radius:20px; box-shadow:0 3px 10px rgba(201,169,110,0.4); }
.rb-sc-badge-new { background:linear-gradient(135deg,#5c3d2e,#2c1810); color:white; font-family:var(--rb-font-ui); font-size:8px; font-weight:500; letter-spacing:1.5px; text-transform:uppercase; padding:4px 12px; border-radius:20px; }
.rb-sc-badge-promo { background:#c0392b; color:white; font-family:var(--rb-font-ui); font-size:8px; font-weight:700; letter-spacing:1px; padding:4px 10px; border-radius:20px; box-shadow:0 3px 10px rgba(192,57,43,0.35); }

/* Infos produit */
.rb-sc-ptag { font-family:var(--rb-font-ui); font-size:9px; font-weight:300; letter-spacing:3px; text-transform:uppercase; color:var(--rb-gold); margin-bottom:5px; }
.rb-sc-pname { font-family:var(--rb-font); font-style:italic; font-size:22px; font-weight:300; color:var(--rb-choco); margin-bottom:3px; line-height:1.2; }
.rb-sc-pname em { font-style:normal; background:linear-gradient(135deg,var(--rb-gold),var(--rb-gold-dark),var(--rb-gold)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; font-weight:400; }
.rb-sc-psub { font-family:'Cormorant Garamond', Georgia, serif; font-style:italic; font-size:13px; font-weight:300; color:#b08070; margin-bottom:12px; }
.rb-sc-pline { width:32px; height:1px; background:linear-gradient(90deg,transparent,var(--rb-gold),transparent); margin:0 auto 12px; }
.rb-sc-price-row { display:flex; align-items:baseline; justify-content:center; gap:8px; margin-bottom:5px; }
.rb-sc-price-old { font-family:var(--rb-font-ui); font-size:13px; font-weight:300; color:#b0a090; text-decoration:line-through; text-decoration-color:var(--rb-gold); }
.rb-sc-price-new { font-family:var(--rb-font); font-size:26px; font-weight:400; color:var(--rb-choco); }
.rb-sc-price-cur { font-family:var(--rb-font-ui); font-size:11px; font-weight:300; color:var(--rb-brown); letter-spacing:1px; }
.rb-sc-saving { font-family:var(--rb-font-ui); font-size:10px; font-weight:300; color:#c0392b; margin-bottom:14px; }
.rb-sc-saving strong { font-weight:500; }

/* Actions */
.rb-sc-actions { display:flex; align-items:center; justify-content:center; gap:10px; }
.rb-sc-btn-cart { display:flex; align-items:center; gap:6px; font-family:var(--rb-font-ui); font-size:9px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; background:linear-gradient(135deg,var(--rb-choco),var(--rb-night)); color:white; padding:10px 20px; border-radius:3px; border:none; cursor:pointer; box-shadow:0 4px 0 rgba(0,0,0,0.2),0 6px 16px rgba(92,61,46,0.2); transition:all .15s; position:relative; top:0; }
.rb-sc-btn-cart:hover { top:2px; box-shadow:0 2px 0 rgba(0,0,0,0.2); }
.rb-sc-btn-fav { width:36px; height:36px; border-radius:50%; border:1px solid var(--rb-sand); background:white; display:flex; align-items:center; justify-content:center; color:var(--rb-gold); cursor:pointer; transition:all .2s; }
.rb-sc-btn-fav:hover, .rb-sc-btn-fav.active { border-color:var(--rb-gold); background:rgba(201,169,110,0.08); }

/* ── OVERLAY FICHE PRODUIT ── */
.rb-overlay-hidden { display:none; }
.rb-overlay-visible {
  display:flex; position:fixed; inset:0; z-index:99990;
  align-items:center; justify-content:center; padding:20px;
}
.rb-overlay-bg {
  position:absolute; inset:0;
  background:rgba(44,24,16,0.6);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:pointer;
}
.rb-product-modal {
  position:relative; z-index:2;
  background:var(--rb-cream);
  border-radius:20px;
  max-width:780px; width:100%;
  max-height:90vh; overflow-y:auto;
  display:grid; grid-template-columns:1fr 1.3fr; gap:0;
  box-shadow:0 32px 80px rgba(44,24,16,0.4), 0 8px 32px rgba(0,0,0,0.2);
  animation:rb-modal-in .35s cubic-bezier(.23,1,.32,1);
}
@keyframes rb-modal-in { from{opacity:0;transform:scale(0.92);}to{opacity:1;transform:scale(1);} }
.rb-product-modal::-webkit-scrollbar { width:3px; }
.rb-product-modal::-webkit-scrollbar-thumb { background:var(--rb-sand); border-radius:2px; }

.rb-modal-close-btn { position:absolute; top:16px; right:18px; background:none; border:none; font-size:22px; color:var(--rb-brown); cursor:pointer; line-height:1; z-index:3; width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:50%; transition:background .2s; }
.rb-modal-close-btn:hover { background:rgba(92,61,46,0.1); }

.rb-modal-left { background:var(--rb-beige); border-radius:20px 0 0 20px; padding:40px 28px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; }
.rb-modal-img-3d { transform:perspective(500px) rotateX(4deg) rotateY(-5deg); filter:drop-shadow(0 20px 40px rgba(92,61,46,0.2)); }
.rb-modal-product-img { width:auto; max-width:200px; max-height:240px; object-fit:contain; display:block; }

.rb-modal-badges-row { display:flex; flex-direction:column; gap:8px; width:100%; }
.rb-mbadge { display:flex; align-items:center; gap:6px; font-family:var(--rb-font-ui); font-size:10px; font-weight:300; color:var(--rb-choco); background:white; border:1px solid var(--rb-sand); padding:6px 12px; border-radius:6px; }
.rb-mbadge svg { color:var(--rb-gold); flex-shrink:0; }

.rb-modal-right { padding:36px 32px 36px 28px; display:flex; flex-direction:column; }
.rb-modal-tag { font-family:var(--rb-font-ui); font-size:9px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--rb-gold); margin-bottom:8px; }
.rb-modal-name { font-family:var(--rb-font); font-style:italic; font-size:28px; font-weight:300; color:var(--rb-choco); margin-bottom:4px; line-height:1.2; }
.rb-modal-name em { font-style:normal; background:linear-gradient(135deg,var(--rb-gold),var(--rb-gold-dark)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.rb-modal-sub { font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-size:14px; color:var(--rb-brown); margin-bottom:16px; }
.rb-modal-price-row { display:flex; align-items:baseline; gap:8px; margin-bottom:20px; }
.rb-modal-old { font-family:var(--rb-font-ui); font-size:14px; color:#b0a090; text-decoration:line-through; text-decoration-color:var(--rb-gold); }
.rb-modal-new { font-family:var(--rb-font); font-size:32px; font-weight:400; color:var(--rb-choco); }
.rb-modal-cur { font-family:var(--rb-font-ui); font-size:13px; color:var(--rb-brown); }
.rb-modal-section-title { font-family:var(--rb-font-ui); font-size:9px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--rb-gold); margin:14px 0 6px; }
.rb-modal-desc { font-family:var(--rb-font-ui); font-size:12px; font-weight:300; color:var(--rb-brown); line-height:1.8; }
.rb-modal-ing { font-family:var(--rb-font-ui); font-size:11px; font-weight:300; color:var(--rb-brown); line-height:1.7; }
.rb-modal-note { width:100%; padding:10px 14px; border:1px solid var(--rb-sand); border-radius:6px; background:white; font-family:var(--rb-font-ui); font-size:12px; font-weight:300; color:var(--rb-choco); resize:none; height:60px; outline:none; margin:14px 0; transition:border-color .25s; }
.rb-modal-note::placeholder { color:rgba(201,169,110,0.5); }
.rb-modal-note:focus { border-color:var(--rb-gold); }
.rb-modal-add-btn { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:14px; background:linear-gradient(135deg,var(--rb-choco),var(--rb-night)); color:white; border:none; border-radius:6px; font-family:var(--rb-font-ui); font-size:11px; font-weight:500; letter-spacing:2px; text-transform:uppercase; cursor:pointer; box-shadow:0 4px 0 rgba(0,0,0,0.2),0 6px 20px rgba(44,24,16,0.2); transition:all .15s; position:relative; top:0; }
.rb-modal-add-btn:hover { top:2px; box-shadow:0 2px 0 rgba(0,0,0,0.2); }

/* MOBILE */
@media(max-width:1024px) {
  .rb-sc-topbar { padding:12px 20px; }
  .rb-sc-grid { grid-template-columns:1fr 1fr; gap:24px; padding:0 20px 60px; }
  .rb-sc-title { font-size:36px; }
  .rb-sc-hero { padding:36px 20px 20px; }
  .rb-sc-sortbar { padding:0 20px 16px; }
  .rb-product-modal { grid-template-columns:1fr; max-height:85vh; }
  .rb-modal-left { border-radius:20px 20px 0 0; padding:28px; }
  .rb-modal-badges-row { flex-direction:row; flex-wrap:wrap; justify-content:center; }
  .rb-modal-right { padding:20px; }
  .rb-modal-name { font-size:22px; }
}
@media(max-width:480px) {
  .rb-sc-grid { grid-template-columns:1fr; }
  .rb-sc-title { font-size:30px; }
}

/* ── SOINS CORPS FIXES ── */

/* Réduire espace entre image et nom */
.rb-sc-img-wrap { margin-bottom: 8px !important; }
.rb-sc-img-3d { aspect-ratio: auto !important; min-height: 180px; max-height: 220px; }

/* Bouton favori cœur */
.rb-sc-btn-fav {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  border: 1px solid var(--rb-sand) !important;
  background: white !important;
  font-size: 20px !important;
  color: var(--rb-gold) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s !important;
  line-height: 1 !important;
}
.rb-sc-btn-fav:hover, .rb-sc-btn-fav.active {
  border-color: var(--rb-gold) !important;
  background: rgba(201,169,110,0.08) !important;
  color: #c0392b !important;
}
.rb-sc-btn-fav.active { color: #c0392b !important; }

/* Bouton panier - style propre sans SVG */
.rb-sc-btn-cart {
  font-family: var(--rb-font-ui) !important;
  font-size: 9px !important;
  font-weight: 500 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  background: linear-gradient(135deg, var(--rb-choco), var(--rb-night)) !important;
  color: white !important;
  padding: 10px 20px !important;
  border-radius: 3px !important;
  border: none !important;
  cursor: pointer !important;
  box-shadow: 0 4px 0 rgba(0,0,0,0.2), 0 6px 16px rgba(92,61,46,0.2) !important;
  transition: all 0.15s !important;
  position: relative !important;
  top: 0 !important;
  text-decoration: none !important;
  display: inline-block !important;
}
.rb-sc-btn-cart:hover { top: 2px !important; box-shadow: 0 2px 0 rgba(0,0,0,0.2) !important; color: white !important; }
.rb-sc-btn-cart:disabled { opacity: 0.7 !important; cursor: wait !important; }


.rb-sc-card {
  opacity: 1 !important;
  transform: translateY(0) !important;
}
