/* RestauVert · Bundle CSS · Concaténation ordonnée des feuilles existantes
 * Généré automatiquement — ne pas éditer directement
 * Sources (dans cet ordre) : fonts.css, style.css, premium.css, genius.css, magic.css, genius-v2.css, mobile.css, sticky-cta.css
 * Pour modifier : éditer le fichier source puis re-bundler
 */

/* ===== fonts.css ===== */
/* RestauVert · Polices auto-hébergées (RGPD-safe, plus aucune requête vers fonts.gstatic.com)
   Latin uniquement · Format WOFF2 · font-display: swap pour éviter le FOIT */

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/Fraunces-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/Fraunces-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Fraunces-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/Inter-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/Inter-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Inter-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Inter-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/Poppins-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/Poppins-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Poppins-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Poppins-700.woff2') format('woff2');
}

/* ===== style.css ===== */
@charset "UTF-8";
/* ============================================
   RestauVert — CSS Global
   Cabinet de conseil RSE pour la restauration
   ============================================ */

:root {
  --green-dark:    #1A4E30;
  --green-primary: #2D7A3A;
  --green-main:    #1E6040;
  --green-mid:     #2D7A52;
  --green-light:   #EBF5EE;
  --green-accent:  #4CAF50;
  --green-soft:    #7de0a0;
  --gold:          #D4A843;
  --white:         #FFFFFF;
  --off-white:     #F7FAF8;
  --grey-light:    #F5F5F5;
  --text-dark:     #18291E;
  --text-mid:      #3D5449;
  --text-light:    #6B8878;
  --border:        #D4E8DB;
  --shadow-sm:     0 2px 12px rgba(30,96,64,0.06);
  --shadow-md:     0 8px 30px rgba(30,96,64,0.1);
  --shadow-lg:     0 16px 50px rgba(30,96,64,0.12);
  --radius-sm:     8px;
  --radius-md:     16px;
  --radius-lg:     24px;
  --radius-full:   50px;
  --transition:    0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  font-family: 'Poppins', sans-serif;
  color: var(--text-dark);
  background: var(--white);
  line-height: 1.7;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; transition: color var(--transition); }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }

.container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 24px;
}

.section {
  padding: 100px 0;
}

.section-tag {
  display: inline-block;
  color: var(--green-accent);
  font-weight: 600;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 0.8rem;
}

.section-title {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 1rem;
  line-height: 1.2;
}

.section-sub {
  font-size: 1.05rem;
  color: var(--text-light);
  max-width: 580px;
  line-height: 1.7;
}

.text-center { text-align: center; }
.text-center .section-sub { margin: 0 auto; }

.bg-light { background: var(--green-light); }
.bg-off { background: var(--off-white); }

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: var(--radius-full);
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  transition: all var(--transition);
  white-space: nowrap;
}

.btn-primary {
  background: var(--green-primary);
  color: var(--white);
  box-shadow: 0 4px 20px rgba(45,122,58,0.3);
}
.btn-primary:hover {
  background: var(--green-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(45,122,58,0.4);
}

.btn-white {
  background: var(--white);
  color: var(--green-dark);
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.btn-white:hover {
  background: var(--green-light);
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.2);
}

.btn-outline {
  border: 2px solid rgba(255,255,255,0.45);
  color: var(--white);
  background: transparent;
}
.btn-outline:hover {
  border-color: var(--white);
  background: rgba(255,255,255,0.1);
}

.btn-outline-green {
  border: 2px solid var(--green-primary);
  color: var(--green-primary);
  background: transparent;
}
.btn-outline-green:hover {
  background: var(--green-primary);
  color: var(--white);
}

.btn-gold {
  background: var(--gold);
  color: var(--white);
  box-shadow: 0 4px 20px rgba(212,168,67,0.3);
}
.btn-gold:hover {
  background: #c49a3a;
  transform: translateY(-2px);
}

.navbar {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(26,78,48,0.97);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  height: 72px;
  display: flex;
  align-items: center;
  transition: all var(--transition);
  box-shadow: 0 2px 20px rgba(0,0,0,0.15);
}

.navbar.scrolled {
  height: 64px;
  background: rgba(26,78,48,0.99);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 24px;
}

.nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nav-logo img {
  height: 54px;
  width: auto;
}

.nav-logo span {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.02em;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.nav-links a {
  color: rgba(255,255,255,0.8);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  position: relative;
  padding: 4px 0;
}

.nav-links a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--green-soft);
  transition: width var(--transition);
}

.nav-links a:hover,
.nav-links a.active {
  color: var(--white);
}

.nav-links a:hover::after,
.nav-links a.active::after {
  width: 100%;
}

.nav-cta {
  background: var(--white) !important;
  color: var(--green-dark) !important;
  padding: 9px 22px !important;
  border-radius: var(--radius-full) !important;
  font-weight: 700 !important;
}

.nav-cta::after { display: none !important; }

.nav-cta:hover {
  background: var(--green-light) !important;
  transform: translateY(-1px);
}

.nav-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  z-index: 1001;
}

.nav-burger span {
  width: 26px;
  height: 2.5px;
  background: var(--white);
  border-radius: 2px;
  transition: all var(--transition);
}

.nav-burger.active span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}
.nav-burger.active span:nth-child(2) {
  opacity: 0;
}
.nav-burger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

.hero {
  min-height: 100vh;
  background: linear-gradient(145deg, var(--green-dark) 0%, var(--green-main) 55%, var(--green-mid) 100%);
  display: flex;
  align-items: center;
  padding: 120px 0 80px;
  position: relative;
  overflow: hidden;
}

.hero::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 550px;
  height: 550px;
  background: radial-gradient(circle, rgba(76,175,112,0.12) 0%, transparent 70%);
  border-radius: 50%;
}

.hero::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: 15%;
  width: 350px;
  height: 350px;
  background: radial-gradient(circle, rgba(255,255,255,0.04) 0%, transparent 70%);
  border-radius: 50%;
}

.hero-inner {
  display: flex;
  align-items: center;
  gap: 80px;
  position: relative;
  z-index: 1;
}

.hero-text { flex: 1; }

.hero-badge {
  display: inline-block;
  background: rgba(76,175,112,0.2);
  color: var(--green-soft);
  border: 1px solid rgba(76,175,112,0.3);
  padding: 6px 18px;
  border-radius: var(--radius-full);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

.hero h1 {
  font-size: clamp(2.2rem, 4.2vw, 3.4rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1.15;
  margin-bottom: 1.3rem;
}

.hero h1 .accent { color: var(--green-soft); }

.hero-desc {
  font-size: 1.08rem;
  color: rgba(255,255,255,0.72);
  max-width: 520px;
  margin-bottom: 2.4rem;
  font-weight: 300;
  line-height: 1.7;
}

.hero-buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.hero-visual {
  flex: 0 0 300px;
  text-align: center;
}

.hero-visual img {
  width: 300px;
  filter: drop-shadow(0 20px 60px rgba(0,0,0,0.3));
  animation: float 6s ease-in-out infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-16px); }
}

.hero-stats {
  display: flex;
  gap: 3rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.12);
}

.stat-num {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--white);
  line-height: 1;
}

.stat-label {
  font-size: 0.76rem;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 4px;
}

.page-hero {
  background: linear-gradient(145deg, var(--green-dark) 0%, var(--green-main) 55%, var(--green-mid) 100%);
  padding: 140px 0 80px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute;
  top: -60px;
  right: -60px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(76,175,112,0.1) 0%, transparent 70%);
  border-radius: 50%;
}

.page-hero h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--white);
  font-weight: 700;
  margin-bottom: 1rem;
  position: relative;
}

.page-hero p {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.7);
  max-width: 600px;
  margin: 0 auto;
  position: relative;
}

.page-hero .breadcrumb {
  margin-top: 1.5rem;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.5);
  position: relative;
}

.page-hero .breadcrumb a {
  color: rgba(255,255,255,0.7);
}

.page-hero .breadcrumb a:hover {
  color: var(--white);
}

.card {
  background: var(--white);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  padding: 2rem;
  transition: all var(--transition);
}

.card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

.card-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: var(--green-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  margin-bottom: 1.2rem;
}

.card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 0.6rem;
}

.card p {
  font-size: 0.9rem;
  color: var(--text-mid);
  line-height: 1.7;
}

.card .highlight-num {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--green-primary);
  margin-bottom: 0.3rem;
}

.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }

.service-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  transition: all var(--transition);
  background: var(--white);
}

.service-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}

.service-header {
  background: linear-gradient(135deg, var(--green-dark), var(--green-main));
  padding: 2rem;
  color: var(--white);
}

.service-header .icon { font-size: 2.2rem; margin-bottom: 0.8rem; }
.service-header h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.4rem; }
.service-header .price { font-size: 0.85rem; color: rgba(255,255,255,0.7); }

.service-body {
  padding: 2rem;
}

.service-body ul {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.service-body li {
  font-size: 0.88rem;
  color: var(--text-mid);
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

.service-body li::before {
  content: '\2713';
  color: var(--green-accent);
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}

.service-cta {
  padding: 0 2rem 2rem;
}

.tarif-card {
  border-radius: var(--radius-md);
  border: 2px solid var(--border);
  padding: 2.5rem 1.8rem;
  text-align: center;
  transition: all var(--transition);
  background: var(--white);
  position: relative;
}

.tarif-card.featured {
  border-color: var(--green-primary);
  background: linear-gradient(165deg, var(--green-light), var(--white));
  transform: scale(1.04);
}

.tarif-card.featured .tarif-badge {
  background: var(--green-primary);
  color: var(--white);
  padding: 4px 14px;
  border-radius: var(--radius-full);
  font-size: 0.7rem;
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
}

.tarif-card:hover {
  transform: scale(1.03);
  box-shadow: var(--shadow-md);
  border-color: var(--green-mid);
}

.tarif-card.featured:hover { transform: scale(1.06); }

.tarif-icon { font-size: 2rem; margin-bottom: 1rem; }
.tarif-name { font-size: 1rem; font-weight: 700; color: var(--text-dark); margin-bottom: 0.5rem; }
.tarif-price { font-size: 2.2rem; font-weight: 700; color: var(--green-dark); margin-bottom: 0.3rem; }
.tarif-price span { font-size: 0.8rem; color: var(--text-light); font-weight: 400; }
.tarif-desc { font-size: 0.82rem; color: var(--text-light); margin-bottom: 1.5rem; }

.tarif-features {
  text-align: left;
  margin-bottom: 2rem;
}

.tarif-features li {
  font-size: 0.84rem;
  color: var(--text-mid);
  padding: 6px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.tarif-features li::before {
  content: '\2713';
  color: var(--green-accent);
  font-weight: 700;
  font-size: 0.85rem;
}

.steps {
  display: flex;
  gap: 0;
  margin-top: 3rem;
}

.step {
  flex: 1;
  padding: 2rem 1.5rem;
  position: relative;
  text-align: center;
}

.step::after {
  content: '\2192';
  position: absolute;
  right: -14px;
  top: 2.2rem;
  font-size: 1.5rem;
  color: var(--border);
  z-index: 1;
}

.step:last-child::after { display: none; }

.step-num {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--green-primary), var(--green-mid));
  color: var(--white);
  font-weight: 700;
  font-size: 1.15rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.2rem;
  box-shadow: 0 6px 20px rgba(45,122,58,0.25);
}

.step h3 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 0.5rem;
}

.step p {
  font-size: 0.84rem;
  color: var(--text-light);
  line-height: 1.6;
}

.testimonial-card {
  background: var(--white);
  border-radius: var(--radius-md);
  padding: 2.5rem;
  border: 1px solid var(--border);
  position: relative;
}

.testimonial-card::before {
  content: '"';
  font-size: 4rem;
  color: var(--green-light);
  font-family: Georgia, serif;
  position: absolute;
  top: 10px;
  left: 20px;
  line-height: 1;
}

.testimonial-card p {
  font-size: 0.95rem;
  color: var(--text-mid);
  font-style: italic;
  line-height: 1.7;
  margin-bottom: 1.2rem;
  position: relative;
  z-index: 1;
}

.testimonial-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.testimonial-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--green-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--green-primary);
}

.testimonial-name {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--text-dark);
}

.testimonial-role {
  font-size: 0.8rem;
  color: var(--text-light);
}

.value-card {
  text-align: center;
  padding: 2.5rem 1.5rem;
}

.value-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--green-light), rgba(76,175,80,0.15));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  margin: 0 auto 1.2rem;
}

.value-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 0.6rem;
}

.value-card p {
  font-size: 0.9rem;
  color: var(--text-mid);
  line-height: 1.7;
}

.cta-banner {
  background: linear-gradient(135deg, var(--green-dark), var(--green-main));
  padding: 80px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.cta-banner::before {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(76,175,112,0.15), transparent 70%);
  border-radius: 50%;
}

.cta-banner h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  color: var(--white);
  font-weight: 700;
  margin-bottom: 1rem;
  position: relative;
}

.cta-banner p {
  color: rgba(255,255,255,0.7);
  font-size: 1.05rem;
  margin-bottom: 2rem;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.cta-banner .btn { position: relative; }

.form-group {
  margin-bottom: 1.5rem;
}

.form-group label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-dark);
  margin-bottom: 0.5rem;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 14px 18px;
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  font-family: 'Poppins', sans-serif;
  font-size: 0.92rem;
  color: var(--text-dark);
  transition: border-color var(--transition);
  background: var(--white);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--green-primary);
  box-shadow: 0 0 0 3px rgba(45,122,58,0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 140px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.contact-info-card {
  background: linear-gradient(135deg, var(--green-dark), var(--green-main));
  border-radius: var(--radius-lg);
  padding: 2.5rem;
  color: var(--white);
  height: 100%;
}

.contact-info-card h3 {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 1.8rem;
}

.contact-item-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255,255,255,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.contact-item-text strong {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 2px;
}

.contact-item-text span,
.contact-item-text a {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.7);
}

.contact-item-text a:hover {
  color: var(--white);
}

.contact-socials {
  display: flex;
  gap: 12px;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.12);
}

.contact-socials a {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  font-size: 1.1rem;
  transition: all var(--transition);
}

.contact-socials a:hover {
  background: rgba(255,255,255,0.2);
  transform: translateY(-2px);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.stat-card {
  text-align: center;
  padding: 2rem 1rem;
}

.stat-card .number {
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--white);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.stat-card .label {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.timeline {
  position: relative;
  padding: 2rem 0;
}

.timeline::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 100%;
  background: var(--border);
}

.timeline-item {
  display: flex;
  align-items: center;
  margin-bottom: 3rem;
  position: relative;
}

.timeline-item:nth-child(odd) { flex-direction: row; }
.timeline-item:nth-child(even) { flex-direction: row-reverse; }

.timeline-content {
  width: 45%;
  padding: 1.8rem;
  background: var(--white);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}

.timeline-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--green-primary);
  border: 4px solid var(--white);
  box-shadow: 0 0 0 3px var(--green-primary);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}

.timeline-content h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 0.4rem;
}

.timeline-content .date {
  font-size: 0.78rem;
  color: var(--green-accent);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

.timeline-content p {
  font-size: 0.88rem;
  color: var(--text-mid);
}

.team-card {
  text-align: center;
  padding: 2rem;
}

.team-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--green-light), rgba(76,175,80,0.15));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  margin: 0 auto 1.2rem;
}

.team-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 0.3rem;
}

.team-card .role {
  font-size: 0.85rem;
  color: var(--green-accent);
  font-weight: 500;
  margin-bottom: 0.8rem;
}

.team-card p {
  font-size: 0.88rem;
  color: var(--text-mid);
  line-height: 1.6;
}

.reg-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(76,175,80,0.1);
  color: var(--green-primary);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.78rem;
  font-weight: 600;
  margin: 4px;
}

.footer {
  background: var(--green-dark);
  color: rgba(255,255,255,0.7);
  padding: 60px 0 0;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 3rem;
  padding-bottom: 3rem;
}

.footer-brand img {
  height: 54px;
  margin-bottom: 1rem;
}

.footer-brand p {
  font-size: 0.88rem;
  line-height: 1.7;
  max-width: 280px;
}

.footer h4 {
  color: var(--white);
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.footer-links li {
  margin-bottom: 0.7rem;
}

.footer-links a {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.6);
  transition: color var(--transition);
}

.footer-links a:hover {
  color: var(--white);
}

.footer-contact-item {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 0.8rem;
  font-size: 0.88rem;
}

.footer-contact-item .icon {
  flex-shrink: 0;
  font-size: 0.9rem;
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding: 1.5rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
}

.footer-socials {
  display: flex;
  gap: 1rem;
}

.footer-socials a {
  color: rgba(255,255,255,0.5);
  font-size: 1.1rem;
  transition: color var(--transition);
}

.footer-socials a:hover { color: var(--white); }

.faq-item {
  border-bottom: 1px solid var(--border);
}

.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.4rem 0;
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-dark);
  text-align: left;
  cursor: pointer;
  background: none;
  border: none;
  transition: color var(--transition);
}

.faq-question:hover { color: var(--green-primary); }

.faq-chevron {
  flex-shrink: 0;
  color: var(--green-accent);
  transition: transform 0.3s ease;
}

.faq-item.open .faq-chevron {
  transform: rotate(180deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.3s ease;
  padding: 0;
}

.faq-item.open .faq-answer {
  max-height: 300px;
  padding-bottom: 1.4rem;
}

.faq-answer p {
  color: var(--text-mid);
  line-height: 1.7;
  font-size: 0.95rem;
}

.scroll-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--green-primary);
  color: var(--white);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(45,122,58,0.3);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all var(--transition);
  z-index: 999;
}

.scroll-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.scroll-top:hover {
  background: var(--green-dark);
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(45,122,58,0.4);
}

.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1024px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .steps { flex-wrap: wrap; }
  .step { flex: 0 0 50%; }
  .step:nth-child(2)::after { display: none; }
}

@media (max-width: 768px) {
  .section { padding: 70px 0; }

  .nav-links {
    position: fixed;
    top: 0;
    right: -100%;
    width: 75%;
    max-width: 320px;
    height: 100vh;
    background: var(--green-dark);
    flex-direction: column;
    align-items: flex-start;
    padding: 100px 30px 30px;
    gap: 0;
    transition: right var(--transition);
    box-shadow: -10px 0 40px rgba(0,0,0,0.3);
  }

  .nav-links.open { right: 0; }

  .nav-links a {
    width: 100%;
    padding: 14px 0;
    font-size: 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }

  .nav-links a::after { display: none; }

  .nav-cta {
    margin-top: 1rem;
    text-align: center;
    display: block;
    width: 100%;
  }

  .nav-burger { display: flex; }

  .hero-inner { flex-direction: column; text-align: center; gap: 40px; }
  .hero-visual { flex: none; }
  .hero-desc { margin-left: auto; margin-right: auto; }
  .hero-buttons { justify-content: center; }
  .hero-stats { justify-content: center; }

  .grid-2, .grid-3 { grid-template-columns: 1fr; }

  .tarif-card.featured { transform: none; }
  .tarif-card.featured:hover { transform: scale(1.02); }

  .steps { flex-direction: column; }
  .step { flex: none; }
  .step::after { display: none; }

  .form-row { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }

  .timeline::before { left: 20px; }
  .timeline-item, .timeline-item:nth-child(even) { flex-direction: row; padding-left: 50px; }
  .timeline-content { width: 100%; }
  .timeline-dot { left: 20px; }

  .stats-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .hero h1 { font-size: 1.9rem; }
  .hero-stats { flex-direction: column; gap: 1.5rem; align-items: center; }
  .stats-grid { grid-template-columns: 1fr; }
  .grid-4 { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════
   NOUVELLES FONCTIONNALITÉS
   ═══════════════════════════════════════════ */

.page-loader {
  position: fixed;
  inset: 0;
  background: var(--white);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1.5rem;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}
.page-loader.loaded {
  opacity: 0;
  visibility: hidden;
}
.page-loader img {
  width: 60px;
  height: 60px;
  animation: loaderPulse 1.2s ease-in-out infinite;
}
.loader-bar {
  width: 120px;
  height: 3px;
  background: var(--border);
  border-radius: 3px;
  overflow: hidden;
}
.loader-bar::after {
  content: '';
  display: block;
  width: 40%;
  height: 100%;
  background: var(--green-primary);
  border-radius: 3px;
  animation: loaderSlide 1s ease-in-out infinite;
}
@keyframes loaderPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.7; }
}
@keyframes loaderSlide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(400%); }
}

.floating-cta {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 998;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}
.floating-cta-btn {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.5rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
  transition: all var(--transition);
  text-decoration: none;
  cursor: pointer;
  border: none;
}
.floating-cta-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 28px rgba(0,0,0,0.3);
}
.floating-cta-phone { background: var(--green-primary); }
.floating-cta-whatsapp { background: #25D366; }
.floating-cta-whatsapp:hover { background: #1da851; }
.floating-cta-phone:hover { background: var(--green-dark); }

.floating-cta-tooltip {
  position: absolute;
  right: 68px;
  background: var(--text-dark);
  color: #fff;
  padding: 6px 14px;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 500;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease;
  pointer-events: none;
}
.floating-cta-btn:hover .floating-cta-tooltip {
  opacity: 1;
  visibility: visible;
}

.trust-bar {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 1.5rem 0;
}
.trust-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2.5rem;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-mid);
}
.trust-icon {
  width: 36px;
  height: 36px;
  background: var(--green-light);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.testimonial-section { padding: 5rem 0; }
.testimonials-slider {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}
.testimonial {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 2rem;
  transition: all var(--transition);
  position: relative;
}
.testimonial:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}
.testimonial-stars {
  color: #F4C430;
  font-size: 1rem;
  letter-spacing: 2px;
  margin-bottom: 1rem;
}
.testimonial-text {
  font-size: 0.92rem;
  color: var(--text-mid);
  line-height: 1.8;
  font-style: italic;
  margin-bottom: 1.5rem;
  position: relative;
  padding-left: 1.5rem;
}
.testimonial-text::before {
  content: '"';
  position: absolute;
  left: 0;
  top: -4px;
  font-size: 2rem;
  color: var(--green-primary);
  font-weight: 700;
  line-height: 1;
}
.testimonial-author {
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 1px solid var(--border);
  padding-top: 1rem;
}
.testimonial-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--green-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}
.testimonial-author-info strong {
  display: block;
  font-size: 0.88rem;
  color: var(--text-dark);
}
.testimonial-author-info span {
  font-size: 0.78rem;
  color: var(--text-light);
}

.mobile-section-toggle {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.4rem;
  margin-top: 2rem;
  background: var(--green-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-family: 'Poppins', sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--green-dark);
  cursor: pointer;
  transition: all var(--transition);
}
.mobile-section-toggle svg {
  flex-shrink: 0;
  transition: transform 0.3s ease;
  color: var(--green-primary);
}
.mobile-section-toggle.open svg { transform: rotate(180deg); }
.mobile-section-toggle:hover { background: var(--border); }

.mobile-collapsible-content {
  overflow: hidden;
  transition: max-height 0.45s ease, opacity 0.3s ease;
}

@media (max-width: 768px) {
  .mobile-section-toggle { display: flex; }
  .mobile-collapsible-content {
    max-height: 0;
    opacity: 0;
  }
  .mobile-collapsible-content.expanded {
    max-height: 4000px;
    opacity: 1;
  }
}

body {
  line-height: 1.8;
}

.section-title {
  line-height: 1.22;
  letter-spacing: -0.01em;
}

.card p, .testimonial-text, .faq-answer p {
  line-height: 1.8;
}

.hero-desc {
  line-height: 1.78;
}

p {
  line-height: 1.8;
}

.card, .service-card, .testimonial-card, .testimonial {
  transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.section-sub {
  font-size: 1.06rem;
  color: var(--text-mid);
  line-height: 1.75;
}

a:focus-visible {
  outline: 2px solid var(--green-accent);
  outline-offset: 3px;
  border-radius: 3px;
}

.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}
.blog-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: all var(--transition);
}
.blog-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}
.blog-card-img {
  height: 200px;
  overflow: hidden;
}
.blog-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.blog-card:hover .blog-card-img img {
  transform: scale(1.05);
}
.blog-card-body {
  padding: 1.5rem;
}
.blog-card-tag {
  display: inline-block;
  background: var(--green-light);
  color: var(--green-primary);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  margin-bottom: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.blog-card-body h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 0.6rem;
  line-height: 1.4;
}
.blog-card-body p {
  font-size: 0.85rem;
  color: var(--text-light);
  line-height: 1.6;
  margin-bottom: 1rem;
}
.blog-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.78rem;
  color: var(--text-light);
}
.blog-card-meta a,
.blog-card-link {
  color: var(--green-primary);
  font-weight: 600;
}
.blog-card-meta a:hover { text-decoration: underline; }

a.blog-card {
  display: block;
  text-decoration: none;
  color: inherit;
}
a.blog-card:hover .blog-card-link {
  text-decoration: underline;
}

.article-content {
  font-size: 1.05rem;
  line-height: 1.85;
  color: var(--text-mid);
}

.article-content h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-dark);
  margin: 2.5rem 0 1rem;
}

.article-content h3 {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--green-dark);
  margin: 2rem 0 0.8rem;
}

.article-content p {
  margin-bottom: 1.2rem;
}

.article-content ul,
.article-content ol {
  margin: 1rem 0 1.5rem 1.5rem;
}

.article-content li {
  margin-bottom: 0.5rem;
  list-style-type: disc;
}

.article-content ol li {
  list-style-type: decimal;
}

.article-content blockquote {
  border-left: 4px solid var(--green-primary);
  background: var(--green-light);
  padding: 1.2rem 1.5rem;
  margin: 1.5rem 0;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-style: italic;
  color: var(--green-dark);
}

.article-content strong {
  color: var(--text-dark);
}

.article-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.92rem;
}

.article-content th,
.article-content td {
  border: 1px solid var(--border);
  padding: 10px 14px;
  text-align: left;
}

.article-content th {
  background: var(--green-dark);
  color: var(--white);
  font-weight: 600;
}

.article-content tr:nth-child(even) {
  background: var(--green-light);
}

.article-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.88rem;
  color: var(--text-light);
}

.article-tag {
  display: inline-block;
  background: var(--green-light);
  color: var(--green-primary);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.related-articles {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
}

.related-articles h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 1rem;
}

.related-articles a {
  display: block;
  padding: 0.8rem 0;
  color: var(--green-primary);
  font-weight: 600;
  font-size: 0.95rem;
  border-bottom: 1px solid var(--border);
  transition: color var(--transition);
}

.related-articles a:hover {
  color: var(--green-dark);
}

.quiz-container {
  max-width: 700px;
  margin: 0 auto;
  background: var(--white);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  padding: 3rem;
  box-shadow: var(--shadow-sm);
}
.quiz-progress {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}
.quiz-progress-bar {
  flex: 1;
  height: 6px;
  background: var(--border);
  border-radius: 6px;
  overflow: hidden;
}
.quiz-progress-fill {
  height: 100%;
  background: var(--green-primary);
  border-radius: 6px;
  transition: width 0.4s ease;
}
.quiz-progress-text {
  font-size: 0.82rem;
  color: var(--text-light);
  font-weight: 600;
  white-space: nowrap;
}
.quiz-question {
  margin-bottom: 2rem;
}
.quiz-question h3 {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 0.5rem;
}
.quiz-question p {
  font-size: 0.88rem;
  color: var(--text-light);
}
.quiz-options {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-bottom: 2rem;
}
.quiz-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all var(--transition);
  font-size: 0.92rem;
  color: var(--text-mid);
}
.quiz-option:hover {
  border-color: var(--green-primary);
  background: var(--green-light);
}
.quiz-option.selected {
  border-color: var(--green-primary);
  background: var(--green-light);
  font-weight: 600;
  color: var(--green-dark);
}
.quiz-option-dot {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid var(--border);
  flex-shrink: 0;
  position: relative;
  transition: all var(--transition);
}
.quiz-option.selected .quiz-option-dot {
  border-color: var(--green-primary);
  background: var(--green-primary);
}
.quiz-option.selected .quiz-option-dot::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 8px;
  height: 8px;
  background: #fff;
  border-radius: 50%;
}
.quiz-nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}
.quiz-result {
  text-align: center;
  padding: 2rem 0;
}
.quiz-score-ring {
  width: 160px;
  height: 160px;
  margin: 0 auto 2rem;
  position: relative;
}
.quiz-score-ring svg {
  transform: rotate(-90deg);
}
.quiz-score-ring circle {
  fill: none;
  stroke-width: 8;
  cx: 80;
  cy: 80;
  r: 72;
}
.quiz-score-ring .ring-bg { stroke: var(--border); }
.quiz-score-ring .ring-fill {
  stroke: var(--green-primary);
  stroke-linecap: round;
  transition: stroke-dashoffset 1.5s ease;
}
.quiz-score-label {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.quiz-score-num {
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--green-primary);
  line-height: 1;
}
.quiz-score-text {
  font-size: 0.78rem;
  color: var(--text-light);
  font-weight: 600;
}
.quiz-level {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 0.5rem;
}
.quiz-result p {
  font-size: 0.95rem;
  color: var(--text-mid);
  line-height: 1.7;
  max-width: 500px;
  margin: 0 auto 2rem;
}

@media (max-width: 768px) {
  .trust-bar-inner { gap: 1.5rem; }
  .trust-item { font-size: 0.78rem; }
  .testimonials-slider { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: 1fr; }
  .quiz-container { padding: 2rem 1.5rem; }
  .floating-cta { bottom: 16px; right: 16px; }
  .floating-cta-btn { width: 50px; height: 50px; font-size: 1.3rem; }
}
@media (max-width: 480px) {
  .floating-cta-tooltip { display: none; }
}

/* ======================================================
   RESTAUVERT — Design Premium v2.0
   Creative Frontend Upgrade
   ====================================================== */

:root {
  --luminous-green: hsl(145, 68%, 52%);
  --glow-green: rgba(76, 200, 130, 0.22);
  --glass-bg: rgba(255, 255, 255, 0.07);
  --glass-border: rgba(255, 255, 255, 0.13);
}

#scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0%;
  background: linear-gradient(90deg, #4CAF70, #7de0a0, #4CAF70);
  background-size: 200%;
  animation: shimmer-bar 2s linear infinite;
  z-index: 9999;
  transition: width 0.1s linear;
}
@keyframes shimmer-bar {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}

#cursor-glow {
  position: fixed;
  pointer-events: none;
  width: 340px; height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(76, 200, 130, 0.055) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  z-index: 0;
  display: none;
  will-change: transform;
}
@media (hover: hover) { #cursor-glow { display: block; } }

.gradient-text {
  background: linear-gradient(135deg, #7de0a0 0%, #b0f5d0 40%, #7de0a0 100%);
  background-size: 200%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer-text 4s linear infinite;
}
@keyframes shimmer-text {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}

.btn-primary,
.btn-white {
  position: relative;
  overflow: hidden;
}
.btn-primary::after,
.btn-white::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 55%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
  transform: skewX(-20deg);
  transition: none;
}
.btn-primary:hover::after,
.btn-white:hover::after {
  animation: shimmer-btn 0.55s ease forwards;
}
@keyframes shimmer-btn {
  0%   { left: -100%; }
  100% { left: 160%; }
}

.hero-blobs {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}
.hero-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(72px);
}
.hero-blob-1 {
  width: 540px; height: 540px;
  background: radial-gradient(circle, rgba(76,175,112,0.22), transparent 68%);
  top: -180px; right: -120px;
  animation: blob1 20s ease-in-out infinite;
}
.hero-blob-2 {
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(45,122,82,0.18), transparent 68%);
  bottom: -110px; left: 5%;
  animation: blob2 26s ease-in-out infinite;
}
.hero-blob-3 {
  width: 260px; height: 260px;
  background: radial-gradient(circle, rgba(125,224,160,0.12), transparent 68%);
  top: 35%; left: 38%;
  animation: blob3 17s ease-in-out infinite;
}
@keyframes blob1 {
  0%, 100% { transform: translate(0, 0) scale(1);     }
  35%       { transform: translate(-40px, 35px) scale(1.07); }
  70%       { transform: translate(25px, -20px) scale(0.94); }
}
@keyframes blob2 {
  0%, 100% { transform: translate(0, 0) scale(1);      }
  40%       { transform: translate(35px, -45px) scale(1.1); }
  75%       { transform: translate(-20px, 20px) scale(0.93); }
}
@keyframes blob3 {
  0%, 100% { transform: translate(0, 0);        }
  50%       { transform: translate(-28px, 28px); }
}

.hero-glass-card {
  background: rgba(255, 255, 255, 0.075);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 24px;
  padding: 26px 22px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.08);
  max-width: 310px;
  width: 100%;
  animation: float 6s ease-in-out infinite;
  position: relative;
  z-index: 1;
}
.hgc-header {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 18px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,0.09);
}
.hgc-icon {
  width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0;
  background: linear-gradient(135deg, rgba(76,175,112,0.3), rgba(76,175,112,0.08));
  border: 1px solid rgba(76,175,112,0.25);
  display: flex; align-items: center; justify-content: center; font-size: 1.1rem;
}
.hgc-title { font-size: 0.82rem; font-weight: 700; color: rgba(255,255,255,0.95); }
.hgc-sub   { font-size: 0.68rem; color: rgba(255,255,255,0.42); margin-top: 1px; }

.hgc-ring {
  position: relative; width: 120px; height: 120px;
  margin: 0 auto 6px;
}
.hgc-ring svg { width: 120px; height: 120px; transform: rotate(-90deg); }
.ring-bg   { fill: none; stroke: rgba(255,255,255,0.07); stroke-width: 10; }
.ring-fill {
  fill: none; stroke: url(#ringGrad); stroke-width: 10; stroke-linecap: round;
  stroke-dasharray: 314.16; stroke-dashoffset: 314.16;
  filter: drop-shadow(0 0 7px rgba(76,200,130,0.55));
  animation: ring-draw 2s ease forwards 0.4s;
}
@keyframes ring-draw { to { stroke-dashoffset: 84.8; } }
.hgc-score {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%); text-align: center;
}
.hgc-score-num { font-size: 1.9rem; font-weight: 700; color: #fff; line-height: 1; }
.hgc-score-den { font-size: 0.65rem; color: rgba(255,255,255,0.4); }
.hgc-score-lbl {
  text-align: center; font-size: 0.64rem; color: rgba(255,255,255,0.4);
  text-transform: uppercase; letter-spacing: 0.08em;
  margin-bottom: 14px;
}

.hgc-axes { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; }
.hgc-axis { display: flex; align-items: center; gap: 8px; }
.hgc-axis-lbl { font-size: 0.66rem; color: rgba(255,255,255,0.48); width: 56px; flex-shrink: 0; }
.hgc-axis-bar  { flex: 1; height: 4px; background: rgba(255,255,255,0.07); border-radius: 2px; overflow: hidden; }
.hgc-axis-fill {
  height: 100%;
  background: linear-gradient(90deg, #4CAF70, #7de0a0);
  border-radius: 2px; width: 0;
  animation-timing-function: ease;
  animation-fill-mode: both;
  animation-duration: 1.4s;
}
.hgc-axes .hgc-axis:nth-child(1) .hgc-axis-fill { animation-name: ag82; animation-delay: 0.8s; }
.hgc-axes .hgc-axis:nth-child(2) .hgc-axis-fill { animation-name: ag68; animation-delay: 1.0s; }
.hgc-axes .hgc-axis:nth-child(3) .hgc-axis-fill { animation-name: ag75; animation-delay: 1.2s; }
.hgc-axes .hgc-axis:nth-child(4) .hgc-axis-fill { animation-name: ag60; animation-delay: 1.4s; }
@keyframes ag82 { from { width: 0 } to { width: 82% } }
@keyframes ag68 { from { width: 0 } to { width: 68% } }
@keyframes ag75 { from { width: 0 } to { width: 75% } }
@keyframes ag60 { from { width: 0 } to { width: 60% } }
.hgc-axis-val { font-size: 0.63rem; color: rgba(255,255,255,0.5); width: 26px; text-align: right; }

.hgc-cta {
  display: block; text-align: center;
  padding: 9px 14px;
  background: linear-gradient(135deg, rgba(76,175,112,0.22), rgba(76,175,112,0.08));
  border: 1px solid rgba(76,175,112,0.28);
  border-radius: 9px;
  color: #7de0a0; font-size: 0.74rem; font-weight: 600;
  transition: all 0.25s; text-decoration: none;
}
.hgc-cta:hover {
  background: rgba(76,175,112,0.28);
  border-color: rgba(76,175,112,0.45);
  color: #a8f5cc;
  transform: translateY(-1px);
}

.trust-bar { overflow: hidden; position: relative; }
.trust-bar::before, .trust-bar::after {
  content: ''; position: absolute; top: 0; bottom: 0;
  width: 90px; z-index: 2; pointer-events: none;
}
.trust-bar::before { left: 0;  background: linear-gradient(90deg, #1A4E30, transparent); }
.trust-bar::after  { right: 0; background: linear-gradient(-90deg, #1A4E30, transparent); }

.trust-ticker {
  display: flex; white-space: nowrap;
  animation: ticker-run 32s linear infinite;
}
.trust-ticker-inner {
  display: flex; align-items: center; flex-shrink: 0;
}
.trust-ticker:hover { animation-play-state: paused; }

@keyframes ticker-run {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.trust-item {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 0 28px; white-space: nowrap;
}
.trust-item::after {
  content: '✦'; margin-left: 16px;
  color: rgba(255,255,255,0.2); font-size: 0.5rem;
}

.service-badge {
  position: absolute; top: -13px; left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #D4A843, #f0c464);
  color: #fff; font-size: 0.67rem; font-weight: 700;
  padding: 4px 14px; border-radius: 50px;
  letter-spacing: 0.07em; text-transform: uppercase;
  box-shadow: 0 4px 14px rgba(212,168,67,0.45);
  white-space: nowrap; z-index: 10;
}

.service-card:hover {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.1),
    0 0 0 1px rgba(76,200,130,0.18),
    0 0 44px rgba(76,200,130,0.07);
}

.testimonials-carousel {
  position: relative;
  overflow: hidden;
  max-width: 700px;
  margin: 3rem auto 0;
}
.testimonials-track {
  display: flex;
  transition: transform 0.52s cubic-bezier(0.4, 0, 0.2, 1);
}
.testimonial-slide {
  flex: 0 0 100%;
  padding: 0 0.5rem;
  box-sizing: border-box;
}
.testimonials-controls {
  display: flex; align-items: center; justify-content: center;
  gap: 12px; margin-top: 2rem;
}
.carousel-btn {
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--green-light); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.25s; color: var(--green-dark);
  font-size: 1.4rem; font-weight: 300; line-height: 1;
}
.carousel-btn:hover {
  background: var(--green-primary); color: #fff;
  box-shadow: 0 4px 16px rgba(45,122,58,0.3);
  transform: scale(1.08);
}
.carousel-dots { display: flex; gap: 7px; align-items: center; }
.carousel-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--border); cursor: pointer;
  border: none; padding: 0;
  transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}
.carousel-dot.active {
  background: var(--green-primary);
  width: 22px; border-radius: 4px;
  box-shadow: 0 2px 8px rgba(45,122,58,0.35);
}

.testimonial-card {
  transition: all 0.3s;
}
.testimonial-card:hover {
  box-shadow: 0 16px 48px rgba(30,96,64,0.1), 0 0 0 1px rgba(76,200,130,0.12);
  transform: translateY(-4px);
}
.testimonial-stars {
  color: #f5c842;
  font-size: 1rem; letter-spacing: 2px;
  margin-bottom: 1rem;
}
.testimonial-text {
  font-size: 0.93rem; color: var(--text-mid);
  font-style: italic; line-height: 1.75;
  margin-bottom: 1.3rem;
  position: relative; z-index: 1;
}
.testimonial-author-info strong {
  display: block; font-size: 0.88rem; color: var(--text-dark);
}
.testimonial-author-info span {
  font-size: 0.78rem; color: var(--text-light);
}

.cta-banner-mesh {
  background: linear-gradient(145deg, #0c2a1a 0%, #1A4E30 35%, #1b5e3a 65%, #0e301e 100%);
  position: relative;
}
.cta-banner-mesh::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 15% 50%, rgba(76,200,130,0.1) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 25%, rgba(45,122,58,0.12) 0%, transparent 50%),
    radial-gradient(ellipse at 60% 85%, rgba(125,224,160,0.07) 0%, transparent 40%);
  pointer-events: none;
}
.cta-banner-mesh .container { position: relative; z-index: 1; }
.cta-banner-mesh > .container { position: relative; z-index: 1; }

.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity  0.75s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}
.fade-up.visible {
  opacity: 1;
  transform: none;
}

.floating-cta-btn {
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.floating-cta-btn:hover {
  transform: scale(1.13) translateY(-3px) !important;
}

@media (max-width: 900px) {
  .hero-glass-card { max-width: 280px; padding: 20px 18px; }
  .hgc-ring { width: 100px; height: 100px; }
  .hgc-ring svg { width: 100px; height: 100px; }
}
@media (max-width: 768px) {
  .testimonials-carousel { max-width: 100%; margin: 2rem 0 0; }
  .testimonial-slide { padding: 0; }
}

/* ===== Sceau RestauVert (footer brand) ===== */
.footer-brand .footer-seal {
  display: block;
  margin-top: 24px;
  margin-bottom: 4px;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.32));
}
.footer-brand .footer-seal svg {
  display: block;
  border-radius: 50%;
}
@media (max-width: 600px) {
  .footer-brand .footer-seal svg { width: 110px; height: 110px; }
}

/* ===== RV Genius v3 : exit-intent newsletter modal ===== */
.rv-modal-overlay {
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100vw !important; height: 100vh !important;
  background: rgba(14,42,27,.72);
  z-index: 99999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
  animation: rvModalFade .25s ease-out;
}
.rv-modal-overlay.is-open { display: flex !important; }
@keyframes rvModalFade { from { opacity: 0; } to { opacity: 1; } }
.rv-modal {
  background: #fff; border-radius: 18px; max-width: 460px; width: 100%;
  padding: 36px 32px 30px; position: relative;
  box-shadow: 0 24px 60px rgba(0,0,0,.35);
  border-top: 5px solid #D4A843;
  font-family: 'Poppins', sans-serif;
  animation: rvModalIn .3s cubic-bezier(.16,1,.3,1);
}
@keyframes rvModalIn { from { transform: translateY(20px) scale(.96); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
.rv-modal h3 { font-family: Georgia, serif; font-size: 1.5rem; color: #1A4E30; margin: 0 0 10px; }
.rv-modal p { color: #3D5449; margin: 0 0 16px; line-height: 1.55; font-size: .95rem; }
.rv-modal .close-x {
  position: absolute; top: 12px; right: 14px; background: transparent;
  border: 0; font-size: 1.5rem; color: #6B8878; cursor: pointer; line-height: 1;
}
.rv-modal form { display: flex; gap: 8px; flex-wrap: wrap; }
.rv-modal input[type=email] {
  flex: 1; min-width: 200px; padding: 12px 14px;
  border: 1px solid #D4E8DB; border-radius: 8px; font-family: inherit; font-size: .95rem;
}
.rv-modal button[type=submit] {
  background: #1A4E30; color: #fff; border: 0; border-radius: 8px;
  padding: 12px 18px; font-weight: 600; font-family: inherit; font-size: .9rem; cursor: pointer;
}
.rv-modal .rv-trust {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin-top: 18px; padding-top: 16px; border-top: 1px solid #EBF5EE;
  font-size: .78rem; color: #3D5449; text-align: center;
}
.rv-modal .rv-trust b { color: #1A4E30; font-size: 1.1rem; display: block; font-weight: 700; }

.btn-primary[data-cta-test] { position: relative; }

/* ============ RV v4 : toast / cookies / personas / a11y ============ */

.rv-skip-link {
  position: absolute; top: -100px; left: 8px;
  background: #1A4E30; color: #fff; padding: 12px 20px;
  border-radius: 0 0 8px 8px; text-decoration: none;
  font-weight: 600; z-index: 99999;
  transition: top .2s;
}
.rv-skip-link:focus { top: 0; }

.rv-toast {
  position: fixed; bottom: 24px; left: 50%;
  transform: translateX(-50%) translateY(40px);
  background: #1A4E30; color: #fff;
  padding: 14px 22px; border-radius: 12px;
  display: flex; align-items: center; gap: 10px;
  box-shadow: 0 12px 36px rgba(0,0,0,.3);
  z-index: 99998; opacity: 0;
  transition: transform .35s cubic-bezier(.16,1,.3,1), opacity .3s;
  font-family: 'Poppins', sans-serif; font-size: .95rem; font-weight: 500;
  border: 1px solid rgba(212,168,67,.4);
  max-width: 92vw;
}
.rv-toast.is-in { transform: translateX(-50%) translateY(0); opacity: 1; }
.rv-toast--err { background: #8B2C00; border-color: rgba(255,200,180,.4); }
.rv-toast__icon {
  display: inline-flex; width: 24px; height: 24px;
  align-items: center; justify-content: center;
  background: rgba(212,168,67,.25); color: #D4A843;
  border-radius: 50%; font-weight: 700;
}
.rv-toast--err .rv-toast__icon { background: rgba(255,200,180,.2); color: #FFC8B4; }

.rv-cookies-bar {
  position: fixed; left: 12px; right: 12px; bottom: 12px;
  background: #143A23; color: #EBF5EE;
  padding: 16px 20px; border-radius: 14px;
  display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
  justify-content: space-between;
  box-shadow: 0 14px 38px rgba(0,0,0,.4);
  border: 1px solid rgba(212,168,67,.3);
  z-index: 99997;
  font-family: 'Poppins', sans-serif; font-size: .9rem;
  transform: translateY(140%); transition: transform .45s cubic-bezier(.16,1,.3,1);
  max-width: 980px; margin: 0 auto;
}
.rv-cookies-bar.is-in { transform: translateY(0); }
.rv-cookies-bar__text { flex: 1; min-width: 280px; line-height: 1.5; }
.rv-cookies-bar__actions { display: flex; gap: 8px; }
.rv-cookies-bar button {
  background: transparent; color: #EBF5EE; border: 1px solid rgba(255,255,255,.25);
  padding: 9px 16px; border-radius: 8px; cursor: pointer;
  font-family: inherit; font-size: .85rem; font-weight: 600;
  transition: all .2s;
}
.rv-cookies-bar button:hover { border-color: #D4A843; }
.rv-cookies-bar button.primary { background: #D4A843; color: #1A1610; border-color: #D4A843; }
.rv-cookies-bar button.primary:hover { background: #E9C56A; }

.rv-personas {
  display: flex; flex-wrap: wrap; gap: 10px;
  justify-content: center; margin: 1.4rem 0 .4rem;
}
.rv-persona-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px; border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(212,168,67,.35);
  color: #fff; cursor: pointer;
  font-family: 'Poppins', sans-serif; font-size: .88rem; font-weight: 500;
  transition: all .25s;
}
.rv-persona-btn:hover {
  background: rgba(212,168,67,.18); border-color: #D4A843;
  transform: translateY(-2px);
}
.rv-persona-btn.is-active {
  background: #D4A843; color: #1A1610; border-color: #D4A843;
  font-weight: 700; box-shadow: 0 6px 18px rgba(212,168,67,.35);
}
.rv-persona-btn .ico { font-size: 1rem; }

.rv-persona-flash {
  position: fixed; top: 80px; left: 50%; transform: translateX(-50%);
  background: #1A4E30; color: #D4A843;
  padding: 10px 22px; border-radius: 999px;
  font-family: 'Poppins', sans-serif; font-size: .85rem; font-weight: 600;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  z-index: 99999;
  animation: rvPersonaFlash 2.2s ease-out forwards;
}
@keyframes rvPersonaFlash {
  0% { opacity: 0; transform: translateX(-50%) translateY(-15px); }
  20%, 80% { opacity: 1; transform: translateX(-50%) translateY(0); }
  100% { opacity: 0; transform: translateX(-50%) translateY(-15px); }
}

[data-persona] [data-show-when]:not([data-show-when="all"]) { display: none; }
[data-persona="bistrot"] [data-show-when="bistrot"],
[data-persona="gastro"] [data-show-when="gastro"],
[data-persona="collective"] [data-show-when="collective"],
[data-persona="chaine"] [data-show-when="chaine"] { display: block; }

[data-contrast="high"] {
  --green-dark: #000;
  --green-main: #000;
  --green-primary: #000;
  --gold: #B8860B;
  --text-mid: #000;
  --text-light: #1B1B1B;
  --border: #000;
}
[data-contrast="high"] body { background: #fff; color: #000; }
[data-contrast="high"] a { text-decoration: underline !important; }

.rv-search-box {
  position: relative; max-width: 520px; margin: 0 auto 1.5rem;
}
.rv-search-box input {
  width: 100%; padding: 14px 18px 14px 44px;
  border: 1px solid rgba(13,42,26,.15); border-radius: 12px;
  background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="%231A4E30" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>') no-repeat 14px center;
  font-family: 'Poppins', sans-serif; font-size: .95rem;
  transition: border-color .2s, box-shadow .2s;
}
.rv-search-box input:focus {
  outline: none; border-color: #D4A843;
  box-shadow: 0 0 0 4px rgba(212,168,67,.15);
}
.rv-search-results {
  position: absolute; top: 110%; left: 0; right: 0;
  background: #fff; border-radius: 12px;
  box-shadow: 0 12px 32px rgba(13,42,26,.14);
  border: 1px solid rgba(13,42,26,.08);
  max-height: 360px; overflow-y: auto;
  display: none; z-index: 100;
}
.rv-search-results a {
  display: block; padding: 12px 18px;
  text-decoration: none; color: inherit;
  border-bottom: 1px solid rgba(13,42,26,.06);
}
.rv-search-results a:last-child { border-bottom: 0; }
.rv-search-results a:hover { background: #EBF5EE; }
.rv-search-results strong {
  display: block; color: #1A4E30; font-size: .95rem;
  font-family: 'Fraunces', Georgia, serif; font-weight: 600;
}
.rv-search-results small { color: #6B8878; font-size: .78rem; }

@media (max-width: 600px) {
  .rv-toast { left: 12px; right: 12px; transform: translateY(40px); max-width: none; bottom: 12px; }
  .rv-toast.is-in { transform: translateY(0); }
  .rv-cookies-bar { flex-direction: column; align-items: stretch; }
  .rv-cookies-bar__actions { justify-content: flex-end; }
}

/* ============ #3 Skeleton loaders + #4 Print + #5 Reading progress ============ */

.rv-reading-progress {
  position: fixed; top: 0; left: 0; height: 3px;
  background: linear-gradient(90deg, #D4A843, #1A4E30);
  z-index: 9999; width: 0%;
  transition: width .15s ease;
  box-shadow: 0 0 8px rgba(212,168,67,.4);
}

.rv-skeleton {
  display: inline-block; width: 100%; height: 1em;
  background: linear-gradient(90deg, #EBF5EE 0%, #F7FAF8 50%, #EBF5EE 100%);
  background-size: 200% 100%;
  animation: rvShimmer 1.4s infinite;
  border-radius: 4px;
}
.rv-skeleton--block { height: 80px; margin-bottom: .8rem; }
.rv-skeleton--circle { border-radius: 50%; height: 60px; width: 60px; }
@keyframes rvShimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.rv-tool-loading .rv-tool-result { display: none; }
.rv-tool-loading .rv-skeleton-wrap { display: block; }
.rv-skeleton-wrap { display: none; padding: 2rem; }

@media print {
  .navbar, .footer, .footer-seal, .rv-cookies-bar, .rv-toast, .scroll-top,
  .nav-burger, .theme-toggle, .rv-sticky-cta, .rv-personas, .rv-reading-progress,
  .rv-search-box, button[type="submit"]:not(.print-keep) { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  a { color: #1A4E30; text-decoration: underline; }
  h1, h2, h3 { color: #1A4E30; page-break-after: avoid; }
  .page-hero { background: none !important; color: #1A4E30 !important; padding: 0 0 1rem; }
  .page-hero h1 { color: #1A4E30 !important; }
  .container { max-width: 100% !important; padding: 0 !important; }
  .section { padding: 0 !important; }
  iframe { display: none !important; }
  #rvAgecResult, #rvExpressResult, #rvRoiResult { display: block !important; page-break-before: avoid; }
  a[href^="http"]:after, a[href^="/"]:after { content: " (" attr(href) ")"; font-size: .8em; color: #666; }
  body::before {
    content: "RestauVert · restauvert.fr · 06 66 58 32 66";
    display: block;
    border-bottom: 1px solid #1A4E30;
    padding-bottom: .5rem;
    margin-bottom: 1rem;
    color: #1A4E30; font-weight: 700;
  }
}

/* ============ Carte interactive : bouton flottant + modal ============ */

.rv-map-fab {
  position: fixed;
  left: 20px; bottom: 20px;
  z-index: 9000;
  background: linear-gradient(135deg, #1A4E30 0%, #1E6040 100%);
  color: #fff;
  border: 1px solid rgba(212,168,67,.4);
  padding: 12px 18px;
  border-radius: 999px;
  cursor: pointer;
  font-family: 'Poppins', sans-serif;
  font-size: .88rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 8px 24px rgba(26,78,48,.32), 0 2px 6px rgba(212,168,67,.2);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s, background .3s;
  animation: rvFabIn .55s cubic-bezier(.16,1,.3,1) .8s backwards;
}
@keyframes rvFabIn {
  from { transform: translateY(60px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.rv-map-fab:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(26,78,48,.42), 0 4px 12px rgba(212,168,67,.35);
  background: linear-gradient(135deg, #1E6040 0%, #2D7A52 100%);
}
.rv-map-fab__ico { font-size: 1.2rem; line-height: 1; }
.rv-map-fab__lbl { white-space: nowrap; }

@media (max-width: 600px) {
  .rv-map-fab {
    left: 12px; bottom: 12px;
    padding: 12px;
    width: 48px; height: 48px;
    border-radius: 50%;
    justify-content: center;
  }
  .rv-map-fab__lbl { display: none; }
  .rv-map-fab__ico { font-size: 1.4rem; }
  body.rv-sticky-active .rv-map-fab { bottom: 88px; }
}

.rv-map-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(14,42,27,.85);
  z-index: 99996;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  backdrop-filter: blur(6px);
  animation: rvMapFade .3s ease-out;
}
.rv-map-modal-overlay.is-open { display: flex; }
@keyframes rvMapFade { from { opacity: 0; } to { opacity: 1; } }

.rv-map-modal {
  position: relative;
  background: #fff;
  border-radius: 18px;
  width: 100%;
  height: 100%;
  max-width: 1280px;
  max-height: 92vh;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.5);
  border: 1px solid rgba(212,168,67,.3);
  animation: rvMapIn .4s cubic-bezier(.16,1,.3,1);
}
@keyframes rvMapIn {
  from { transform: scale(.96) translateY(20px); opacity: 0; }
  to { transform: scale(1) translateY(0); opacity: 1; }
}

.rv-map-modal__close {
  position: absolute;
  top: 14px; right: 14px;
  width: 40px; height: 40px;
  background: #1A4E30;
  color: #fff;
  border: 0;
  border-radius: 50%;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  z-index: 10;
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
  transition: transform .2s, background .2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rv-map-modal__close:hover {
  background: #D4A843;
  color: #1A1610;
  transform: rotate(90deg);
}

.rv-map-modal__open {
  position: absolute;
  top: 14px; left: 14px;
  background: rgba(255,255,255,.96);
  color: #1A4E30;
  padding: 9px 16px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  z-index: 10;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
  border: 1px solid rgba(212,168,67,.3);
  transition: transform .2s;
}
.rv-map-modal__open:hover { transform: translateY(-2px); border-color: #D4A843; }

.rv-map-modal__frame {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

@media (max-width: 600px) {
  .rv-map-modal-overlay { padding: 0; }
  .rv-map-modal { border-radius: 0; max-height: 100vh; height: 100vh; }
  .rv-map-modal__close { top: 10px; right: 10px; width: 36px; height: 36px; }
  .rv-map-modal__open { top: 10px; left: 10px; padding: 7px 12px; font-size: .75rem; }
}

[data-contrast="high"] .rv-map-fab {
  background: #000; color: #fff; border: 2px solid #fff;
}

.rv-personas-row {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  margin: .4rem 0 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.12);
}
.rv-personas-label {
  font-family: 'Poppins', sans-serif;
  font-size: .78rem;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: rgba(212,168,67,.85);
  font-weight: 600;
}
.rv-personas-row .rv-personas {
  margin: 0;
  justify-content: flex-start;
}
.rv-personas-row .rv-persona-btn {
  padding: 8px 14px;
  font-size: .82rem;
  background: rgba(255,255,255,.06);
}
.rv-personas-row .rv-persona-btn:hover {
  background: rgba(212,168,67,.14);
}
@media (max-width: 600px) {
  .rv-personas-label { font-size: .7rem; }
  .rv-personas-row .rv-persona-btn { padding: 7px 12px; font-size: .76rem; }
}

/* ===== premium.css ===== */
@charset "UTF-8";
/* ============================================================
   RestauVert — Premium Layer
   Surcouche haut-de-gamme : typographie, profondeur, lumière.
   ============================================================ */

:root {
  --rv-emerald-950: #0B2919;
  --rv-emerald-900: #102E1F;
  --rv-emerald-800: #163D2A;
  --rv-emerald-700: #1A4E30;
  --rv-emerald-600: #1E6040;
  --rv-emerald-500: #2D7A52;
  --rv-emerald-400: #4CAF70;
  --rv-emerald-300: #7DD29C;
  --rv-emerald-200: #B6E5C4;
  --rv-emerald-100: #E6F4EB;
  --rv-emerald-50:  #F4FAF6;

  --rv-gold:        #C9A45C;
  --rv-gold-light:  #E4C98C;
  --rv-champagne:   #F5ECD7;

  --rv-ink:         #0F1A14;
  --rv-graphite:    #2C3A32;
  --rv-slate:       #526258;
  --rv-mist:        #8A9A90;
  --rv-cream:       #FBFAF6;
  --rv-paper:       #F7F5EE;

  --rv-font-display: 'Fraunces', 'Playfair Display', Georgia, serif;
  --rv-font-body:    'Inter', 'Poppins', -apple-system, system-ui, sans-serif;

  --rv-shadow-xs: 0 1px 2px rgba(15,26,20,0.04), 0 1px 1px rgba(15,26,20,0.03);
  --rv-shadow-sm: 0 2px 6px rgba(15,26,20,0.05), 0 4px 12px rgba(15,26,20,0.04);
  --rv-shadow-md: 0 8px 20px rgba(15,26,20,0.08), 0 20px 40px rgba(15,26,20,0.06);
  --rv-shadow-lg: 0 18px 40px rgba(15,26,20,0.12), 0 40px 80px rgba(15,26,20,0.08);
  --rv-shadow-xl: 0 32px 70px rgba(15,26,20,0.18), 0 80px 120px rgba(15,26,20,0.12);
  --rv-shadow-emerald: 0 20px 50px rgba(30,96,64,0.25), 0 40px 80px rgba(30,96,64,0.18);
  --rv-shadow-gold: 0 8px 30px rgba(201,164,92,0.25);

  --rv-border-soft: 1px solid rgba(15,26,20,0.06);
  --rv-border-glass: 1px solid rgba(255,255,255,0.15);

  --rv-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --rv-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --rv-fast: .25s var(--rv-ease);
  --rv-base: .45s var(--rv-ease);
  --rv-slow: .8s var(--rv-ease);
}

body {
  font-family: var(--rv-font-body);
  font-feature-settings: "ss01", "cv11", "kern";
  letter-spacing: -0.005em;
  background: var(--rv-cream);
  color: var(--rv-ink);
}

h1, h2, h3, h4,
.hero h1, .page-hero h1, .section-title,
.cta-banner h2, .footer h4 {
  font-family: var(--rv-font-display);
  font-weight: 500;
  letter-spacing: -0.022em;
  font-feature-settings: "ss01";
}

h1, .hero h1, .page-hero h1 { font-weight: 500; letter-spacing: -0.03em; }
h2, .section-title, .cta-banner h2 { font-weight: 500; letter-spacing: -0.025em; }

.section-title {
  font-size: clamp(2rem, 3.8vw, 3rem);
  line-height: 1.08;
}

.section-sub {
  font-size: 1.08rem;
  color: var(--rv-slate);
  line-height: 1.75;
  font-weight: 400;
}

.section-tag {
  font-family: var(--rv-font-body);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  color: var(--rv-emerald-600);
  font-weight: 600;
  position: relative;
  padding-left: 38px;
  display: inline-flex;
  align-items: center;
}
.section-tag::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 28px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--rv-emerald-500));
}

.btn {
  font-family: var(--rv-font-body);
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 15px 34px;
  border-radius: 999px;
  position: relative;
  overflow: hidden;
  transition: transform var(--rv-fast), box-shadow var(--rv-fast), background-color var(--rv-fast), color var(--rv-fast);
  isolation: isolate;
}
.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform .7s var(--rv-ease);
  z-index: -1;
  pointer-events: none;
}
.btn:hover::after { transform: translateX(120%); }

.btn-primary {
  background: linear-gradient(135deg, var(--rv-emerald-600) 0%, var(--rv-emerald-700) 100%);
  box-shadow: var(--rv-shadow-emerald);
  color: #fff;
}
.btn-primary:hover {
  background: linear-gradient(135deg, var(--rv-emerald-700) 0%, var(--rv-emerald-800) 100%);
  transform: translateY(-2px);
  box-shadow: 0 28px 60px rgba(30,96,64,0.35);
}

.btn-white {
  background: #fff;
  color: var(--rv-emerald-700);
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
}
.btn-white:hover {
  background: var(--rv-champagne);
  transform: translateY(-2px);
  box-shadow: 0 18px 50px rgba(201,164,92,0.35);
}

.btn-gold,
.btn-premium {
  background: linear-gradient(135deg, var(--rv-gold-light) 0%, var(--rv-gold) 100%);
  color: var(--rv-emerald-900);
  box-shadow: var(--rv-shadow-gold);
  font-weight: 600;
}
.btn-gold:hover, .btn-premium:hover {
  background: linear-gradient(135deg, var(--rv-gold) 0%, #b08a45 100%);
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(201,164,92,0.4);
}

.navbar {
  background: rgba(11, 41, 25, 0.72) !important;
  backdrop-filter: blur(18px) saturate(1.3);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 1px 0 rgba(255,255,255,0.03) inset, 0 10px 40px rgba(0,0,0,0.25);
  height: 78px !important;
  transition: height var(--rv-base), background-color var(--rv-fast);
}
.navbar.scrolled {
  background: rgba(11, 41, 25, 0.92) !important;
  height: 66px !important;
}
.nav-logo img { height: 44px; width: auto; }
.nav-logo span {
  font-family: var(--rv-font-display);
  font-weight: 500;
  letter-spacing: -0.02em;
  font-size: 1.3rem;
  background: linear-gradient(135deg, #fff 0%, var(--rv-emerald-200) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.nav-links a {
  font-weight: 500;
  font-size: 0.86rem;
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.78);
}
.nav-links a::after {
  background: linear-gradient(90deg, var(--rv-emerald-300), var(--rv-gold-light));
  height: 1.5px;
}
.nav-cta {
  background: linear-gradient(135deg, #fff 0%, var(--rv-champagne) 100%) !important;
  color: var(--rv-emerald-800) !important;
  font-weight: 600 !important;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2), 0 1px 0 rgba(255,255,255,0.5) inset !important;
}
.nav-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(201,164,92,0.4) !important;
}

.hero {
  background:
    radial-gradient(ellipse at 20% 10%, rgba(125,224,160,0.18) 0%, transparent 45%),
    radial-gradient(ellipse at 80% 90%, rgba(201,164,92,0.12) 0%, transparent 50%),
    linear-gradient(160deg, var(--rv-emerald-900) 0%, var(--rv-emerald-800) 40%, var(--rv-emerald-700) 100%) !important;
  min-height: 92vh !important;
  position: relative;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  pointer-events: none;
  z-index: 0;
}

.hero-badge {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: var(--rv-emerald-200) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 7px 16px !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
}
.hero-badge::before {
  content: '●';
  color: var(--rv-emerald-300);
  margin-right: 8px;
  font-size: 0.65em;
  vertical-align: middle;
  animation: rvPulse 2s ease-in-out infinite;
}
@keyframes rvPulse {
  0%, 100% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
}

.hero h1 {
  font-family: var(--rv-font-display) !important;
  font-weight: 400 !important;
  font-size: clamp(2.4rem, 5vw, 4rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.035em !important;
}
.hero h1 .accent,
.hero h1 .gradient-text {
  background: linear-gradient(135deg, var(--rv-emerald-200) 0%, var(--rv-gold-light) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
  font-weight: 400;
}

.hero-desc {
  color: rgba(255,255,255,0.78) !important;
  font-size: 1.12rem !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  max-width: 540px !important;
}

.hero-stats {
  border-top: 1px solid rgba(201,164,92,0.25) !important;
  padding-top: 2rem !important;
  gap: 2.5rem !important;
  display: flex;
  flex-wrap: wrap;
}
.hero .stat-item,
.hero-stats .stat-item {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  position: relative;
}
.hero .stat-item + .stat-item::before,
.hero-stats .stat-item + .stat-item::before {
  content: '';
  position: absolute;
  left: -1.25rem;
  top: 10%;
  bottom: 10%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(201,164,92,0.4), transparent);
}
.stat-num {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 3.4vw, 2.6rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
  color: #fff !important;
  background: linear-gradient(135deg, #FFFFFF 0%, #F5ECD7 60%, #E4C98C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 2px 20px rgba(0,0,0,0.25);
  margin-bottom: 0.3rem;
}
.stat-label {
  font-family: var(--rv-font-body) !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78) !important;
  line-height: 1.4;
}

.hero-glass-card {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  backdrop-filter: blur(24px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.4) !important;
  box-shadow:
    0 30px 80px rgba(0,0,0,0.4),
    inset 0 1px 0 rgba(255,255,255,0.15),
    inset 0 -1px 0 rgba(0,0,0,0.1) !important;
}
.hgc-title { color: #fff !important; font-family: var(--rv-font-display); }
.hgc-score-num {
  font-family: var(--rv-font-display);
  background: linear-gradient(135deg, #fff, var(--rv-emerald-200));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.page-hero {
  background:
    radial-gradient(ellipse at 20% 10%, rgba(125,224,160,0.15) 0%, transparent 50%),
    linear-gradient(160deg, var(--rv-emerald-900) 0%, var(--rv-emerald-700) 100%) !important;
  padding: 170px 0 100px !important;
}
.page-hero h1 {
  font-family: var(--rv-font-display) !important;
  font-weight: 400 !important;
  letter-spacing: -0.03em !important;
}

.section { padding: 120px 0 !important; }
.bg-light { background: linear-gradient(180deg, var(--rv-emerald-50) 0%, #fff 100%) !important; }
.bg-off { background: linear-gradient(180deg, var(--rv-paper) 0%, var(--rv-cream) 100%) !important; }

.card {
  background: #fff;
  border: var(--rv-border-soft) !important;
  border-radius: 20px !important;
  padding: 2.4rem !important;
  box-shadow: var(--rv-shadow-xs);
  transition: transform var(--rv-base), box-shadow var(--rv-base), border-color var(--rv-base) !important;
  position: relative;
  overflow: hidden;
}
.card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 60%, rgba(76,175,112,0.04) 100%);
  opacity: 0;
  transition: opacity var(--rv-base);
  pointer-events: none;
}
.card:hover {
  transform: translateY(-8px);
  box-shadow: var(--rv-shadow-lg) !important;
  border-color: rgba(76,175,112,0.3) !important;
}
.card:hover::before { opacity: 1; }
.card-icon {
  width: 60px !important;
  height: 60px !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, var(--rv-emerald-100), var(--rv-emerald-200)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), 0 4px 12px rgba(30,96,64,0.08);
  font-size: 1.7rem !important;
}
.card h3 {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  font-size: 1.2rem !important;
  color: var(--rv-emerald-900) !important;
  letter-spacing: -0.02em;
}
.card .highlight-num {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.7rem !important;
  background: linear-gradient(135deg, var(--rv-emerald-500), var(--rv-emerald-700));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.service-card {
  border-radius: 24px !important;
  border: var(--rv-border-soft) !important;
  box-shadow: var(--rv-shadow-sm);
  transition: transform var(--rv-base), box-shadow var(--rv-base) !important;
  overflow: hidden;
  background: #fff;
  position: relative;
}
.service-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,164,92,0.5), transparent);
  opacity: 0;
  transition: opacity var(--rv-base);
}
.service-card:hover {
  transform: translateY(-10px);
  box-shadow: var(--rv-shadow-xl) !important;
}
.service-card:hover::after { opacity: 1; }
.service-header {
  background: linear-gradient(135deg, var(--rv-emerald-800) 0%, var(--rv-emerald-600) 100%) !important;
  padding: 2.2rem !important;
  position: relative;
  overflow: hidden;
}
.service-header::before {
  content: '';
  position: absolute;
  top: -40%; right: -20%;
  width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(255,255,255,0.08), transparent 70%);
  border-radius: 50%;
}
.service-header h3 {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.3rem !important;
  letter-spacing: -0.02em;
}
.service-header .price {
  color: var(--rv-gold-light) !important;
  font-weight: 500;
  font-family: var(--rv-font-display);
  font-size: 0.95rem !important;
}
.service-badge {
  background: linear-gradient(135deg, var(--rv-gold-light), var(--rv-gold)) !important;
  color: var(--rv-emerald-900) !important;
  box-shadow: 0 6px 20px rgba(201,164,92,0.35);
  font-weight: 600;
}

.step-num {
  background: linear-gradient(135deg, var(--rv-emerald-500), var(--rv-emerald-700)) !important;
  box-shadow:
    0 10px 24px rgba(30,96,64,0.3),
    inset 0 1px 0 rgba(255,255,255,0.2) !important;
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.3rem !important;
  width: 64px !important;
  height: 64px !important;
}
.step h3 {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  font-size: 1.05rem !important;
  color: var(--rv-emerald-900) !important;
}

.trust-bar {
  background: linear-gradient(180deg, #fff 0%, var(--rv-emerald-50) 100%) !important;
  border-top: 1px solid var(--rv-emerald-100);
  border-bottom: 1px solid var(--rv-emerald-100);
}
.trust-item {
  color: var(--rv-emerald-800) !important;
  font-weight: 500 !important;
}
.trust-icon {
  background: linear-gradient(135deg, var(--rv-emerald-100), var(--rv-emerald-200)) !important;
  color: var(--rv-emerald-700) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

.testimonial-card {
  border-radius: 20px !important;
  border: var(--rv-border-soft) !important;
  box-shadow: var(--rv-shadow-sm);
  padding: 2.5rem !important;
  transition: transform var(--rv-base), box-shadow var(--rv-base) !important;
}
.testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--rv-shadow-lg) !important;
}
.testimonial-card::before {
  font-family: var(--rv-font-display) !important;
  color: var(--rv-gold-light) !important;
  font-size: 5rem !important;
  opacity: 0.35;
}
.testimonial-text, .testimonial-card p {
  font-family: var(--rv-font-display);
  font-size: 1.02rem !important;
  line-height: 1.75 !important;
  color: var(--rv-graphite) !important;
  font-style: italic;
  font-weight: 400;
}
.testimonial-author strong {
  color: var(--rv-emerald-800);
  font-family: var(--rv-font-body);
  font-weight: 600;
}
.testimonial-stars {
  color: var(--rv-gold) !important;
  letter-spacing: 3px;
}

.faq-item {
  background: #fff;
  border: var(--rv-border-soft) !important;
  border-radius: 16px !important;
  margin-bottom: 12px !important;
  box-shadow: var(--rv-shadow-xs);
  transition: border-color var(--rv-fast), box-shadow var(--rv-fast);
  overflow: hidden;
}
.faq-item:hover {
  border-color: rgba(76,175,112,0.25) !important;
  box-shadow: var(--rv-shadow-sm);
}
.faq-question {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  font-size: 1.02rem !important;
  color: var(--rv-emerald-900) !important;
  padding: 1.4rem 1.6rem !important;
  letter-spacing: -0.015em;
}
.faq-answer p {
  color: var(--rv-slate) !important;
  line-height: 1.75 !important;
}

.lead-section {
  background:
    radial-gradient(ellipse at 10% 20%, rgba(125,224,160,0.15), transparent 50%),
    linear-gradient(135deg, var(--rv-emerald-900) 0%, var(--rv-emerald-700) 100%) !important;
}
.lead-content h2 {
  font-family: var(--rv-font-display) !important;
  font-weight: 400 !important;
  font-size: clamp(1.8rem, 3vw, 2.4rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.03em !important;
}
.lead-content h2 span {
  background: linear-gradient(135deg, var(--rv-emerald-300), var(--rv-gold-light));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.lead-form button {
  background: linear-gradient(135deg, var(--rv-gold-light), var(--rv-gold)) !important;
  color: var(--rv-emerald-900) !important;
  font-weight: 600 !important;
  box-shadow: 0 8px 24px rgba(201,164,92,0.3);
}
.lead-form button:hover {
  background: linear-gradient(135deg, var(--rv-gold), #b08a45) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 34px rgba(201,164,92,0.4) !important;
}
.lead-tag {
  background: rgba(201,164,92,0.15) !important;
  color: var(--rv-gold-light) !important;
  border: 1px solid rgba(201,164,92,0.3) !important;
}

.cta-banner {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(125,224,160,0.18), transparent 55%),
    radial-gradient(ellipse at 70% 80%, rgba(201,164,92,0.1), transparent 55%),
    linear-gradient(135deg, var(--rv-emerald-950) 0%, var(--rv-emerald-700) 100%) !important;
  padding: 110px 0 !important;
}
.cta-banner h2 {
  font-family: var(--rv-font-display) !important;
  font-weight: 400 !important;
  font-size: clamp(2rem, 3.8vw, 2.8rem) !important;
  letter-spacing: -0.03em !important;
}
.cta-banner-mesh {
  position: relative;
}
.cta-banner-mesh::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse at center, #000 20%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 20%, transparent 70%);
  pointer-events: none;
}
.cta-banner > .container { position: relative; z-index: 1; }

.footer {
  background:
    linear-gradient(180deg, var(--rv-emerald-950) 0%, #050E08 100%) !important;
  color: rgba(255,255,255,0.7);
  position: relative;
}
.footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--rv-gold) 50%, transparent);
  opacity: 0.4;
}
.footer-brand img { height: 48px; width: auto; }
.footer-brand p {
  color: rgba(255,255,255,0.55);
  line-height: 1.7;
  font-size: 0.92rem;
}
.footer h4 {
  font-family: var(--rv-font-display);
  font-weight: 500;
  color: #fff;
  font-size: 0.95rem;
  margin-bottom: 1.2rem;
  letter-spacing: -0.015em;
}
.footer-links a {
  color: rgba(255,255,255,0.6);
  font-size: 0.88rem;
  transition: color var(--rv-fast), padding-left var(--rv-fast);
}
.footer-links a:hover {
  color: var(--rv-emerald-200);
  padding-left: 4px;
}
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 1.5rem;
  margin-top: 2.5rem;
  color: rgba(255,255,255,0.4);
  font-size: 0.82rem;
}
.footer-socials a {
  background: rgba(255,255,255,0.06);
  border-radius: 10px;
  width: 38px; height: 38px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all var(--rv-fast);
  color: rgba(255,255,255,0.7);
}
.footer-socials a:hover {
  background: var(--rv-emerald-600);
  color: #fff;
  transform: translateY(-2px);
}

.form-group input,
.form-group select,
.form-group textarea {
  border-radius: 12px !important;
  border: 1.5px solid #E5E9E6 !important;
  padding: 15px 18px !important;
  transition: border-color var(--rv-fast), box-shadow var(--rv-fast), background var(--rv-fast) !important;
  background: var(--rv-cream) !important;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--rv-emerald-500) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(76,175,112,0.12) !important;
}

.floating-cta {
  bottom: 24px !important;
  right: 24px !important;
}
.floating-cta-btn {
  box-shadow: var(--rv-shadow-md) !important;
  transition: transform var(--rv-fast), box-shadow var(--rv-fast) !important;
}
.floating-cta-btn:hover {
  transform: translateY(-3px) scale(1.05) !important;
  box-shadow: var(--rv-shadow-lg) !important;
}

.page-loader {
  background: linear-gradient(135deg, var(--rv-emerald-950), var(--rv-emerald-700)) !important;
}
.page-loader img {
  filter: drop-shadow(0 10px 30px rgba(125,224,160,0.3));
  animation: rvLogoPulse 1.8s ease-in-out infinite;
}
@keyframes rvLogoPulse {
  0%, 100% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.06); opacity: 1; }
}

#scroll-progress {
  height: 3px !important;
  background: linear-gradient(90deg, var(--rv-emerald-400), var(--rv-gold-light)) !important;
  box-shadow: 0 0 12px rgba(125,224,160,0.5);
}

::-webkit-scrollbar { width: 12px; }
::-webkit-scrollbar-track { background: var(--rv-paper); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(var(--rv-emerald-500), var(--rv-emerald-700));
  border-radius: 10px;
  border: 3px solid var(--rv-paper);
}
::-webkit-scrollbar-thumb:hover { background: var(--rv-emerald-800); }

::selection { background: var(--rv-emerald-200); color: var(--rv-emerald-950); }

.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--rv-slow), transform var(--rv-slow);
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

.stat-card .number {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  font-size: 2.6rem !important;
  background: linear-gradient(135deg, #fff, var(--rv-emerald-200));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.timeline::before {
  background: linear-gradient(180deg, transparent, var(--rv-emerald-200) 10%, var(--rv-emerald-200) 90%, transparent) !important;
  width: 2px !important;
}
.timeline-content h3 {
  font-family: var(--rv-font-display);
  font-weight: 500;
  color: var(--rv-emerald-800);
}

.tarif-card {
  border-radius: 20px !important;
  border: 1.5px solid var(--rv-emerald-100) !important;
  box-shadow: var(--rv-shadow-xs);
  transition: transform var(--rv-base), box-shadow var(--rv-base), border-color var(--rv-base) !important;
}
.tarif-card.featured {
  background: linear-gradient(165deg, #fff 0%, var(--rv-emerald-50) 100%) !important;
  border-color: var(--rv-emerald-500) !important;
  box-shadow: var(--rv-shadow-md);
}
.tarif-name {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.15rem !important;
}
.tarif-price {
  font-family: var(--rv-font-display);
  font-weight: 500;
  background: linear-gradient(135deg, var(--rv-emerald-800), var(--rv-emerald-500));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.value-icon {
  background: linear-gradient(135deg, var(--rv-emerald-100), var(--rv-emerald-200)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), 0 6px 16px rgba(30,96,64,0.1) !important;
  width: 76px !important;
  height: 76px !important;
}
.value-card h3 {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  color: var(--rv-emerald-800) !important;
}

.contact-info-card {
  background:
    radial-gradient(ellipse at 20% 10%, rgba(125,224,160,0.15), transparent 50%),
    linear-gradient(135deg, var(--rv-emerald-900) 0%, var(--rv-emerald-700) 100%) !important;
  border: 1px solid rgba(255,255,255,0.08);
}
.contact-info-card h3 {
  font-family: var(--rv-font-display);
  font-weight: 500;
}

a.link-underline {
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size var(--rv-base);
  padding-bottom: 2px;
}
a.link-underline:hover { background-size: 100% 1px; }

.premium-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, var(--rv-gold-light), var(--rv-gold));
  color: var(--rv-emerald-900);
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  box-shadow: var(--rv-shadow-gold);
}
.premium-badge::before { content: '★'; font-size: 0.9em; }

/* Le nouveau logo a un ratio ~2:1 (viewBox 684x360). On recalibre les tailles
   pour conserver une présence premium sans écraser la composition. */
.nav-logo img {
  height: 44px !important;
  width: auto;
  display: block;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.18));
  transition: transform var(--rv-base), filter var(--rv-base);
}
.nav-logo:hover img {
  transform: translateY(-1px) scale(1.02);
  filter: drop-shadow(0 4px 14px rgba(201,164,92,0.35));
}
.nav-logo span {
  font-family: var(--rv-font-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  font-size: 1.22rem;
  background: linear-gradient(135deg, #fff 30%, var(--rv-gold-light) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.footer-brand img {
  height: 52px !important;
  width: auto;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.35));
}

.lead-mockup-icon {
  background: radial-gradient(circle at 30% 20%, rgba(201,164,92,0.28), rgba(30,96,64,0.18));
  border: 1px solid rgba(201,164,92,0.35);
  backdrop-filter: blur(6px);
}

/* ═══════════════════════════════════════════════════════════════
   EXPERT POLISH — Élévation globale niveau cabinet haut-de-gamme
   ═══════════════════════════════════════════════════════════════ */

.section-title,
h2.section-title {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  font-size: clamp(1.9rem, 3.2vw, 2.6rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em !important;
  color: var(--rv-emerald-950) !important;
  max-width: 840px;
  margin-left: auto;
  margin-right: auto;
}
.section-tag {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  font-family: var(--rv-font-body) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  color: var(--rv-emerald-600) !important;
  background: transparent !important;
  padding: 0 !important;
  margin-bottom: 1.2rem;
}
.section-tag::before,
.section-tag::after {
  content: '';
  width: 28px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--rv-gold), transparent);
}

.section-sub {
  font-family: var(--rv-font-body);
  font-size: 1.05rem !important;
  line-height: 1.7 !important;
  color: var(--rv-slate) !important;
  max-width: 680px;
  margin: 1rem auto 0 !important;
  font-weight: 400;
}

.btn {
  position: relative;
  overflow: hidden;
  font-family: var(--rv-font-body) !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  border-radius: 12px !important;
  padding: 14px 28px !important;
  transition: transform var(--rv-fast), box-shadow var(--rv-base), background var(--rv-base) !important;
}
.btn::after {
  content: '';
  position: absolute;
  top: 0; left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,0.35) 50%, transparent 80%);
  transform: skewX(-20deg);
  transition: left 0.7s var(--rv-ease);
  pointer-events: none;
}
.btn:hover::after { left: 130%; }
.btn-primary,
.btn.btn-green,
.btn-green-dark {
  background: linear-gradient(135deg, var(--rv-emerald-700), var(--rv-emerald-500)) !important;
  color: #fff !important;
  box-shadow: var(--rv-shadow-emerald);
  border: none !important;
}
.btn-primary:hover,
.btn.btn-green:hover,
.btn-green-dark:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 60px rgba(30,96,64,0.35), 0 10px 20px rgba(30,96,64,0.22) !important;
}

.btn-gold, a[href*="calendly"].btn {
  background: linear-gradient(135deg, #C9A45C 0%, #E4C98C 50%, #C9A45C 100%) !important;
  background-size: 200% 200% !important;
  color: #1A1610 !important;
  border: none !important;
  box-shadow: var(--rv-shadow-gold) !important;
  animation: rv-badge-shine 5s ease-in-out infinite;
}

.value-card,
.process-step,
.testimonial,
.testimonial-card {
  background: #fff;
  border: 1px solid rgba(30,96,64,0.06) !important;
  border-radius: 18px !important;
  box-shadow: var(--rv-shadow-xs) !important;
  transition: transform var(--rv-base), box-shadow var(--rv-base), border-color var(--rv-base) !important;
  position: relative;
}
.value-card:hover,
.process-step:hover,
.testimonial:hover,
.testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--rv-shadow-md) !important;
  border-color: rgba(201,164,92,0.25) !important;
}
.value-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--rv-emerald-100), var(--rv-emerald-50));
  font-size: 1.9rem;
  margin-bottom: 1rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 8px 20px rgba(30,96,64,0.08);
}

.price,
.service-header .price {
  font-family: var(--rv-font-display) !important;
  font-weight: 500 !important;
  font-size: 1.15rem !important;
  letter-spacing: 0.01em;
}

.bg-light,
section.bg-light {
  background:
    radial-gradient(ellipse at top, rgba(30,96,64,0.04), transparent 60%),
    linear-gradient(180deg, #F7F5EE 0%, #FBFAF6 100%) !important;
}

.section + .section::before {
  content: '';
  display: block;
  width: 64px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--rv-gold), transparent);
  margin: 0 auto 3rem;
  opacity: 0.5;
}

img[src*="jaouder"], .team-photo, .author-photo {
  border-radius: 20px;
  box-shadow: var(--rv-shadow-lg);
  border: 1px solid rgba(201,164,92,0.18);
}

.section p a:not(.btn),
.footer-links a {
  position: relative;
  color: var(--rv-emerald-600);
  text-decoration: none;
  background-image: linear-gradient(var(--rv-gold), var(--rv-gold));
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size var(--rv-base), color var(--rv-fast);
}
.section p a:not(.btn):hover { background-size: 100% 1px; color: var(--rv-emerald-700); }

html { scroll-behavior: smooth; scroll-padding-top: 100px; }

/* Le clipping venait de `overflow:hidden` sur la carte.
   On libère la carte et on applique le clip au header uniquement. */
.service-card {
  overflow: visible !important;
  background: #fff;
  border: 1px solid rgba(30,96,64,0.08) !important;
  border-radius: 20px !important;
  box-shadow: var(--rv-shadow-sm);
  transition: transform var(--rv-base), box-shadow var(--rv-base), border-color var(--rv-base) !important;
  position: relative;
}
.service-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(201,164,92,0) 0%, rgba(201,164,92,0.35) 50%, rgba(30,96,64,0.25) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0;
  transition: opacity var(--rv-base);
  pointer-events: none;
}
.service-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: var(--rv-shadow-lg), 0 0 40px rgba(30,96,64,0.12) !important;
  border-color: rgba(201,164,92,0.25) !important;
}
.service-card:hover::before { opacity: 1; }
.service-header {
  border-radius: 20px 20px 0 0 !important;
  position: relative;
  overflow: hidden;
}
.service-header::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 10%, rgba(255,255,255,0.25), transparent 55%);
  pointer-events: none;
}

.service-badge {
  top: -16px !important;
  background: linear-gradient(135deg, #C9A45C 0%, #E4C98C 45%, #C9A45C 100%) !important;
  background-size: 200% 200% !important;
  color: #1A1610 !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  padding: 7px 18px !important;
  border-radius: 999px !important;
  box-shadow:
    0 6px 20px rgba(201,164,92,0.45),
    0 2px 6px rgba(15,26,20,0.15),
    inset 0 1px 0 rgba(255,255,255,0.4) !important;
  border: 1px solid rgba(255,255,255,0.25);
  animation: rv-badge-shine 4s ease-in-out infinite;
  z-index: 20 !important;
}
@keyframes rv-badge-shine {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

.service-card:has(.service-badge) {
  transform: translateY(-4px);
  border-color: rgba(201,164,92,0.25) !important;
  box-shadow: var(--rv-shadow-md), 0 0 0 1px rgba(201,164,92,0.18) !important;
}
.service-card:has(.service-badge):hover {
  transform: translateY(-12px) !important;
}

/* ═══════════════════════════════════════════════════════════════
   COUCHE INTERACTIVE PREMIUM
   Progress bar · Curseur · Sticky CTA · Reveal · Drop caps · Blockquote · Timeline
   ═══════════════════════════════════════════════════════════════ */

.rv-progress {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--rv-gold) 0%, var(--rv-emerald-400) 50%, var(--rv-gold-light) 100%);
  transform-origin: 0 50%;
  transform: scaleX(0);
  z-index: 9999;
  pointer-events: none;
  box-shadow: 0 1px 8px rgba(201,164,92,0.4);
}

.rv-cursor, .rv-cursor-dot {
  position: fixed;
  top: 0; left: 0;
  pointer-events: none;
  z-index: 9998;
  border-radius: 50%;
  will-change: transform;
  mix-blend-mode: difference;
  transition: opacity 0.3s;
}
.rv-cursor {
  width: 36px;
  height: 36px;
  margin: -18px 0 0 -18px;
  border: 1.5px solid rgba(201,164,92,0.8);
  transition: width 0.3s var(--rv-ease), height 0.3s var(--rv-ease),
              margin 0.3s var(--rv-ease), background 0.3s, opacity 0.3s;
}
.rv-cursor-dot {
  width: 6px;
  height: 6px;
  margin: -3px 0 0 -3px;
  background: var(--rv-gold);
}
.rv-cursor--hover {
  width: 56px;
  height: 56px;
  margin: -28px 0 0 -28px;
  background: rgba(201,164,92,0.1);
  border-color: var(--rv-gold-light);
}
.rv-has-custom-cursor { cursor: none; }
.rv-has-custom-cursor a,
.rv-has-custom-cursor button,
.rv-has-custom-cursor .btn,
.rv-has-custom-cursor input,
.rv-has-custom-cursor textarea,
.rv-has-custom-cursor label { cursor: none; }
@media (max-width: 960px) {
  .rv-cursor, .rv-cursor-dot { display: none; }
  .rv-has-custom-cursor, .rv-has-custom-cursor a,
  .rv-has-custom-cursor button, .rv-has-custom-cursor .btn { cursor: auto; }
}

.rv-sticky-cta {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 14px 22px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rv-emerald-700), var(--rv-emerald-500));
  color: #fff !important;
  font-family: var(--rv-font-body);
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.01em;
  text-decoration: none;
  box-shadow:
    0 10px 30px rgba(30,96,64,0.35),
    0 4px 12px rgba(15,26,20,0.15),
    inset 0 1px 0 rgba(255,255,255,0.15);
  border: 1px solid rgba(201,164,92,0.35);
  transform: translateY(140%);
  opacity: 0;
  transition: transform 0.6s var(--rv-ease), opacity 0.4s, box-shadow var(--rv-base);
  z-index: 9990;
}
.rv-sticky-cta.is-visible {
  transform: translateY(0);
  opacity: 1;
}
.rv-sticky-cta:hover {
  box-shadow:
    0 16px 40px rgba(30,96,64,0.45),
    0 6px 16px rgba(201,164,92,0.3),
    inset 0 1px 0 rgba(255,255,255,0.2);
  transform: translateY(-4px);
}
.rv-sticky-cta__icon {
  display: inline-flex;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.14);
  border-radius: 50%;
  font-size: 0.85rem;
}
.whatsapp-float ~ .rv-sticky-cta,
.rv-sticky-cta { bottom: 5.5rem; }
@media (max-width: 480px) {
  .rv-sticky-cta { right: 0.8rem; bottom: 5rem; padding: 12px 16px; font-size: 0.82rem; }
  .rv-sticky-cta__label { display: none; }
  .rv-sticky-cta__icon { width: 22px; height: 22px; }
}

[data-reveal] {
  opacity: 0;
  filter: blur(8px);
  transform: translateY(24px);
  transition: opacity 0.9s var(--rv-ease), filter 0.9s var(--rv-ease), transform 0.9s var(--rv-ease);
}
[data-reveal="left"]  { transform: translateX(-40px); }
[data-reveal="right"] { transform: translateX(40px); }
[data-reveal="scale"] { transform: scale(0.92); }
[data-reveal].is-revealed {
  opacity: 1;
  filter: blur(0);
  transform: none;
}

.rv-drop-cap::first-letter,
article.prose > p:first-of-type::first-letter,
.section-intro > p:first-of-type::first-letter {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 3.8em;
  float: left;
  line-height: 0.9;
  padding: 0.12em 0.12em 0 0;
  margin-top: 0.08em;
  color: var(--rv-emerald-700);
  background: linear-gradient(135deg, var(--rv-emerald-700), var(--rv-emerald-500));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.rv-manifesto {
  position: relative;
  max-width: 880px;
  margin: 4rem auto;
  padding: 4.5rem 3.5rem 3.5rem;
  text-align: center;
  background:
    radial-gradient(ellipse at top, rgba(245,236,215,0.5), transparent 65%),
    linear-gradient(180deg, #FEFCF7 0%, #FBFAF6 100%);
  border-radius: 28px;
  box-shadow:
    0 30px 80px rgba(15,26,20,0.08),
    0 10px 30px rgba(30,96,64,0.05),
    inset 0 1px 0 rgba(255,255,255,0.8);
  overflow: hidden;
  isolation: isolate;
}
.rv-manifesto::before {
  content: '“';
  position: absolute;
  top: -0.15em;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1;
  color: var(--rv-gold);
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}
.rv-manifesto::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(201,164,92,0.45), rgba(201,164,92,0.08) 30%, transparent 60%, rgba(30,96,64,0.18));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}
.rv-manifesto blockquote {
  position: relative;
  z-index: 2;
  margin: 0 auto;
  padding: 0;
  border: none;
  background: none;
  max-width: 720px;
}
.rv-manifesto blockquote p {
  font-family: var(--rv-font-display);
  font-weight: 400;
  font-style: italic;
  color: var(--rv-emerald-950);
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  line-height: 1.35;
  letter-spacing: -0.015em;
  margin: 0;
}
.rv-manifesto-accent {
  font-size: clamp(1.9rem, 3.4vw, 2.7rem) !important;
  line-height: 1.15 !important;
  margin-bottom: 1.5rem !important;
  color: var(--rv-emerald-800) !important;
}
.rv-manifesto-accent em {
  font-style: italic;
  background: linear-gradient(135deg, #C9A45C 0%, #E4C98C 50%, #C9A45C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
  padding: 0 0.1em;
}
.rv-manifesto-accent em::after {
  content: '';
  position: absolute;
  left: 5%; right: 5%;
  bottom: 0.05em;
  height: 0.55em;
  background: rgba(201,164,92,0.14);
  z-index: -1;
  border-radius: 3px;
}
.rv-manifesto-body {
  font-size: clamp(1rem, 1.5vw, 1.15rem) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  color: var(--rv-slate) !important;
  line-height: 1.75 !important;
  margin-top: 1.8rem !important;
  font-family: var(--rv-font-body) !important;
  letter-spacing: 0 !important;
}
.rv-manifesto-author {
  position: relative;
  z-index: 2;
  margin-top: 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
}
.rv-manifesto-author::before {
  content: '';
  display: block;
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--rv-gold), transparent);
  margin-bottom: 1.3rem;
}
.rv-manifesto-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 0.7rem;
  border: 2px solid #fff;
  box-shadow:
    0 0 0 1px rgba(201,164,92,0.45),
    0 8px 20px rgba(15,26,20,0.12);
}
.rv-manifesto-name {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--rv-emerald-900);
  letter-spacing: -0.01em;
}
.rv-manifesto-role {
  font-family: var(--rv-font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rv-slate);
  opacity: 0.75;
}

@media (max-width: 640px) {
  .rv-manifesto { padding: 3.5rem 1.5rem 2.5rem; margin: 2rem auto; }
  .rv-manifesto::before { font-size: 9rem; top: -0.05em; }
}

blockquote:not(.rv-manifesto blockquote),
.rv-quote {
  font-family: var(--rv-font-display);
  font-style: italic;
  font-size: 1.25rem;
  line-height: 1.6;
  color: var(--rv-emerald-900);
  padding: 1.5rem 2rem;
  margin: 2rem auto;
  max-width: 720px;
  border-left: 3px solid var(--rv-gold);
  background: linear-gradient(90deg, rgba(245,236,215,0.3), transparent);
}

.rv-timeline {
  position: relative;
  max-width: 780px;
  margin: 3rem auto;
  padding-left: 2.5rem;
}
.rv-timeline::before {
  content: '';
  position: absolute;
  left: 14px;
  top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--rv-gold), var(--rv-emerald-400), transparent);
}
.rv-timeline-step {
  position: relative;
  padding: 0.5rem 0 2.5rem 2rem;
}
.rv-timeline-step::before {
  content: attr(data-step);
  position: absolute;
  left: -2.5rem;
  top: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 2px solid var(--rv-gold);
  border-radius: 50%;
  font-family: var(--rv-font-display);
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--rv-emerald-700);
  box-shadow: 0 4px 12px rgba(201,164,92,0.3);
}
.rv-timeline-step h4 {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.2rem;
  margin: 0 0 0.5rem;
  color: var(--rv-emerald-900);
  letter-spacing: -0.01em;
}
.rv-timeline-step p {
  color: var(--rv-slate);
  font-size: 0.98rem;
  line-height: 1.65;
}

.rv-scroll-indicator {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 36px;
  border: 1.5px solid rgba(201,164,92,0.5);
  border-radius: 12px;
  pointer-events: none;
  z-index: 5;
}
.rv-scroll-indicator::before {
  content: '';
  position: absolute;
  top: 6px; left: 50%;
  width: 3px; height: 6px;
  margin-left: -1.5px;
  background: var(--rv-gold);
  border-radius: 2px;
  animation: rv-scroll-pulse 2s var(--rv-ease) infinite;
}
@keyframes rv-scroll-pulse {
  0%   { opacity: 1; transform: translateY(0); }
  70%  { opacity: 0; transform: translateY(12px); }
  100% { opacity: 0; transform: translateY(12px); }
}

.navbar.scrolled {
  background: rgba(10, 25, 17, 0.82) !important;
  backdrop-filter: blur(20px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.6) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2), 0 0 0 1px rgba(201,164,92,0.12) !important;
  padding: 0.6rem 0 !important;
}
.navbar.scrolled .nav-logo img { height: 38px !important; }

/* ═══════════════════════════════════════════════════════════════
   VIEW TRANSITIONS API (navigation cross-document)
   ═══════════════════════════════════════════════════════════════ */
@view-transition { navigation: auto; }

::view-transition-old(root) {
  animation: rv-vt-out 0.35s var(--rv-ease) both;
}
::view-transition-new(root) {
  animation: rv-vt-in 0.45s var(--rv-ease) both;
}
@keyframes rv-vt-out {
  to { opacity: 0; transform: translateY(-6px) scale(0.995); filter: blur(3px); }
}
@keyframes rv-vt-in {
  from { opacity: 0; transform: translateY(8px) scale(1.005); filter: blur(4px); }
}

.nav-logo img { view-transition-name: rv-navlogo; }
.navbar        { view-transition-name: rv-navbar; }

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root) { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   AURORA HERO — mesh gradient animé avec @property
   ═══════════════════════════════════════════════════════════════ */
@property --rv-aurora-a {
  syntax: '<color>';
  initial-value: #0B2919;
  inherits: false;
}
@property --rv-aurora-b {
  syntax: '<color>';
  initial-value: #1A4E30;
  inherits: false;
}
@property --rv-aurora-c {
  syntax: '<color>';
  initial-value: #2D7A52;
  inherits: false;
}
@property --rv-aurora-angle {
  syntax: '<angle>';
  initial-value: 145deg;
  inherits: false;
}

.hero {
  --rv-aurora-a: #0B2919;
  --rv-aurora-b: #1A4E30;
  --rv-aurora-c: #2D7A52;
  --rv-aurora-angle: 145deg;
  background:
    radial-gradient(ellipse 1200px 800px at 15% 20%, rgba(201,164,92,0.12), transparent 60%),
    radial-gradient(ellipse 900px 700px at 85% 80%, rgba(76,175,112,0.22), transparent 65%),
    radial-gradient(ellipse 700px 600px at 50% 50%, rgba(30,96,64,0.2), transparent 70%),
    linear-gradient(var(--rv-aurora-angle), var(--rv-aurora-a) 0%, var(--rv-aurora-b) 55%, var(--rv-aurora-c) 100%) !important;
  animation: rv-aurora 18s var(--rv-ease) infinite alternate;
  position: relative;
}
@keyframes rv-aurora {
  0%   { --rv-aurora-a: #0B2919; --rv-aurora-b: #1A4E30; --rv-aurora-c: #2D7A52; --rv-aurora-angle: 145deg; }
  33%  { --rv-aurora-a: #102E1F; --rv-aurora-b: #1E6040; --rv-aurora-c: #2D7A52; --rv-aurora-angle: 165deg; }
  66%  { --rv-aurora-a: #0B2919; --rv-aurora-b: #163D2A; --rv-aurora-c: #1E6040; --rv-aurora-angle: 125deg; }
  100% { --rv-aurora-a: #102E1F; --rv-aurora-b: #1A4E30; --rv-aurora-c: #2D7A52; --rv-aurora-angle: 155deg; }
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  pointer-events: none;
  opacity: 0.6;
  mix-blend-mode: overlay;
  z-index: 1;
}
.hero > * { position: relative; z-index: 2; }
@media (prefers-reduced-motion: reduce) {
  .hero { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   MICRO-TYPOGRAPHIE FRANÇAISE
   ═══════════════════════════════════════════════════════════════ */
.rv-caps,
abbr[title] {
  font-variant-caps: all-small-caps;
  font-feature-settings: 'c2sc', 'smcp';
  letter-spacing: 0.04em;
  font-weight: 500;
  text-decoration: none;
  border-bottom: none;
}
body {
  font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1, 'ss01' 1;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}
.price, .tarif-price, .stat-num, .rv-compare-price,
.rv-roi-result-value, .rv-roi-value {
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1, 'lnum' 1;
}
.rv-manifesto blockquote p:first-of-type::before {
  content: '«\00A0';
  color: var(--rv-gold);
  font-weight: 500;
}
.rv-manifesto blockquote .rv-manifesto-body::after {
  content: '\00A0»';
  color: var(--rv-gold);
}

/* ═══════════════════════════════════════════════════════════════
   TABLEAU COMPARATIF PREMIUM (services.html)
   ═══════════════════════════════════════════════════════════════ */
.rv-compare {
  background: #fff;
  border-radius: 24px;
  padding: 1rem;
  box-shadow: var(--rv-shadow-md);
  border: 1px solid rgba(30,96,64,0.08);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.rv-compare-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 720px;
}
.rv-compare-table th,
.rv-compare-table td {
  padding: 1rem 1.3rem;
  text-align: center;
  vertical-align: middle;
  font-size: 0.94rem;
  border-bottom: 1px solid rgba(30,96,64,0.06);
}
.rv-compare-table thead th {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--rv-emerald-900);
  padding: 1.5rem 1rem;
  background: var(--rv-emerald-50);
  border-bottom: 2px solid var(--rv-emerald-100);
  position: relative;
}
.rv-compare-table thead th:first-child { border-top-left-radius: 16px; }
.rv-compare-table thead th:last-child  { border-top-right-radius: 16px; }
.rv-compare-feature { text-align: left !important; }
.rv-compare-table tbody th {
  font-family: var(--rv-font-body);
  font-weight: 500;
  color: var(--rv-emerald-900);
  text-align: left;
  font-size: 0.92rem;
}
.rv-compare-price {
  display: block;
  margin-top: 0.3rem;
  font-family: var(--rv-font-display);
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--rv-emerald-700);
  letter-spacing: -0.01em;
}
.rv-compare-table td[data-v="yes"] {
  color: var(--rv-emerald-500);
  font-weight: 600;
  font-size: 1.1rem;
}
.rv-compare-table td[data-v="no"] {
  color: #cbd5c7;
  font-weight: 300;
}
.rv-compare-featured {
  background: linear-gradient(180deg, rgba(212,168,67,0.22), rgba(212,168,67,0.12)) !important;
  position: relative;
  border-left: 2px solid var(--rv-gold) !important;
  border-right: 2px solid var(--rv-gold) !important;
  color: var(--rv-emerald-900) !important;
  font-weight: 600;
}
.rv-compare-table tbody .rv-compare-featured {
  box-shadow: inset 0 0 0 1px rgba(212,168,67,0.15);
}
.rv-compare-table tbody tr:last-child .rv-compare-featured {
  border-bottom: 2px solid var(--rv-gold) !important;
}
.rv-compare-table thead .rv-compare-featured {
  background: linear-gradient(135deg, #E9C56A, #D4A843 60%, #B8902F) !important;
  color: #1A1610 !important;
  border-top: 2px solid var(--rv-gold) !important;
  border-bottom: 2px solid var(--rv-gold) !important;
  font-weight: 700;
  text-shadow: 0 1px 0 rgba(255,255,255,0.25);
}
.rv-compare-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #C9A45C, #E4C98C, #C9A45C);
  background-size: 200% 200%;
  color: #1A1610;
  font-family: var(--rv-font-body);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(201,164,92,0.4);
  white-space: nowrap;
  animation: rv-badge-shine 4s ease-in-out infinite;
}
.rv-compare-cta-row th,
.rv-compare-cta-row td { border-bottom: none; padding-top: 1.5rem !important; }
.rv-compare-cta-row td:last-child {
  border-bottom-right-radius: 16px;
}
.btn-sm { padding: 9px 18px !important; font-size: 0.82rem !important; }

@media (max-width: 768px) {
  .rv-compare { border-radius: 18px; padding: 0.5rem; }
  .rv-compare-table th,
  .rv-compare-table td { padding: 0.75rem 0.8rem; font-size: 0.84rem; }
  .rv-compare-price { font-size: 1.05rem; }
}

/* ═══════════════════════════════════════════════════════════════
   MARQUEE PRESSE & LABELS (index.html)
   ═══════════════════════════════════════════════════════════════ */
.rv-marquee {
  padding: 3.5rem 0;
  background: linear-gradient(180deg, #fff, var(--rv-emerald-50));
  border-top: 1px solid rgba(30,96,64,0.06);
  border-bottom: 1px solid rgba(30,96,64,0.06);
  overflow: hidden;
  position: relative;
}
.rv-marquee-title {
  text-align: center;
  font-family: var(--rv-font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--rv-slate);
  margin-bottom: 2rem;
}
.rv-marquee-title::before,
.rv-marquee-title::after {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1px;
  background: var(--rv-gold);
  vertical-align: middle;
  margin: 0 14px;
  opacity: 0.6;
}
.rv-marquee-track {
  display: flex;
  gap: 4rem;
  width: max-content;
  animation: rv-marquee-scroll 38s linear infinite;
}
.rv-marquee:hover .rv-marquee-track { animation-play-state: paused; }
.rv-marquee-item {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--rv-emerald-800);
  letter-spacing: -0.01em;
  opacity: 0.55;
  filter: grayscale(0.3);
  transition: opacity var(--rv-fast), filter var(--rv-fast), color var(--rv-fast);
  white-space: nowrap;
}
.rv-marquee-item:hover { opacity: 1; filter: grayscale(0); color: var(--rv-emerald-700); }
.rv-marquee-item-icon {
  font-size: 1.4rem;
  opacity: 0.8;
}
.rv-marquee-item-tag {
  font-family: var(--rv-font-body);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rv-gold);
  border: 1px solid rgba(201,164,92,0.35);
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(245,236,215,0.3);
}
.rv-marquee::before,
.rv-marquee::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 120px;
  pointer-events: none;
  z-index: 2;
}
.rv-marquee::before { left: 0; background: linear-gradient(90deg, var(--rv-emerald-50), transparent); }
.rv-marquee::after  { right: 0; background: linear-gradient(-90deg, var(--rv-emerald-50), transparent); }
@keyframes rv-marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ═══════════════════════════════════════════════════════════════
   CALCULATEUR ROI PREMIUM (index.html / services.html)
   ═══════════════════════════════════════════════════════════════ */
.rv-roi {
  background:
    radial-gradient(ellipse at top right, rgba(201,164,92,0.1), transparent 50%),
    linear-gradient(145deg, var(--rv-emerald-950), var(--rv-emerald-800) 60%, var(--rv-emerald-900)) !important;
  padding: 5rem 0 !important;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.rv-roi::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 80%, rgba(76,175,112,0.15), transparent 50%);
  pointer-events: none;
}
.rv-roi-inner {
  position: relative;
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.rv-roi-title {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: clamp(2rem, 3.6vw, 2.8rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-align: center;
  margin-bottom: 0.6rem;
  color: #fff;
}
.rv-roi-title em {
  font-style: italic;
  background: linear-gradient(135deg, #fff 20%, var(--rv-gold-light) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.rv-roi-sub {
  text-align: center;
  color: rgba(255,255,255,0.7);
  font-size: 1.02rem;
  max-width: 640px;
  margin: 0 auto 3rem;
  line-height: 1.65;
}
.rv-roi-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 3rem;
  align-items: start;
}
.rv-roi-form {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(201,164,92,0.2);
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.rv-roi-field { margin-bottom: 1.5rem; }
.rv-roi-field:last-child { margin-bottom: 0; }
.rv-roi-field label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: var(--rv-font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.82);
  margin-bottom: 0.7rem;
  text-transform: uppercase;
}
.rv-roi-field label .rv-roi-value {
  font-family: var(--rv-font-display);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--rv-gold-light);
  text-transform: none;
  letter-spacing: -0.01em;
}
.rv-roi-field input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  background: linear-gradient(90deg, var(--rv-gold) var(--fill, 50%), rgba(255,255,255,0.1) var(--fill, 50%));
  border-radius: 999px;
  outline: none;
  cursor: pointer;
}
.rv-roi-field input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 22px;
  height: 22px;
  background: linear-gradient(135deg, var(--rv-gold-light), var(--rv-gold));
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(201,164,92,0.5);
  cursor: grab;
  transition: transform 0.15s;
}
.rv-roi-field input[type="range"]::-webkit-slider-thumb:hover { transform: scale(1.1); }
.rv-roi-field input[type="range"]::-moz-range-thumb {
  width: 22px;
  height: 22px;
  background: linear-gradient(135deg, var(--rv-gold-light), var(--rv-gold));
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(201,164,92,0.5);
  cursor: grab;
}
.rv-roi-select-group {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.rv-roi-select-group button {
  flex: 1;
  min-width: 80px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.85);
  padding: 10px 14px;
  border-radius: 10px;
  font-family: var(--rv-font-body);
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--rv-fast);
}
.rv-roi-select-group button:hover {
  background: rgba(201,164,92,0.12);
  border-color: rgba(201,164,92,0.35);
}
.rv-roi-select-group button.is-active {
  background: linear-gradient(135deg, var(--rv-gold), var(--rv-gold-light));
  color: #1A1610;
  border-color: var(--rv-gold);
  box-shadow: 0 6px 18px rgba(201,164,92,0.4);
}
.rv-roi-result {
  position: sticky;
  top: 110px;
  padding: 2rem;
  background: linear-gradient(145deg, rgba(201,164,92,0.08), rgba(255,255,255,0.03));
  border: 1px solid rgba(201,164,92,0.3);
  border-radius: 20px;
  text-align: center;
}
.rv-roi-result-label {
  font-family: var(--rv-font-body);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rv-gold-light);
  margin-bottom: 1rem;
}
.rv-roi-result-value {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  line-height: 1;
  letter-spacing: -0.03em;
  background: linear-gradient(135deg, #fff 30%, var(--rv-gold-light) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 0.5rem;
  transition: transform var(--rv-fast);
}
.rv-roi-result-unit {
  font-family: var(--rv-font-body);
  font-size: 0.82rem;
  color: rgba(255,255,255,0.6);
  margin-bottom: 1.8rem;
}
.rv-roi-breakdown {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin: 1.8rem 0;
  padding: 1.2rem 0;
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.rv-roi-breakdown-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.75);
}
.rv-roi-breakdown-row strong { color: var(--rv-gold-light); font-weight: 600; }
.rv-roi-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: linear-gradient(135deg, var(--rv-gold), var(--rv-gold-light), var(--rv-gold));
  background-size: 200% 200%;
  color: #1A1610 !important;
  padding: 14px 24px;
  border-radius: 999px;
  font-family: var(--rv-font-body);
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
  box-shadow: var(--rv-shadow-gold);
  animation: rv-badge-shine 5s ease-in-out infinite;
  transition: transform var(--rv-fast);
}
.rv-roi-cta:hover { transform: translateY(-2px); }
.rv-roi-disclaimer {
  margin-top: 1rem;
  font-size: 0.72rem;
  color: rgba(255,255,255,0.4);
  font-style: italic;
}
@media (max-width: 860px) {
  .rv-roi-grid { grid-template-columns: 1fr; gap: 2rem; }
  .rv-roi-result { position: static; }
}

/* ═══════════════════════════════════════════════════════════════
   FORMULAIRE MULTI-ÉTAPES (contact.html)
   ═══════════════════════════════════════════════════════════════ */
.rv-wizard {
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  border-radius: 24px;
  border: 1px solid rgba(30,96,64,0.08);
  box-shadow: var(--rv-shadow-lg);
  overflow: hidden;
}
.rv-wizard-progress {
  display: flex;
  padding: 1.5rem 2rem 0;
  gap: 0.4rem;
  background: var(--rv-emerald-50);
  padding-bottom: 1.5rem;
}
.rv-wizard-progress-bar {
  flex: 1;
  height: 4px;
  background: rgba(30,96,64,0.1);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.rv-wizard-progress-bar.is-done,
.rv-wizard-progress-bar.is-active {
  background: linear-gradient(90deg, var(--rv-emerald-500), var(--rv-gold));
}
.rv-wizard-body {
  padding: 2.5rem 2rem;
  min-height: 360px;
}
.rv-wizard-step { display: none; animation: rv-wizard-in 0.45s var(--rv-ease); }
.rv-wizard-step.is-active { display: block; }
@keyframes rv-wizard-in {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}
.rv-wizard-step-num {
  font-family: var(--rv-font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rv-gold);
  margin-bottom: 0.6rem;
}
.rv-wizard-step h3 {
  font-family: var(--rv-font-display);
  font-weight: 500;
  font-size: 1.7rem;
  letter-spacing: -0.02em;
  color: var(--rv-emerald-950);
  margin: 0 0 0.6rem;
}
.rv-wizard-step .rv-wizard-sub {
  color: var(--rv-slate);
  font-size: 0.96rem;
  line-height: 1.65;
  margin-bottom: 1.8rem;
}
.rv-choice-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.8rem;
}
.rv-choice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  padding: 1.1rem 1.2rem;
  border: 1.5px solid rgba(30,96,64,0.12);
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
  transition: all var(--rv-fast);
  text-align: left;
  font-family: var(--rv-font-body);
  position: relative;
}
.rv-choice input { position: absolute; opacity: 0; pointer-events: none; }
.rv-choice-icon { font-size: 1.5rem; margin-bottom: 0.3rem; }
.rv-choice-label { font-weight: 600; color: var(--rv-emerald-900); font-size: 0.95rem; }
.rv-choice-desc  { font-size: 0.82rem; color: var(--rv-slate); line-height: 1.4; }
.rv-choice:hover { border-color: var(--rv-gold); transform: translateY(-2px); box-shadow: var(--rv-shadow-sm); }
.rv-choice:has(input:checked),
.rv-choice.is-selected {
  border-color: var(--rv-emerald-500);
  background: linear-gradient(135deg, rgba(76,175,112,0.05), rgba(201,164,92,0.04));
  box-shadow: 0 0 0 3px rgba(76,175,112,0.1);
}
.rv-choice:has(input:checked)::after,
.rv-choice.is-selected::after {
  content: '✓';
  position: absolute;
  top: 10px; right: 12px;
  width: 22px; height: 22px;
  background: var(--rv-emerald-500);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
}

.rv-field { margin-bottom: 1.2rem; }
.rv-field label {
  display: block;
  font-family: var(--rv-font-body);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--rv-emerald-900);
  margin-bottom: 0.5rem;
}
.rv-field input,
.rv-field textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1.5px solid rgba(30,96,64,0.12);
  border-radius: 10px;
  font-family: var(--rv-font-body);
  font-size: 0.95rem;
  color: var(--rv-emerald-950);
  background: #fff;
  transition: border-color var(--rv-fast), box-shadow var(--rv-fast);
}
.rv-field input:focus,
.rv-field textarea:focus {
  outline: none;
  border-color: var(--rv-emerald-500);
  box-shadow: 0 0 0 3px rgba(76,175,112,0.15);
}
.rv-field textarea { min-height: 120px; resize: vertical; }

.rv-wizard-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 2rem;
  background: #fafaf7;
  border-top: 1px solid rgba(30,96,64,0.06);
}
.rv-wizard-back {
  background: transparent;
  border: none;
  color: var(--rv-slate);
  font-family: var(--rv-font-body);
  font-weight: 500;
  cursor: pointer;
  padding: 10px 16px;
  font-size: 0.9rem;
  transition: color var(--rv-fast);
}
.rv-wizard-back:hover { color: var(--rv-emerald-700); }
.rv-wizard-back[disabled] { opacity: 0; pointer-events: none; }
.rv-wizard-next {
  background: linear-gradient(135deg, var(--rv-emerald-700), var(--rv-emerald-500));
  color: #fff;
  border: none;
  padding: 13px 28px;
  border-radius: 10px;
  font-family: var(--rv-font-body);
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
  box-shadow: var(--rv-shadow-emerald);
  transition: transform var(--rv-fast), box-shadow var(--rv-base);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.rv-wizard-next:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(30,96,64,0.35); }
.rv-wizard-done {
  text-align: center;
  padding: 2rem 1rem;
}
.rv-wizard-done-icon {
  width: 72px; height: 72px;
  margin: 0 auto 1.3rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--rv-emerald-500), var(--rv-emerald-400));
  color: #fff;
  font-size: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--rv-shadow-emerald);
}

.rv-logo-medallion {
  position: relative;
  width: 360px;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.rv-logo-halo {
  position: absolute;
  inset: -8%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(201,164,92,0.22), transparent 55%),
    radial-gradient(circle at 70% 70%, rgba(30,96,64,0.28), transparent 60%),
    radial-gradient(circle at 50% 50%, rgba(124,210,156,0.10), transparent 70%);
  filter: blur(30px);
  animation: rv-halo-pulse 7s ease-in-out infinite;
  pointer-events: none;
}
@keyframes rv-halo-pulse {
  0%, 100% { opacity: 0.75; transform: scale(1); }
  50%      { opacity: 1;    transform: scale(1.04); }
}
.rv-logo-ring {
  position: relative;
  width: 86%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  padding: 14px;
  background:
    conic-gradient(from 140deg,
      var(--rv-gold) 0deg,
      var(--rv-gold-light) 90deg,
      var(--rv-gold) 180deg,
      #8a6f3a 270deg,
      var(--rv-gold) 360deg);
  box-shadow:
    0 30px 80px rgba(30,96,64,0.30),
    0 10px 30px rgba(15,26,20,0.15),
    inset 0 0 0 1px rgba(255,255,255,0.25);
  animation: rv-ring-rotate 20s linear infinite;
}
@keyframes rv-ring-rotate {
  to { transform: rotate(360deg); }
}
.rv-logo-inner {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, #fff 0%, #F4FAF6 60%, #E6F4EB 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14%;
  box-shadow:
    inset 0 2px 8px rgba(30,96,64,0.08),
    inset 0 -4px 16px rgba(30,96,64,0.04);
  animation: rv-ring-rotate 20s linear infinite reverse;
}
.rv-logo-inner img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 6px 14px rgba(30,96,64,0.18));
}
.rv-logo-caption {
  position: absolute;
  bottom: -2.2rem;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--rv-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rv-emerald-700);
  opacity: 0.65;
  white-space: nowrap;
}
.rv-logo-caption::before,
.rv-logo-caption::after {
  content: '';
  display: inline-block;
  width: 22px;
  height: 1px;
  background: var(--rv-gold);
  vertical-align: middle;
  margin: 0 10px;
  opacity: 0.6;
}

@media (max-width: 768px) {
  .section { padding: 80px 0 !important; }
  .hero { min-height: auto !important; padding: 140px 0 80px !important; }
  .hero h1 { font-size: 2.1rem !important; }
  .hero-stats { gap: 1.2rem !important; }
  .stat-num { font-size: 1.5rem !important; }
  .cta-banner { padding: 80px 0 !important; }
  .nav-logo img { height: 36px !important; }
  .nav-logo span { font-size: 1.05rem; }
  .footer-brand img { height: 44px !important; }
  .rv-logo-medallion { width: 260px; margin-top: 2rem; }
}

/* ════════════════════════════════════════════════════════════
   BATCH FINAL — GLOSSAIRE / CAS CLIENT / RESSOURCES / DARK MODE
   ════════════════════════════════════════════════════════════ */

.rv-eyebrow {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  padding: 0.45rem 1rem;
  border: 1px solid rgba(201, 160, 68, 0.35);
  border-radius: 999px;
  background: rgba(201, 160, 68, 0.08);
  margin-bottom: 1.2rem;
}

.rv-section-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  color: var(--green-primary);
  font-weight: 600;
}

.rv-glossary-index a {
  display: inline-block;
  padding: 0.32rem 0.75rem;
  background: white;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--green-primary);
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s ease;
}
.rv-glossary-index a:hover {
  background: var(--green-primary);
  color: white;
  border-color: var(--green-primary);
  transform: translateY(-1px);
}

.rv-glossary {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}
.rv-glossary-item {
  background: white;
  border-radius: 18px;
  padding: 1.8rem 2rem;
  border: 1px solid var(--border);
  border-left: 4px solid var(--green-primary);
  box-shadow: 0 2px 8px rgba(26, 78, 48, 0.04);
  scroll-margin-top: 100px;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.rv-glossary-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(26, 78, 48, 0.08);
  border-left-color: var(--gold);
}
.rv-glossary-item dt {
  font-family: 'Fraunces', serif;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--green-dark);
  margin-bottom: 0.5rem;
  letter-spacing: -0.01em;
}
.rv-glossary-item dd {
  color: var(--text-mid);
  line-height: 1.75;
  margin: 0;
}
.rv-glossary-item dd strong { color: var(--green-primary); }

.rv-case-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
  margin-bottom: 4rem;
}
.rv-case-kpi {
  background: linear-gradient(145deg, white, #fafcfa);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 1.8rem 1.2rem;
  text-align: center;
  box-shadow: 0 4px 16px rgba(26, 78, 48, 0.05);
  transition: transform 0.3s ease;
}
.rv-case-kpi:hover { transform: translateY(-4px); }
.rv-case-kpi-val {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 600;
  background: linear-gradient(135deg, var(--green-primary), var(--gold));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-feature-settings: 'tnum';
  margin-bottom: 0.3rem;
}
.rv-case-kpi-lbl {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-mid);
  font-weight: 500;
}

.rv-case-section {
  margin-bottom: 3.5rem;
}
.rv-case-section h2 {
  font-family: 'Fraunces', serif;
  font-size: 1.8rem;
  color: var(--green-dark);
  margin-bottom: 1.2rem;
  font-weight: 600;
}
.rv-case-section p { color: var(--text-mid); line-height: 1.85; font-size: 1.05rem; }

.rv-case-list {
  list-style: none;
  padding: 0;
  margin: 1rem 0;
}
.rv-case-list li {
  position: relative;
  padding: 0.8rem 0 0.8rem 2.2rem;
  color: var(--text-mid);
  line-height: 1.7;
  border-bottom: 1px solid var(--border);
}
.rv-case-list li:last-child { border-bottom: none; }
.rv-case-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.15rem;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--green-primary), var(--gold));
  box-shadow: 0 0 0 4px rgba(26, 78, 48, 0.08);
}
.rv-case-list li strong { color: var(--green-primary); font-weight: 700; }

.rv-case-phases {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
  margin-top: 1.5rem;
}
.rv-case-phase {
  background: white;
  border-radius: 18px;
  padding: 1.8rem;
  border: 1px solid var(--border);
  box-shadow: 0 2px 8px rgba(26, 78, 48, 0.04);
  position: relative;
}
.rv-case-phase-num {
  font-family: 'Fraunces', serif;
  font-size: 2.4rem;
  font-weight: 600;
  color: rgba(26, 78, 48, 0.12);
  position: absolute;
  top: 0.8rem;
  right: 1.2rem;
  line-height: 1;
}
.rv-case-phase h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.15rem;
  color: var(--green-dark);
  margin-bottom: 0.6rem;
  font-weight: 600;
}
.rv-case-phase p { font-size: 0.95rem; line-height: 1.65; }

.rv-case-table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(26, 78, 48, 0.06);
  margin-top: 1rem;
  font-feature-settings: 'tnum';
}
.rv-case-table th {
  background: var(--green-dark);
  color: white;
  padding: 1rem;
  text-align: left;
  font-size: 0.88rem;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.rv-case-table td {
  padding: 0.95rem 1rem;
  border-bottom: 1px solid var(--border);
  color: var(--text-mid);
}
.rv-case-table tr:last-child td { border-bottom: none; }
.rv-case-table tr:nth-child(even) td { background: rgba(26, 78, 48, 0.02); }
.rv-case-table .rv-pos { color: var(--green-primary); font-weight: 700; }
.rv-case-note {
  font-size: 0.82rem !important;
  color: var(--text-light) !important;
  font-style: italic;
  margin-top: 0.8rem !important;
}

.rv-case-quote {
  border: none;
  background: linear-gradient(135deg, rgba(26, 78, 48, 0.04), rgba(201, 160, 68, 0.04));
  border-left: 4px solid var(--gold);
  border-radius: 0 18px 18px 0;
  padding: 2rem 2.2rem;
  margin: 2rem 0;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.65;
  color: var(--green-dark);
}
.rv-case-quote cite {
  display: block;
  font-family: 'Inter', sans-serif;
  font-style: normal;
  font-size: 0.88rem;
  color: var(--text-mid);
  margin-top: 1rem;
  letter-spacing: 0.04em;
}
.rv-case-quote-big {
  font-size: 1.4rem;
  padding: 2.8rem;
  border-left-width: 6px;
  text-align: center;
  border-radius: 18px;
  border-left: none;
  border-top: 4px solid var(--gold);
}
.rv-case-disclaimer {
  text-align: center;
  font-size: 0.78rem;
  color: var(--text-light);
  font-style: italic;
  margin-top: 2.5rem;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.rv-leadmagnet {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 3rem;
  align-items: center;
  background: linear-gradient(135deg, white, #fafcfa);
  border-radius: 28px;
  padding: 3rem;
  box-shadow: 0 20px 60px rgba(26, 78, 48, 0.08), 0 2px 8px rgba(26, 78, 48, 0.04);
  border: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}
.rv-leadmagnet::before {
  content: "";
  position: absolute;
  top: -60%;
  right: -30%;
  width: 70%;
  height: 200%;
  background: radial-gradient(ellipse, rgba(201, 160, 68, 0.08), transparent 60%);
  pointer-events: none;
}

.rv-leadmagnet-visual { position: relative; z-index: 1; }
.rv-leadmagnet-cover {
  aspect-ratio: 3/4;
  background: linear-gradient(155deg, var(--green-dark) 0%, var(--green-primary) 60%, #0d3320 100%);
  border-radius: 8px 20px 20px 8px;
  padding: 2.2rem 1.8rem;
  color: white;
  box-shadow:
    -6px 0 0 -2px rgba(26, 78, 48, 0.4),
    0 30px 60px rgba(26, 78, 48, 0.35),
    0 0 0 1px rgba(201, 160, 68, 0.15) inset;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  transform: rotate(-3deg);
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.rv-leadmagnet-cover::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(201, 160, 68, 0.2), transparent 60%);
  border-radius: inherit;
  pointer-events: none;
}
.rv-leadmagnet:hover .rv-leadmagnet-cover { transform: rotate(-1deg) translateY(-6px); }
.rv-leadmagnet-cover-tag {
  display: inline-block;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  padding: 0.3rem 0.7rem;
  border: 1px solid rgba(201, 160, 68, 0.4);
  border-radius: 999px;
  font-weight: 600;
  width: fit-content;
}
.rv-leadmagnet-cover h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.1;
  margin: 1rem 0 0.6rem;
  color: white;
}
.rv-leadmagnet-cover p {
  font-size: 0.92rem;
  opacity: 0.85;
  line-height: 1.4;
  margin: 0;
}
.rv-leadmagnet-cover-seal {
  font-family: 'Fraunces', serif;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--gold);
  padding-top: 1rem;
  border-top: 1px solid rgba(201, 160, 68, 0.3);
  letter-spacing: 0.04em;
}

.rv-leadmagnet-content { position: relative; z-index: 1; }
.rv-leadmagnet-content h2 {
  font-family: 'Fraunces', serif;
  font-size: 1.7rem;
  color: var(--green-dark);
  margin: 0.6rem 0 1rem;
  line-height: 1.2;
}
.rv-leadmagnet-content > p {
  color: var(--text-mid);
  line-height: 1.7;
  margin-bottom: 1.2rem;
}
.rv-leadmagnet-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.8rem;
}
.rv-leadmagnet-features li {
  position: relative;
  padding: 0.5rem 0 0.5rem 1.7rem;
  color: var(--text-mid);
  font-size: 0.95rem;
  line-height: 1.5;
}
.rv-leadmagnet-features li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--gold);
  font-weight: 700;
  font-size: 1.1rem;
}

.rv-leadmagnet-form {
  background: var(--cream);
  border-radius: 16px;
  padding: 1.5rem;
  border: 1px solid var(--border);
}
.rv-leadmagnet-fields {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 0.7rem;
  margin-bottom: 0.8rem;
}
.rv-leadmagnet-form input[type=text],
.rv-leadmagnet-form input[type=email] {
  width: 100%;
  padding: 0.8rem 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  font-family: inherit;
  font-size: 0.95rem;
  background: white;
  transition: border 0.2s, box-shadow 0.2s;
}
.rv-leadmagnet-form input:focus {
  outline: none;
  border-color: var(--green-primary);
  box-shadow: 0 0 0 3px rgba(26, 78, 48, 0.1);
}
.rv-leadmagnet-consent {
  display: flex;
  gap: 0.6rem;
  font-size: 0.82rem;
  color: var(--text-mid);
  line-height: 1.45;
  margin-bottom: 1rem;
  cursor: pointer;
}
.rv-leadmagnet-consent input { margin-top: 0.2rem; accent-color: var(--green-primary); }
.rv-leadmagnet-submit {
  width: 100%;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  font-weight: 600;
}
.rv-leadmagnet-trust {
  text-align: center;
  font-size: 0.78rem;
  color: var(--text-light);
  margin: 0.8rem 0 0;
}

.rv-resource-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.rv-resource-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1.8rem;
  transition: all 0.3s ease;
  position: relative;
}
.rv-resource-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(26, 78, 48, 0.1);
  border-color: var(--gold);
}
.rv-resource-tag {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 0.8rem;
}
.rv-resource-card h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.2rem;
  color: var(--green-dark);
  margin-bottom: 0.6rem;
  font-weight: 600;
}
.rv-resource-card p {
  color: var(--text-mid);
  font-size: 0.92rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}
.rv-resource-link {
  color: var(--green-primary);
  font-weight: 600;
  font-size: 0.88rem;
}

@media (max-width: 900px) {
  .rv-case-kpis { grid-template-columns: repeat(2, 1fr); }
  .rv-case-phases { grid-template-columns: 1fr; }
  .rv-leadmagnet { grid-template-columns: 1fr; gap: 2rem; padding: 2rem; }
  .rv-leadmagnet-cover { max-width: 280px; margin: 0 auto; transform: rotate(0); }
  .rv-leadmagnet-fields { grid-template-columns: 1fr; }
  .rv-resource-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .rv-case-kpis { grid-template-columns: 1fr; }
  .rv-case-table { font-size: 0.85rem; }
  .rv-case-table th, .rv-case-table td { padding: 0.7rem 0.5rem; }
  .rv-glossary-index a { font-size: 0.76rem; padding: 0.28rem 0.6rem; }
}

/* ════════════════════════════════════════════════════════════
   DARK MODE — toggle persistant + color tokens
   Activé via <html data-theme="dark"> (set par premium.js)
   ════════════════════════════════════════════════════════════ */

.rv-theme-toggle {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.18);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: white;
  margin-left: 0.4rem;
  transition: all 0.3s ease;
  padding: 0;
}
.rv-theme-toggle:hover {
  background: rgba(201, 160, 68, 0.18);
  border-color: var(--gold);
  color: var(--gold);
  transform: rotate(15deg);
}
.rv-theme-toggle svg { width: 18px; height: 18px; }
.rv-theme-toggle .rv-sun { display: none; }
.rv-theme-toggle .rv-moon { display: block; }
html[data-theme="dark"] .rv-theme-toggle .rv-sun { display: block; }
html[data-theme="dark"] .rv-theme-toggle .rv-moon { display: none; }

.navbar.scrolled .rv-theme-toggle {
  color: var(--green-dark);
  border-color: rgba(26, 78, 48, 0.18);
}
.navbar.scrolled .rv-theme-toggle:hover { color: var(--gold); border-color: var(--gold); }

html[data-theme="dark"] {
  --cream: #0f1614;
  --border: #26332d;
  --text-dark: #e8efe9;
  --text-mid: #b7c2b9;
  --text-light: #8a968c;
}
html[data-theme="dark"] body { background: #0a110e; color: var(--text-dark); }

html[data-theme="dark"] .section { background: transparent !important; }
html[data-theme="dark"] .section:nth-of-type(even) { background: #0d1512 !important; }

html[data-theme="dark"] .page-hero {
  background: linear-gradient(135deg, #0a110e 0%, #11201a 100%) !important;
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .service-card,
html[data-theme="dark"] .blog-card,
html[data-theme="dark"] .rv-glossary-item,
html[data-theme="dark"] .rv-case-kpi,
html[data-theme="dark"] .rv-case-phase,
html[data-theme="dark"] .rv-resource-card,
html[data-theme="dark"] .rv-leadmagnet {
  background: #13201b !important;
  border-color: #26332d !important;
  color: var(--text-dark);
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4 { color: #f2e9cf !important; }

html[data-theme="dark"] p,
html[data-theme="dark"] li,
html[data-theme="dark"] dd { color: var(--text-mid) !important; }

html[data-theme="dark"] .rv-case-table { background: #13201b; }
html[data-theme="dark"] .rv-case-table td { color: var(--text-mid); border-color: #26332d; }
html[data-theme="dark"] .rv-case-table tr:nth-child(even) td { background: rgba(201, 160, 68, 0.04); }

html[data-theme="dark"] .rv-leadmagnet-form,
html[data-theme="dark"] .rv-glossary-index { background: #0d1512 !important; border-color: #26332d; }
html[data-theme="dark"] .rv-leadmagnet-form input { background: #0a110e; border-color: #26332d; color: var(--text-dark); }
html[data-theme="dark"] .rv-glossary-index a { background: #13201b; border-color: #26332d; color: #d4c792; }
html[data-theme="dark"] .rv-glossary-index a:hover { background: var(--gold); color: #0a110e; }

html[data-theme="dark"] .navbar { background: rgba(10, 17, 14, 0.85) !important; }
html[data-theme="dark"] .navbar.scrolled { background: rgba(10, 17, 14, 0.95) !important; }
html[data-theme="dark"] .navbar.scrolled .nav-links a { color: #e8efe9 !important; }
html[data-theme="dark"] .navbar.scrolled .nav-logo span { color: #e8efe9 !important; }
html[data-theme="dark"] .navbar.scrolled .rv-theme-toggle { color: #e8efe9; border-color: #26332d; }

html[data-theme="dark"] .footer { background: #070d0b !important; }

html[data-theme="dark"] .rv-case-quote {
  background: linear-gradient(135deg, rgba(201, 160, 68, 0.08), rgba(26, 78, 48, 0.12));
  color: #f2e9cf;
}

html[data-theme="dark"] .rv-glossary-item { border-left-color: var(--gold); }
html[data-theme="dark"] .rv-glossary-item dt { color: #f2e9cf; }

html[data-theme="dark"] input, html[data-theme="dark"] textarea, html[data-theme="dark"] select {
  background: #0a110e !important;
  color: var(--text-dark) !important;
  border-color: #26332d !important;
}

html, body, .card, .service-card, .blog-card, .navbar, .footer,
.rv-glossary-item, .rv-case-kpi, .rv-case-phase, .rv-resource-card, .rv-leadmagnet {
  transition: background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
@media (prefers-reduced-motion: reduce) {
  html, body, .card, .service-card, .blog-card, .navbar, .footer,
  .rv-glossary-item, .rv-case-kpi, .rv-case-phase, .rv-resource-card, .rv-leadmagnet {
    transition: none;
  }
}

/* ════════════════════════════════════════════════════════════
   IMPACT MOYEN — POLISH ÉDITORIAL
   404 · Article polish · Drop cap · Pull quote · TOC · Byline · Newsletter inline
   ════════════════════════════════════════════════════════════ */

.rv-404 {
  min-height: 100vh;
  padding: 140px 0 80px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #fafbf9 0%, #f0ede3 100%);
}
.rv-404-aurora {
  position: absolute;
  inset: -200px;
  background:
    radial-gradient(circle at 20% 30%, rgba(201, 160, 68, 0.15), transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(26, 78, 48, 0.15), transparent 50%);
  filter: blur(60px);
  pointer-events: none;
}
.rv-404-inner {
  position: relative;
  max-width: 860px;
  text-align: center;
}
.rv-404-code {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Fraunces', serif;
  font-size: clamp(7rem, 18vw, 12rem);
  font-weight: 500;
  color: var(--green-dark);
  line-height: 1;
  margin-bottom: 1.5rem;
  letter-spacing: -0.04em;
}
.rv-404-code span { background: linear-gradient(135deg, var(--green-dark), var(--green-primary)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.rv-404-leaf {
  display: inline-flex;
  margin: 0 1rem;
  animation: rv-leaf-sway 6s ease-in-out infinite;
  transform-origin: center bottom;
  filter: drop-shadow(0 12px 24px rgba(26, 78, 48, 0.2));
}
@keyframes rv-leaf-sway {
  0%, 100% { transform: rotate(-6deg); }
  50% { transform: rotate(6deg); }
}
@media (prefers-reduced-motion: reduce) {
  .rv-404-leaf { animation: none; }
}
.rv-404 h1 {
  font-family: 'Fraunces', serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  color: var(--green-dark);
  margin: 1rem 0 1rem;
  font-weight: 600;
  font-style: italic;
}
.rv-404 > .container > p {
  color: var(--text-mid);
  font-size: 1.1rem;
  max-width: 560px;
  margin: 0 auto 2.5rem;
  line-height: 1.65;
}

.rv-404-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.9rem;
  margin: 2rem 0;
  text-align: left;
}
.rv-404-link {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: white;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.1rem 1.2rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.25s ease;
}
.rv-404-link:hover {
  transform: translateY(-3px);
  border-color: var(--gold);
  box-shadow: 0 10px 28px rgba(26, 78, 48, 0.1);
}
.rv-404-link-ico { font-size: 1.6rem; flex-shrink: 0; }
.rv-404-link strong { display: block; color: var(--green-dark); font-weight: 600; font-size: 0.98rem; }
.rv-404-link em { display: block; font-style: normal; color: var(--text-mid); font-size: 0.82rem; margin-top: 0.15rem; }
.rv-404-hint { font-size: 0.92rem; color: var(--text-mid); margin-top: 2rem; }
.rv-404-hint a { color: var(--green-primary); font-weight: 600; }

@media (max-width: 760px) {
  .rv-404-links { grid-template-columns: 1fr; }
  .rv-404-code { font-size: clamp(5rem, 22vw, 8rem); }
  .rv-404-leaf svg { width: 120px; height: 120px; }
}

.rv-article-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, var(--green-primary), var(--gold));
  z-index: 10000;
  transition: width 0.08s linear;
  pointer-events: none;
}

.article-content > p:first-of-type::first-letter,
.rv-article-body > p:first-of-type::first-letter {
  font-family: 'Fraunces', serif;
  font-size: 4.2em;
  float: left;
  line-height: 0.85;
  margin: 0.05em 0.1em 0 0;
  color: var(--green-primary);
  font-weight: 500;
  background: linear-gradient(135deg, var(--green-primary), var(--gold));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.article-content p,
.rv-article-body p {
  font-size: 1.08rem;
  line-height: 1.8;
  color: var(--text-dark);
  margin-bottom: 1.5rem;
  letter-spacing: -0.003em;
}
.article-content h2,
.rv-article-body h2 {
  font-family: 'Fraunces', serif;
  font-size: 1.75rem;
  color: var(--green-dark);
  margin: 3rem 0 1.2rem;
  font-weight: 600;
  scroll-margin-top: 100px;
}
.article-content h3,
.rv-article-body h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.3rem;
  color: var(--green-dark);
  margin: 2rem 0 0.8rem;
  font-weight: 600;
}

.rv-pullquote {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 1.5rem;
  line-height: 1.4;
  color: var(--green-dark);
  text-align: center;
  margin: 3rem auto;
  padding: 2rem 1rem;
  max-width: 720px;
  position: relative;
  border-top: 1px solid rgba(201, 160, 68, 0.4);
  border-bottom: 1px solid rgba(201, 160, 68, 0.4);
}
.rv-pullquote::before,
.rv-pullquote::after {
  content: '"';
  font-family: 'Fraunces', serif;
  font-size: 4rem;
  color: var(--gold);
  line-height: 0;
  position: absolute;
  opacity: 0.4;
}
.rv-pullquote::before { top: 1.5rem; left: 0.4rem; }
.rv-pullquote::after { bottom: -0.2rem; right: 0.4rem; transform: rotate(180deg); }

.rv-toc {
  background: linear-gradient(145deg, white, #fafcfa);
  border: 1px solid var(--border);
  border-left: 4px solid var(--gold);
  border-radius: 14px;
  padding: 1.4rem 1.6rem;
  margin: 2rem 0 3rem;
  font-size: 0.92rem;
}
.rv-toc-title {
  font-family: 'Fraunces', serif;
  font-weight: 600;
  color: var(--green-dark);
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.8rem;
  display: block;
}
.rv-toc ol {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: toc;
}
.rv-toc li {
  counter-increment: toc;
  padding: 0.3rem 0;
  position: relative;
  padding-left: 2rem;
}
.rv-toc li::before {
  content: counter(toc, decimal-leading-zero);
  position: absolute;
  left: 0;
  font-family: 'Fraunces', serif;
  font-weight: 500;
  color: var(--gold);
  font-variant-numeric: tabular-nums;
}
.rv-toc a {
  color: var(--text-mid);
  text-decoration: none;
  transition: color 0.2s ease;
  border-bottom: 1px solid transparent;
}
.rv-toc a:hover { color: var(--green-primary); border-bottom-color: var(--gold); }

.rv-author-card {
  display: flex;
  gap: 1.2rem;
  align-items: center;
  background: var(--cream);
  border-radius: 16px;
  padding: 1.4rem 1.6rem;
  margin: 2rem 0;
  border: 1px solid var(--border);
}
.rv-author-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--green-primary), var(--gold));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-family: 'Fraunces', serif;
  font-size: 1.6rem;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(26, 78, 48, 0.2);
  overflow: hidden;
}
.rv-author-avatar img { width: 100%; height: 100%; object-fit: cover; }
.rv-author-info strong {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 1.05rem;
  color: var(--green-dark);
  font-weight: 600;
}
.rv-author-info em {
  display: block;
  font-style: normal;
  font-size: 0.85rem;
  color: var(--text-mid);
  margin-top: 0.2rem;
}
.rv-author-meta {
  margin-top: 0.4rem;
  font-size: 0.8rem;
  color: var(--text-light);
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.rv-author-meta span::before { content: "· "; color: var(--gold); }
.rv-author-meta span:first-child::before { content: ""; }

.rv-newsletter-inline {
  background: linear-gradient(135deg, var(--green-dark), var(--green-primary));
  color: white;
  border-radius: 20px;
  padding: 2.2rem 2rem;
  margin: 3rem 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.rv-newsletter-inline::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -20%;
  width: 60%;
  height: 200%;
  background: radial-gradient(ellipse, rgba(201, 160, 68, 0.18), transparent 60%);
  pointer-events: none;
}
.rv-newsletter-inline h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.4rem;
  color: white;
  margin: 0 0 0.5rem;
  position: relative;
}
.rv-newsletter-inline p {
  color: rgba(255,255,255,0.85);
  font-size: 0.95rem;
  margin: 0 0 1.4rem;
  position: relative;
}
.rv-newsletter-inline-form {
  display: flex;
  gap: 0.5rem;
  max-width: 440px;
  margin: 0 auto;
  position: relative;
}
.rv-newsletter-inline-form input {
  flex: 1;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 10px;
  background: rgba(255,255,255,0.1);
  color: white;
  font-family: inherit;
  font-size: 0.95rem;
}
.rv-newsletter-inline-form input::placeholder { color: rgba(255,255,255,0.6); }
.rv-newsletter-inline-form input:focus { outline: none; border-color: var(--gold); background: rgba(255,255,255,0.18); }
.rv-newsletter-inline-form button {
  padding: 0.8rem 1.4rem;
  background: var(--gold);
  color: var(--green-dark);
  border: none;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: transform 0.2s ease;
  font-family: inherit;
}
.rv-newsletter-inline-form button:hover { transform: translateY(-1px); }

@media (max-width: 600px) {
  .rv-newsletter-inline-form { flex-direction: column; }
  .rv-pullquote { font-size: 1.25rem; padding: 1.4rem 0.8rem; }
  .article-content > p:first-of-type::first-letter,
  .rv-article-body > p:first-of-type::first-letter { font-size: 3.5em; }
}

.article-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease !important;
}
.article-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 34px rgba(26, 78, 48, 0.1) !important;
  border-color: var(--gold) !important;
}

html[data-theme="dark"] .rv-404 { background: linear-gradient(180deg, #0a110e, #11201a); }
html[data-theme="dark"] .rv-404-link { background: #13201b; border-color: #26332d; }
html[data-theme="dark"] .rv-toc { background: #13201b; border-color: #26332d; }
html[data-theme="dark"] .rv-author-card { background: #13201b; border-color: #26332d; }
html[data-theme="dark"] .rv-pullquote { color: #f2e9cf; }

/* ════════════════════════════════════════════════════════════
   IMPACT DISCRET — FINITIONS
   Texture papier · Micro-interactions boutons · KPI magnetic ·
   Focus premium · ::selection · Scrollbar · Liens prose
   ════════════════════════════════════════════════════════════ */

.bg-light,
.rv-manifesto,
.rv-leadmagnet-form,
.rv-glossary-index,
.rv-author-card {
  background-image:
    radial-gradient(rgba(26, 78, 48, 0.035) 1px, transparent 1px),
    radial-gradient(rgba(201, 160, 68, 0.025) 1px, transparent 1px);
  background-size: 24px 24px, 36px 36px;
  background-position: 0 0, 12px 18px;
}

.hero::after,
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  pointer-events: none;
  opacity: 0.5;
  mix-blend-mode: overlay;
  z-index: 1;
}
.hero > *, .page-hero > * { position: relative; z-index: 2; }

.btn, .btn-gold, .rv-leadmagnet-submit, .nav-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.btn::before, .btn-gold::before, .rv-leadmagnet-submit::before, .nav-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,0.4) 50%, transparent 80%);
  transition: left 0.6s ease;
  z-index: -1;
  pointer-events: none;
}
.btn:hover::before, .btn-gold:hover::before,
.rv-leadmagnet-submit:hover::before, .nav-cta:hover::before { left: 100%; }

.btn:active, .btn-gold:active, .rv-leadmagnet-submit:active, .nav-cta:active {
  transform: translateY(1px) scale(0.98);
  transition: transform 0.08s ease;
}

.rv-case-kpi,
.stat-item {
  position: relative;
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease;
}
.rv-case-kpi::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  background: linear-gradient(135deg, var(--green-primary), var(--gold));
  opacity: 0;
  z-index: -1;
  filter: blur(12px);
  transition: opacity 0.4s ease;
}
.rv-case-kpi:hover {
  transform: translateY(-6px) scale(1.02);
}
.rv-case-kpi:hover::after { opacity: 0.3; }
.rv-case-kpi:hover .rv-case-kpi-val {
  animation: rv-kpi-pulse 0.8s ease;
}
@keyframes rv-kpi-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .rv-case-kpi:hover { transform: none; }
  .rv-case-kpi:hover .rv-case-kpi-val { animation: none; }
}

*:focus { outline: none; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
  box-shadow: 0 0 0 6px rgba(201, 160, 68, 0.15);
  transition: box-shadow 0.2s ease, outline-offset 0.2s ease;
}

::selection { background: rgba(201, 160, 68, 0.35); color: var(--green-dark); }
::-moz-selection { background: rgba(201, 160, 68, 0.35); color: var(--green-dark); }
html[data-theme="dark"] ::selection { background: rgba(201, 160, 68, 0.5); color: #f8f4e3; }

html { scrollbar-width: thin; scrollbar-color: var(--green-primary) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--green-primary), var(--green-dark));
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--gold), var(--green-primary));
  background-clip: padding-box;
  border: 2px solid transparent;
}
html[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #2a6d46, #0d3320);
  background-clip: padding-box;
  border: 2px solid transparent;
}

.article-content a:not(.btn):not(.article-card):not(.rv-resource-link),
.rv-article-body a:not(.btn),
.rv-glossary-item dd a,
.rv-case-section p a {
  color: var(--green-primary);
  text-decoration: none;
  background-image: linear-gradient(var(--gold), var(--gold));
  background-size: 0% 2px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), color 0.2s;
  padding-bottom: 1px;
}
.article-content a:not(.btn):not(.article-card):not(.rv-resource-link):hover,
.rv-article-body a:not(.btn):hover,
.rv-glossary-item dd a:hover,
.rv-case-section p a:hover {
  background-size: 100% 2px;
  color: var(--green-dark);
}

.rv-section-title,
.section > .container > h2,
.rv-case-section > h2 {
  position: relative;
  padding-bottom: 0.5rem;
}
.rv-case-section > h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: 48px;
  background: linear-gradient(90deg, var(--gold), transparent);
  border-radius: 2px;
}

.rv-case-phase, .rv-glossary-item, .rv-404-link, .rv-resource-card {
  cursor: default;
}
.rv-404-link, .rv-resource-card a, a.rv-404-link { cursor: pointer; }

.service-card {
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease !important;
  position: relative;
  overflow: visible !important;
}
.service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(26, 78, 48, 0.15);
}

.blog-card img, .article-card img {
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.blog-card:hover img, .article-card:hover img {
  transform: scale(1.04);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

.rv-case-kpis .rv-case-kpi:nth-child(1) { transition-delay: 0ms; }
.rv-case-kpis .rv-case-kpi:nth-child(2) { transition-delay: 80ms; }
.rv-case-kpis .rv-case-kpi:nth-child(3) { transition-delay: 160ms; }
.rv-case-kpis .rv-case-kpi:nth-child(4) { transition-delay: 240ms; }

.rv-resource-grid .rv-resource-card:nth-child(1) { transition-delay: 0ms; }
.rv-resource-grid .rv-resource-card:nth-child(2) { transition-delay: 100ms; }
.rv-resource-grid .rv-resource-card:nth-child(3) { transition-delay: 200ms; }

.rv-404-links .rv-404-link:nth-child(1) { transition-delay: 0ms; }
.rv-404-links .rv-404-link:nth-child(2) { transition-delay: 70ms; }
.rv-404-links .rv-404-link:nth-child(3) { transition-delay: 140ms; }
.rv-404-links .rv-404-link:nth-child(4) { transition-delay: 210ms; }
.rv-404-links .rv-404-link:nth-child(5) { transition-delay: 280ms; }
.rv-404-links .rv-404-link:nth-child(6) { transition-delay: 350ms; }

.nav-burger span {
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.2s ease !important;
}
.nav-burger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger.active span:nth-child(2) { opacity: 0; }
.nav-burger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media print {
  .navbar, .footer, .scroll-top, #stickyCta, .rv-article-progress,
  .rv-cta-block, .rv-theme-toggle, #calendly { display: none !important; }
  body { background: white !important; color: black !important; }
  .section { page-break-inside: avoid; }
  a { color: black; text-decoration: underline; }
  .rv-case-kpi-val { color: black !important; -webkit-text-fill-color: black !important; }
}

.rv-blog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
  margin: 2rem 0 3rem;
  padding: 0.6rem;
  background: rgba(255,255,255,0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(26,78,48,0.08);
  border-radius: 999px;
  box-shadow: 0 6px 24px -12px rgba(13,51,32,0.15);
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.rv-blog-filter {
  appearance: none;
  border: none;
  background: transparent;
  color: #1A4E30;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  padding: 0.55rem 1.1rem;
  border-radius: 999px;
  cursor: pointer;
  position: relative;
  transition: color 0.25s ease, background 0.25s ease, transform 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.rv-blog-filter em {
  font-style: normal;
  opacity: 0.55;
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
}
.rv-blog-filter:hover {
  background: rgba(26,78,48,0.06);
  transform: translateY(-1px);
}
.rv-blog-filter.active {
  background: linear-gradient(135deg, #1A4E30 0%, #0D3320 100%);
  color: #FAF7F2;
  box-shadow: 0 4px 14px -4px rgba(13,51,32,0.4);
}
.rv-blog-filter.active em { opacity: 0.75; color: #C9A044; }

.rv-blog-featured {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  background: #fff;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 30px 60px -30px rgba(13,51,32,0.25), 0 0 0 1px rgba(26,78,48,0.06);
  margin-bottom: 3.5rem;
  text-decoration: none;
  color: inherit;
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.5s ease;
  position: relative;
}
.rv-blog-featured:hover {
  transform: translateY(-6px);
  box-shadow: 0 40px 80px -30px rgba(13,51,32,0.35), 0 0 0 1px rgba(201,160,68,0.3);
}
.rv-blog-featured-visual {
  position: relative;
  min-height: 360px;
  background: linear-gradient(135deg, #1A4E30 0%, #0D3320 60%, #082418 100%);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rv-blog-featured-pattern {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(201,160,68,0.25) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(201,160,68,0.15) 0%, transparent 50%);
  mix-blend-mode: screen;
}
.rv-blog-featured-emoji {
  font-size: 8rem;
  filter: drop-shadow(0 20px 40px rgba(0,0,0,0.35));
  transform: rotate(-6deg);
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.rv-blog-featured:hover .rv-blog-featured-emoji { transform: rotate(0deg) scale(1.06); }
.rv-blog-featured-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.rv-blog-featured-body {
  padding: 3rem 2.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.9rem;
}
.rv-blog-featured-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #C9A044;
  background: rgba(201,160,68,0.12);
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  width: fit-content;
}
.rv-blog-featured-body h2 {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-weight: 500;
  font-size: clamp(1.6rem, 2.4vw, 2.2rem);
  line-height: 1.15;
  color: #0D3320;
  margin: 0;
  letter-spacing: -0.01em;
}
.rv-blog-featured-body p {
  font-size: 1rem;
  line-height: 1.6;
  color: #4A5854;
  margin: 0;
}
.rv-blog-featured-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: #6B7775;
  margin-top: 0.5rem;
}
.rv-blog-featured-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.6rem;
  color: #1A4E30;
  font-weight: 600;
  font-size: 0.95rem;
  transition: gap 0.3s ease;
}
.rv-blog-featured:hover .rv-blog-featured-arrow { gap: 0.75rem; }

.rv-blog-author-mini {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: #4A5854;
}
.rv-blog-author-mini img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(13,51,32,0.15);
}
.rv-blog-dot {
  display: inline-block;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.4;
}

.rv-blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 2rem;
  margin-bottom: 3rem;
}
.rv-blog-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 30px -15px rgba(13,51,32,0.18), 0 0 0 1px rgba(26,78,48,0.05);
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.45s ease;
}
.rv-blog-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -20px rgba(13,51,32,0.28), 0 0 0 1px rgba(201,160,68,0.25);
}
.rv-blog-card-img {
  position: relative;
  height: 180px;
  background: linear-gradient(135deg, #1A4E30 0%, #0D3320 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.rv-blog-card-img::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 30%, rgba(201,160,68,0.22), transparent 60%);
}
.rv-blog-card-emoji {
  font-size: 4rem;
  transform: rotate(-4deg);
  filter: drop-shadow(0 8px 20px rgba(0,0,0,0.3));
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: relative;
  z-index: 1;
}
.rv-blog-card:hover .rv-blog-card-emoji { transform: rotate(0deg) scale(1.08); }
.rv-blog-card-body {
  padding: 1.5rem 1.6rem 1.7rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  flex: 1;
}
.rv-blog-card-body .rv-eyebrow {
  font-size: 0.72rem;
  margin: 0;
}
.rv-blog-card-body h3 {
  font-family: 'Fraunces', serif;
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.25;
  color: #0D3320;
  margin: 0;
  letter-spacing: -0.005em;
}
.rv-blog-card-body p {
  font-size: 0.92rem;
  line-height: 1.55;
  color: #4A5854;
  margin: 0;
  flex: 1;
}
.rv-blog-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: #6B7775;
  margin-top: 0.3rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(26,78,48,0.08);
}

.rv-blog-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: #6B7775;
  font-style: italic;
  display: none;
}

html[data-theme="dark"] .rv-blog-filters {
  background: rgba(20,30,26,0.6);
  border-color: rgba(201,160,68,0.15);
}
html[data-theme="dark"] .rv-blog-filter { color: #EAE3D5; }
html[data-theme="dark"] .rv-blog-filter:hover { background: rgba(201,160,68,0.1); }
html[data-theme="dark"] .rv-blog-filter.active {
  background: linear-gradient(135deg, #C9A044 0%, #A07F30 100%);
  color: #0D3320;
}
html[data-theme="dark"] .rv-blog-filter.active em { color: #0D3320; }
html[data-theme="dark"] .rv-blog-featured,
html[data-theme="dark"] .rv-blog-card {
  background: #14201A;
  box-shadow: 0 20px 48px -24px rgba(0,0,0,0.5), 0 0 0 1px rgba(201,160,68,0.12);
}
html[data-theme="dark"] .rv-blog-featured-body h2,
html[data-theme="dark"] .rv-blog-card-body h3 { color: #FAF7F2; }
html[data-theme="dark"] .rv-blog-featured-body p,
html[data-theme="dark"] .rv-blog-card-body p { color: #C5CCC8; }
html[data-theme="dark"] .rv-blog-featured-arrow { color: #C9A044; }
html[data-theme="dark"] .rv-blog-author-mini { color: #C5CCC8; }
html[data-theme="dark"] .rv-blog-card-meta { border-color: rgba(201,160,68,0.12); }

@media (max-width: 900px) {
  .rv-blog-featured { grid-template-columns: 1fr; }
  .rv-blog-featured-visual { min-height: 240px; }
  .rv-blog-featured-body { padding: 2rem 1.6rem; }
  .rv-blog-featured-emoji { font-size: 6rem; }
}
@media (max-width: 560px) {
  .rv-blog-filters { padding: 0.4rem; gap: 0.35rem; }
  .rv-blog-filter { padding: 0.5rem 0.85rem; font-size: 0.85rem; }
  .rv-blog-grid { grid-template-columns: 1fr; gap: 1.4rem; }
}

@keyframes rv-blog-in {
  from { opacity: 0; transform: translateY(14px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.rv-blog-anim {
  animation: rv-blog-in 0.55s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
@media (prefers-reduced-motion: reduce) {
  .rv-blog-anim { animation: none !important; }
}

.rv-author-hero {
  position: relative;
  padding: 8rem 0 4rem;
  background: linear-gradient(135deg, #0D3320 0%, #1A4E30 60%, #235E3C 100%);
  color: #FAF7F2;
  overflow: hidden;
}
.rv-author-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 80% 20%, rgba(201,160,68,0.28) 0%, transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(201,160,68,0.14) 0%, transparent 50%);
  pointer-events: none;
}
.rv-author-hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 3rem;
  align-items: center;
}
.rv-author-portrait {
  width: 240px;
  height: 240px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,0.5), 0 0 0 6px rgba(201,160,68,0.3), 0 0 0 1px rgba(201,160,68,0.6);
}
.rv-author-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rv-author-hero h1 {
  font-family: 'Fraunces', serif;
  font-weight: 500;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  margin: 0.4rem 0 0.8rem;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.rv-author-hero .rv-eyebrow { color: #C9A044; }
.rv-author-hero-bio {
  font-size: 1.1rem;
  line-height: 1.6;
  opacity: 0.9;
  max-width: 52ch;
  margin: 0 0 1.4rem;
}
.rv-author-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 0.5rem;
}
.rv-author-social {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1.1rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  color: #FAF7F2;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  transition: background 0.25s ease, transform 0.2s ease, border-color 0.25s ease;
}
.rv-author-social:hover {
  background: rgba(201,160,68,0.2);
  border-color: rgba(201,160,68,0.5);
  transform: translateY(-2px);
}

.rv-author-section { padding: 4rem 0; }
.rv-author-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.5rem;
  margin-bottom: 3rem;
}
.rv-author-stat {
  text-align: center;
  padding: 2rem 1.2rem;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 30px -18px rgba(13,51,32,0.2), 0 0 0 1px rgba(26,78,48,0.06);
}
.rv-author-stat-val {
  font-family: 'Fraunces', serif;
  font-weight: 500;
  font-size: 2.6rem;
  line-height: 1;
  background: linear-gradient(135deg, #1A4E30 0%, #C9A044 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.02em;
}
.rv-author-stat-label {
  font-size: 0.85rem;
  color: #6B7775;
  margin-top: 0.5rem;
  letter-spacing: 0.02em;
}

.rv-author-expertise {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 1rem 0 2rem;
}
.rv-author-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: rgba(26,78,48,0.08);
  color: #1A4E30;
  font-size: 0.88rem;
  font-weight: 500;
}

html[data-theme="dark"] .rv-author-stat { background: #14201A; }
html[data-theme="dark"] .rv-author-stat-label { color: #C5CCC8; }
html[data-theme="dark"] .rv-author-chip { background: rgba(201,160,68,0.15); color: #EAE3D5; }

@media (max-width: 760px) {
  .rv-author-hero { padding: 6rem 0 3rem; }
  .rv-author-hero-inner { grid-template-columns: 1fr; text-align: center; gap: 1.8rem; }
  .rv-author-portrait { width: 180px; height: 180px; margin: 0 auto; }
  .rv-author-socials { justify-content: center; }
}

/* ============================================================
   v=2 — MOBILE NAV DROPDOWN + LISIBILITÉ MOBILE + DARK MODE
   ============================================================ */

@media (max-width: 900px) {
  .nav-burger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 28px;
    height: 22px;
    cursor: pointer;
    z-index: 1001;
    position: relative;
  }
  .nav-burger span {
    display: block;
    width: 100%;
    height: 2px;
    background: #fff;
    border-radius: 2px;
    transition: transform 0.35s cubic-bezier(0.4,0,0.2,1), opacity 0.25s ease;
    transform-origin: center;
  }
  .nav-burger.active span:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }
  .nav-burger.active span:nth-child(2) {
    opacity: 0;
  }
  .nav-burger.active span:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }

  .nav-links {
    position: fixed;
    top: 70px;
    left: 0;
    right: 0;
    background: var(--green-dark, #0E3A22);
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    transform: translateY(-120%);
    transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
    box-shadow: 0 18px 40px rgba(0,0,0,0.25);
    margin: 0;
    list-style: none;
    z-index: 1000;
    max-height: calc(100vh - 70px);
    overflow-y: auto;
  }
  .nav-links.open,
  .nav-links.active {
    transform: translateY(0);
  }
  .nav-links li {
    width: 100%;
  }
  .nav-links a {
    display: block;
    color: #fff;
    font-size: 1.15rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    text-decoration: none;
  }
  .nav-links .nav-cta {
    margin-top: 0.5rem;
    text-align: center;
    border-bottom: none;
    background: var(--gold, #C9A95C);
    color: #0E3A22;
    border-radius: 8px;
    padding: 0.85rem 1rem;
    font-weight: 600;
  }
}

@media (max-width: 600px) {
  body {
    font-size: 16px;
    line-height: 1.65;
  }
  .hero h1,
  h1 {
    font-size: clamp(1.8rem, 7vw, 2.4rem);
    line-height: 1.2;
  }
  section,
  .section {
    padding: 3rem 1rem;
  }
  .card,
  .service-card,
  .pricing-card,
  .blog-card {
    width: 100%;
    max-width: 100%;
  }
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* ============================================================
   DARK MODE — palette émeraude/or préservée
   ============================================================ */
@media (prefers-color-scheme: dark) {
  body {
    background: #0F1A14;
    color: #E8F0EA;
  }
  p, li, span, label, td, th {
    color: #E8F0EA;
  }
  .text-muted, .small, .meta, .subtitle {
    color: #B8C9BF;
  }
  h1, h2, h3, h4, h5, h6 {
    color: #F2F7F3;
  }
  .navbar,
  .navbar.scrolled {
    background: rgba(15, 26, 20, 0.95);
    border-bottom: 1px solid #1F2A24;
  }
  .nav-links a {
    color: #E8F0EA;
  }
  .nav-links a:hover,
  .nav-links a.active {
    color: #C9A95C;
  }
  section,
  .section {
    background-color: transparent;
  }
  .section-alt,
  .bg-light,
  .bg-gray {
    background: #15201A;
  }
  .card,
  .service-card,
  .pricing-card,
  .blog-card,
  .testimonial-card,
  .faq-item {
    background: #1F2A24;
    border: 1px solid #2D3F35;
    color: #E8F0EA;
  }
  .card h3,
  .service-card h3,
  .blog-card h3 {
    color: #F2F7F3;
  }
  a {
    color: #7DD89F;
  }
  a:hover {
    color: #C9A95C;
  }
  .footer,
  footer {
    background: #0B1410;
    color: #B8C9BF;
    border-top: 1px solid #1F2A24;
  }
  .footer a {
    color: #B8C9BF;
  }
  .footer a:hover {
    color: #C9A95C;
  }
  input, textarea, select {
    background: #1F2A24;
    color: #E8F0EA;
    border: 1px solid #2D3F35;
  }
  input::placeholder, textarea::placeholder {
    color: #8AA095;
  }
  .btn-primary {
    background: #C9A95C;
    color: #0F1A14;
  }
  .btn-white {
    background: #1F2A24;
    color: #E8F0EA;
    border: 1px solid #2D3F35;
  }
}

/* ============================================================
   UPGRADE PASS 2 — tokens, dark forcé, animations, composants
   ============================================================ */

:root {
  --green-deep: #0D2A1A;
  --cream: #FAF6EE;
  --gold-soft: #E8C77A;
  --fs-xs: 0.75rem;
  --fs-sm: 0.875rem;
  --fs-base: 1rem;
  --fs-md: 1.125rem;
  --fs-lg: 1.25rem;
  --fs-xl: 1.5rem;
  --fs-2xl: 1.875rem;
  --fs-3xl: 2.25rem;
  --fs-display: clamp(2.5rem, 5vw + 1rem, 4.5rem);
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;
  --ease-premium: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Logo navbar — lockup officiel (référence site déployé) :
   symbole blanc (logo-mono-white.svg) + texte "RestauVert" en serif crème.
   Le symbole reste transparent (pas de fond blanc rond) pour matcher le rendu live. */
.nav-logo img {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  height: 40px !important;
  width: auto;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.15));
}
.nav-logo {
  display: inline-flex !important;
  align-items: center;
  gap: 0.7rem;
  text-decoration: none;
}
.nav-logo span {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 500 !important;
  font-style: normal;
  font-size: 1.55rem !important;
  letter-spacing: 0.005em;
  color: #F2E9CF !important;
  line-height: 1;
}
.navbar.scrolled .nav-logo span {
  color: var(--green-dark) !important;
}
html[data-theme="dark"] .navbar.scrolled .nav-logo span {
  color: #F2E9CF !important;
}
@media (max-width: 600px) {
  .nav-logo img { height: 34px !important; }
  .nav-logo span { font-size: 1.25rem !important; }
}

.theme-toggle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.2);
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
  margin-right: 8px;
  transition: transform 0.25s var(--ease-premium), background 0.25s;
}
.theme-toggle:hover {
  transform: scale(1.1);
  background: rgba(255,255,255,0.08);
}

.fade-up, .reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s var(--ease-premium), transform 0.8s var(--ease-premium);
  will-change: opacity, transform;
}
.fade-up.in-view, .reveal.in-view {
  opacity: 1;
  transform: none;
}

.hero h1 .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.5em);
  transition: opacity 0.7s var(--ease-premium), transform 0.7s var(--ease-premium);
}
.hero h1.words-in .word {
  opacity: 1;
  transform: none;
}

.btn-primary, .btn-gold {
  transition: transform 0.2s var(--ease-premium), box-shadow 0.25s;
  will-change: transform;
}

.card img, .rv-resource-card img {
  transition: clip-path 0.6s var(--ease-premium), transform 0.6s var(--ease-premium);
}
.card:hover img, .rv-resource-card:hover img {
  clip-path: inset(0 0 0 0);
  transform: scale(1.03);
}

/* Marquee logos clients (placeholders) — classe dédiée pour éviter
   conflit avec la marquee de référentiels existante */
.rv-clients-marquee {
  overflow: hidden;
  padding: 2.5rem 0;
  background: var(--cream, #FAF6EE);
  border-top: 1px solid rgba(0,0,0,0.05);
  border-bottom: 1px solid rgba(0,0,0,0.05);
}
.rv-clients-marquee-label {
  text-align: center;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(13, 42, 26, 0.55);
  margin-bottom: 1.25rem;
  font-weight: 600;
}
.rv-clients-track {
  display: flex;
  gap: 2.5rem;
  width: max-content;
  animation: rv-clients-scroll 38s linear infinite;
}
.rv-clients-item {
  flex: 0 0 auto;
  min-width: 200px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(13, 42, 26, 0.04);
  border: 1px solid rgba(13, 42, 26, 0.08);
  border-radius: 8px;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--green-deep, #0D2A1A);
  letter-spacing: 0.02em;
  padding: 0 1.5rem;
}
@keyframes rv-clients-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .rv-clients-track { animation: none; }
  .fade-up, .reveal, .hero h1 .word { opacity: 1; transform: none; }
}

/* ===== Dark mode forcé via [data-theme="dark"] ===== */
[data-theme="dark"] body {
  background: #0F1A14;
  color: #E8F0EA;
}
[data-theme="dark"] p,
[data-theme="dark"] li,
[data-theme="dark"] span,
[data-theme="dark"] label,
[data-theme="dark"] td,
[data-theme="dark"] th { color: #E8F0EA; }
[data-theme="dark"] .text-muted,
[data-theme="dark"] .small,
[data-theme="dark"] .meta,
[data-theme="dark"] .subtitle { color: #B8C9BF; }
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 { color: #F2F7F3; }
[data-theme="dark"] .navbar,
[data-theme="dark"] .navbar.scrolled {
  background: rgba(15, 26, 20, 0.95);
  border-bottom: 1px solid #1F2A24;
}
[data-theme="dark"] .nav-links a { color: #E8F0EA; }
[data-theme="dark"] .nav-links a:hover,
[data-theme="dark"] .nav-links a.active { color: #C9A95C; }
[data-theme="dark"] .section-alt,
[data-theme="dark"] .bg-light,
[data-theme="dark"] .bg-gray { background: #15201A; }
[data-theme="dark"] .card,
[data-theme="dark"] .service-card,
[data-theme="dark"] .pricing-card,
[data-theme="dark"] .blog-card,
[data-theme="dark"] .testimonial-card,
[data-theme="dark"] .faq-item {
  background: #1F2A24;
  border: 1px solid #2D3F35;
  color: #E8F0EA;
}
[data-theme="dark"] .card h3,
[data-theme="dark"] .service-card h3,
[data-theme="dark"] .blog-card h3 { color: #F2F7F3; }
[data-theme="dark"] a { color: #7DD89F; }
[data-theme="dark"] a:hover { color: #C9A95C; }
[data-theme="dark"] .footer,
[data-theme="dark"] footer {
  background: #0B1410;
  color: #B8C9BF;
  border-top: 1px solid #1F2A24;
}
[data-theme="dark"] .footer a { color: #B8C9BF; }
[data-theme="dark"] .footer a:hover { color: #C9A95C; }
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background: #1F2A24;
  color: #E8F0EA;
  border: 1px solid #2D3F35;
}
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder { color: #8AA095; }
[data-theme="dark"] .btn-primary { background: #C9A95C; color: #0F1A14; }
[data-theme="dark"] .btn-white {
  background: #1F2A24;
  color: #E8F0EA;
  border: 1px solid #2D3F35;
}
[data-theme="dark"] .rv-clients-marquee { background: #15201A; }
[data-theme="dark"] .rv-clients-item {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.08);
  color: #E8F0EA;
}
[data-theme="dark"] .rv-clients-marquee-label { color: rgba(255,255,255,0.55); }

/* ════════════════════════════════════════════════════════════
   DARK MODE — FIX CONTRASTE GLOBAL (v4)
   Cible : CTA "Demander un devis", liens, boutons or, formulaires,
   éléments hérités peu lisibles. Forçage explicite des contrastes.
   ════════════════════════════════════════════════════════════ */

html[data-theme="dark"] .nav-cta,
html[data-theme="dark"] .navbar.scrolled .nav-cta,
html[data-theme="dark"] .nav-links a.nav-cta {
  background: var(--gold) !important;
  color: #0a110e !important;
  font-weight: 700 !important;
  border: 1px solid var(--gold) !important;
}
html[data-theme="dark"] .nav-cta:hover {
  background: #e8c77a !important;
  color: #0a110e !important;
  box-shadow: 0 6px 18px rgba(201,160,68,0.35);
}

html[data-theme="dark"] .btn-gold,
html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] a.btn-gold,
html[data-theme="dark"] button.btn-gold,
html[data-theme="dark"] .rv-leadmagnet-submit {
  background: var(--gold) !important;
  color: #0a110e !important;
  border-color: var(--gold) !important;
  font-weight: 700 !important;
}
html[data-theme="dark"] .btn-gold:hover,
html[data-theme="dark"] .btn-primary:hover,
html[data-theme="dark"] .rv-leadmagnet-submit:hover {
  background: #e8c77a !important;
  color: #0a110e !important;
  box-shadow: 0 8px 24px rgba(201,160,68,0.4);
}

html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] a.btn-secondary {
  background: transparent !important;
  color: #f2e9cf !important;
  border: 1.5px solid var(--gold) !important;
}
html[data-theme="dark"] .btn-secondary:hover {
  background: var(--gold) !important;
  color: #0a110e !important;
}

html[data-theme="dark"] a {
  color: #e8c77a;
}
html[data-theme="dark"] a:hover { color: #f2e9cf; }

html[data-theme="dark"] .nav-links a:not(.nav-cta) {
  color: #e8efe9 !important;
}
html[data-theme="dark"] .nav-links a:not(.nav-cta):hover {
  color: var(--gold) !important;
}

html[data-theme="dark"] .footer,
html[data-theme="dark"] .footer-bottom span,
html[data-theme="dark"] .footer p,
html[data-theme="dark"] .footer li {
  color: #b7c2b9 !important;
}
html[data-theme="dark"] .footer a,
html[data-theme="dark"] .footer-bottom a {
  color: #e8c77a !important;
}
html[data-theme="dark"] .footer a:hover { color: #fff !important; }

html[data-theme="dark"] .page-hero,
html[data-theme="dark"] .page-hero h1,
html[data-theme="dark"] .page-hero p,
html[data-theme="dark"] .hero,
html[data-theme="dark"] .hero h1,
html[data-theme="dark"] .hero p {
  color: #f2e9cf !important;
}
html[data-theme="dark"] .rv-eyebrow {
  color: var(--gold) !important;
  opacity: 1 !important;
}

html[data-theme="dark"] .cta-banner,
html[data-theme="dark"] .lead-section {
  background: linear-gradient(135deg, #0d1d15 0%, #11261b 100%) !important;
  color: #f2e9cf !important;
}
html[data-theme="dark"] .cta-banner h2,
html[data-theme="dark"] .cta-banner p,
html[data-theme="dark"] .lead-section h2,
html[data-theme="dark"] .lead-section p {
  color: #f2e9cf !important;
}

html[data-theme="dark"] .rv-leadmagnet-cover {
  background: linear-gradient(135deg, #1a4e30 0%, #2d7a52 100%) !important;
  color: #f2e9cf !important;
}
html[data-theme="dark"] .rv-leadmagnet-cover h3,
html[data-theme="dark"] .rv-leadmagnet-cover p { color: #f2e9cf !important; }

html[data-theme="dark"] .rv-resource-card h3 { color: #f2e9cf !important; }
html[data-theme="dark"] .rv-resource-card p { color: #b7c2b9 !important; }
html[data-theme="dark"] .rv-resource-link { color: var(--gold) !important; }
html[data-theme="dark"] .rv-resource-tag {
  background: rgba(201,160,68,0.18) !important;
  color: #f2e9cf !important;
}
html[data-theme="dark"] .rv-resource-card--featured .rv-resource-tag {
  background: var(--gold) !important;
  color: #0a110e !important;
}

html[data-theme="dark"] .rv-author-stat-val { color: var(--gold) !important; }
html[data-theme="dark"] .rv-author-stat-label { color: #b7c2b9 !important; }
html[data-theme="dark"] .rv-author-chip {
  background: #13201b !important;
  color: #f2e9cf !important;
  border: 1px solid #26332d !important;
}
html[data-theme="dark"] .rv-author-social {
  background: #13201b !important;
  color: #e8c77a !important;
  border: 1px solid #26332d !important;
}

html[data-theme="dark"] .breadcrumb,
html[data-theme="dark"] .breadcrumb a { color: #b7c2b9 !important; }
html[data-theme="dark"] .breadcrumb a:hover { color: var(--gold) !important; }

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color: #6f7d72 !important; }
html[data-theme="dark"] label,
html[data-theme="dark"] .rv-leadmagnet-consent span,
html[data-theme="dark"] .rv-leadmagnet-trust { color: #b7c2b9 !important; }

html[data-theme="dark"] table { color: #e8efe9; }
html[data-theme="dark"] th { color: #f2e9cf; border-color: #26332d; }
html[data-theme="dark"] td { color: #b7c2b9; border-color: #26332d; }

html[data-theme="dark"] .quiz-option,
html[data-theme="dark"] .quiz-card {
  background: #13201b !important;
  color: #e8efe9 !important;
  border-color: #26332d !important;
}
html[data-theme="dark"] .quiz-option:hover { border-color: var(--gold) !important; }

html[data-theme="dark"] code, html[data-theme="dark"] pre {
  background: #0d1512 !important;
  color: #e8c77a !important;
  border: 1px solid #26332d;
}
html[data-theme="dark"] blockquote {
  border-left-color: var(--gold) !important;
  color: #f2e9cf !important;
}

html[data-theme="dark"] .rv-clients-marquee,
html[data-theme="dark"] .rv-marquee {
  background: #0d1512 !important;
  border-top: 1px solid #26332d;
  border-bottom: 1px solid #26332d;
}

html[data-theme="dark"] .rv-theme-toggle {
  color: #f2e9cf !important;
  border-color: rgba(255,255,255,0.18) !important;
}

html[data-theme="dark"] ::-webkit-scrollbar { width: 10px; }
html[data-theme="dark"] ::-webkit-scrollbar-track { background: #0a110e; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #26332d; border-radius: 5px; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: var(--gold); }

html[data-theme="dark"] ::selection { background: var(--gold); color: #0a110e; }

/* ════════════════════════════════════════════════════════════
   DARK MODE — FIX CONTACT / WIZARD / FORMULAIRE DEVIS (v5)
   Cible : page contact.html — wizard "Demandez votre devis personnalisé"
   ════════════════════════════════════════════════════════════ */

html[data-theme="dark"] .rv-wizard {
  background: #13201b !important;
  border: 1px solid #26332d !important;
  color: #e8efe9 !important;
}

html[data-theme="dark"] .section-title { color: #f2e9cf !important; }
html[data-theme="dark"] .rv-wizard ~ p,
html[data-theme="dark"] .rv-wizard-step h3,
html[data-theme="dark"] .rv-wizard-step p,
html[data-theme="dark"] .rv-wizard-sub,
html[data-theme="dark"] .rv-wizard-step-num {
  color: #b7c2b9 !important;
}
html[data-theme="dark"] .rv-wizard-step h3 { color: #f2e9cf !important; }
html[data-theme="dark"] .rv-wizard-step-num {
  color: var(--gold) !important;
  letter-spacing: 0.06em;
}

html[data-theme="dark"] .rv-wizard-progress-bar {
  background: #26332d !important;
}
html[data-theme="dark"] .rv-wizard-progress-bar.is-active,
html[data-theme="dark"] .rv-wizard-progress-bar.is-done {
  background: var(--gold) !important;
}

html[data-theme="dark"] .rv-choice {
  background: #0f1a16 !important;
  border: 1.5px solid #26332d !important;
  color: #e8efe9 !important;
}
html[data-theme="dark"] .rv-choice:hover {
  border-color: var(--gold) !important;
  background: #14241e !important;
  transform: translateY(-2px);
}
html[data-theme="dark"] .rv-choice input:checked ~ .rv-choice-label,
html[data-theme="dark"] .rv-choice input:checked ~ .rv-choice-desc {
  color: var(--gold) !important;
}
html[data-theme="dark"] .rv-choice:has(input:checked) {
  border-color: var(--gold) !important;
  background: rgba(201,160,68,0.08) !important;
  box-shadow: 0 0 0 3px rgba(201,160,68,0.15);
}
html[data-theme="dark"] .rv-choice-label { color: #f2e9cf !important; }
html[data-theme="dark"] .rv-choice-desc { color: #b7c2b9 !important; }
html[data-theme="dark"] .rv-choice-icon { filter: brightness(1.15); }

html[data-theme="dark"] .rv-field label {
  color: #f2e9cf !important;
  font-weight: 600;
}
html[data-theme="dark"] .rv-field input,
html[data-theme="dark"] .rv-field textarea,
html[data-theme="dark"] .rv-field select {
  background: #0a110e !important;
  border: 1.5px solid #26332d !important;
  color: #e8efe9 !important;
}
html[data-theme="dark"] .rv-field input:focus,
html[data-theme="dark"] .rv-field textarea:focus,
html[data-theme="dark"] .rv-field select:focus {
  border-color: var(--gold) !important;
  background: #0d1714 !important;
  box-shadow: 0 0 0 3px rgba(201,160,68,0.18) !important;
  outline: none;
}
html[data-theme="dark"] .rv-field input::placeholder,
html[data-theme="dark"] .rv-field textarea::placeholder {
  color: #6f7d72 !important;
}

html[data-theme="dark"] .rv-wizard-back,
html[data-theme="dark"] .rv-wizard-next {
  background: var(--gold) !important;
  color: #0a110e !important;
  border: 1px solid var(--gold) !important;
  font-weight: 700 !important;
}
html[data-theme="dark"] .rv-wizard-back {
  background: transparent !important;
  color: #e8efe9 !important;
  border: 1.5px solid #26332d !important;
}
html[data-theme="dark"] .rv-wizard-back:hover:not(:disabled) {
  border-color: var(--gold) !important;
  color: var(--gold) !important;
}
html[data-theme="dark"] .rv-wizard-back:disabled {
  opacity: 0.4 !important;
  cursor: not-allowed;
}
html[data-theme="dark"] .rv-wizard-next:hover {
  background: #e8c77a !important;
  box-shadow: 0 8px 22px rgba(201,160,68,0.4);
}

html[data-theme="dark"] .rv-wizard-step p[style*="--rv-slate"],
html[data-theme="dark"] .rv-wizard-step p[style*="0.78"] {
  color: #8a968c !important;
}

html[data-theme="dark"] .contact-info-card {
  background: #13201b !important;
  border: 1px solid #26332d !important;
  color: #e8efe9 !important;
}
html[data-theme="dark"] .contact-info-card h3 { color: #f2e9cf !important; }
html[data-theme="dark"] .contact-item-text strong { color: #f2e9cf !important; }
html[data-theme="dark"] .contact-item-text a {
  color: var(--gold) !important;
}
html[data-theme="dark"] .contact-item-text a:hover { color: #f2e9cf !important; }
html[data-theme="dark"] .contact-item-text span { color: #b7c2b9 !important; }
html[data-theme="dark"] .contact-item-icon {
  background: rgba(201,160,68,0.12) !important;
  color: var(--gold) !important;
}
html[data-theme="dark"] .contact-socials a {
  background: #0a110e !important;
  color: var(--gold) !important;
  border: 1px solid #26332d !important;
}
html[data-theme="dark"] .contact-socials a:hover {
  background: var(--gold) !important;
  color: #0a110e !important;
}

html[data-theme="dark"] div[style*="--green-light"] {
  background: #0d1714 !important;
  border: 1px solid #26332d;
}
html[data-theme="dark"] div[style*="--green-light"] h3 {
  color: var(--gold) !important;
}
html[data-theme="dark"] div[style*="--green-light"] li,
html[data-theme="dark"] div[style*="--green-light"] ul li {
  color: #b7c2b9 !important;
}
html[data-theme="dark"] div[style*="--green-light"] li span[style*="--green-accent"] {
  color: #7DD89F !important;
}

html[data-theme="dark"] #formSuccess {
  background: rgba(125,216,159,0.1) !important;
  border: 1px solid rgba(125,216,159,0.3);
}
html[data-theme="dark"] #formSuccess h3 { color: #7DD89F !important; }
html[data-theme="dark"] #formSuccess p { color: #b7c2b9 !important; }

html[data-theme="dark"] #formError {
  background: rgba(192,57,43,0.15) !important;
  border: 1px solid rgba(192,57,43,0.4);
}
html[data-theme="dark"] #formError h3 { color: #ff8a7a !important; }
html[data-theme="dark"] #formError p { color: #b7c2b9 !important; }
html[data-theme="dark"] #formError a { color: var(--gold) !important; }

html[data-theme="dark"] .page-hero h1 { color: #f2e9cf !important; }
html[data-theme="dark"] .page-hero p { color: #b7c2b9 !important; }

/* ════════════════════════════════════════════════════════════
   PRELOADER — logo splash au chargement de chaque page
   ════════════════════════════════════════════════════════════ */
.rv-preloader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #0D2A1A;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1.2rem;
  opacity: 1;
  transition: opacity 0.55s ease, visibility 0.55s ease;
}
.rv-preloader-logo {
  width: 88px;
  height: 88px;
  animation: rv-preloader-pulse 1.4s cubic-bezier(0.4,0,0.2,1) infinite;
  filter: drop-shadow(0 6px 24px rgba(212,168,67,0.25));
}
.rv-preloader-text {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 1.4rem;
  color: #F2E9CF;
  letter-spacing: 0.04em;
  opacity: 0;
  animation: rv-preloader-fadein 0.6s 0.2s ease forwards;
}
.rv-preloader-bar {
  width: 120px;
  height: 2px;
  background: rgba(242,233,207,0.18);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.rv-preloader-bar::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, #D4A843, transparent);
  animation: rv-preloader-slide 1.2s ease-in-out infinite;
}
@keyframes rv-preloader-pulse {
  0%, 100% { transform: scale(1); opacity: 0.95; }
  50% { transform: scale(1.06); opacity: 1; }
}
@keyframes rv-preloader-fadein {
  to { opacity: 1; }
}
@keyframes rv-preloader-slide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
.rv-preloader.is-out {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .rv-preloader-logo { animation: none; }
  .rv-preloader-bar::after { animation: none; background: #D4A843; }
}
html.rv-loading, html.rv-loading body { overflow: hidden; }

/* ===== genius.css ===== */
/* ============================================================
   GENIUS.CSS — Upgrade pass 2026-04
   Reading-progress, related articles, exit-intent modal,
   trust strip, dark-mode polish, lead magnet pages, timeline,
   carbone calculator.
   ============================================================ */

.rv-read-progress{
  position:fixed; top:0; left:0; height:4px; width:0%;
  background:linear-gradient(90deg,#D4A95C 0%,#E8C77A 40%,#4CAF70 100%);
  z-index:9999; transition:width .08s linear;
  box-shadow:0 0 8px rgba(212,169,92,.4);
}
[data-theme="dark"] .rv-read-progress{
  background:linear-gradient(90deg,#C9A24E 0%,#E0BC6E 40%,#4CAF70 100%);
}

.rv-related{
  max-width:1100px; margin:4rem auto 3rem; padding:0 1.5rem;
}
.rv-related-title{
  font-family:'Fraunces',serif; font-size:clamp(1.4rem,2.4vw,1.9rem);
  margin:0 0 1.8rem; text-align:center; color:var(--text-strong, #1A4E30);
}
.rv-related-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.4rem;
}
.rv-related-card{
  display:flex; flex-direction:column; padding:1.4rem 1.4rem 1.6rem;
  background:#fff; border:1px solid rgba(26,78,48,.08);
  border-radius:14px; box-shadow:0 6px 22px rgba(26,78,48,.06);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  text-decoration:none; color:inherit;
}
.rv-related-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 32px rgba(26,78,48,.12);
  border-color:rgba(76,175,112,.4);
}
.rv-related-tag{
  display:inline-block; padding:3px 10px; border-radius:50px;
  background:rgba(76,175,112,.12); color:#2D7A3A;
  font-size:.72rem; font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; margin-bottom:.7rem; align-self:flex-start;
}
.rv-related-card h3{
  font-family:'Fraunces',serif; font-size:1.05rem; line-height:1.35;
  margin:0 0 .6rem; color:var(--text-strong,#1A4E30);
}
.rv-related-card p{
  font-size:.85rem; color:var(--text-mid,#4a5b51); line-height:1.55;
  margin:0 0 1rem;
}
.rv-related-arrow{
  margin-top:auto; font-size:.82rem; color:#2D7A3A; font-weight:600;
}
[data-theme="dark"] .rv-related-card{
  background:#15201a; border-color:rgba(255,255,255,.07);
  box-shadow:0 6px 22px rgba(0,0,0,.3);
}
[data-theme="dark"] .rv-related-card h3{ color:#EBF5EE; }
[data-theme="dark"] .rv-related-card p{ color:#b8c8bf; }
[data-theme="dark"] .rv-related-tag{ background:rgba(76,175,112,.18); color:#7de0a0; }

.rv-exit-overlay{
  position:fixed; inset:0; background:rgba(8,18,12,.72);
  display:none; align-items:center; justify-content:center;
  z-index:10000; backdrop-filter:blur(4px);
  animation:rvFade .25s ease;
}
.rv-exit-overlay.is-open{ display:flex; }
@keyframes rvFade{ from{opacity:0} to{opacity:1} }
.rv-exit-modal{
  background:#fff; max-width:480px; width:calc(100% - 2rem);
  border-radius:18px; padding:2.4rem 2rem 2rem; position:relative;
  box-shadow:0 30px 80px rgba(0,0,0,.4);
  animation:rvUp .3s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes rvUp{ from{transform:translateY(20px);opacity:0} to{transform:none;opacity:1} }
.rv-exit-close{
  position:absolute; top:12px; right:14px; width:34px; height:34px;
  background:transparent; border:none; cursor:pointer; font-size:1.4rem;
  color:#6b7d72; border-radius:50%;
}
.rv-exit-close:hover{ background:rgba(0,0,0,.06); color:#1A4E30; }
.rv-exit-modal h3{
  font-family:'Fraunces',serif; font-size:1.5rem; line-height:1.25;
  margin:0 0 .6rem; color:#1A4E30;
}
.rv-exit-modal p{ color:#4a5b51; font-size:.95rem; line-height:1.55; margin:0 0 1.2rem; }
.rv-exit-form{ display:flex; gap:.6rem; flex-direction:column; }
.rv-exit-form input[type="email"]{
  padding:.85rem 1rem; border:2px solid #E5EDE8; border-radius:10px;
  font-size:.95rem; font-family:inherit; outline:none;
  transition:border-color .2s;
}
.rv-exit-form input[type="email"]:focus{ border-color:#4CAF70; }
.rv-exit-form button{
  padding:.85rem 1rem; border:none; border-radius:10px; cursor:pointer;
  background:linear-gradient(135deg,#1A4E30,#2D7A3A); color:#fff;
  font-weight:600; font-size:.95rem; font-family:inherit;
}
.rv-exit-form button:hover{ filter:brightness(1.08); }
.rv-exit-foot{ font-size:.72rem; color:#8aa093; margin-top:.7rem; text-align:center; }
[data-theme="dark"] .rv-exit-modal{ background:#15201a; }
[data-theme="dark"] .rv-exit-modal h3{ color:#EBF5EE; }
[data-theme="dark"] .rv-exit-modal p{ color:#b8c8bf; }
[data-theme="dark"] .rv-exit-form input[type="email"]{
  background:#0f1813; color:#EBF5EE; border-color:#2a3a31;
}

.rv-sources-strip{
  padding:2.2rem 1.5rem; background:transparent;
  border-top:1px solid rgba(26,78,48,.07);
  border-bottom:1px solid rgba(26,78,48,.07);
}
.rv-sources-inner{
  max-width:1100px; margin:0 auto; text-align:center;
}
.rv-sources-title{
  font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-light,#6b7d72); font-weight:600; margin:0 0 1.1rem;
}
.rv-sources-pills{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem;
}
.rv-source-pill{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.5rem 1rem; border-radius:50px;
  background:#fff; border:1px solid rgba(26,78,48,.12);
  font-size:.82rem; font-weight:500; color:#1A4E30;
  box-shadow:0 2px 6px rgba(26,78,48,.04);
}
.rv-source-pill::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:#4CAF70;
}
[data-theme="dark"] .rv-source-pill{
  background:#15201a; border-color:rgba(255,255,255,.08); color:#EBF5EE;
}

.rv-roi-report-btn{
  margin-top:.9rem; display:inline-block; padding:.7rem 1.1rem;
  background:transparent; border:2px solid rgba(255,255,255,.35);
  color:#fff; border-radius:10px; cursor:pointer;
  font-weight:600; font-size:.85rem; font-family:inherit;
  transition:background .2s, border-color .2s;
}
.rv-roi-report-btn:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.rv-roi-report-form{
  display:none; margin-top:.9rem; gap:.5rem; flex-direction:column;
}
.rv-roi-report-form.is-open{ display:flex; }
.rv-roi-report-form input{
  padding:.7rem .9rem; border-radius:8px; border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08); color:#fff; font-family:inherit;
  outline:none; font-size:.88rem;
}
.rv-roi-report-form input::placeholder{ color:rgba(255,255,255,.5); }
.rv-roi-report-form button{
  padding:.7rem 1rem; background:#D4A95C; color:#1A2E20; border:none;
  border-radius:8px; cursor:pointer; font-weight:700; font-size:.88rem;
  font-family:inherit;
}
.rv-roi-report-form button:hover{ filter:brightness(1.08); }
.rv-roi-report-success{
  display:none; margin-top:.7rem; padding:.6rem .9rem;
  background:rgba(76,175,112,.15); border:1px solid rgba(76,175,112,.4);
  border-radius:8px; color:#9be0b1; font-size:.85rem;
}
.rv-roi-report-success.is-open{ display:block; }

.rv-carbone-form{
  max-width:760px; margin:3rem auto; padding:2rem;
  background:#fff; border-radius:16px;
  box-shadow:0 14px 40px rgba(26,78,48,.08);
  border:1px solid rgba(26,78,48,.06);
}
[data-theme="dark"] .rv-carbone-form{
  background:#15201a; border-color:rgba(255,255,255,.06);
}
.rv-carbone-field{ margin-bottom:1.5rem; }
.rv-carbone-field > label{
  display:flex; justify-content:space-between; align-items:center;
  font-weight:600; color:var(--text-strong,#1A4E30);
  margin-bottom:.55rem; font-size:.92rem;
}
.rv-carbone-field input[type="number"],
.rv-carbone-field select{
  width:100%; padding:.75rem .9rem;
  border:2px solid #E5EDE8; border-radius:10px;
  font-size:.95rem; font-family:inherit; outline:none;
  background:#fff; color:#1A2E20;
}
.rv-carbone-field input[type="number"]:focus,
.rv-carbone-field select:focus{ border-color:#4CAF70; }
.rv-carbone-field input[type="range"]{ width:100%; }
.rv-carbone-field .rv-c-val{
  color:#2D7A3A; font-weight:700; font-variant-numeric:tabular-nums;
}
[data-theme="dark"] .rv-carbone-field input[type="number"],
[data-theme="dark"] .rv-carbone-field select{
  background:#0f1813; border-color:#2a3a31; color:#EBF5EE;
}
.rv-carbone-submit{
  width:100%; padding:1rem; border:none; border-radius:12px;
  background:linear-gradient(135deg,#1A4E30,#2D7A3A);
  color:#fff; font-weight:700; font-size:1rem; cursor:pointer;
  font-family:inherit;
}
.rv-carbone-submit:hover{ filter:brightness(1.08); }
.rv-carbone-result{
  display:none; max-width:760px; margin:2rem auto;
  padding:2rem; border-radius:16px;
  background:linear-gradient(135deg,#1A4E30 0%,#2D7A3A 100%);
  color:#fff; box-shadow:0 18px 50px rgba(26,78,48,.25);
}
.rv-carbone-result.is-open{ display:block; }
.rv-carbone-result h3{
  font-family:'Fraunces',serif; font-size:1.6rem; margin:0 0 1rem;
}
.rv-carbone-bignum{
  font-family:'Fraunces',serif; font-size:3rem; font-weight:600;
  color:#E8C77A; line-height:1; margin:.4rem 0;
}
.rv-carbone-eq{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:1rem; margin:1.5rem 0; padding:1rem 0;
  border-top:1px solid rgba(255,255,255,.15);
  border-bottom:1px solid rgba(255,255,255,.15);
}
.rv-carbone-eq div{ font-size:.88rem; color:rgba(255,255,255,.85); }
.rv-carbone-eq strong{ display:block; font-size:1.2rem; color:#fff; }
.rv-carbone-savings{
  background:rgba(212,169,92,.18); border:1px solid rgba(212,169,92,.35);
  border-radius:12px; padding:1rem 1.2rem; margin-top:1rem;
  font-size:.92rem;
}
.rv-carbone-savings strong{ color:#E8C77A; font-size:1.1rem; }
.rv-carbone-cta{
  display:inline-block; margin-top:1.4rem; padding:.85rem 1.5rem;
  background:#fff; color:#1A4E30; border-radius:10px;
  text-decoration:none; font-weight:700;
}
.rv-carbone-cta:hover{ background:#E8C77A; color:#1A2E20; }

.rv-tl-filters{
  display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center;
  margin:2rem auto 3rem;
}
.rv-tl-filter{
  padding:.5rem 1.1rem; border-radius:50px; cursor:pointer;
  border:1.5px solid rgba(26,78,48,.18); background:#fff;
  font-size:.85rem; font-weight:600; color:#1A4E30; font-family:inherit;
  transition:all .2s;
}
.rv-tl-filter:hover{ border-color:#4CAF70; }
.rv-tl-filter.is-active{
  background:#1A4E30; color:#fff; border-color:#1A4E30;
}
[data-theme="dark"] .rv-tl-filter{
  background:#15201a; color:#EBF5EE; border-color:rgba(255,255,255,.12);
}
[data-theme="dark"] .rv-tl-filter.is-active{ background:#4CAF70; border-color:#4CAF70; color:#0a1410; }

.rv-timeline{
  position:relative; max-width:880px; margin:0 auto; padding:1rem 0 3rem;
}
.rv-timeline::before{
  content:""; position:absolute; left:30px; top:0; bottom:0;
  width:2px; background:linear-gradient(180deg,#4CAF70,#D4A95C);
}
.rv-tl-item{
  position:relative; padding:0 0 2rem 70px;
}
.rv-tl-item.is-hidden{ display:none; }
.rv-tl-dot{
  position:absolute; left:22px; top:6px;
  width:18px; height:18px; border-radius:50%;
  background:#fff; border:3px solid #4CAF70;
  box-shadow:0 0 0 4px rgba(76,175,112,.18);
}
.rv-tl-card{
  background:#fff; border-radius:14px;
  border:1px solid rgba(26,78,48,.1);
  padding:1.2rem 1.4rem; cursor:pointer;
  transition:box-shadow .2s, transform .2s, border-color .2s;
}
.rv-tl-card:hover{
  box-shadow:0 12px 28px rgba(26,78,48,.12);
  border-color:rgba(76,175,112,.4);
}
.rv-tl-year{
  font-size:.78rem; font-weight:700; color:#D4A95C;
  letter-spacing:.1em; text-transform:uppercase;
}
.rv-tl-card h3{
  font-family:'Fraunces',serif; font-size:1.15rem;
  margin:.2rem 0 .5rem; color:#1A4E30;
}
.rv-tl-summary{
  font-size:.9rem; color:#4a5b51; line-height:1.55; margin:0;
}
.rv-tl-detail{
  display:none; margin-top:.9rem; padding-top:.9rem;
  border-top:1px dashed rgba(26,78,48,.15);
  font-size:.88rem; color:#3D5449; line-height:1.65;
}
.rv-tl-card.is-open .rv-tl-detail{ display:block; }
.rv-tl-tags{ margin-top:.6rem; display:flex; gap:.4rem; flex-wrap:wrap; }
.rv-tl-tag{
  font-size:.7rem; padding:2px 8px; border-radius:50px;
  background:rgba(76,175,112,.12); color:#2D7A3A; font-weight:600;
}
[data-theme="dark"] .rv-tl-card{
  background:#15201a; border-color:rgba(255,255,255,.08);
}
[data-theme="dark"] .rv-tl-card h3{ color:#EBF5EE; }
[data-theme="dark"] .rv-tl-summary{ color:#b8c8bf; }
[data-theme="dark"] .rv-tl-detail{ color:#cdd9d2; border-top-color:rgba(255,255,255,.1); }
[data-theme="dark"] .rv-tl-dot{ background:#0a1410; }

.rv-lm-hero{
  display:grid; grid-template-columns:1fr 1fr; gap:3rem;
  align-items:center; max-width:1100px; margin:0 auto;
  padding:4rem 1.5rem 2rem;
}
@media(max-width:820px){ .rv-lm-hero{ grid-template-columns:1fr; } }
.rv-lm-cover{
  aspect-ratio:1/1.35; max-width:340px; width:100%; margin:0 auto;
  border-radius:14px; overflow:hidden; position:relative;
  background:linear-gradient(160deg,#1A4E30 0%,#2D7A3A 60%,#4CAF70 100%);
  box-shadow:0 30px 60px rgba(26,78,48,.25);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:2rem 1.6rem; color:#fff;
  transform:rotate(-2deg);
  transition:transform .3s;
}
.rv-lm-cover:hover{ transform:rotate(0); }
.rv-lm-cover-tag{
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  color:#E8C77A; font-weight:700;
}
.rv-lm-cover h2{
  font-family:'Fraunces',serif; font-size:1.7rem; line-height:1.2;
  margin:.5rem 0 0;
}
.rv-lm-cover-sub{ font-size:.9rem; color:rgba(255,255,255,.8); margin-top:.4rem; }
.rv-lm-cover-foot{
  font-size:.75rem; color:rgba(255,255,255,.65); margin-top:auto;
  border-top:1px solid rgba(255,255,255,.18); padding-top:.8rem;
}
.rv-lm-content h1{
  font-family:'Fraunces',serif; font-size:clamp(1.8rem,3.4vw,2.6rem);
  line-height:1.2; margin:0 0 1rem; color:#1A4E30;
}
[data-theme="dark"] .rv-lm-content h1{ color:#EBF5EE; }
.rv-lm-content > p{
  color:var(--text-mid,#4a5b51); font-size:1rem; line-height:1.65;
  margin-bottom:1.4rem;
}
.rv-lm-bullets{ list-style:none; padding:0; margin:0 0 1.6rem; }
.rv-lm-bullets li{
  display:flex; gap:.7rem; align-items:flex-start;
  padding:.55rem 0; color:var(--text-mid,#3D5449); font-size:.95rem;
}
.rv-lm-bullets li::before{
  content:"✓"; flex-shrink:0; width:22px; height:22px; border-radius:50%;
  background:#4CAF70; color:#fff; display:inline-flex;
  align-items:center; justify-content:center; font-size:.78rem; font-weight:700;
}
.rv-lm-form{ display:flex; gap:.6rem; flex-direction:column; max-width:460px; }
.rv-lm-form input[type="email"]{
  padding:.9rem 1.1rem; border:2px solid #E5EDE8; border-radius:10px;
  font-family:inherit; font-size:.95rem; outline:none;
}
.rv-lm-form input[type="email"]:focus{ border-color:#4CAF70; }
.rv-lm-form button{
  padding:1rem; border:none; border-radius:10px; cursor:pointer;
  background:linear-gradient(135deg,#1A4E30,#2D7A3A); color:#fff;
  font-weight:700; font-size:.95rem; font-family:inherit;
}
.rv-lm-form button:hover{ filter:brightness(1.08); }
.rv-lm-success{
  display:none; margin-top:1rem; padding:1rem 1.2rem;
  background:#EBF5EE; border:1px solid #4CAF70; border-radius:10px;
  color:#1A4E30; font-weight:500;
}
.rv-lm-success.is-open{ display:block; }
.rv-lm-privacy{ margin-top:.6rem; font-size:.75rem; color:var(--text-light,#6b7d72); }

[data-theme="dark"] .rv-lm-form input[type="email"]{
  background:#0f1813; color:#EBF5EE; border-color:#2a3a31;
}
[data-theme="dark"] .rv-lm-success{ background:rgba(76,175,112,.15); color:#9be0b1; }

[data-theme="dark"]{
  --gold: #C9A24E;
}
[data-theme="dark"] .gold,
[data-theme="dark"] .rv-roi-title em{
  color:#C9A24E;
}
[data-theme="dark"] .rv-card,
[data-theme="dark"] .pricing-card,
[data-theme="dark"] .blog-card,
[data-theme="dark"] .card,
[data-theme="dark"] .tarif-card{
  background:#142019;
  border-color:rgba(255,255,255,.06);
  color:#d8e3dd;
}
[data-theme="dark"] .card p,
[data-theme="dark"] .tarif-card .tarif-desc,
[data-theme="dark"] .blog-card p{ color:#b3c4bb; }
[data-theme="dark"] .section-sub{ color:#b3c4bb; }
[data-theme="dark"] .footer-bottom span{ color:#cdd9d2; }
[data-theme="dark"] .breadcrumb a{ color:#9be0b1; }
[data-theme="dark"] .text-light, [data-theme="dark"] .testimonial-text{ color:#cdd9d2; }
[data-theme="dark"] .reg-badge{
  background:rgba(76,175,112,.14); color:#9be0b1; border-color:rgba(76,175,112,.3);
}
[data-theme="dark"] .faq-question{ color:#EBF5EE; }
[data-theme="dark"] .faq-answer p{ color:#cdd9d2; }
[data-theme="dark"] .nav-cta{ color:#0a1410; }

.rv-compare-table .rv-payback{
  font-weight:600; color:#2D7A3A;
}
[data-theme="dark"] .rv-compare-table .rv-payback{ color:#9be0b1; }

/* ============================================================
   11. LIGHT-MODE CONTRAST FIXES (WCAG AA pass 2026-04-25)
   Targets pale gold/cream/light-gray text on white backgrounds.
   Scoped to default (light) — dark mode untouched.
   ============================================================ */

:root,
html:not([data-theme="dark"]) {
  --text-mid: #2F4438;        
  --text-light: #4F6A5C;      
  --gold-readable: #8B6F2A;   
}

html:not([data-theme="dark"]) .rv-resource-tag {
  background: rgba(212, 168, 67, 0.18);
  color: #6B5414;
  border: 1px solid rgba(139, 111, 42, 0.28);
}

html:not([data-theme="dark"]) .tarif-desc,
html:not([data-theme="dark"]) .tarif-price span {
  color: #4F6A5C;
}

html:not([data-theme="dark"]) .faq-answer p,
html:not([data-theme="dark"]) .faq-answer {
  color: #2F4438;
}

.page-hero h1 { color: #ffffff !important; }
.page-hero p { color: rgba(255, 255, 255, 0.88) !important; }
.page-hero .breadcrumb,
.page-hero .breadcrumb a { color: rgba(255, 255, 255, 0.72) !important; }
.page-hero .rv-eyebrow { color: var(--gold, #D4A95C) !important; }

html:not([data-theme="dark"]) .rv-leadmagnet-trust,
html:not([data-theme="dark"]) .rv-lm-privacy,
html:not([data-theme="dark"]) .rv-exit-foot {
  color: #4F6A5C;
}

html:not([data-theme="dark"]) .footer-bottom span,
html:not([data-theme="dark"]) .footer-bottom a {
  color: #EBF5EE;
}

html:not([data-theme="dark"]) .rv-tool-meta small {
  color: #2F4438;
}

html:not([data-theme="dark"]) .rv-carbone-field > label {
  color: #163D2A;
}
html:not([data-theme="dark"]) .rv-carbone-field .rv-c-val {
  color: #1A4E30;
}

html:not([data-theme="dark"]) .rv-quiz-option,
html:not([data-theme="dark"]) .rv-quiz-option label {
  color: #163D2A;
}

html:not([data-theme="dark"]) .rv-tl-summary { color: #2F4438; }
html:not([data-theme="dark"]) .rv-tl-detail  { color: #1F3329; }
html:not([data-theme="dark"]) .rv-tl-year    { color: #8B6F2A; }

html:not([data-theme="dark"]) .rv-related-card p { color: #2F4438; }

html:not([data-theme="dark"]) .rv-sources-title { color: #4F6A5C; }

/* Generic gold-on-white body text guard: any element styled inline with the
   pale gold tokens used as body copy gets the readable variant. */
html:not([data-theme="dark"]) .text-gold-body,
html:not([data-theme="dark"]) p .gold-text {
  color: #8B6F2A;
}

html:not([data-theme="dark"]) .rv-case-section p,
html:not([data-theme="dark"]) .rv-case-list li {
  color: #2F4438;
}

/* ============================================================
   12. NAV SPACING — breathing room between logo and "Accueil"
   ============================================================ */
/* Hide duplicate theme toggle: premium.js auto-injects a .rv-theme-toggle into the
   nav, but the HTML still ships a #themeToggle button. Keep only the JS-injected one. */
.nav-inner #themeToggle.theme-toggle { display: none !important; }

.nav-links li, .nav-links a, .nav-cta { white-space: nowrap; }

@media (min-width: 901px) {
  .nav-inner { justify-content: space-between !important; gap: 0 !important; flex-wrap: nowrap; }
  .nav-inner .nav-logo { flex-shrink: 0; }
  .nav-inner .nav-links {
    gap: clamp(1rem, 1.6vw, 1.75rem) !important;
    flex-wrap: nowrap;
    align-items: center;
  }
  .nav-inner .nav-links a { font-size: clamp(0.84rem, 0.95vw, 0.92rem); }
  .nav-inner .nav-links .nav-cta { margin-left: 0.5rem; padding: 0.55rem 1rem; }
  .nav-inner .rv-theme-toggle { margin-left: 0.75rem; flex-shrink: 0; }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .nav-inner .nav-links { gap: 1.05rem !important; }
  .nav-inner .nav-links a { font-size: 0.82rem; letter-spacing: 0.01em; }
  .nav-logo span { font-size: 1.1rem !important; }
}

/* ============================================================
   13. TOOLS SECTION — boost prominence in ressources.html
   ============================================================ */
.rv-tools-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 1rem;
  background: linear-gradient(135deg, #E4C98C 0%, #C9A45C 100%);
  color: #1A2E20;
  border-radius: 50px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 auto 1.1rem;
  box-shadow: 0 8px 22px rgba(201, 164, 92, 0.3);
}
.rv-tools-eyebrow-wrap { text-align: center; }

.rv-tools-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(2rem, 4vw, 2.9rem);
  line-height: 1.1;
  text-align: center;
  margin: 0 auto 0.8rem;
  background: linear-gradient(135deg, #1A4E30 0%, #2D7A3A 50%, #C9A45C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 600;
  max-width: 880px;
}
[data-theme="dark"] .rv-tools-title {
  background: linear-gradient(135deg, #EBF5EE 0%, #7DD29C 50%, #E4C98C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.rv-tools-sub {
  text-align: center;
  color: #2F4438;
  max-width: 680px;
  margin: 0 auto 2.5rem;
  font-size: 1.05rem;
  line-height: 1.6;
}
[data-theme="dark"] .rv-tools-sub { color: #b8c8bf; }

.rv-tools-reassurance {
  text-align: center;
  margin: 1.8rem auto 0;
  font-size: 0.88rem;
  color: #4F6A5C;
  font-weight: 500;
}
[data-theme="dark"] .rv-tools-reassurance { color: #b8c8bf; }

.rv-tool-panel {
  position: relative;
  background: linear-gradient(180deg, #ffffff 0%, #FBFAF6 100%) !important;
  border-left: 4px solid #C9A45C !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}
.rv-tool-panel:not([open]):hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(26, 78, 48, 0.14) !important;
}
[data-theme="dark"] .rv-tool-panel {
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(201,164,92,0.05) 100%) !important;
  border-left-color: #C9A24E !important;
}

.rv-tool-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.22rem 0.65rem;
  background: rgba(76, 175, 112, 0.15);
  color: #1A4E30;
  border-radius: 50px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-left: 0.6rem;
  flex-shrink: 0;
}
[data-theme="dark"] .rv-tool-status {
  background: rgba(76, 175, 112, 0.2);
  color: #9be0b1;
}
@media (max-width: 640px) {
  .rv-tool-status { display: none; }
}

.rv-embed .navbar,
.rv-embed nav#navbar,
.rv-embed .footer,
.rv-embed footer.footer,
.rv-embed .rv-preloader,
.rv-embed #rvPreloader,
.rv-embed .theme-toggle { display: none !important; }
.rv-embed body { padding-top: 0 !important; margin: 0 !important; background: transparent !important; }
.rv-embed main, .rv-embed .container { padding-top: 1rem !important; }

/* ===== magic.css ===== */
/* ============================================================
   RestauVert — magic.css
   Pass 3 : signature polish, micro-interactions, typography
   Loaded after premium.css + genius.css. Respects reduced-motion.
   ============================================================ */

:root {
  --magic-emerald: #1A4E30;
  --magic-emerald-2: #2a7a4a;
  --magic-gold: #D4A95C;
  --magic-gold-2: #b88a3e;
  --magic-ease: cubic-bezier(.22,.61,.36,1);
}

/* ============================================================
   1. Cursor leaf trail
   ============================================================ */
.rv-leaf-trail {
  position: fixed;
  pointer-events: none;
  width: 16px;
  height: 16px;
  z-index: 9998;
  opacity: .85;
  transform: translate(-50%,-50%) rotate(0deg);
  animation: rv-leaf-fade 900ms var(--magic-ease) forwards;
  will-change: opacity, transform;
}
@keyframes rv-leaf-fade {
  0%   { opacity: .85; transform: translate(-50%,-50%) scale(.6) rotate(0deg); }
  30%  { opacity: .85; transform: translate(-50%,-50%) scale(1) rotate(15deg); }
  100% { opacity: 0;   transform: translate(-50%, calc(-50% + 22px)) scale(.7) rotate(40deg); }
}

/* ============================================================
   2. Scroll progress indicator
   ============================================================ */
.rv-magic-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0%;
  background: linear-gradient(90deg, var(--magic-gold), var(--magic-emerald));
  z-index: 10000;
  transition: width 80ms linear;
  pointer-events: none;
}

/* ============================================================
   3. Reveal animations (variants supplémentaires)
   ============================================================ */
.fade-left, .fade-right, .zoom-in, .blur-in {
  opacity: 0;
  transition: opacity .8s var(--magic-ease), transform .8s var(--magic-ease), filter .8s var(--magic-ease);
  will-change: opacity, transform, filter;
}
.fade-left  { transform: translateX(-32px); }
.fade-right { transform: translateX(32px); }
.zoom-in    { transform: scale(.92); }
.blur-in    { filter: blur(10px); }
.fade-left.in-view, .fade-right.in-view {
  opacity: 1; transform: translateX(0);
}
.zoom-in.in-view { opacity: 1; transform: scale(1); }
.blur-in.in-view { opacity: 1; filter: blur(0); }

.fade-up:not(.in-view) { will-change: opacity, transform; }

/* ============================================================
   5. Magnetic CTA principal de nav (bonus, déjà présent ailleurs)
   ============================================================ */
.nav-cta { transition: transform .2s var(--magic-ease); }

/* ============================================================
   6. Smart tooltip PDF
   ============================================================ */
a[href$=".pdf"]:not(.no-pdf-badge) {
  position: relative;
}
a[href$=".pdf"]:not(.no-pdf-badge)::after {
  content: " PDF";
  display: inline-block;
  margin-left: .35em;
  padding: 1px 6px;
  font-size: .68em;
  font-weight: 700;
  letter-spacing: .04em;
  background: var(--magic-gold);
  color: #1a1a1a;
  border-radius: 4px;
  vertical-align: middle;
  line-height: 1.4;
}
a[href$=".pdf"][data-tip]:hover::before,
a[href$=".pdf"]:hover::before {
  content: "Téléchargement PDF";
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: #1a1a1a;
  color: #fff;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: .72rem;
  white-space: nowrap;
  pointer-events: none;
  z-index: 50;
  font-weight: 500;
  letter-spacing: 0;
}

/* ============================================================
   7. Section wave separator
   ============================================================ */
.rv-wave-sep {
  position: relative;
  margin-top: -1px;
}
.rv-wave-sep::before {
  content: "";
  position: absolute;
  top: -1px; left: 0; right: 0;
  height: 28px;
  background: inherit;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'><path d='M0,14 C200,0 400,28 600,14 C800,0 1000,28 1200,14 L1200,0 L0,0 Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'><path d='M0,14 C200,0 400,28 600,14 C800,0 1000,28 1200,14 L1200,0 L0,0 Z' fill='black'/></svg>");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  opacity: .5;
  pointer-events: none;
}

/* ============================================================
   8. Hero gradient mesh
   ============================================================ */
.hero, .rv-hero, [data-hero-mesh] {
  position: relative;
  isolation: isolate;
}
.hero::after,
.rv-hero::after,
[data-hero-mesh]::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 22%, rgba(212,169,92,.18), transparent 42%),
    radial-gradient(circle at 82% 30%, rgba(26,78,48,.22),  transparent 48%),
    radial-gradient(circle at 30% 78%, rgba(42,122,74,.18), transparent 45%),
    radial-gradient(circle at 78% 80%, rgba(212,169,92,.12), transparent 50%);
  filter: blur(8px);
  opacity: .9;
  animation: rv-mesh 22s ease-in-out infinite alternate;
}
@keyframes rv-mesh {
  0%   { transform: translate3d(0,0,0) scale(1); }
  50%  { transform: translate3d(2%, -1.5%, 0) scale(1.05); }
  100% { transform: translate3d(-2%, 1.5%, 0) scale(1.02); }
}
[data-theme="dark"] .hero::after,
[data-theme="dark"] .rv-hero::after,
[data-theme="dark"] [data-hero-mesh]::after { opacity: .6; }

/* ============================================================
   10. Typography polish
   ============================================================ */
body {
  letter-spacing: -0.005em;
}
h1, h2 {
  letter-spacing: -0.02em;
  font-variation-settings: "opsz" 144;
}
article p,
.rv-blog-content p,
.blog-content p,
main p {
  max-width: 65ch;
}
article > p:first-of-type::first-letter,
.rv-blog-content > p:first-of-type::first-letter {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 3.4em;
  line-height: .9;
  float: left;
  padding: 4px 10px 0 0;
  color: var(--magic-gold);
  font-weight: 600;
  font-variation-settings: "opsz" 144;
}

/* ============================================================
   11. Back-to-top floating button
   ============================================================ */
.rv-back-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--magic-gold), var(--magic-gold-2));
  color: #1a1a1a;
  border: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  transition: opacity .35s var(--magic-ease), transform .35s var(--magic-ease), box-shadow .2s;
  z-index: 9990;
  font-size: 1.1rem;
  font-weight: 700;
}
.rv-back-to-top.is-visible {
  opacity: 1; transform: translateY(0); pointer-events: auto;
}
.rv-back-to-top:hover { box-shadow: 0 10px 28px rgba(212,169,92,.45); }
@media (max-width: 600px) {
  .rv-back-to-top { right: 14px; bottom: 14px; width: 42px; height: 42px; }
}

/* ============================================================
   12. Image zoom on hover (subtle)
   ============================================================ */
.rv-card, .blog-card, .rv-resource-card, .pricing-card {
  overflow: hidden;
}
.rv-card img, .blog-card img, .rv-resource-card img, .pricing-card img {
  transition: transform 1.2s var(--magic-ease);
  will-change: transform;
}
.rv-card:hover img, .blog-card:hover img, .rv-resource-card:hover img, .pricing-card:hover img {
  transform: scale(1.04);
}

/* ============================================================
   13. Konami confetti + toast
   ============================================================ */
.rv-confetti {
  position: fixed; inset: 0; pointer-events: none; z-index: 10001;
}
.rv-confetti span {
  position: absolute;
  top: -20px;
  width: 10px; height: 14px;
  opacity: .9;
  animation: rv-confetti-fall linear forwards;
}
@keyframes rv-confetti-fall {
  to { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}
.rv-toast {
  position: fixed;
  left: 50%; bottom: 30px;
  transform: translateX(-50%) translateY(20px);
  background: linear-gradient(135deg, var(--magic-emerald), #0f3a23);
  color: #fff;
  padding: 14px 22px;
  border-radius: 14px;
  font-size: .92rem;
  box-shadow: 0 14px 38px rgba(0,0,0,.28);
  border: 1px solid rgba(212,169,92,.4);
  z-index: 10002;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s, transform .3s;
  max-width: 92%;
  text-align: center;
}
.rv-toast.is-visible {
  opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto;
}
.rv-toast b { color: var(--magic-gold); }

/* ============================================================
   14. Page transition fade
   ============================================================ */
body.rv-page-leaving {
  opacity: 0;
  transition: opacity .2s ease-out;
}

/* ============================================================
   15. Improved focus
   ============================================================ */
:focus-visible {
  outline: 3px solid var(--magic-gold);
  outline-offset: 4px;
  border-radius: 4px;
  transition: outline-offset .15s var(--magic-ease);
}
button:focus-visible, a:focus-visible {
  outline-offset: 4px;
}

/* ============================================================
   16. Card 3D tilt (la classe is-tilting est posée en JS)
   ============================================================ */
.pricing-card, .rv-tool-panel summary {
  transform-style: preserve-3d;
  transition: transform .25s var(--magic-ease);
  will-change: transform;
}

/* ============================================================
   17. Blockquote signature (blog only)
   ============================================================ */
article blockquote,
.rv-blog-content blockquote {
  position: relative;
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-size: 1.18rem;
  line-height: 1.5;
  color: var(--magic-emerald);
  border-left: 4px solid var(--magic-gold);
  padding: 1.25rem 1.25rem 1.25rem 3.4rem;
  margin: 2rem 0;
  background: linear-gradient(90deg, rgba(212,169,92,.08), transparent 70%);
  border-radius: 0 12px 12px 0;
}
article blockquote::before,
.rv-blog-content blockquote::before {
  content: "";
  position: absolute;
  left: 1rem; top: 1.1rem;
  width: 22px; height: 22px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231A4E30'><path d='M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3 5.02 0 8-3.5 8-7.5 0-1.78-.71-3.4-1.86-4.59L17 8M3 10c4.68 0 8 4.31 8 7.5 0 1.16-.5 2.5-1.5 3.5l-1.5-3c-.5.5-1.16 1-2 1-1.66 0-3-1.34-3-3 0-2.5 0-3.5 0-6'/></svg>") no-repeat center / contain;
  opacity: .85;
}
[data-theme="dark"] article blockquote,
[data-theme="dark"] .rv-blog-content blockquote {
  color: #cfe9d7;
  background: linear-gradient(90deg, rgba(212,169,92,.12), transparent 70%);
}

/* ============================================================
   18. Last-updated badge
   ============================================================ */
.rv-updated-badge {
  display: inline-block;
  background: linear-gradient(135deg, rgba(212,169,92,.18), rgba(212,169,92,.32));
  color: var(--magic-gold-2);
  border: 1px solid rgba(212,169,92,.4);
  padding: 4px 12px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .02em;
  margin-bottom: 1rem;
}
[data-theme="dark"] .rv-updated-badge {
  color: var(--magic-gold);
  background: rgba(212,169,92,.12);
}

/* ============================================================
   19. Theme mode hint
   ============================================================ */
.rv-theme-hint {
  position: absolute;
  bottom: -22px;
  left: 50%;
  transform: translateX(-50%);
  font-size: .65rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--magic-gold-2);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
  white-space: nowrap;
}
#themeToggle { position: relative; }
#themeToggle:hover .rv-theme-hint,
#themeToggle:focus-visible .rv-theme-hint { opacity: 1; }

/* ============================================================
   20. Footer flourish
   ============================================================ */
.rv-magic-flourish {
  display: block;
  text-align: center;
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-size: .85rem;
  margin-top: 1.4rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.08);
  opacity: .85;
}
.rv-magic-flourish .heart {
  color: var(--magic-gold);
  display: inline-block;
  animation: rv-heart 2.4s ease-in-out infinite;
}
@keyframes rv-heart {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.18); }
}

/* ============================================================
   Reduced motion : on calme tout
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .rv-leaf-trail,
  .hero::after, .rv-hero::after, [data-hero-mesh]::after,
  .rv-magic-flourish .heart {
    animation: none !important;
  }
  .fade-left, .fade-right, .zoom-in, .blur-in {
    opacity: 1 !important; transform: none !important; filter: none !important;
  }
  .rv-card img, .blog-card img, .rv-resource-card img, .pricing-card img {
    transition: none !important;
  }
}

/* ============================================================
   Embed mode (?embed=1) : on désactive les overlays globaux
   ============================================================ */
body.rv-embed .rv-magic-progress,
body.rv-embed .rv-back-to-top,
body.rv-embed .rv-leaf-trail { display: none !important; }

/* ===== genius-v2.css ===== */
/* ============================================================
   genius-v2.css — Surcouche d'améliorations "génie"
   Floating widget · Comparateur · Témoignages stats ·
   Pages sectorielles · Badge engagement · Méthodologie
   ============================================================ */

:root[data-theme="dark"] .rv-sector-card,
:root[data-theme="dark"] .rv-rel-card,
:root[data-theme="dark"] .rv-compare,
:root[data-theme="dark"] #autres-cas article {
  background: #142a1f;
  border-color: rgba(255,255,255,0.10);
  color: #e8efe9;
}
:root[data-theme="dark"] .rv-sector-card h3,
:root[data-theme="dark"] #autres-cas article h3,
:root[data-theme="dark"] .rv-rel-card strong {
  color: #C9A24E;
}
:root[data-theme="dark"] .rv-sector-card p,
:root[data-theme="dark"] #autres-cas article p,
:root[data-theme="dark"] .rv-rel-card span {
  color: #c8d4ca;
}
:root[data-theme="dark"] .rv-sector-cas { background: rgba(201,162,78,0.06); border-color: rgba(201,162,78,0.25); }
:root[data-theme="dark"] .rv-tl-actions .btn-outline { color: #e8efe9; border-color: rgba(255,255,255,0.3); }
:root[data-theme="dark"] .rv-pillar-card { background: rgba(255,255,255,0.05); }

@media (min-width: 901px) {
  .nav-inner { gap: 2.5rem; }
  .nav-logo { margin-right: 1.5rem; padding-right: 1.5rem; border-right: 1px solid rgba(255,255,255,0.12); }
  .nav-logo span { margin-left: 4px; }
  .nav-links { gap: 2.4rem; }
  .nav-links .nav-cta { margin-left: 0.6rem; }
}

:root {
  --rv-emerald: #1A4E30;
  --rv-emerald-dark: #0D2A1A;
  --rv-gold: #C9A24E;
  --rv-cream: #F5EFE0;
}

.rv-fab {
  position: fixed;
  right: 1.4rem;
  bottom: 5.5rem;
  z-index: 950;
  font-family: 'Inter', sans-serif;
}
.rv-fab-toggle {
  width: 58px; height: 58px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, var(--rv-emerald), var(--rv-emerald-dark));
  color: white;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(26,78,48,0.32), 0 2px 6px rgba(0,0,0,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  position: relative;
}
.rv-fab-toggle::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid var(--rv-gold);
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.rv-fab-toggle:hover { transform: translateY(-2px) scale(1.04); }
.rv-fab-toggle:hover::after { opacity: 0.7; transform: scale(1); }
.rv-fab-toggle svg { width: 26px; height: 26px; }
.rv-fab-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.8rem);
  width: 280px;
  background: white;
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.06);
  padding: 1.1rem;
  opacity: 0;
  transform: translateY(8px) scale(0.97);
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  border-top: 3px solid var(--rv-gold);
}
.rv-fab.is-open .rv-fab-panel {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.rv-fab-title {
  font-family: 'Fraunces', serif;
  font-size: 1rem;
  color: var(--rv-emerald);
  font-weight: 600;
  margin: 0 0 0.15rem;
}
.rv-fab-sub {
  font-size: 0.78rem;
  color: #6b6b6b;
  margin: 0 0 0.85rem;
}
.rv-fab-actions { display: flex; flex-direction: column; gap: 0.5rem; }
.rv-fab-actions a {
  display: flex; align-items: center; gap: 0.6rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: var(--rv-cream);
  color: var(--rv-emerald);
  text-decoration: none;
  font-size: 0.86rem;
  font-weight: 500;
  transition: background 0.2s ease, transform 0.2s ease;
}
.rv-fab-actions a:hover { background: #ece4cf; transform: translateX(2px); }
.rv-fab-actions a.is-primary { background: var(--rv-emerald); color: white; }
.rv-fab-actions a.is-primary:hover { background: var(--rv-emerald-dark); }
.rv-fab-actions svg { width: 16px; height: 16px; flex-shrink: 0; }
.rv-fab-close {
  position: absolute; top: 8px; right: 8px;
  width: 24px; height: 24px;
  border: none; background: transparent; cursor: pointer;
  color: #888; font-size: 1.1rem; line-height: 1;
}
.rv-fab-close:hover { color: var(--rv-emerald); }
.rv-embed .rv-fab { display: none !important; }
@media (max-width: 720px) {
  .rv-fab { right: 1rem; bottom: 5rem; }
  .rv-fab-toggle { width: 52px; height: 52px; }
  .rv-fab-panel { width: calc(100vw - 2rem); right: -0.4rem; }
}

.rv-compare {
  background: linear-gradient(180deg, #fff, var(--rv-cream));
  border-radius: 24px;
  padding: 2.4rem 1.8rem;
  margin: 3rem 0;
  border: 1px solid rgba(201,162,78,0.25);
}
.rv-compare h2 {
  font-family: 'Fraunces', serif;
  color: var(--rv-emerald);
  font-size: 1.85rem;
  margin: 0 0 0.4rem;
  text-align: center;
}
.rv-compare .rv-compare-sub {
  text-align: center;
  color: #555;
  margin: 0 0 1.8rem;
  font-size: 0.95rem;
  max-width: 580px;
  margin-left: auto; margin-right: auto;
}
.rv-compare-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: white;
  border-radius: 14px;
  overflow: hidden;
  font-size: 0.88rem;
  box-shadow: 0 4px 18px rgba(0,0,0,0.06);
}
.rv-compare-table th, .rv-compare-table td {
  padding: 0.85rem 0.9rem;
  text-align: left;
  border-bottom: 1px solid #eee;
  vertical-align: middle;
}
.rv-compare-table thead th {
  background: var(--rv-emerald);
  color: white;
  font-weight: 600;
  font-size: 0.84rem;
  border-bottom: 2px solid var(--rv-gold);
}
.rv-compare-table thead th.is-us {
  background: linear-gradient(135deg, var(--rv-emerald), var(--rv-emerald-dark));
  position: relative;
}
.rv-compare-table thead th.is-us::after {
  content: "★";
  position: absolute; top: 4px; right: 8px;
  color: var(--rv-gold);
  font-size: 0.9rem;
}
.rv-compare-table td:first-child {
  font-weight: 600;
  color: var(--rv-emerald);
  background: #fafaf6;
  width: 28%;
}
.rv-compare-table td.is-us {
  background: rgba(201,162,78,0.08);
  font-weight: 500;
  color: var(--rv-emerald-dark);
}
.rv-compare-table tr:last-child td { border-bottom: none; }
.rv-compare-check { color: var(--rv-emerald); font-weight: 700; }
.rv-compare-cross { color: #b85b5b; }
@media (max-width: 720px) {
  .rv-compare { padding: 1.6rem 0.9rem; }
  .rv-compare-table { font-size: 0.78rem; }
  .rv-compare-table th, .rv-compare-table td { padding: 0.6rem 0.5rem; }
}

.rv-testimonial-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  margin-top: 0.8rem;
  padding: 0.4rem 0.75rem;
  background: rgba(26,78,48,0.08);
  border-radius: 8px;
  border-left: 3px solid var(--rv-gold);
  font-family: 'Inter', sans-serif;
}
.rv-testimonial-stat strong {
  font-family: 'Fraunces', serif;
  font-size: 1.15rem;
  color: var(--rv-emerald);
  font-weight: 600;
}
.rv-testimonial-stat span {
  font-size: 0.8rem;
  color: #555;
}
.rv-testimonial-stats-row {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin-top: 0.8rem;
}

.rv-sector-hero {
  background: linear-gradient(135deg, var(--rv-emerald-dark), var(--rv-emerald));
  color: white;
  padding: 5rem 0 3.5rem;
  position: relative;
  overflow: hidden;
}
.rv-sector-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(201,162,78,0.18), transparent 50%);
  pointer-events: none;
}
.rv-sector-hero .container { position: relative; z-index: 1; }
.rv-sector-eyebrow {
  display: inline-block;
  background: rgba(201,162,78,0.18);
  color: var(--rv-gold);
  padding: 0.3rem 0.85rem;
  border-radius: 20px;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 0.9rem;
}
.rv-sector-hero h1 {
  font-family: 'Fraunces', serif;
  font-size: clamp(2rem, 4.2vw, 2.9rem);
  font-weight: 500;
  line-height: 1.1;
  margin: 0 0 0.8rem;
  color: white;
}
.rv-sector-hero p {
  font-size: 1.1rem;
  max-width: 640px;
  opacity: 0.92;
  color: rgba(255,255,255,0.92);
}
.rv-sector-hero .breadcrumb {
  margin-top: 1.4rem;
  font-size: 0.85rem;
  opacity: 0.78;
}
.rv-sector-hero .breadcrumb a { color: var(--rv-gold); text-decoration: none; }

.rv-sector-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.4rem;
  margin: 2.4rem 0;
}
.rv-sector-card {
  background: white;
  border-radius: 16px;
  padding: 1.6rem 1.4rem;
  box-shadow: 0 4px 18px rgba(0,0,0,0.06);
  border-top: 3px solid var(--rv-gold);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.rv-sector-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,0.09); }
.rv-sector-card h3 {
  font-family: 'Fraunces', serif;
  color: var(--rv-emerald);
  margin: 0 0 0.6rem;
  font-size: 1.15rem;
}
.rv-sector-card .rv-sector-deadline {
  font-size: 0.75rem;
  color: var(--rv-gold);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
}
.rv-sector-card p { color: #555; font-size: 0.92rem; line-height: 1.55; margin: 0; }

.rv-sector-cas {
  background: var(--rv-cream);
  border-radius: 18px;
  padding: 2rem 1.8rem;
  margin: 2.4rem 0;
  border-left: 4px solid var(--rv-gold);
}
.rv-sector-cas h3 {
  font-family: 'Fraunces', serif;
  color: var(--rv-emerald);
  margin-top: 0;
}

.rv-badge-circle {
  width: 220px; height: 220px;
  margin: 0 auto;
  display: block;
}
.rv-badge-feature {
  background: linear-gradient(135deg, var(--rv-emerald-dark), var(--rv-emerald));
  color: white;
  padding: 3rem 2rem;
  border-radius: 24px;
  text-align: center;
  margin: 2rem 0;
}
.rv-badge-feature h2 {
  color: white;
  font-family: 'Fraunces', serif;
  margin: 1rem 0 0.5rem;
}
.rv-engagements-list {
  list-style: none; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
  margin: 2rem 0;
}
.rv-engagements-list li {
  background: white; border-radius: 12px;
  padding: 1.1rem 1.2rem;
  border-left: 3px solid var(--rv-gold);
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
.rv-engagements-list strong {
  display: block; color: var(--rv-emerald);
  font-family: 'Fraunces', serif; font-size: 1.05rem; margin-bottom: 0.3rem;
}
.rv-engagements-list span { font-size: 0.88rem; color: #555; }

.rv-method-toc {
  background: var(--rv-cream);
  border-radius: 14px;
  padding: 1.4rem 1.6rem;
  margin-bottom: 2.5rem;
}
.rv-method-toc strong {
  display: block; color: var(--rv-emerald);
  font-family: 'Fraunces', serif; margin-bottom: 0.6rem;
}
.rv-method-toc ol {
  margin: 0; padding-left: 1.4rem;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  gap: 0.4rem 1rem;
}
.rv-method-toc a { color: var(--rv-emerald); text-decoration: none; font-size: 0.92rem; }
.rv-method-toc a:hover { color: var(--rv-gold); }

.rv-method-formula {
  background: var(--rv-cream);
  border: 1px solid var(--rv-gold);
  border-radius: 10px;
  padding: 1rem 1.3rem;
  margin: 1rem 0;
  font-family: 'Courier New', monospace;
  font-size: 0.9rem;
  color: var(--rv-emerald-dark);
  text-align: center;
}

.rv-radar {
  background: linear-gradient(135deg, var(--rv-emerald-dark), var(--rv-emerald));
  color: white;
  padding: 2.4rem 1.8rem;
  border-radius: 20px;
  margin: 2.5rem 0;
  text-align: center;
}
.rv-radar h3 {
  color: white;
  font-family: 'Fraunces', serif;
  font-size: 1.5rem;
  margin: 0 0 0.4rem;
}
.rv-radar p { opacity: 0.9; margin: 0 0 1.4rem; max-width: 540px; margin-left: auto; margin-right: auto; }
.rv-radar form {
  display: flex; gap: 0.5rem;
  max-width: 460px; margin: 0 auto;
  flex-wrap: wrap; justify-content: center;
}
.rv-radar input[type="email"] {
  flex: 1; min-width: 220px;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  border: none;
  font-size: 0.95rem;
}
.rv-radar button {
  padding: 0.75rem 1.4rem;
  background: var(--rv-gold);
  color: var(--rv-emerald-dark);
  border: none;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.rv-radar button:hover { background: #d8b462; transform: translateY(-1px); }
.rv-radar .rv-radar-msg { margin-top: 0.8rem; font-size: 0.85rem; opacity: 0.85; }

:root[data-theme="dark"] .rv-modal { background: #143A23; color: #EBF5EE; border-top-color: #D4A843; }
:root[data-theme="dark"] .rv-modal h3 { color: #D4A843; }
:root[data-theme="dark"] .rv-modal p { color: #C8D9CD; }
:root[data-theme="dark"] .rv-modal input[type=email] { background: #0E2A1B; color: #EBF5EE; border-color: rgba(212,168,67,.3); }
:root[data-theme="dark"] .rv-modal .rv-trust { border-top-color: rgba(212,168,67,.2); color: #C8D9CD; }
:root[data-theme="dark"] .rv-modal .rv-trust b { color: #D4A843; }

/* ===== mobile.css ===== */
/* ====================================================================
   RestauVert · mobile.css
   Optimisations smartphones — touch targets, overflows, layout
   ==================================================================== */

/* ============ FONDATIONS ============ */
@media (max-width: 900px) {
  input, textarea, select { font-size: 16px !important; }

  html, body { overflow-x: hidden; max-width: 100vw; }

  .nav-links a, .footer-links a, .breadcrumb a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  button, .btn, .rv-tool-card, .rv-bento, .rv-persona-btn,
  .rv-map-type, .rv-map-filter, .rv-config-card, .rv-check-card,
  .bm-pill, .rv-blog-filter {
    -webkit-tap-highlight-color: rgba(212,168,67,.18);
    touch-action: manipulation;
  }

  @media (hover: none) {
    .rv-tool-card:hover, .rv-bento:hover, .rv-persona-btn:hover,
    .rv-pillar-card:hover, .nav-links a:hover, .btn:hover {
      transform: none !important;
    }
  }

  .btn { padding: 14px 24px !important; font-size: .92rem; }
  .nav-cta { padding: 11px 22px !important; }
}

/* ============ HERO ============ */
@media (max-width: 768px) {
  .hero { padding: 100px 0 60px !important; min-height: auto !important; }
  .hero-inner { flex-direction: column; gap: 2rem !important; padding: 0 1rem; }
  .hero h1 { font-size: clamp(1.7rem, 6vw, 2.4rem) !important; line-height: 1.2 !important; }
  .hero-desc { font-size: .98rem !important; }
  .hero-buttons { flex-direction: column; gap: .5rem !important; }
  .hero-buttons .btn { width: 100%; justify-content: center; }
  .hero-stats { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 1rem !important; }
  .hero-stats .stat-item { text-align: center; }
  .hero::before, .hero::after { display: none; }
  .rv-personas-row { gap: .8rem; }
  .rv-personas { flex-wrap: wrap; gap: .4rem !important; justify-content: flex-start; }
  .rv-personas-row .rv-persona-btn { flex: 1 1 calc(50% - .4rem); justify-content: center; }
}

/* ============ NAV ============ */
@media (max-width: 900px) {
  .navbar { height: 64px !important; }
  .nav-burger { display: flex !important; }
  .nav-links {
    position: fixed;
    top: 64px; left: 0; right: 0;
    background: rgba(26,78,48,0.99);
    backdrop-filter: blur(14px);
    flex-direction: column;
    align-items: stretch;
    padding: 1rem 0;
    gap: 0;
    transform: translateY(-110%);
    transition: transform .3s cubic-bezier(.16,1,.3,1);
    box-shadow: 0 8px 32px rgba(0,0,0,.4);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    z-index: 999;
  }
  .nav-links.open,
  .nav-links.is-open { transform: translateY(0); }
  .nav-links li { width: 100%; }
  .nav-links a {
    display: block;
    padding: 14px 24px;
    width: 100%;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  .nav-links a::after { display: none; }
  .nav-links .nav-cta {
    margin: 1rem 1.5rem 0 !important;
    padding: 12px 22px !important;
    text-align: center;
  }
  .nav-logo span { font-size: 1.05rem; }
  .nav-logo img { height: 44px; }
}

/* ============ SECTIONS ============ */
@media (max-width: 768px) {
  .section { padding: 50px 0 !important; }
  .container { padding: 0 1.2rem !important; }
  .page-hero { padding: 90px 0 40px !important; }
  .page-hero h1 { font-size: clamp(1.6rem, 6vw, 2.2rem) !important; }
  .page-hero p { font-size: .95rem !important; }

  .section-title { font-size: clamp(1.5rem, 5vw, 2rem) !important; }
  h2 { font-size: clamp(1.4rem, 4.5vw, 1.8rem); }
  h3 { font-size: 1.12rem; }
}

/* ============ GRID 4-COLS → 1 COL ============ */
@media (max-width: 768px) {
  .grid-2, .grid-3, .grid-4 {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  .stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ============ TABLEAUX RESPONSIFS ============ */
@media (max-width: 768px) {
  .rv-compare-table {
    font-size: .82rem;
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    border: 1px solid rgba(13,42,26,.08);
    border-radius: 12px;
  }
  .rv-compare-table::-webkit-scrollbar { height: 6px; }
  .rv-compare-table::-webkit-scrollbar-thumb { background: #D4A843; border-radius: 3px; }
  .rv-compare-table-wrap::after {
    content: "← faire défiler →";
    display: block;
    text-align: center;
    color: #6B8878;
    font-size: .78rem;
    padding: .4rem;
    font-style: italic;
  }
}

/* ============ BENTO OUTILS (ressources) ============ */
@media (max-width: 600px) {
  .rv-tools-bento {
    grid-template-columns: 1fr !important;
    gap: .8rem !important;
  }
  .rv-bento--hero, .rv-bento--tall {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
  .rv-bento--hero { padding: 1.6rem 1.3rem 1.3rem !important; }
  .rv-bento--hero .rv-bento__title { font-size: 1.4rem !important; }
  .rv-bento--hero .rv-bento__desc { font-size: .95rem !important; }
  .rv-bento__metrics { gap: 1rem !important; flex-wrap: wrap; }
  .rv-bento__metrics span { padding-right: 1rem !important; }
  .rv-bento__metrics b { font-size: 1.3rem !important; }
  .rv-bento__icon { width: 44px !important; height: 44px !important; font-size: 1.6rem !important; }
}

/* ============ FORMULAIRES OUTILS ============ */
@media (max-width: 768px) {
  form .grid-2, form .grid-3, form .grid-4,
  form [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }

  .rv-config-grid, .rv-checks {
    grid-template-columns: 1fr 1fr !important;
    gap: .5rem !important;
  }
  .rv-config-card, .rv-check-card {
    padding: 12px !important;
    font-size: .85rem;
  }
  .rv-config-card .ico { font-size: 1.4rem !important; }

  form button[type="submit"] {
    width: 100%;
    padding: 16px !important;
    font-size: 1rem !important;
  }

  input[type="range"] {
    height: 32px;
    -webkit-appearance: none;
    background: transparent;
  }
  input[type="range"]::-webkit-slider-runnable-track {
    height: 6px;
    background: #D4E8DB;
    border-radius: 3px;
  }
  input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 28px; height: 28px;
    background: #1A4E30;
    border-radius: 50%;
    margin-top: -11px;
    box-shadow: 0 2px 8px rgba(0,0,0,.2);
    border: 2px solid #fff;
  }
}

/* ============ FOOTER ============ */
@media (max-width: 768px) {
  .footer { padding: 40px 0 0 !important; }
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  .footer-brand { text-align: center; }
  .footer-brand .footer-seal { margin: 1.5rem auto !important; }
  .footer-brand .footer-seal svg { width: 100px !important; height: 100px !important; }
  .footer h4 { margin-top: 0; font-size: .95rem; }
  .footer-links a { padding: 8px 0; display: inline-block; min-height: 36px; }
  .footer-bottom {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
    font-size: .82rem !important;
  }
  .footer-bottom span { line-height: 1.7; }
  .footer-socials { margin: 0 auto; }
}

/* ============ FAB + STICKY CTA empilement ============ */
@media (max-width: 600px) {
  .rv-map-fab { bottom: 16px !important; left: 16px !important; }
  .whatsapp-float { bottom: 16px !important; right: 16px !important; }
  .scroll-top { bottom: 76px !important; right: 16px !important; }
  body.rv-sticky-active .rv-map-fab { bottom: 84px !important; }
}

/* ============ MAP MODAL fullscreen mobile ============ */
@media (max-width: 600px) {
  .rv-map-modal-overlay { padding: 0 !important; }
  .rv-map-modal {
    border-radius: 0 !important;
    max-width: 100% !important;
    max-height: 100vh !important;
    height: 100vh !important;
    width: 100vw !important;
  }
}

/* ============ CARTE FRANCE ============ */
@media (max-width: 600px) {
  .rv-map-types { gap: .35rem !important; }
  .rv-map-type {
    padding: 7px 12px !important;
    font-size: .76rem !important;
    flex: 1 1 calc(50% - .35rem);
    justify-content: center;
  }
  #rvFranceMap { max-height: 460px !important; }
  #rvMapTooltip {
    min-width: auto !important;
    max-width: 90vw !important;
    font-size: .8rem !important;
  }
  #rvMapTooltip strong { font-size: .98rem !important; }
}

/* ============ ARTICLES BLOG ============ */
@media (max-width: 768px) {
  article {
    padding: 0 .2rem;
  }
  article h1, .article-hero h1 { font-size: 1.6rem !important; line-height: 1.25 !important; }
  article h2 { font-size: 1.3rem !important; }
  article p, article li { font-size: .98rem !important; line-height: 1.7 !important; }
  article table {
    display: block;
    overflow-x: auto;
    font-size: .85rem;
    -webkit-overflow-scrolling: touch;
  }
  article blockquote {
    margin: 1rem 0 !important;
    padding: .8rem 1rem !important;
    font-size: .95rem;
  }
}

/* ============ QUIZ / CARBONE / ROI / DIAGNOSTIC ============ */
@media (max-width: 600px) {
  [id^="rvScore"], #rvAgecResult, #rvExpressResult, #rvRoiResult,
  .rv-result-grid, [class*="result-grid"] {
    grid-template-columns: 1fr !important;
  }
  .rv-bento__metrics { flex-direction: row; }
  fieldset label { padding: 10px 0; min-height: 44px; }
  .rv-tool-frame {
    min-height: 70vh;
    max-height: 90vh;
  }
}

/* ============ MENTIONS / TRANSPARENCE / OPEN-DATA ============ */
@media (max-width: 768px) {
  .card { padding: 1.4rem !important; }
  .card h2 { font-size: 1.15rem !important; }
}

/* ============ MODALES (cookies, toast, exit-intent) ============ */
@media (max-width: 480px) {
  .rv-cookies-bar {
    left: 8px !important; right: 8px !important; bottom: 8px !important;
    padding: 14px 16px !important;
    font-size: .85rem !important;
  }
  .rv-cookies-bar__actions { flex-direction: column; gap: 6px; width: 100%; }
  .rv-cookies-bar button { width: 100%; padding: 11px !important; }

  .rv-toast {
    left: 8px !important; right: 8px !important;
    transform: translateY(40px) !important;
    max-width: none !important;
    bottom: 76px !important; 
    font-size: .9rem;
  }
  .rv-toast.is-in { transform: translateY(0) !important; }

  .rv-modal { padding: 28px 22px 22px !important; }
  .rv-modal h3 { font-size: 1.2rem !important; }
  .rv-modal .rv-trust { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  .rv-modal .rv-trust b { font-size: 1rem !important; }
}

/* ============ ANIMATIONS RÉDUITES ============ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01s !important;
    transition-duration: .01s !important;
  }
}

@media (max-width: 600px) {
  .rv-bento__shine, .rv-tool-card::before { display: none; }
  [data-reveal] { transition-duration: .4s !important; }
}

/* ============ IMAGES RESPONSIVES ============ */
@media (max-width: 768px) {
  img { max-width: 100%; height: auto; }
  .hero-img, .article-img { width: 100%; }
}

/* ============ SAFE AREA iPhone (notch) ============ */
@supports (padding: env(safe-area-inset-bottom)) {
  .rv-cookies-bar { padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
  .rv-toast { bottom: calc(16px + env(safe-area-inset-bottom)) !important; }
  .rv-map-fab { bottom: calc(16px + env(safe-area-inset-bottom)) !important; }
  .footer-bottom { padding-bottom: env(safe-area-inset-bottom); }
}

/* ============ DEVIS / OPEN-DATA ============ */
@media (max-width: 768px) {
  .rv-config-grid { grid-template-columns: 1fr 1fr !important; }
  .rv-checks { grid-template-columns: 1fr !important; }
  #rvDevisRange { font-size: 1.8rem !important; }
}

/* ============ POUR-QUI / SECTEURS ============ */
@media (max-width: 768px) {
  .rv-sector-card { padding: 1.4rem !important; }
  .rv-sector-card h2 { font-size: 1.2rem !important; }
}

/* ===== sticky-cta.css ===== */
/* RestauVert · Sticky CTA mobile (barre fixe bas)
   - Visible uniquement sur mobile (≤ 768 px)
   - S'affiche après scroll de 400 px
   - Cachée sur les pages de tunnel (contact.html, devis.html) où le CTA est déjà actionnable
*/

.rv-sticky-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99;
  display: none; 
  background: linear-gradient(135deg, #D4A843 0%, #C4983A 100%);
  color: #0D2A1A;
  padding: 12px 16px;
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);
  font-family: 'Poppins', system-ui, sans-serif;
  transform: translateY(100%);
  transition: transform 0.3s ease;
}

.rv-sticky-cta.is-visible {
  transform: translateY(0);
}

.rv-sticky-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  max-width: 1200px;
  margin: 0 auto;
}

.rv-sticky-cta-text {
  flex: 1;
  min-width: 0;
}

.rv-sticky-cta-text strong {
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  color: #0D2A1A;
}

.rv-sticky-cta-text span {
  font-size: 0.78rem;
  color: rgba(13, 42, 26, 0.78);
  font-style: italic;
}

.rv-sticky-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: #1A4E30;
  color: #fff;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.88rem;
  white-space: nowrap;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.rv-sticky-cta-btn:hover,
.rv-sticky-cta-btn:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(13, 42, 26, 0.25);
}

.rv-sticky-cta-close {
  background: transparent;
  border: 0;
  color: rgba(13, 42, 26, 0.55);
  font-size: 1.2rem;
  line-height: 1;
  padding: 4px 8px;
  cursor: pointer;
  margin-right: -4px;
}

.rv-sticky-cta-close:hover { color: #0D2A1A; }

@media (min-width: 769px) {
  .rv-sticky-cta { display: none !important; }
}

@media (max-width: 768px) {
  .rv-sticky-cta {
    display: block;
  }
  body.has-sticky-cta {
    padding-bottom: 70px;
  }
}

body.no-sticky-cta .rv-sticky-cta { display: none !important; }

