:root {
  --gold: #c9a84c;
  --gold-dim: rgba(201,168,76,.12);
  --navy: #111827;
  --navy-dark: #0a1020;
  --navy-mid: #1a2340;
  --cream: #f5f2ec;
  --cream-dark: #ede9e0;
  --white: #fff;
  --text: #1a1a1a;
  --muted: #6b6b6b;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'DM Sans', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--sans); background: var(--cream); color: var(--text); overflow-x: hidden; }
/* Reset liens — empêche iOS de colorier en bleu les numéros/emails auto-détectés */
a { color: inherit; text-decoration: none; }
a[href^="tel"], a[href^="mailto"] { color: inherit !important; text-decoration: none !important; }

/* ── TOPBAR ── */
.rpx-topbar { background: var(--navy-dark); height: 34px; overflow: hidden; display: flex; align-items: center; }
.rpx-topbar-inner { display: flex; white-space: nowrap; animation: rpxMarquee 32s linear infinite; }
.rpx-topbar-inner:hover { animation-play-state: paused; }
@keyframes rpxMarquee { from { transform: translateX(0); } to { transform: translateX(-33.333%); } }
.rpx-topbar-item { display: inline-flex; align-items: center; gap: 8px; padding: 0 24px; font-size: 11px; letter-spacing: .07em; color: rgba(255,255,255,.45); border-right: 0.5px solid rgba(255,255,255,.08); }
.rpx-topbar-item strong { color: var(--gold); font-weight: 500; }
.rpx-topbar-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--gold); opacity: .4; flex-shrink: 0; }

/* ── HEADER / NAV ── */
.rpx-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--white);
  border-bottom: 0.5px solid rgba(0,0,0,.06);
  transition: box-shadow .3s;
}
.rpx-header.rpx-scrolled { box-shadow: 0 2px 28px rgba(0,0,0,.06); }
.rpx-header-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 72px;
  padding: 0 40px;
  max-width: 1300px;
  margin: 0 auto;
}

/* Nav gauche */
.rpx-nav-left { display: flex; align-items: center; gap: 32px; }
.rpx-nav-left a { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); text-decoration: none; transition: color .2s; }
.rpx-nav-left a:hover { color: var(--navy); }

/* Logo centre */
.rpx-logo { display: flex; flex-direction: column; align-items: center; text-decoration: none; }
.rpx-logo-img { max-height: 72px; width: auto; }
.rpx-logo-text { text-align: center; }
.rpx-logo-name { font-size: 15px; font-weight: 500; color: var(--navy); letter-spacing: .03em; line-height: 1.1; font-family: var(--sans); }
.rpx-logo-sub { font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-top: 2px; }

/* Nav droite */
.rpx-nav-right { display: flex; align-items: center; gap: 28px; justify-content: flex-end; }
.rpx-nav-right a { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); text-decoration: none; transition: color .2s; }
.rpx-nav-right a:hover { color: var(--navy); }
.rpx-nav-cta { background: var(--navy) !important; color: var(--white) !important; padding: 9px 20px; border-radius: 2px; font-weight: 500; }
.rpx-nav-cta:hover { background: var(--navy-mid) !important; }

/* ── BUTTONS ── */
.rpx-btn-primary { background: var(--navy); color: var(--white); padding: 13px 28px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-radius: 2px; transition: background .2s; font-family: var(--sans); font-weight: 500; display: inline-flex; align-items: center; gap: 8px; border: none; cursor: pointer; }
.rpx-btn-primary:hover { background: var(--navy-mid); color: var(--white); }
.rpx-btn-ghost { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); text-decoration: none; display: inline-flex; align-items: center; gap: 7px; transition: color .2s; }
.rpx-btn-ghost:hover { color: var(--navy); }
.rpx-btn-outline { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); text-decoration: none; border: 0.5px solid var(--navy); padding: 10px 20px; border-radius: 2px; transition: all .2s; }
.rpx-btn-outline:hover { background: var(--navy); color: var(--white); }

/* ── LAYOUT ── */
.rpx-container { max-width: 1200px; margin: 0 auto; padding: 0 60px; }
.rpx-section-dark  { background: var(--navy-dark); padding: 100px 0; }
.rpx-section-light { background: var(--cream-dark); padding: 100px 0; }
.rpx-section-cream { background: var(--cream); padding: 110px 0; }
.rpx-section-white { background: var(--white); padding: 100px 0; }

.rpx-sec-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 50px; }
.rpx-label { font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: 12px; }
.rpx-label-dark { color: var(--gold); }
.rpx-sec-title { font-family: var(--serif); font-size: 38px; font-weight: 300; color: var(--white); line-height: 1.15; }
.rpx-sec-title em { font-style: italic; color: var(--gold); }
.rpx-sec-title-dark { color: var(--navy) !important; }

/* ── HERO ── */
.rpx-hero {
  min-height: calc(100vh - 106px);
  background: var(--cream);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Lignes décoratives verticales fines */
.rpx-hero-bg-line {
  position: absolute;
  top: 0; bottom: 0;
  width: 0.5px;
  background: rgba(0,0,0,.06);
}
.rpx-hero-line-1 { left: 33.333%; }
.rpx-hero-line-2 { left: 66.666%; }
.rpx-hero-line-3 { right: 60px; }

.rpx-hero-inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  max-width: 1300px;
  margin: 0 auto;
  padding: 80px 60px 120px;
  width: 100%;
  align-items: center;
  position: relative;
  z-index: 1;
}

.rpx-hero-left {}

.rpx-hero-eyebrow {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.rpx-hero-eyebrow-line {
  display: block;
  width: 28px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.rpx-hero-h1 {
  font-family: var(--serif);
  font-size: clamp(48px, 5.5vw, 80px);
  font-weight: 300;
  line-height: 1.05;
  color: var(--navy);
  margin-bottom: 28px;
}
.rpx-hero-h1 em { font-style: italic; color: var(--gold); }

.rpx-hero-sub {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.75;
  max-width: 400px;
  margin-bottom: 40px;
}
.rpx-hero-actions { display: flex; gap: 20px; align-items: center; }

/* Colonne droite — cartes épurées */
.rpx-hero-right {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-left: 60px;
}

.rpx-hero-stat-card {
  background: var(--navy);
  border-radius: 3px;
  padding: 36px 40px;
}
.rpx-hero-stat-big {
  font-family: var(--serif);
  font-size: 72px;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
  margin-bottom: 10px;
}
.rpx-hero-stat-label {
  font-size: 14px;
  color: rgba(255,255,255,.7);
  font-weight: 300;
  margin-bottom: 4px;
}
.rpx-hero-stat-sub {
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.28);
}

.rpx-hero-stat-card-sm {
  background: rgba(201,168,76,.06);
  border: 0.5px solid rgba(201,168,76,.2);
  padding: 22px 28px;
}
.rpx-hero-stat-row {
  display: flex;
  align-items: center;
  gap: 0;
}
.rpx-hero-stat-sep {
  width: 0.5px;
  height: 36px;
  background: rgba(201,168,76,.2);
  flex-shrink: 0;
  margin: 0 24px;
}
.rpx-hero-stat-n {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 300;
  color: var(--navy);
  line-height: 1;
}
.rpx-hero-stat-l {
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 5px;
}

.rpx-hero-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  border: 0.5px solid rgba(0,0,0,.12);
  border-radius: 2px;
  padding: 12px 18px;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
}
.rpx-hero-badge-pill i { font-size: 16px; color: var(--gold); }

/* Scroll hint */
.rpx-hero-scroll-hint {
  position: absolute;
  bottom: 32px;
  left: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 1;
}
.rpx-hero-scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, rgba(201,168,76,.8), transparent);
  animation: rpxScrollPulse 2s ease-in-out infinite;
}
@keyframes rpxScrollPulse {
  0%, 100% { opacity: .4; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
}
.rpx-hero-scroll-hint span {
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

/* ── STRIP ── */
.rpx-strip { background: var(--navy); display: flex; }
.rpx-strip-item { flex: 1; display: flex; align-items: center; gap: 13px; padding: 22px 36px; border-right: 0.5px solid rgba(255,255,255,.05); }
.rpx-strip-item:last-child { border-right: none; }
.rpx-strip-item i { font-size: 20px; color: var(--gold); flex-shrink: 0; }
.rpx-strip-item strong { font-size: 13px; color: rgba(255,255,255,.8); display: block; font-weight: 400; }
.rpx-strip-item span { font-size: 11px; color: rgba(255,255,255,.35); }

/* ── CARROUSEL ── */
.rpx-car-nav { display: flex; gap: 8px; }
.rpx-car-nav button { width: 44px; height: 44px; border-radius: 50%; border: 0.5px solid rgba(255,255,255,.13); background: transparent; cursor: pointer; color: rgba(255,255,255,.35); font-size: 17px; display: flex; align-items: center; justify-content: center; transition: all .2s; }
.rpx-car-nav button:hover { border-color: var(--gold); color: var(--gold); }
.rpx-car-outer { overflow: hidden; }
.rpx-car-track { display: flex; transition: transform .9s cubic-bezier(.76,0,.18,1); }
.rpx-car-slide { min-width: 100%; display: grid; grid-template-columns: 1fr 2fr; border: 0.5px solid rgba(255,255,255,.06); border-radius: 3px; overflow: hidden; }
.rpx-car-slide-l { background: rgba(201,168,76,.05); border-right: 0.5px solid rgba(255,255,255,.06); display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; padding: 46px 38px; }
.rpx-car-num { font-family: var(--serif); font-size: 76px; font-weight: 300; color: rgba(255,255,255,.05); line-height: 1; user-select: none; }
.rpx-car-ico { width: 60px; height: 60px; border-radius: 50%; border: 0.5px solid rgba(201,168,76,.28); display: flex; align-items: center; justify-content: center; }
.rpx-car-ico i { font-size: 24px; color: var(--gold); }
.rpx-car-slide-r { padding: 46px 52px; display: flex; flex-direction: column; justify-content: center; }
.rpx-car-cat { font-size: 9px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); opacity: .7; margin-bottom: 13px; }
.rpx-car-title { font-family: var(--serif); font-size: 28px; font-weight: 300; color: var(--white); line-height: 1.25; }
.rpx-car-div { width: 26px; height: 1px; background: var(--gold); opacity: .4; margin: 18px 0; }
.rpx-car-text { font-size: 14px; color: rgba(255,255,255,.4); line-height: 1.8; max-width: 460px; }
.rpx-car-footer { display: flex; align-items: center; gap: 16px; margin-top: 24px; }
.rpx-car-dots { display: flex; gap: 6px; }
.rpx-car-dot { width: 18px; height: 1.5px; border-radius: 2px; background: rgba(255,255,255,.14); cursor: pointer; transition: all .35s; }
.rpx-car-dot.active { width: 38px; background: var(--gold); }
.rpx-car-counter { font-family: var(--serif); font-size: 13px; color: rgba(255,255,255,.22); }
.rpx-car-counter span { color: var(--gold); }
.rpx-car-prog { flex: 1; height: 1px; background: rgba(255,255,255,.05); }
.rpx-car-fill { height: 1px; background: var(--gold); width: 0%; opacity: .4; }

/* ── PRODUITS GRID ── */
.rpx-last-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.rpx-prod-card { background: var(--white); border: 0.5px solid rgba(0,0,0,.07); border-radius: 3px; overflow: hidden; cursor: pointer; transition: all .25s; position: relative; }
.rpx-prod-card:hover { border-color: rgba(201,168,76,.3); transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.09); }
.rpx-prod-img { position: relative; height: 220px; overflow: hidden; background: var(--cream-dark); }
.rpx-prod-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.rpx-prod-card:hover .rpx-prod-img img { transform: scale(1.05); }
.rpx-prod-no-img { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.rpx-prod-no-img i { font-size: 52px; color: rgba(0,0,0,.08); }
.rpx-prod-hover { position: absolute; inset: 0; background: rgba(10,16,32,.62); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s; }
.rpx-prod-card:hover .rpx-prod-hover { opacity: 1; }
.rpx-prod-hover span { color: var(--gold); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; display: flex; align-items: center; gap: 8px; }
.rpx-prod-badge { position: absolute; top: 12px; left: 12px; background: var(--gold); color: var(--navy-dark); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; padding: 4px 10px; border-radius: 2px; }
.rpx-prod-body { padding: 20px 18px; }
.rpx-prod-cat { font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 7px; }
.rpx-prod-name { font-family: var(--serif); font-size: 20px; font-weight: 300; color: var(--navy); line-height: 1.25; margin-bottom: 7px; }
.rpx-prod-desc { font-size: 13px; color: var(--muted); line-height: 1.6; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rpx-prod-price { font-family: var(--serif); font-size: 22px; font-weight: 300; color: var(--gold); margin-bottom: 12px; }
.rpx-prod-cta { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); display: flex; align-items: center; gap: 6px; opacity: 0; transition: opacity .2s; }
.rpx-prod-card:hover .rpx-prod-cta { opacity: 1; }

/* ── CATALOGUE PAGE ── */
.rpx-catalogue-hero { background: var(--navy-dark); padding: 120px 0 80px; }
.rpx-catalogue-hero .rpx-label { color: var(--gold); }
.rpx-catalogue-title { font-family: var(--serif); font-size: clamp(40px,4vw,60px); font-weight: 300; color: var(--white); line-height: 1.1; margin-bottom: 18px; }
.rpx-catalogue-title em { font-style: italic; color: var(--gold); }
.rpx-catalogue-sub { font-size: 15px; color: rgba(255,255,255,.4); max-width: 520px; line-height: 1.7; }
.rpx-catalogue-filters { background: var(--white); border-bottom: 0.5px solid rgba(0,0,0,.07); position: sticky; top: 72px; z-index: 50; }
.rpx-filters-wrap { display: flex; gap: 8px; padding: 16px 0; overflow-x: auto; }
.rpx-filter { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: 7px 16px; border-radius: 2px; border: 0.5px solid rgba(0,0,0,.12); background: transparent; color: var(--muted); cursor: pointer; transition: all .15s; white-space: nowrap; font-family: var(--sans); }
.rpx-filter:hover { border-color: var(--navy); color: var(--navy); }
.rpx-filter.active { background: var(--navy); border-color: var(--navy); color: var(--white); }
.rpx-catalogue-section { padding: 60px 0 100px; background: var(--cream-dark); }
.rpx-catalogue-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.rpx-catalogue-card { opacity: 1; transition: opacity .25s, transform .25s; }
.rpx-catalogue-card.rpx-hidden { opacity: 0; pointer-events: none; transform: scale(.98); }
.rpx-catalogue-empty { text-align: center; padding: 80px 20px; color: var(--muted); }
.rpx-catalogue-empty i { display: block; margin: 0 auto 16px; }
.rpx-catalogue-cta-band { background: var(--navy); padding: 80px 0; }
.rpx-catalogue-cta-title { font-family: var(--serif); font-size: 40px; font-weight: 300; color: var(--white); margin-bottom: 14px; }

/* ── HISTOIRE ── */
.rpx-histoire { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.rpx-histoire-l { display: flex; flex-direction: column; gap: 26px; }
.rpx-histoire-icon { width: 100px; height: 100px; border-radius: 50%; background: var(--navy); display: flex; align-items: center; justify-content: center; }
.rpx-histoire-icon i { font-size: 40px; color: var(--gold); }
.rpx-histoire-stats { display: flex; gap: 28px; }
.rpx-histoire-stat { border-left: 2px solid var(--gold); padding-left: 14px; }
.rpx-histoire-n { font-family: var(--serif); font-size: 28px; font-weight: 300; color: var(--navy); }
.rpx-histoire-l-label { font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-top: 3px; }
.rpx-histoire-r h2 { font-family: var(--serif); font-size: 34px; font-weight: 300; color: var(--navy); line-height: 1.2; }
.rpx-histoire-div { width: 28px; height: 1px; background: var(--gold); margin: 16px 0; }
.rpx-histoire-r p { font-size: 14px; color: var(--muted); line-height: 1.8; margin-bottom: 11px; }
.rpx-histoire-feats { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; margin: 14px 0 24px; }
.rpx-histoire-feats li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--muted); }
.rpx-histoire-feats li i { color: var(--gold); font-size: 14px; }

/* ── DEVIS FORM ── */
.rpx-devis-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: 70px; }
.rpx-devis-l h2 { font-family: var(--serif); font-size: 34px; font-weight: 300; color: var(--navy); line-height: 1.2; margin-bottom: 13px; }
.rpx-devis-l p { font-size: 14px; color: var(--muted); line-height: 1.8; margin-bottom: 22px; }
.rpx-devis-info { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.rpx-devis-info i { color: var(--gold); font-size: 17px; }
.rpx-devis-notif { display: none; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 2px; font-size: 13px; margin-bottom: 16px; }
.rpx-devis-notif.show { display: flex; }
.rpx-devis-notif-ok { background: rgba(52,211,153,.07); border: 0.5px solid rgba(52,211,153,.2); color: #059669; }
.rpx-devis-notif-err { background: rgba(239,68,68,.06); border: 0.5px solid rgba(239,68,68,.18); color: #dc2626; }
.rpx-devis-form { background: var(--white); border: 0.5px solid rgba(0,0,0,.07); border-radius: 3px; padding: 34px; }
.rpx-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.rpx-ff { display: flex; flex-direction: column; gap: 5px; margin-bottom: 15px; }
.rpx-ff label { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.rpx-ff input, .rpx-ff select, .rpx-ff textarea { padding: 10px 13px; border: 0.5px solid #ddd; border-radius: 2px; font-size: 13px; font-family: var(--sans); color: var(--text); background: #fafaf8; transition: border-color .15s; width: 100%; }
.rpx-ff input:focus, .rpx-ff select:focus, .rpx-ff textarea:focus { outline: none; border-color: rgba(201,168,76,.5); background: var(--white); }
.rpx-ff textarea { min-height: 110px; resize: vertical; line-height: 1.6; }

/* ── FOOTER ── */
.rpx-footer { background: var(--navy-dark); border-top: 0.5px solid rgba(201,168,76,.12); padding: 52px 20px; }
.rpx-footer-inner { display: flex; justify-content: space-between; align-items: center; max-width: 1200px; margin: 0 auto; padding: 0 40px; gap: 32px; }
.rpx-footer-logo { font-family: var(--serif); font-size: 18px; color: rgba(255,255,255,.7); font-weight: 300; }
.rpx-footer-sub { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.25); margin-top: 5px; }
.rpx-footer-links { display: flex; gap: 28px; }
.rpx-footer-links a { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.35); text-decoration: none; transition: color .2s; }
.rpx-footer-links a:hover { color: var(--gold); }
.rpx-footer-info { font-size: 12px; color: rgba(255,255,255,.28); text-align: right; line-height: 1.9; }
.rpx-footer-info span { font-size: 10px; color: rgba(255,255,255,.15); }

@media (max-width: 768px) {
  .rpx-footer { padding: 40px 0; }
  .rpx-footer-inner { flex-direction: column; align-items: flex-start; padding: 0 20px; gap: 28px; }
  .rpx-footer-links { flex-wrap: wrap; gap: 16px 24px; }
  .rpx-footer-info { text-align: left; }
}

/* ── MODALE PRODUIT ── */
.rpx-prod-modal-overlay { position: fixed; inset: 0; background: rgba(10,16,32,.88); backdrop-filter: blur(8px); z-index: 500; opacity: 0; pointer-events: none; transition: opacity .3s; }
.rpx-prod-modal-overlay.open { opacity: 1; pointer-events: all; }
.rpx-prod-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%) scale(.97); z-index: 501; background: var(--navy-dark); border: 0.5px solid rgba(255,255,255,.08); border-radius: 7px; width: min(880px,92vw); max-height: 88vh; overflow: hidden; opacity: 0; pointer-events: none; transition: all .3s cubic-bezier(.34,1.56,.64,1); }
.rpx-prod-modal.open { opacity: 1; pointer-events: all; transform: translate(-50%,-50%) scale(1); }
.rpx-prod-modal-x { position: absolute; top: 18px; right: 18px; width: 36px; height: 36px; border-radius: 50%; border: 0.5px solid rgba(255,255,255,.12); background: transparent; cursor: pointer; color: rgba(255,255,255,.4); font-size: 18px; display: flex; align-items: center; justify-content: center; transition: all .2s; z-index: 2; }
.rpx-prod-modal-x:hover { border-color: var(--gold); color: var(--gold); }
.rpx-prod-modal-nav { position: absolute; top: 18px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; z-index: 2; }
.rpx-prod-modal-nav button { width: 32px; height: 32px; border-radius: 50%; border: 0.5px solid rgba(255,255,255,.15); background: transparent; cursor: pointer; color: rgba(255,255,255,.4); font-size: 15px; display: flex; align-items: center; justify-content: center; transition: all .2s; }
.rpx-prod-modal-nav button:hover { border-color: var(--gold); color: var(--gold); }
.rpx-prod-modal-nav span { font-family: var(--serif); font-size: 13px; color: rgba(255,255,255,.28); letter-spacing: .08em; }
.rpx-prod-modal-body { display: grid; grid-template-columns: 1fr 1.4fr; min-height: 450px; }
.rpx-prod-modal-left { background: rgba(201,168,76,.04); border-right: 0.5px solid rgba(255,255,255,.06); padding: 76px 34px 36px; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; }
.rpx-prod-modal-num { font-family: var(--serif); font-size: 80px; font-weight: 300; color: rgba(255,255,255,.05); line-height: 1; user-select: none; }
.rpx-prod-modal-imgwrap { flex: 1; display: flex; align-items: center; justify-content: center; width: 100%; padding: 16px 0; }
.rpx-prod-modal-imgwrap img { max-width: 100%; max-height: 210px; object-fit: contain; border-radius: 3px; }
.rpx-prod-modal-no-img { width: 90px; height: 90px; border-radius: 50%; border: 0.5px solid rgba(201,168,76,.2); display: flex; align-items: center; justify-content: center; }
.rpx-prod-modal-no-img i { font-size: 36px; color: var(--gold); }
.rpx-prod-modal-dots { display: flex; gap: 6px; flex-wrap: wrap; max-width: 160px; }
.rpx-prod-modal-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.15); cursor: pointer; transition: all .25s; }
.rpx-prod-modal-dot.active { background: var(--gold); transform: scale(1.3); }
.rpx-prod-modal-right { padding: 76px 48px 40px; display: flex; flex-direction: column; justify-content: center; overflow-y: auto; }
.rpx-prod-modal-cat { font-size: 9px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); opacity: .7; margin-bottom: 13px; }
.rpx-prod-modal-title { font-family: var(--serif); font-size: 30px; font-weight: 300; color: var(--white); line-height: 1.2; }
.rpx-prod-modal-divider { width: 26px; height: 1px; background: var(--gold); opacity: .5; margin: 18px 0; }
.rpx-prod-modal-badge { display: inline-block; border: 0.5px solid rgba(201,168,76,.4); color: var(--gold); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; padding: 4px 12px; border-radius: 2px; margin-bottom: 16px; }
.rpx-prod-modal-desc { font-size: 14px; color: rgba(255,255,255,.45); line-height: 1.8; margin-bottom: 16px; flex: 1; }
.rpx-prod-modal-price { font-family: var(--serif); font-size: 32px; font-weight: 300; color: var(--gold); margin-bottom: 24px; }
.rpx-prod-modal-btn { align-self: flex-start; }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .rpx-header-inner { grid-template-columns: auto 1fr auto; gap: 20px; }
  .rpx-nav-left, .rpx-nav-right { gap: 20px; }
  .rpx-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .rpx-hero-right { padding-left: 0; flex-direction: row; flex-wrap: wrap; }
  .rpx-hero-stat-card { flex: 1; min-width: 200px; }
}
@media (max-width: 768px) {
  .rpx-nav-left { display: none; }
  .rpx-header-inner { grid-template-columns: 1fr auto; }
  .rpx-nav-right { gap: 10px; }
  .rpx-nav-right a:not(.rpx-nav-cta) { display: none; }
  .rpx-hero-inner { padding: 60px 24px 80px; }
  .rpx-hero-right { display: none; }
  .rpx-hero-scroll-hint { left: 24px; }
  .rpx-last-grid, .rpx-catalogue-grid { grid-template-columns: 1fr 1fr; }
  .rpx-histoire { grid-template-columns: 1fr; gap: 40px; }
  .rpx-devis-layout { grid-template-columns: 1fr; gap: 36px; }
  .rpx-devis-form { padding: 24px 20px; }
  .rpx-section-white .rpx-container { padding: 0 16px; }
  .rpx-section-light { padding: 60px 0; }
  .rpx-section-white { padding: 60px 0; }
  .rpx-section-process { padding: 60px 0; }
  .rpx-container { padding: 0 20px; }
  .rpx-prod-modal-body { grid-template-columns: 1fr; }
  .rpx-prod-modal-left { display: none; }
  .rpx-car-slide { grid-template-columns: 1fr; }
  .rpx-car-slide-l { display: none; }
  .rpx-strip { display: grid; grid-template-columns: 1fr 1fr; flex-direction: unset; }
  .rpx-strip-item { border-right: none; border-bottom: 0.5px solid rgba(255,255,255,.05); padding: 16px 18px; }
  .rpx-strip-item:nth-child(odd) { border-right: 0.5px solid rgba(255,255,255,.05); }
  .rpx-hero-bg-line { display: none; }
}
@media (max-width: 480px) {
  .rpx-last-grid, .rpx-catalogue-grid { grid-template-columns: 1fr; }
  .rpx-form-row { grid-template-columns: 1fr; }
  .rpx-strip { grid-template-columns: 1fr; }
  .rpx-strip-item:nth-child(odd) { border-right: none; }
}

/* ── HERO LOGO BLOCK ── */
.rpx-hero-logo-wrap { margin-bottom: 28px; }
.rpx-hero-logo-img { max-width: 400px; width: 100%; height: auto; display: block; filter: drop-shadow(0 6px 28px rgba(201,168,76,.18)); }
.rpx-hero-logo-name { font-family: var(--serif); font-size: 32px; font-weight: 300; color: var(--navy); letter-spacing: .04em; }
.rpx-hero-logo-sub { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); margin-top: 5px; }
.rpx-hero-divider { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; max-width: 300px; }
.rpx-hero-divider-line { flex: 1; height: 0.5px; background: linear-gradient(90deg, rgba(201,168,76,.7), rgba(201,168,76,.08)); }
.rpx-hero-divider-line:last-child { background: linear-gradient(270deg, rgba(201,168,76,.7), rgba(201,168,76,.08)); }
.rpx-hero-divider-diamond { width: 5px; height: 5px; background: var(--gold); transform: rotate(45deg); flex-shrink: 0; opacity: .75; }

/* ── CARROUSEL RAFFINÉ ── */
.rpx-car-slide { border: none; border-bottom: 0.5px solid rgba(255,255,255,.04); background: rgba(255,255,255,.015); }
.rpx-car-slide-l { background: transparent; border-right: 0.5px solid rgba(201,168,76,.09); padding: 52px 44px; }
.rpx-car-slide-r { padding: 52px 64px; }
.rpx-car-num { font-size: 96px; color: rgba(201,168,76,.05); }
.rpx-car-ico { width: 54px; height: 54px; border-color: rgba(201,168,76,.2); background: rgba(201,168,76,.03); }
.rpx-car-title { font-size: 30px; letter-spacing: -.01em; line-height: 1.2; }
.rpx-car-text { font-size: 14px; line-height: 1.9; color: rgba(255,255,255,.36); max-width: 500px; }
.rpx-car-prog { background: rgba(255,255,255,.04); height: 0.5px; }
.rpx-car-fill { background: var(--gold); opacity: .5; }
.rpx-car-dot { width: 14px; height: 1px; border-radius: 0; background: rgba(255,255,255,.1); }
.rpx-car-dot.active { width: 30px; background: var(--gold); }
.rpx-car-nav button { border-radius: 2px; border-color: rgba(255,255,255,.1); }
.rpx-car-footer { margin-top: 20px; padding: 0 2px; }

/* ══════════════════════════════════════════
   CARROUSEL V2 — FULL-BLEED IMMERSIF
══════════════════════════════════════════ */
.rpx-car-section-v2 { padding: 0; overflow: hidden; }

.rpx-car-v2-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  padding: 80px 80px 52px;
  border-bottom: 0.5px solid rgba(255,255,255,.05);
}
.rpx-car-v2-header-r { display: flex; align-items: center; gap: 28px; }
.rpx-car-v2-counter-wrap { display: flex; align-items: center; gap: 10px; }
.rpx-car-v2-cur {
  font-family: var(--serif); font-size: 48px; font-weight: 300;
  color: var(--gold); line-height: 1;
}
.rpx-car-v2-sep { width: 28px; height: 0.5px; background: rgba(255,255,255,.2); }
.rpx-car-v2-tot {
  font-family: var(--serif); font-size: 20px; font-weight: 300;
  color: rgba(255,255,255,.2); line-height: 1;
}

.rpx-car-v2-outer { overflow: hidden; }
.rpx-car-v2-track {
  display: flex;
  transition: transform .95s cubic-bezier(.76,0,.18,1);
}

.rpx-car-v2-slide {
  min-width: 100%;
  display: grid;
  grid-template-columns: 120px 100px 1fr;
  align-items: center;
  gap: 0;
  padding: 64px 80px;
  position: relative;
  border-bottom: 0.5px solid rgba(255,255,255,.04);
}
.rpx-car-v2-slide::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(to bottom, transparent, var(--gold), transparent);
  opacity: 0;
  transition: opacity .4s;
}
.rpx-car-v2-slide.rpx-active::before { opacity: 1; }

.rpx-car-v2-index {
  font-family: var(--serif); font-size: 88px; font-weight: 300;
  color: rgba(201,168,76,.07); line-height: 1; user-select: none;
  letter-spacing: -.02em;
}
.rpx-car-v2-ico-wrap {
  display: flex; align-items: center; justify-content: center;
}
.rpx-car-v2-ico {
  width: 64px; height: 64px; border-radius: 50%;
  border: 0.5px solid rgba(201,168,76,.22);
  background: rgba(201,168,76,.05);
  display: flex; align-items: center; justify-content: center;
}
.rpx-car-v2-ico i { font-size: 26px; color: var(--gold); }

.rpx-car-v2-content { padding-left: 52px; border-left: 0.5px solid rgba(255,255,255,.06); }
.rpx-car-v2-cat {
  font-size: 9px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); opacity: .65; margin-bottom: 14px;
}
.rpx-car-v2-title {
  font-family: var(--serif); font-size: clamp(24px,2.5vw,36px);
  font-weight: 300; color: #fff; line-height: 1.2; margin-bottom: 0;
}
.rpx-car-v2-line {
  width: 28px; height: 0.5px; background: var(--gold);
  opacity: .45; margin: 18px 0;
}
.rpx-car-v2-text {
  font-size: 14px; color: rgba(255,255,255,.38);
  line-height: 1.85; max-width: 560px;
}
.rpx-car-v2-accent {
  position: absolute; right: 80px; top: 50%; transform: translateY(-50%);
  width: 1px; height: 60px;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,.3), transparent);
}

.rpx-car-v2-footer {
  display: flex; align-items: center; gap: 28px;
  padding: 28px 80px;
  border-top: 0.5px solid rgba(255,255,255,.04);
}
.rpx-car-v2-prog-wrap { flex: 1; }
.rpx-car-v2-prog { height: 1px; background: rgba(255,255,255,.06); }

/* ══════════════════════════════════════════
   PRODUITS V2 — CARTES PREMIUM SANS IMAGE
══════════════════════════════════════════ */
.rpx-produits-v2 { background: var(--cream); }
.rpx-prod-v2-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 20px;
}

.rpx-prod-v2-card {
  background: var(--white);
  border: 0.5px solid rgba(0,0,0,.07);
  border-radius: 3px; overflow: hidden;
  cursor: pointer;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  position: relative;
}
.rpx-prod-v2-card::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transform: scaleX(0); transition: transform .4s;
}
.rpx-prod-v2-card:hover { transform: translateY(-5px); box-shadow: 0 20px 48px rgba(0,0,0,.1); border-color: transparent; }
.rpx-prod-v2-card:hover::after { transform: scaleX(1); }

/* Zone image / placeholder */
.rpx-prod-v2-img {
  position: relative; height: 220px; overflow: hidden;
}
.rpx-prod-v2-img img { width:100%; height:100%; object-fit:cover; transition: transform .5s; }
.rpx-prod-v2-card:hover .rpx-prod-v2-img img { transform: scale(1.04); }

/* Placeholder élégant quand pas d'image */
.rpx-prod-v2-placeholder {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 14px;
  position: relative; overflow: hidden;
}
.rpx-prod-v2-placeholder::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(
    45deg,
    rgba(201,168,76,.03) 0px, rgba(201,168,76,.03) 1px,
    transparent 1px, transparent 32px
  );
}
.rpx-prod-v2-ico-bg {
  width: 72px; height: 72px; border-radius: 50%;
  border: 1px solid rgba(201,168,76,.3);
  background: rgba(201,168,76,.08);
  display: flex; align-items: center; justify-content: center;
  position: relative; z-index: 1;
  transition: all .3s;
}
.rpx-prod-v2-card:hover .rpx-prod-v2-ico-bg {
  border-color: rgba(201,168,76,.6);
  background: rgba(201,168,76,.15);
}
.rpx-prod-v2-ico-bg i { font-size: 28px; color: var(--gold); }
.rpx-prod-v2-placeholder-label {
  font-size: 9px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.3); position: relative; z-index: 1;
}

/* Badge */
.rpx-prod-v2-badge {
  position: absolute; top: 14px; left: 14px;
  background: var(--gold); color: var(--navy-dark);
  font-size: 9px; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 600; padding: 4px 10px; border-radius: 2px;
  z-index: 2;
}

/* Overlay hover */
.rpx-prod-v2-overlay {
  position: absolute; inset: 0;
  background: rgba(10,16,32,.55);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .3s;
}
.rpx-prod-v2-card:hover .rpx-prod-v2-overlay { opacity: 1; }
.rpx-prod-v2-overlay span {
  color: var(--gold); font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; display: flex; align-items: center; gap: 8px;
}

/* Corps de carte */
.rpx-prod-v2-body { padding: 22px 20px 18px; }
.rpx-prod-v2-cat {
  font-size: 9px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 7px;
}
.rpx-prod-v2-name {
  font-family: var(--serif); font-size: 21px; font-weight: 300;
  color: var(--navy); line-height: 1.2; margin-bottom: 0;
}
.rpx-prod-v2-divider {
  width: 20px; height: 0.5px; background: var(--gold);
  opacity: .5; margin: 12px 0;
}
.rpx-prod-v2-desc {
  font-size: 12px; color: var(--muted); line-height: 1.65;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; margin-bottom: 16px;
}
.rpx-prod-v2-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 12px; border-top: 0.5px solid rgba(0,0,0,.06);
}
.rpx-prod-v2-price {
  font-family: var(--serif); font-size: 20px; font-weight: 300; color: var(--gold);
}
.rpx-prod-v2-cta {
  width: 32px; height: 32px;
  border: 0.5px solid rgba(0,0,0,.1);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--muted); font-size: 14px;
  transition: all .25s;
}
.rpx-prod-v2-card:hover .rpx-prod-v2-cta {
  border-color: var(--gold); color: var(--gold);
  background: rgba(201,168,76,.06);
}

/* Responsive */
@media (max-width: 900px) {
  .rpx-car-v2-header { padding: 52px 32px 36px; }
  .rpx-car-v2-slide { padding: 44px 32px; grid-template-columns: 80px 72px 1fr; }
  .rpx-car-v2-index { font-size: 64px; }
  .rpx-car-v2-content { padding-left: 28px; }
  .rpx-car-v2-footer { padding: 20px 32px; }
  .rpx-car-v2-accent { display: none; }
  .rpx-prod-v2-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 600px) {
  .rpx-car-v2-slide { grid-template-columns: 1fr; gap: 20px; }
  .rpx-car-v2-index { display: none; }
  .rpx-prod-v2-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════
   PRODUITS V3 — CARTES PREMIUM SANS PHOTO
══════════════════════════════════════════ */
.rpx-produits-v3 { background: var(--cream-dark); }
.rpx-prod-v3-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.rpx-prod-v3-card {
  background: var(--white);
  border: 0.5px solid rgba(0,0,0,.07);
  border-radius: 3px;
  overflow: hidden;
  cursor: pointer;
  transition: all .32s cubic-bezier(.4,0,.2,1);
  position: relative;
}
.rpx-prod-v3-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 56px rgba(0,0,0,.11);
  border-color: rgba(201,168,76,.25);
}

/* Image réelle */
.rpx-prod-v3-img {
  position: relative; height: 220px; overflow: hidden;
}
.rpx-prod-v3-img img {
  width:100%; height:100%; object-fit:cover; transition: transform .5s;
}
.rpx-prod-v3-card:hover .rpx-prod-v3-img img { transform: scale(1.04); }

/* Zone sans photo — design éditorial navy/or */
.rpx-prod-v3-noimg {
  position: relative; height: 220px; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}

/* Grille décorative en fond */
.rpx-prod-v3-noimg-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(201,168,76,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,.07) 1px, transparent 1px);
  background-size: 32px 32px;
}
/* Halo central doux */
.rpx-prod-v3-noimg::before {
  content: '';
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(201,168,76,.12) 0%, transparent 70%);
  border-radius: 50%;
}

.rpx-prod-v3-noimg-inner {
  position: relative; z-index: 2;
  display: flex; flex-direction: column;
  align-items: center; gap: 10px; text-align: center;
  padding: 0 20px;
}

.rpx-prod-v3-noimg-ring {
  width: 66px; height: 66px; border-radius: 50%;
  border: 1px solid rgba(201,168,76,.35);
  background: rgba(201,168,76,.08);
  display: flex; align-items: center; justify-content: center;
  transition: all .3s;
}
.rpx-prod-v3-card:hover .rpx-prod-v3-noimg-ring {
  border-color: rgba(201,168,76,.65);
  background: rgba(201,168,76,.16);
  transform: scale(1.05);
}
.rpx-prod-v3-noimg-ring i { font-size: 26px; color: var(--gold); }

.rpx-prod-v3-noimg-cat {
  font-size: 9px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.3);
}
.rpx-prod-v3-noimg-name {
  font-family: var(--serif); font-size: 17px; font-weight: 300;
  color: rgba(255,255,255,.75); line-height: 1.25;
  max-width: 180px;
}

/* Badge */
.rpx-prod-v3-badge {
  position: absolute; top: 12px; left: 12px; z-index: 3;
  background: var(--gold); color: var(--navy-dark);
  font-size: 9px; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 600; padding: 4px 10px; border-radius: 2px;
}

/* Overlay hover */
.rpx-prod-v3-overlay {
  position: absolute; inset: 0; z-index: 3;
  background: rgba(10,16,32,.5);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .28s;
}
.rpx-prod-v3-card:hover .rpx-prod-v3-overlay { opacity: 1; }
.rpx-prod-v3-overlay span {
  color: var(--gold); font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; display: flex; align-items: center; gap: 7px;
  border: 0.5px solid rgba(201,168,76,.4);
  padding: 9px 18px; border-radius: 2px;
}

/* Corps texte */
.rpx-prod-v3-body { padding: 20px 18px 16px; }
.rpx-prod-v3-top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 7px;
}
.rpx-prod-v3-cat {
  font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold);
}
.rpx-prod-v3-name {
  font-family: var(--serif); font-size: 21px; font-weight: 300;
  color: var(--navy); line-height: 1.2; margin-bottom: 8px;
}
.rpx-prod-v3-desc {
  font-size: 12px; color: var(--muted); line-height: 1.65; margin-bottom: 14px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rpx-prod-v3-foot {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 12px; border-top: 0.5px solid rgba(0,0,0,.06);
}
.rpx-prod-v3-price {
  font-family: var(--serif); font-size: 19px; font-weight: 300; color: var(--gold);
}
.rpx-prod-v3-arrow {
  width: 30px; height: 30px; border-radius: 50%;
  border: 0.5px solid rgba(0,0,0,.1);
  display: flex; align-items: center; justify-content: center;
  color: var(--muted); font-size: 13px; transition: all .25s;
}
.rpx-prod-v3-card:hover .rpx-prod-v3-arrow {
  border-color: var(--gold); color: var(--gold); background: rgba(201,168,76,.07);
}

@media (max-width: 768px) {
  .rpx-prod-v3-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 480px) {
  .rpx-prod-v3-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════
   HERO V2 — PREMIUM REDESIGN
══════════════════════════════════════════ */
.rpx-hero-v2 {
  background: var(--cream);
  min-height: calc(100vh - 106px);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Lignes verticales décoratives */
.rpx-hero-v2-bg { position: absolute; inset: 0; pointer-events: none; }
.rpx-hero-v2-line { position: absolute; top: 0; bottom: 0; width: 0.5px; background: rgba(0,0,0,.05); }
.rpx-hero-v2-line-1 { left: 33.333%; }
.rpx-hero-v2-line-2 { left: 66.666%; }
.rpx-hero-v2-line-3 { right: 60px; }

/* Halo doré subtil */
.rpx-hero-v2-bg::after {
  content: '';
  position: absolute; top: -20%; right: 15%;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(201,168,76,.06) 0%, transparent 65%);
  border-radius: 50%; pointer-events: none;
}

.rpx-hero-v2-inner {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  align-items: center;
  max-width: 1300px;
  margin: 0 auto;
  padding: 80px 60px 100px;
  width: 100%;
  position: relative; z-index: 1;
  gap: 0;
}

/* ── GAUCHE ── */
.rpx-hero-v2-logo-block { margin-bottom: 28px; }
.rpx-hero-v2-logo {
  max-width: 380px; width: 100%; height: auto; display: block;
  filter: drop-shadow(0 2px 16px rgba(0,0,0,.12));
}
.rpx-hero-v2-logo-text { display: flex; flex-direction: column; }
.rpx-hero-v2-logo-name {
  font-family: var(--serif); font-size: 28px; font-weight: 300;
  color: var(--navy); letter-spacing: .04em;
}
.rpx-hero-v2-logo-sub {
  font-size: 9px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); margin-top: 4px;
}

/* Séparateur diamant */
.rpx-hero-v2-sep {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 26px; max-width: 280px;
}
.rpx-hero-v2-sep-line {
  flex: 1; height: 0.5px;
  background: linear-gradient(90deg, rgba(201,168,76,.7), rgba(201,168,76,.05));
}
.rpx-hero-v2-sep-line-r {
  background: linear-gradient(270deg, rgba(201,168,76,.7), rgba(201,168,76,.05));
}
.rpx-hero-v2-sep-diamond {
  width: 5px; height: 5px; background: var(--gold);
  transform: rotate(45deg); flex-shrink: 0; opacity: .8;
}

.rpx-hero-v2-eyebrow {
  font-size: 9px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 22px;
  display: flex; align-items: center; gap: 12px;
}
.rpx-hero-v2-eyebrow-bar {
  display: block; width: 24px; height: 1px;
  background: var(--gold); flex-shrink: 0;
}

.rpx-hero-v2-h1 {
  font-family: var(--serif);
  font-size: clamp(46px, 5.2vw, 76px);
  font-weight: 300; line-height: 1.04;
  color: var(--navy); margin-bottom: 24px;
  letter-spacing: -.01em;
}
.rpx-hero-v2-h1 em { font-style: italic; color: var(--gold); }

.rpx-hero-v2-sub {
  font-size: 14.5px; color: var(--muted);
  line-height: 1.78; max-width: 380px; margin-bottom: 36px;
}

.rpx-hero-v2-actions { display: flex; gap: 18px; align-items: center; }

/* ── DROITE ── */
.rpx-hero-v2-right {
  display: flex; flex-direction: column; gap: 12px;
  padding-left: 56px;
}

/* Carte stat principale */
.rpx-hero-v2-stat-main {
  background: var(--navy);
  padding: 40px 44px;
  border-radius: 3px;
  position: relative;
  overflow: hidden;
}
.rpx-hero-v2-stat-main::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--gold), rgba(201,168,76,.2));
}
.rpx-hero-v2-stat-main::after {
  content: '';
  position: absolute; bottom: -60px; right: -60px;
  width: 180px; height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,.07) 0%, transparent 70%);
}
.rpx-hero-v2-stat-num {
  font-family: var(--serif); font-size: 68px; font-weight: 300;
  color: var(--gold); line-height: 1; margin-bottom: 12px;
  letter-spacing: -.02em;
}
.rpx-hero-v2-stat-lbl {
  font-size: 13.5px; color: rgba(255,255,255,.68);
  font-weight: 300; margin-bottom: 4px;
}
.rpx-hero-v2-stat-sub {
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.22);
}
.rpx-hero-v2-stat-bar {
  width: 32px; height: 1px; background: var(--gold);
  opacity: .35; margin-top: 20px;
}

/* Bande stats secondaires */
.rpx-hero-v2-stat-row {
  background: rgba(201,168,76,.05);
  border: 0.5px solid rgba(201,168,76,.18);
  padding: 20px 28px;
  border-radius: 3px;
  display: flex; align-items: center;
}
.rpx-hero-v2-stat-divider {
  width: 0.5px; height: 32px;
  background: rgba(201,168,76,.2); flex-shrink: 0; margin: 0 22px;
}
.rpx-hero-v2-stat-cell { text-align: center; flex: 1; }
.rpx-hero-v2-cell-n {
  font-family: var(--serif); font-size: 26px; font-weight: 300;
  color: var(--navy); line-height: 1; margin-bottom: 4px;
}
.rpx-hero-v2-cell-l {
  font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted);
}

/* Pill adresse */
.rpx-hero-v2-pill {
  display: flex; align-items: center; gap: 10px;
  border: 0.5px solid rgba(0,0,0,.1);
  padding: 12px 18px; border-radius: 3px;
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted);
  background: rgba(255,255,255,.6);
}
.rpx-hero-v2-pill i { font-size: 15px; color: var(--gold); }

/* Scroll hint */
.rpx-hero-v2-scroll {
  position: absolute; bottom: 32px; left: 60px;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  z-index: 1;
}
.rpx-hero-v2-scroll-line {
  width: 1px; height: 44px;
  background: linear-gradient(to bottom, var(--gold), transparent);
  animation: rpxScrollPulse 2s ease-in-out infinite;
}
.rpx-hero-v2-scroll span {
  font-size: 8px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--muted); writing-mode: vertical-rl; transform: rotate(180deg);
}

/* Responsive hero v2 */
@media (max-width: 1024px) {
  .rpx-hero-v2-inner { grid-template-columns: 1fr; gap: 48px; }
  .rpx-hero-v2-right { padding-left: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .rpx-hero-v2-stat-main { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .rpx-hero-v2-inner { padding: 40px 20px 60px; gap: 32px; }
  .rpx-hero-v2-right { grid-template-columns: 1fr; }
  .rpx-hero-v2-logo { max-width: 240px; }
  .rpx-hero-v2-scroll { display: none; }
  .rpx-hero-v2-actions { flex-direction: column; align-items: flex-start; gap: 12px; }
  .rpx-hero-v2-actions a { width: 100%; text-align: center; justify-content: center; }
  .rpx-hero-v2-h1 { font-size: clamp(36px, 9vw, 52px); }
  .rpx-hero-v2-stat-main { padding: 28px 24px; }
  .rpx-hero-v2-stat-num { font-size: 52px; }
  .rpx-hero-v2-stat-row { padding: 16px 16px; }
  .rpx-hero-v2-stat-divider { margin: 0 14px; }
}

/* ══════════════════════════════════════════
   CARROUSEL V3 — TABS + SPLIT LAYOUT
══════════════════════════════════════════ */
.rpx-car-v3 {
  background: var(--navy-dark);
  overflow: hidden;
}

/* TABS */
.rpx-car-v3-tabs {
  display: flex;
  border-bottom: 0.5px solid rgba(255,255,255,.06);
}
.rpx-car-v3-tab {
  flex: 1;
  padding: 0 24px;
  height: 54px;
  display: flex; align-items: center; gap: 11px;
  cursor: pointer;
  border-right: 0.5px solid rgba(255,255,255,.06);
  transition: background .2s;
  position: relative; overflow: hidden;
}
.rpx-car-v3-tab:last-child { border-right: none; }
.rpx-car-v3-tab::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: var(--gold);
  transform: scaleX(0); transform-origin: left;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.rpx-car-v3-tab.rpx-active::after { transform: scaleX(1); }
.rpx-car-v3-tab.rpx-active { background: rgba(201,168,76,.05); }
.rpx-car-v3-tab-num {
  font-family: var(--serif); font-size: 13px; font-weight: 300;
  color: rgba(255,255,255,.2); transition: color .25s; min-width: 18px;
}
.rpx-car-v3-tab.rpx-active .rpx-car-v3-tab-num { color: var(--gold); }
.rpx-car-v3-tab-label {
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.28); transition: color .25s;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rpx-car-v3-tab.rpx-active .rpx-car-v3-tab-label { color: rgba(255,255,255,.7); }
.rpx-car-v3-tab-dot {
  width: 4px; height: 4px; border-radius: 50%;
  background: rgba(255,255,255,.1); flex-shrink: 0; margin-left: auto;
  transition: background .25s;
}
.rpx-car-v3-tab.rpx-active .rpx-car-v3-tab-dot { background: var(--gold); }

/* STAGE */
.rpx-car-v3-stage {
  display: grid;
  grid-template-columns: 1fr 300px;
  min-height: 320px;
}

/* GAUCHE */
.rpx-car-v3-left {
  padding: 52px 60px 48px;
  position: relative;
  border-right: 0.5px solid rgba(255,255,255,.06);
  overflow: hidden;
}
.rpx-car-v3-left::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(to bottom, transparent 0%, var(--gold) 40%, var(--gold) 60%, transparent 100%);
  opacity: .6;
}
.rpx-car-v3-num {
  font-family: var(--serif);
  font-size: 130px; font-weight: 300;
  color: rgba(201,168,76,.04);
  line-height: 1;
  position: absolute; top: 12px; right: 32px;
  user-select: none; letter-spacing: -.04em;
  transition: opacity .4s;
}
.rpx-car-v3-content {
  transition: opacity .28s, transform .32s cubic-bezier(.4,0,.2,1);
}
.rpx-car-v3-content.rpx-exit {
  opacity: 0;
  transform: translateY(10px);
}
.rpx-car-v3-eyebrow {
  font-size: 9px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); opacity: .7;
  margin-bottom: 18px;
  display: flex; align-items: center; gap: 10px;
}
.rpx-car-v3-eyebrow-line {
  width: 20px; height: 0.5px; background: var(--gold); flex-shrink: 0;
}
.rpx-car-v3-title {
  font-family: var(--serif);
  font-size: clamp(24px, 2.8vw, 36px);
  font-weight: 300; color: #fff;
  line-height: 1.15; margin-bottom: 18px;
  position: relative; z-index: 1;
}
.rpx-car-v3-title em { font-style: italic; color: var(--gold); }
.rpx-car-v3-divider {
  width: 30px; height: 1px;
  background: linear-gradient(90deg, var(--gold), rgba(201,168,76,.1));
  margin-bottom: 16px;
}
.rpx-car-v3-text {
  font-size: 13.5px; color: rgba(255,255,255,.37);
  line-height: 1.85; max-width: 460px;
  position: relative; z-index: 1;
}
.rpx-car-v3-cta {
  display: inline-flex; align-items: center; gap: 9px;
  margin-top: 28px;
  font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold);
  border: 0.5px solid rgba(201,168,76,.35);
  padding: 10px 20px; border-radius: 2px;
  text-decoration: none;
  transition: all .25s;
}
.rpx-car-v3-cta:hover { background: rgba(201,168,76,.08); border-color: var(--gold); }
.rpx-car-v3-cta i { font-size: 14px; transition: transform .25s; }
.rpx-car-v3-cta:hover i { transform: translateX(3px); }

/* DROITE */
.rpx-car-v3-right {
  display: flex; flex-direction: column;
  padding: 52px 36px 48px;
  position: relative; overflow: hidden;
}
.rpx-car-v3-right::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(201,168,76,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,.04) 1px, transparent 1px);
  background-size: 28px 28px;
}
.rpx-car-v3-right::after {
  content: '';
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(201,168,76,.08) 0%, transparent 65%);
  border-radius: 50%;
}
.rpx-car-v3-ico-wrap {
  position: relative; z-index: 1;
  flex: 1; display: flex; align-items: center; justify-content: center;
}
.rpx-car-v3-ico-outer {
  width: 88px; height: 88px; border-radius: 50%;
  border: 1px solid rgba(201,168,76,.18);
  display: flex; align-items: center; justify-content: center;
  position: relative; transition: all .4s;
}
.rpx-car-v3-ico-outer::before {
  content: '';
  position: absolute; inset: -10px; border-radius: 50%;
  border: 0.5px solid rgba(201,168,76,.08);
  transition: all .4s;
}
.rpx-car-v3-ico-outer::after {
  content: '';
  position: absolute; inset: -22px; border-radius: 50%;
  border: 0.5px solid rgba(201,168,76,.04);
}
.rpx-car-v3-ico-outer.rpx-active {
  border-color: rgba(201,168,76,.45);
  background: rgba(201,168,76,.07);
}
.rpx-car-v3-ico-outer.rpx-active::before { border-color: rgba(201,168,76,.16); }
.rpx-car-v3-ico { font-size: 32px; color: var(--gold); }

.rpx-car-v3-meta {
  position: relative; z-index: 1;
  border-top: 0.5px solid rgba(255,255,255,.06);
  padding-top: 18px;
  display: flex; flex-direction: column; gap: 8px;
}
.rpx-car-v3-meta-row {
  display: flex; align-items: center; justify-content: space-between;
}
.rpx-car-v3-meta-key {
  font-size: 9px; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,255,255,.2);
}
.rpx-car-v3-meta-val {
  font-family: var(--serif); font-size: 14px; font-weight: 300;
  color: rgba(255,255,255,.5);
}

/* FOOTER */
.rpx-car-v3-footer {
  display: flex; align-items: center;
  border-top: 0.5px solid rgba(255,255,255,.06);
  height: 48px;
}
.rpx-car-v3-nav-btn {
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  background: transparent;
  border: none; border-right: 0.5px solid rgba(255,255,255,.06);
  cursor: pointer; color: rgba(255,255,255,.28); font-size: 16px;
  transition: all .2s; flex-shrink: 0;
}
.rpx-car-v3-nav-next {
  border-right: none;
  border-left: 0.5px solid rgba(255,255,255,.06);
}
.rpx-car-v3-nav-btn:hover { background: rgba(201,168,76,.06); color: var(--gold); }
.rpx-car-v3-prog-area {
  flex: 1; display: flex; align-items: center; gap: 18px; padding: 0 28px;
}
.rpx-car-v3-prog-track { flex: 1; height: 1px; background: rgba(255,255,255,.07); }
.rpx-car-v3-prog-fill { height: 1px; background: var(--gold); opacity: .55; width: 0%; }
.rpx-car-v3-counter {
  font-family: var(--serif); font-size: 12px;
  color: rgba(255,255,255,.18); white-space: nowrap;
}
.rpx-car-v3-counter b { color: var(--gold); font-weight: 300; }

/* Responsive */
@media (max-width: 768px) {
  .rpx-car-v3-stage { grid-template-columns: 1fr; }
  .rpx-car-v3-right { display: none; }
  .rpx-car-v3-left { padding: 40px 28px 36px; }
  .rpx-car-v3-tab-label { display: none; }
  .rpx-car-v3-tab { justify-content: center; padding: 0 12px; }
  .rpx-car-v3-tab-dot { margin-left: 0; }
}

/* ══════════════════════════════════════════
   CARROUSEL V3 — SIDEBAR + CONTENU FLUIDE
══════════════════════════════════════════ */
.rpx-car-v3 {
  background: var(--navy-dark);
  overflow: hidden;
}
.rpx-car-v3-shell {
  display: grid;
  grid-template-columns: 260px 1fr;
  min-height: 420px;
}

/* ── SIDEBAR GAUCHE ── */
.rpx-car-v3-sidebar {
  border-right: 0.5px solid rgba(255,255,255,.07);
  display: flex;
  flex-direction: column;
  padding: 44px 0 32px;
}
.rpx-car-v3-sidebar-label {
  font-family: var(--serif);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.18);
  line-height: 1.6;
  padding: 0 32px 28px;
  border-bottom: 0.5px solid rgba(255,255,255,.05);
}

/* Tabs */
.rpx-car-v3-tabs { flex: 1; padding: 12px 0; }
.rpx-car-v3-tab {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 32px;
  cursor: pointer;
  position: relative;
  transition: background .2s;
  border-left: 2px solid transparent;
}
.rpx-car-v3-tab::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.rpx-car-v3-tab.rpx-active::before { transform: scaleY(1); }
.rpx-car-v3-tab.rpx-active { background: rgba(201,168,76,.05); }
.rpx-car-v3-tab-n {
  font-family: var(--serif);
  font-size: 18px; font-weight: 300;
  color: rgba(255,255,255,.15);
  line-height: 1; min-width: 24px;
  transition: color .25s;
}
.rpx-car-v3-tab.rpx-active .rpx-car-v3-tab-n { color: var(--gold); }
.rpx-car-v3-tab-txt {
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.25);
  flex: 1; transition: color .25s;
}
.rpx-car-v3-tab.rpx-active .rpx-car-v3-tab-txt { color: rgba(255,255,255,.75); }
.rpx-car-v3-tab-arr {
  font-size: 13px; color: rgba(255,255,255,.1);
  transition: color .25s, transform .25s;
}
.rpx-car-v3-tab.rpx-active .rpx-car-v3-tab-arr {
  color: var(--gold); transform: translateX(3px);
}

/* Pied sidebar */
.rpx-car-v3-sidebar-foot {
  padding: 24px 32px 0;
  border-top: 0.5px solid rgba(255,255,255,.05);
  display: flex; align-items: center; gap: 16px;
}
.rpx-car-v3-prog-wrap { flex: 1; }
.rpx-car-v3-prog-track {
  height: 1px; background: rgba(255,255,255,.07); overflow: hidden;
}
.rpx-car-v3-prog-fill {
  height: 1px; background: var(--gold); opacity: .6; width: 0%;
}
.rpx-car-v3-count { display: flex; align-items: baseline; gap: 5px; }
.rpx-car-v3-count-cur {
  font-family: var(--serif); font-size: 22px; font-weight: 300; color: var(--gold);
}
.rpx-car-v3-count-sep { font-size: 11px; color: rgba(255,255,255,.15); }
.rpx-car-v3-count-tot { font-family: var(--serif); font-size: 13px; font-weight: 300; color: rgba(255,255,255,.2); }

/* ── ZONE CONTENU ── */
.rpx-car-v3-main {
  position: relative;
  padding: 52px 64px 52px 72px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* Grand numéro fantôme */
.rpx-car-v3-num {
  position: absolute;
  top: -20px; right: 40px;
  font-family: var(--serif);
  font-size: 180px; font-weight: 300;
  color: rgba(201,168,76,.03);
  line-height: 1;
  user-select: none; letter-spacing: -.04em;
  pointer-events: none;
}

/* Grille décorative fond */
.rpx-car-v3-main::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(201,168,76,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,.025) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}

.rpx-car-v3-content {
  display: flex;
  align-items: center;
  gap: 56px;
  position: relative; z-index: 1;
  width: 100%;
  transition: opacity .3s, transform .35s cubic-bezier(.4,0,.2,1);
}
.rpx-car-v3-content.rpx-exit {
  opacity: 0; transform: translateX(-16px);
}

/* Cercle icône */
.rpx-car-v3-ico-ring {
  width: 110px; height: 110px;
  border-radius: 50%;
  border: 1px solid rgba(201,168,76,.2);
  background: rgba(201,168,76,.04);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  position: relative;
  transition: all .4s;
}
.rpx-car-v3-ico-ring::before {
  content: '';
  position: absolute; inset: -12px; border-radius: 50%;
  border: 0.5px solid rgba(201,168,76,.07);
  transition: all .4s;
}
.rpx-car-v3-ico-ring::after {
  content: '';
  position: absolute; inset: -26px; border-radius: 50%;
  border: 0.5px solid rgba(201,168,76,.03);
}
.rpx-car-v3-ico-ring.rpx-active {
  border-color: rgba(201,168,76,.45);
  background: rgba(201,168,76,.08);
  box-shadow: 0 0 60px rgba(201,168,76,.08);
}
.rpx-car-v3-ico-ring.rpx-active::before { border-color: rgba(201,168,76,.15); }
.rpx-car-v3-ico { font-size: 38px; color: var(--gold); }

/* Texte */
.rpx-car-v3-text-block { flex: 1; }
.rpx-car-v3-cat {
  display: block;
  font-size: 9px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); opacity: .7; margin-bottom: 14px;
}
.rpx-car-v3-title {
  font-family: var(--serif);
  font-size: clamp(26px, 2.8vw, 38px);
  font-weight: 300; color: #fff;
  line-height: 1.15; margin-bottom: 16px;
}
.rpx-car-v3-title em { font-style: italic; color: var(--gold); }
.rpx-car-v3-rule {
  width: 36px; height: 1px;
  background: linear-gradient(90deg, var(--gold), rgba(201,168,76,.1));
  margin-bottom: 16px;
}
.rpx-car-v3-desc {
  font-size: 14px; color: rgba(255,255,255,.38);
  line-height: 1.85; max-width: 480px; margin-bottom: 28px;
}
.rpx-car-v3-cta {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  transition: color .25s;
}
.rpx-car-v3-cta:hover { color: var(--gold); }
.rpx-car-v3-cta-ico {
  width: 32px; height: 32px; border-radius: 50%;
  border: 0.5px solid rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; transition: all .25s;
}
.rpx-car-v3-cta:hover .rpx-car-v3-cta-ico {
  border-color: var(--gold); background: rgba(201,168,76,.1); color: var(--gold);
}

/* Flèches */
.rpx-car-v3-arrows {
  position: absolute; bottom: 36px; right: 64px;
  display: flex; gap: 8px; z-index: 2;
}
.rpx-car-v3-arrow {
  width: 40px; height: 40px; border-radius: 50%;
  border: 0.5px solid rgba(255,255,255,.12);
  background: transparent;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: rgba(255,255,255,.3); font-size: 16px;
  transition: all .2s;
}
.rpx-car-v3-arrow:hover { border-color: var(--gold); color: var(--gold); background: rgba(201,168,76,.07); }

/* Responsive */
@media (max-width: 900px) {
  .rpx-car-v3-shell { grid-template-columns: 1fr; }
  .rpx-car-v3-sidebar { display: none; }
  .rpx-car-v3-main { padding: 44px 28px 56px; }
  .rpx-car-v3-content { flex-direction: column; align-items: flex-start; gap: 28px; }
  .rpx-car-v3-num { font-size: 120px; right: 16px; top: -10px; }
}

/* ══════════════════════════════════════════
   CARROUSEL V4 — ACCORDÉON HORIZONTAL
══════════════════════════════════════════ */
/* ── CARROUSEL V4 — ACCORDÉON ──────────────────────────────── */
.rpx-car-v4 {
  background: #070e1c;
  overflow: hidden;
}

.rpx-car-v4-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 28px 44px 20px;
}
.rpx-car-v4-label {
  font-size: 9px; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(255,255,255,.25);
}
.rpx-car-v4-controls { display: flex; align-items: center; gap: 20px; }
.rpx-car-v4-counter {
  font-family: var(--serif); font-size: 13px;
  color: rgba(255,255,255,.2); letter-spacing: .05em;
}
.rpx-car-v4-counter b { color: var(--gold); font-weight: 300; font-size: 16px; }
.rpx-car-v4-btns { display: flex; gap: 6px; }
.rpx-car-v4-btn {
  width: 34px; height: 34px; border-radius: 50%;
  border: 0.5px solid rgba(255,255,255,.12);
  background: transparent; cursor: pointer;
  color: rgba(255,255,255,.3); font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
}
.rpx-car-v4-btn:hover { border-color: var(--gold); color: var(--gold); }

/* Track — cartes côte à côte */
.rpx-car-v4-track {
  display: flex;
  height: 360px;
  gap: 10px;
  padding: 0 44px;
}

.rpx-car-v4-card {
  flex: 1;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  cursor: pointer;
  border: 0.5px solid rgba(255,255,255,.06);
  transition: flex .7s cubic-bezier(.77,0,.18,1), border-color .4s;
}
.rpx-car-v4-card.rpx-active {
  flex: 2.8;
  border-color: rgba(201,168,76,.2);
}

/* ── Image de fond pleine carte ── */
.rpx-car-v4-card-img {
  position: absolute; inset: 0;
  background-size: contain;
  background-position: center 30%;
  background-repeat: no-repeat;
  transition: opacity .5s;
  opacity: 0.55;
  transform: scale(1);
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-img {
  opacity: 0.82;
  transform: scale(1);
}
/* Dégradé de protection sur l'image */
.rpx-car-v4-card-img::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(7,14,28,.95) 0%, rgba(7,14,28,.2) 50%, rgba(7,14,28,.02) 100%);
}

/* Fond couleur (visible si pas d'image) */
.rpx-car-v4-card-bg {
  position: absolute; inset: 0;
  transition: opacity .5s;
}
.rpx-car-v4-card:not(.rpx-active) .rpx-car-v4-card-bg { opacity: .55; }

.rpx-car-v4-card:nth-child(1) .rpx-car-v4-card-bg { background: linear-gradient(160deg,#0f2040 0%,#070e1c 100%); }
.rpx-car-v4-card:nth-child(2) .rpx-car-v4-card-bg { background: linear-gradient(160deg,#162035 0%,#07121e 100%); }
.rpx-car-v4-card:nth-child(3) .rpx-car-v4-card-bg { background: linear-gradient(160deg,#101828 0%,#060d18 100%); }
.rpx-car-v4-card:nth-child(4) .rpx-car-v4-card-bg { background: linear-gradient(160deg,#0d1930 0%,#060b14 100%); }

/* Overlay dégradé général (toujours présent) */
.rpx-car-v4-card::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(7,14,28,.95) 0%, rgba(7,14,28,.3) 55%, transparent 100%);
  z-index: 1;
}

/* Icône — masquée si image présente et carte inactive */
.rpx-car-v4-card-n {
  position: absolute; top: 18px; left: 18px; z-index: 2;
  font-family: var(--serif); font-size: 13px; font-weight: 300;
  color: rgba(255,255,255,.25); letter-spacing: .08em;
  transition: color .3s;
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-n { color: var(--gold); }

.rpx-car-v4-card-ico {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -58%);
  z-index: 2;
  transition: all .5s cubic-bezier(.4,0,.2,1);
}
/* Masquer l'icône sur les cartes inactives qui ont une image */
.rpx-car-v4-card:not(.rpx-active) .rpx-car-v4-card-ico {
  top: 42%;
  transform: translate(-50%,-50%) scale(.85);
  opacity: .4;
}
.rpx-car-v4-card:not(.rpx-active) .rpx-car-v4-card-ico.rpx-has-img {
  opacity: 0;
  pointer-events: none;
}
/* Sur la carte active avec image, masquer aussi l'icône (l'image est suffisante) */
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-ico.rpx-has-img {
  opacity: 0;
  pointer-events: none;
}

.rpx-car-v4-ico-ring {
  width: 64px; height: 64px; border-radius: 50%;
  border: 1px solid rgba(201,168,76,.25);
  background: rgba(201,168,76,.07);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  transition: all .4s;
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-ico-ring {
  width: 72px; height: 72px;
  border-color: rgba(201,168,76,.5);
  background: rgba(201,168,76,.12);
}
.rpx-car-v4-ico-ring i { font-size: 24px; color: var(--gold); }
.rpx-car-v4-card.rpx-active .rpx-car-v4-ico-ring i { font-size: 28px; }

.rpx-car-v4-card-body {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 20px 22px;
  z-index: 2;
}
.rpx-car-v4-card-cat {
  font-size: 8px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); opacity: .55; margin-bottom: 6px;
  transition: opacity .3s;
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-cat { opacity: .8; }

.rpx-car-v4-card-title {
  font-family: var(--serif); color: #fff; line-height: 1.2;
  transition: font-size .4s, opacity .3s;
}
.rpx-car-v4-card:not(.rpx-active) .rpx-car-v4-card-title {
  font-size: 15px; font-weight: 300; opacity: .45;
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-title {
  font-size: 22px; font-weight: 300;
}

.rpx-car-v4-card-line {
  width: 0; height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
  margin: 10px 0 8px;
  transition: width .5s .1s cubic-bezier(.4,0,.2,1);
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-line { width: 28px; }

.rpx-car-v4-card-desc {
  font-size: 12px; color: rgba(255,255,255,.55); line-height: 1.65;
  max-height: 0; overflow: hidden; opacity: 0;
  transition: max-height .5s .1s cubic-bezier(.4,0,.2,1), opacity .4s .1s;
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-desc { max-height: 80px; opacity: 1; }

.rpx-car-v4-card-cta {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 12px; font-size: 9px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--gold); text-decoration: none;
  max-height: 0; overflow: hidden; opacity: 0;
  transition: max-height .4s .2s, opacity .4s .2s;
}
.rpx-car-v4-card.rpx-active .rpx-car-v4-card-cta { max-height: 30px; opacity: 1; }

/* Barre progression */
.rpx-car-v4-prog {
  height: 1px; background: rgba(255,255,255,.05);
  margin: 18px 44px 22px; position: relative;
}
.rpx-car-v4-prog-fill {
  position: absolute; top: 0; left: 0; height: 1px;
  background: var(--gold); opacity: .6; width: 0%;
}

/* ═══════════════════════════════════════════════
   MOBILE — carrousel en scroll horizontal (swipe)
   ═══════════════════════════════════════════════ */
@media (max-width: 768px) {
  .rpx-car-v4 { overflow: hidden; }

  .rpx-car-v4-head { padding: 22px 20px 16px; }

  /* Sur mobile : scroll horizontal naturel, une carte pleine largeur visible */
  .rpx-car-v4-track {
    display: flex;
    flex-direction: row;
    height: auto;
    gap: 0;
    padding: 0;
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .rpx-car-v4-track::-webkit-scrollbar { display: none; }

  /* Chaque carte = pleine largeur, hauteur fixe */
  .rpx-car-v4-card {
    flex: 0 0 calc(100vw - 40px);
    width: calc(100vw - 40px);
    min-width: calc(100vw - 40px);
    height: 280px;
    margin-left: 20px;
    border-radius: 6px;
    scroll-snap-align: center;
  }
  .rpx-car-v4-card:last-child { margin-right: 20px; }

  /* Sur mobile toutes les cartes montrent leur contenu */
  .rpx-car-v4-card:not(.rpx-active) .rpx-car-v4-card-ico { display: none; }
  .rpx-car-v4-card:not(.rpx-active) .rpx-car-v4-card-title {
    font-size: 18px; opacity: .7;
  }
  .rpx-car-v4-card:not(.rpx-active) .rpx-car-v4-card-cat { opacity: .6; }

  /* Image plein format sur mobile aussi */
  .rpx-car-v4-card-img { opacity: 0.65; }

  /* Corps visible même sur cartes inactives */
  .rpx-car-v4-card-body { padding: 16px 18px; }
  .rpx-car-v4-card-title { font-size: 20px !important; font-weight: 300; opacity: 1 !important; }
  .rpx-car-v4-card-cat { opacity: .75 !important; }
  .rpx-car-v4-card-line { width: 20px !important; }
  .rpx-car-v4-card-desc { max-height: 80px !important; opacity: 1 !important; }
  .rpx-car-v4-card-cta { max-height: 30px !important; opacity: 1 !important; }

  /* Masquer les boutons nav sur mobile (swipe natif) */
  .rpx-car-v4-btns { display: none; }

  /* Dots indicateurs visibles */
  .rpx-car-v4-prog { margin: 14px 20px 18px; }
}

@media (max-width: 480px) {
  .rpx-car-v4-card {
    flex: 0 0 calc(100vw - 32px);
    width: calc(100vw - 32px);
    min-width: calc(100vw - 32px);
    margin-left: 16px;
    height: 260px;
  }
  .rpx-car-v4-card:last-child { margin-right: 16px; }
}

/* ── Panier multi-produits devis ──────────────────────────────── */
.rpx-panier {
  display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 8px;
}
.rpx-panier-empty {
  font-size: 12px; color: rgba(255,255,255,.3);
  padding: 10px 12px; border: 1px dashed rgba(255,255,255,.1);
  border-radius: 4px; text-align: center;
}
.rpx-panier-row {
  display: grid; grid-template-columns: 1fr 140px 36px; gap: 8px; align-items: center;
}
.rpx-panier-sel,
.rpx-panier-qte {
  width: 100%; padding: 9px 11px; font-size: 13px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12);
  border-radius: 4px; color: #fff; font-family: inherit;
  transition: border-color .2s;
}
.rpx-panier-sel:focus,
.rpx-panier-qte:focus {
  outline: none; border-color: rgba(201,168,76,.6);
}
.rpx-panier-sel option { background: #111; color: #fff; }
.rpx-panier-del {
  width: 36px; height: 36px; border-radius: 4px; border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.04); color: rgba(255,255,255,.4);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-size: 14px; transition: all .2s; flex-shrink: 0;
}
.rpx-panier-del:hover { background: rgba(220,50,50,.15); border-color: rgba(220,50,50,.4); color: #f87171; }
.rpx-panier-add {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; color: rgba(201,168,76,.8); background: transparent;
  border: 1px dashed rgba(201,168,76,.3); border-radius: 4px;
  padding: 7px 12px; cursor: pointer; transition: all .2s;
  font-family: inherit; width: 100%; justify-content: center; margin-top: 2px;
}
.rpx-panier-add:hover { background: rgba(201,168,76,.07); border-color: rgba(201,168,76,.6); color: #c9a84c; }
@media (max-width: 480px) {
  .rpx-panier-row { grid-template-columns: 1fr 100px 32px; gap: 6px; }
}


/* ── SECTION PROCESSUS ── */
.rpx-section-process {
  background: #1C2230;
  padding: 90px 0;
  position: relative;
  overflow: hidden;
}
.rpx-process-bg-num {
  position: absolute;
  top: -20px; right: -10px;
  font-family: 'Cormorant Garamond', 'Georgia', serif;
  font-size: 260px;
  font-weight: 300;
  color: rgba(184,150,60,0.04);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}
.rpx-section-process .rpx-label-light {
  color: rgba(245,240,232,0.5);
  border-color: rgba(184,150,60,0.3);
}
.rpx-process-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 64px;
  gap: 40px;
}
.rpx-process-title {
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 300;
  color: #F5F0E8;
  margin: 12px 0 0;
  line-height: 1.1;
}
.rpx-process-title em {
  font-style: italic;
  color: #B8963C;
}
.rpx-process-cta-top {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #F5F0E8;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 14px 28px;
  border: 1px solid rgba(245,240,232,0.25);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: border-color 0.3s, color 0.3s;
}
.rpx-process-cta-top:hover { border-color: #B8963C; color: #B8963C; }
.rpx-process-steps {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  position: relative;
}
.rpx-process-connector {
  position: absolute;
  top: 44px;
  left: calc(33.33% + 24px);
  width: calc(33.33% - 48px);
  height: 1px;
  background: rgba(184,150,60,0.3);
}
.rpx-process-connector-2 { left: calc(66.66% + 24px); }
.rpx-process-connector::after,
.rpx-process-connector-2::after {
  content: '→';
  position: absolute;
  right: -8px; top: -10px;
  color: rgba(184,150,60,0.5);
  font-size: 14px;
}
.rpx-process-step { padding-right: 40px; }
.rpx-process-step:last-child { padding-right: 0; }
.rpx-process-step-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
.rpx-process-ico {
  width: 36px; height: 36px;
  border: 1px solid rgba(184,150,60,0.4);
  border-radius: 50%;
  background: rgba(184,150,60,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rpx-process-ico i { font-size: 16px; color: #B8963C; }
.rpx-process-idx {
  font-family: 'Cormorant Garamond','Georgia',serif;
  font-size: 12px;
  color: rgba(184,150,60,0.6);
  letter-spacing: 0.15em;
}
.rpx-process-name {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #F5F0E8;
  margin-bottom: 12px;
}
.rpx-process-text {
  font-size: 13px;
  line-height: 1.8;
  color: rgba(245,240,232,0.5);
}
.rpx-process-channels {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.rpx-process-channel {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #B8963C;
  border: 1px solid rgba(184,150,60,0.3);
  padding: 5px 10px;
}
.rpx-process-channel i { font-size: 12px; }
.rpx-process-tag {
  display: inline-block;
  margin-top: 20px;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #B8963C;
  border: 1px solid rgba(184,150,60,0.3);
  padding: 5px 12px;
}
.rpx-process-bottom {
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid rgba(245,240,232,0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.rpx-process-badges { display: flex; gap: 32px; flex-wrap: wrap; }
.rpx-process-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: rgba(245,240,232,0.4);
  letter-spacing: 0.05em;
}
.rpx-process-badge i { font-size: 16px; color: #B8963C; }
@media (max-width: 768px) {
  .rpx-process-steps { grid-template-columns: 1fr; gap: 40px; }
  .rpx-process-connector, .rpx-process-connector-2 { display: none; }
  .rpx-process-step { padding-right: 0; }
  .rpx-process-head { flex-direction: column; align-items: flex-start; }
  .rpx-process-bottom { flex-direction: column; align-items: flex-start; }
  .rpx-process-badges { flex-direction: column; gap: 16px; }
}

/* ══════════════════════════════════════════
   PAGE HÉRO GALERIE
══════════════════════════════════════════ */
.rpx-page-hero {
  background: var(--navy);
  padding: 100px 0 70px;
  position: relative;
  overflow: hidden;
}
.rpx-page-hero::after {
  content: '';
  position: absolute; top: -40%; right: 10%;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(201,168,76,.07) 0%, transparent 65%);
  border-radius: 50%; pointer-events: none;
}
.rpx-page-hero-inner {
  max-width: 1200px; margin: 0 auto; padding: 0 60px;
  position: relative; z-index: 1;
}
.rpx-page-hero-title {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 300; color: #fff; line-height: 1.08;
  margin: 14px 0 16px; letter-spacing: -.01em;
}
.rpx-page-hero-title em { font-style: italic; color: var(--gold); }
.rpx-page-hero-sub {
  font-size: 15px; color: rgba(255,255,255,.45);
  max-width: 480px; line-height: 1.7;
}

/* ══════════════════════════════════════════
   GALERIE — GRILLE PAGE
══════════════════════════════════════════ */
.rpx-gal-page-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.rpx-gal-page-item {
  cursor: pointer;
  border-radius: 4px;
  overflow: hidden;
  background: var(--cream-dark);
  border: 0.5px solid rgba(0,0,0,.07);
  transition: transform .25s, box-shadow .25s;
}
.rpx-gal-page-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0,0,0,.12);
}
.rpx-gal-page-img {
  position: relative;
  overflow: hidden;
  height: 220px;
}
.rpx-gal-page-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.4,0,.2,1);
  display: block;
}
.rpx-gal-page-item:hover .rpx-gal-page-img img { transform: scale(1.04); }
.rpx-gal-page-overlay {
  position: absolute; inset: 0;
  background: rgba(7,14,28,.45);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .25s;
}
.rpx-gal-page-item:hover .rpx-gal-page-overlay { opacity: 1; }
.rpx-gal-page-overlay i {
  font-size: 28px; color: #fff;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.4));
}
.rpx-gal-page-caption {
  padding: 10px 12px;
  font-size: 12px; color: var(--muted);
  line-height: 1.4; border-top: 0.5px solid rgba(0,0,0,.06);
}

/* ══════════════════════════════════════════
   MODAL GALERIE — PLEIN ÉCRAN
══════════════════════════════════════════ */
.rpx-gal-modal-overlay {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(4,8,18,.96);
  backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .3s;
}
.rpx-gal-modal-overlay.open {
  opacity: 1; pointer-events: all;
}
.rpx-gal-modal-inner {
  display: flex; flex-direction: column; align-items: center;
  max-width: 90vw; max-height: 90vh;
  position: relative;
}
.rpx-gal-modal-inner img {
  max-width: 90vw; max-height: 80vh;
  object-fit: contain;
  border-radius: 3px;
  transition: opacity .15s;
  display: block;
}
.rpx-gal-modal-caption {
  margin-top: 14px;
  font-size: 13px; color: rgba(255,255,255,.5);
  text-align: center; max-width: 500px;
}
.rpx-gal-modal-counter {
  margin-top: 6px;
  font-size: 11px; color: rgba(255,255,255,.2);
  letter-spacing: .1em;
}
.rpx-gal-modal-close {
  position: fixed; top: 20px; right: 24px;
  width: 42px; height: 42px; border-radius: 50%;
  border: 0.5px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.6); font-size: 18px;
  cursor: pointer; z-index: 9001;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
}
.rpx-gal-modal-close:hover { background: rgba(255,255,255,.12); color: #fff; }
.rpx-gal-modal-nav {
  position: fixed; top: 50%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%;
  border: 0.5px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.6); font-size: 18px;
  cursor: pointer; z-index: 9001;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
}
.rpx-gal-modal-nav:hover { background: rgba(201,168,76,.15); border-color: rgba(201,168,76,.4); color: var(--gold); }
.rpx-gal-prev { left: 24px; }
.rpx-gal-next { right: 24px; }

/* Responsive galerie */
@media (max-width: 900px) {
  .rpx-gal-page-grid { grid-template-columns: repeat(2, 1fr); }
  .rpx-page-hero-inner { padding: 0 20px; }
}
@media (max-width: 480px) {
  .rpx-gal-page-grid { grid-template-columns: 1fr; }
  .rpx-gal-page-img { height: 200px; }
  .rpx-gal-modal-nav { width: 36px; height: 36px; font-size: 14px; }
  .rpx-gal-prev { left: 10px; }
  .rpx-gal-next { right: 10px; }
}
/* ══════════════════════════════════════════
   BOUTON WHATSAPP FLOTTANT
══════════════════════════════════════════ */
.rpx-wa-wrap {
  position: fixed;
  bottom: 28px; right: 28px;
  z-index: 8000;
  display: flex; flex-direction: column; align-items: flex-end; gap: 12px;
}

/* Bouton rond */
.rpx-wa-btn {
  width: 58px; height: 58px; border-radius: 50%;
  background: #25D366;
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 2px 8px rgba(0,0,0,.2);
  transition: transform .2s, box-shadow .2s;
  position: relative;
  color: #fff !important;
  text-decoration: none !important;
  animation: rpxWaPulse 2.8s ease-in-out infinite;
  -webkit-tap-highlight-color: transparent;
}
.rpx-wa-btn:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 28px rgba(37,211,102,.55), 0 2px 10px rgba(0,0,0,.25);
  animation: none;
}
@keyframes rpxWaPulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 0 0 0 rgba(37,211,102,.35); }
  50%       { box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 0 0 10px rgba(37,211,102,0); }
}

/* Point vert "en ligne" */
.rpx-wa-dot {
  position: absolute; top: 4px; right: 4px;
  width: 12px; height: 12px; border-radius: 50%;
  background: #fff; border: 2px solid #25D366;
}
.rpx-wa-dot::after {
  content: ''; position: absolute; inset: 2px;
  border-radius: 50%; background: #4ade80;
  animation: rpxWaDot 1.8s ease-in-out infinite;
}
@keyframes rpxWaDot { 0%,100% { opacity:1; } 50% { opacity:.4; } }

/* Bulle info */
.rpx-wa-bubble {
  background: #fff;
  border-radius: 12px 12px 2px 12px;
  padding: 18px 20px 16px;
  width: 260px;
  box-shadow: 0 8px 32px rgba(0,0,0,.14), 0 2px 8px rgba(0,0,0,.08);
  transform: scale(.85) translateY(8px);
  transform-origin: bottom right;
  opacity: 0; pointer-events: none;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), opacity .25s;
  position: relative;
}
.rpx-wa-bubble.rpx-wa-bubble-show {
  transform: scale(1) translateY(0);
  opacity: 1; pointer-events: all;
}

/* Triangle bas-droite */
.rpx-wa-bubble::after {
  content: '';
  position: absolute; bottom: -8px; right: 16px;
  width: 0; height: 0;
  border-left: 8px solid transparent;
  border-top: 8px solid #fff;
}

.rpx-wa-bubble-close {
  position: absolute; top: 8px; right: 10px;
  background: none; border: none; cursor: pointer;
  color: #aaa; font-size: 13px; line-height: 1;
  padding: 2px 4px;
  transition: color .15s;
}
.rpx-wa-bubble-close:hover { color: #333; }

.rpx-wa-bubble-title {
  font-size: 14px; font-weight: 600;
  color: #111; margin-bottom: 3px; padding-right: 20px;
  line-height: 1.3;
}
.rpx-wa-bubble-sub {
  font-size: 11px; color: #888; margin-bottom: 14px;
}
.rpx-wa-bubble-btn {
  display: flex; align-items: center; gap: 8px;
  background: #25D366; color: #fff !important;
  padding: 10px 16px; border-radius: 6px;
  font-size: 13px; font-weight: 500;
  text-decoration: none !important;
  transition: background .2s;
  width: 100%;
}
.rpx-wa-bubble-btn:hover { background: #1db954; }

@media (max-width: 480px) {
  .rpx-wa-wrap { bottom: 18px; right: 16px; }
  .rpx-wa-bubble { width: calc(100vw - 60px); }
  .rpx-wa-btn { width: 52px; height: 52px; }
}

