/*
 * REMAREF V2, accueil moderne.
 * Auteur : A. Ounaceur
 */

@font-face {
  font-family: "RV Display";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  font-stretch: 75% 100%;
  src: url("../fonts/bricolage-grotesque-latin-standard-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "RV Display";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  font-stretch: 75% 100%;
  src: url("../fonts/bricolage-grotesque-latin-ext-standard-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "RV Text";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/lexend-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "RV Text";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/lexend-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --rv-ink: #142250;
  --rv-ink-2: #0E1A40;
  --rv-navy: #1A2A5E;
  --rv-blue: #2D5FAA;
  --rv-sky: #9DB8E6;
  --rv-gold: #F5A500;
  --rv-gold-soft: #FFD36B;
  --rv-gold-ink: #9A6500;
  --rv-paper: #F3F5FA;
  --rv-white: #FFFFFF;
  --rv-text: #1B2440;
  --rv-muted: #56627D;
  --rv-line: rgba(26, 42, 94, 0.14);
  --rv-line-light: rgba(255, 255, 255, 0.16);

  --rv-display: "RV Display", "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --rv-body: "RV Text", "Lexend", "Segoe UI", system-ui, sans-serif;

  --rv-step--1: 0.875rem;
  --rv-step-0: 1.0625rem;
  --rv-step-1: 1.25rem;
  --rv-step-2: clamp(1.35rem, 1.15rem + 0.8vw, 1.75rem);
  --rv-step-3: clamp(1.9rem, 1.3rem + 2.2vw, 3.1rem);
  --rv-step-4: clamp(2.5rem, 1.3rem + 4.6vw, 5.2rem);

  --rv-gutter: clamp(16px, 4vw, 48px);
  --rv-max: 1240px;
  --rv-section: clamp(72px, 10vw, 140px);
  --rv-radius-s: 10px;
  --rv-radius-m: 16px;
  --rv-radius-l: 28px;
  --rv-header-h: 76px;
  --rv-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--rv-header-h) + 12px);
}

html.lenis,
html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-stopped {
  overflow: hidden;
}

body.rv-body {
  margin: 0;
  background: var(--rv-white);
  color: var(--rv-text);
  font-family: var(--rv-body);
  font-size: var(--rv-step-0);
  font-weight: 330;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

:where(.rv-body) img,
:where(.rv-body) svg {
  display: block;
  max-width: 100%;
}
:where(.rv-body) img {
  height: auto;
}
:where(.rv-body) a {
  color: inherit;
}
:where(.rv-body) h1,
:where(.rv-body) h2,
:where(.rv-body) h3 {
  margin: 0;
  font-family: var(--rv-display);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
}
:where(.rv-body) p {
  margin: 0;
}
:where(.rv-body) ul,
:where(.rv-body) ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
:where(.rv-body) strong {
  font-weight: 600;
}

.rv-body :focus-visible {
  outline: 3px solid var(--rv-gold);
  outline-offset: 3px;
  border-radius: 4px;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rv-skip {
  position: fixed;
  left: 16px;
  top: 16px;
  z-index: 1000;
  padding: 10px 16px;
  background: var(--rv-gold);
  color: var(--rv-ink);
  font-weight: 700;
  border-radius: var(--rv-radius-s);
  text-decoration: none;
  transform: translateY(-200%);
  transition: transform 0.2s;
}
.rv-skip:focus {
  transform: none;
}

.rv-wrap {
  width: 100%;
  max-width: calc(var(--rv-max) + 2 * var(--rv-gutter));
  margin: 0 auto;
  padding: 0 var(--rv-gutter);
}

.rv-icon {
  flex: none;
}

.rv-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(36px, 6vw, 96px);
}

.rv-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  color: var(--rv-blue);
  font-size: var(--rv-step--1);
  font-weight: 600;
}
.rv-label::before {
  content: "";
  width: 22px;
  height: 2px;
  background: var(--rv-gold);
}

.rv-section-title {
  font-size: var(--rv-step-3);
  font-stretch: 88%;
  color: var(--rv-navy);
  max-width: 22ch;
  text-wrap: balance;
}

.rv-muted {
  color: var(--rv-muted);
  max-width: 54ch;
}

/* Boutons */
.rv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 24px;
  border: 0;
  border-radius: var(--rv-radius-s);
  font-family: var(--rv-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.25s var(--rv-ease), background-color 0.25s, color 0.25s, box-shadow 0.25s;
}
.rv-btn:active {
  transform: translateY(1px);
}
.rv-btn-gold {
  background: var(--rv-gold);
  color: var(--rv-ink) !important;
}
.rv-btn-gold:hover {
  background: var(--rv-gold-soft);
}
.rv-btn-ghost {
  background: transparent;
  color: var(--rv-white) !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.45);
}
.rv-btn-ghost:hover {
  box-shadow: inset 0 0 0 1.5px var(--rv-white);
}
.rv-btn-navy {
  background: var(--rv-navy);
  color: var(--rv-white) !important;
}
.rv-btn-navy:hover {
  background: var(--rv-blue);
}

/* En-tête */
.rv-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--rv-header-h);
  color: var(--rv-white);
  transition: background-color 0.35s, box-shadow 0.35s, transform 0.45s var(--rv-ease);
}
.admin-bar .rv-header {
  top: 32px;
}
@media (max-width: 782px) {
  .admin-bar .rv-header {
    top: 46px;
  }
  .admin-bar #wpadminbar {
    position: fixed !important;
  }
}
.rv-header.is-scrolled {
  background: rgba(14, 26, 64, 0.9);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  backdrop-filter: blur(14px) saturate(1.3);
  box-shadow: 0 1px 0 var(--rv-line-light);
}
.rv-header.is-hidden {
  transform: translateY(-115%);
}
.rv-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: 100%;
}
.rv-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex: none;
}
.rv-brand img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--rv-white);
}
.rv-brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.rv-brand-text strong {
  font-family: var(--rv-display);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}
.rv-brand-text span {
  font-size: 0.78rem;
  opacity: 0.75;
}
.rv-nav {
  display: flex;
  align-items: center;
  gap: 24px;
}
.rv-nav ul {
  display: flex;
  gap: 2px;
}
.rv-nav ul a {
  position: relative;
  display: block;
  padding: 8px 12px;
  font-size: 0.93rem;
  text-decoration: none;
  opacity: 0.82;
  transition: opacity 0.2s;
}
.rv-nav ul a::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 2px;
  height: 2px;
  background: var(--rv-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s var(--rv-ease);
}
.rv-nav ul a:hover,
.rv-nav ul a.is-active {
  opacity: 1;
}
.rv-nav ul a.is-active::after,
.rv-nav ul a:hover::after {
  transform: scaleX(1);
}
.rv-nav-cta {
  min-height: 44px;
  padding: 0 22px;
}
.rv-burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: var(--rv-radius-s);
  background: rgba(255, 255, 255, 0.1);
  color: inherit;
  cursor: pointer;
}
.rv-burger-close {
  display: none;
}
.rv-burger[aria-expanded="true"] .rv-burger-open {
  display: none;
}
.rv-burger[aria-expanded="true"] .rv-burger-close {
  display: block;
}

@media (max-width: 1080px) {
  .rv-burger {
    display: inline-flex;
  }
  .rv-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: calc(100svh - var(--rv-header-h));
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    padding: 12px var(--rv-gutter) 28px;
    background: var(--rv-ink-2);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.3s, transform 0.3s var(--rv-ease), visibility 0s 0.3s;
  }
  .rv-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: opacity 0.3s, transform 0.3s var(--rv-ease);
  }
  .rv-nav ul {
    flex-direction: column;
  }
  .rv-nav ul a {
    padding: 14px 0;
    font-size: 1.15rem;
    border-bottom: 1px solid var(--rv-line-light);
  }
  .rv-nav ul a::after {
    display: none;
  }
  .rv-nav-cta {
    min-height: 52px;
  }
}

/* Hero */
.rv-hero {
  position: relative;
  overflow: hidden;
  min-height: 100svh;
  padding: calc(var(--rv-header-h) + clamp(24px, 4vw, 56px)) 0 clamp(64px, 7vw, 88px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(28px, 4vw, 48px);
  background: var(--rv-ink);
  color: var(--rv-white);
  isolation: isolate;
}
.rv-hero-glow {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(48% 60% at 26% 46%, rgba(45, 95, 170, 0.5), transparent 70%),
    radial-gradient(30% 40% at 18% 62%, rgba(245, 165, 0, 0.12), transparent 70%);
  pointer-events: none;
}
.rv-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(24px, 5vw, 80px);
}
.rv-hero-copy {
  min-width: 0;
}
.rv-badge {
  display: inline-block;
  margin-bottom: 22px;
  padding: 6px 14px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(245, 165, 0, 0.5);
  color: var(--rv-gold-soft);
  font-size: var(--rv-step--1);
  font-weight: 500;
}
.rv-hero-title {
  font-size: var(--rv-step-4);
  font-weight: 720;
  font-stretch: 86%;
  line-height: 0.98;
  letter-spacing: -0.025em;
}
.rv-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.06em;
  margin-bottom: -0.06em;
}
.rv-line > span {
  display: inline-block;
}
.rv-line:last-child > span {
  color: var(--rv-gold);
}
.rv-hero-tagline {
  margin-top: 24px;
  max-width: 34ch;
  font-family: var(--rv-display);
  font-size: var(--rv-step-2);
  font-weight: 500;
  font-stretch: 92%;
  line-height: 1.25;
  color: var(--rv-white);
}
.rv-hero-lead {
  margin-top: 16px;
  max-width: 56ch;
  color: rgba(255, 255, 255, 0.78);
}
.rv-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.rv-ministats {
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: start;
  gap: 12px 32px;
  margin: 34px 0 0;
}
.rv-ministats > div {
  padding-left: 14px;
  border-left: 2px solid var(--rv-gold);
}
.rv-ministats dt {
  font-family: var(--rv-display);
  font-size: 1.1rem;
  font-weight: 700;
  font-stretch: 90%;
}
.rv-ministats dd {
  margin: 2px 0 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: var(--rv-step--1);
}

/* Carte */
.rv-map {
  position: relative;
  margin: 0;
  width: 100%;
  max-width: 540px;
  justify-self: center;
}
/* Sceau REMAREF en filigrane derrière la carte, qui déborde sous le texte */
.rv-hero-copy {
  position: relative;
  z-index: 2;
}
.rv-map {
  isolation: isolate;
}
.rv-seal {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -1;
  width: 168%;
  aspect-ratio: 1095 / 960;
  transform: translate(-50%, -50%);
  pointer-events: none;
  user-select: none;
}
.rv-seal-inner {
  position: absolute;
  inset: 0;
  opacity: 0.075;
}
.rv-seal-img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
}
.rv-seal-ring {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.rv-seal-ring circle {
  fill: none;
  transform-box: fill-box;
  transform-origin: center;
}
.rv-seal-ring-a {
  stroke: rgba(245, 165, 0, 0.42);
  stroke-width: 2.5;
  stroke-dasharray: 2 16;
  stroke-linecap: round;
  animation: rv-spin 140s linear infinite;
}
.rv-seal-ring-b {
  stroke: rgba(157, 184, 230, 0.16);
  stroke-width: 1.2;
  stroke-dasharray: 60 18 4 18;
  animation: rv-spin 200s linear infinite reverse;
}
.rv-map-svg {
  position: relative;
  width: 100%;
  height: auto;
  max-height: calc(100svh - var(--rv-header-h) - 220px);
  min-height: 360px;
  overflow: visible;
}
.rv-land {
  stroke: none;
}
.rv-coast {
  fill: none;
  stroke: rgba(255, 211, 107, 0.85);
  stroke-width: 1.6;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 6px rgba(245, 165, 0, 0.45));
}
.rv-scan-bar {
  fill: url(#rvGlow);
  opacity: 0;
}
.rv-link {
  fill: none;
  stroke-linecap: round;
}
.rv-link-near {
  stroke: rgba(157, 184, 230, 0.42);
  stroke-width: 1.1;
}
.rv-link-hub {
  stroke: rgba(245, 165, 0, 0.55);
  stroke-width: 1.2;
  stroke-dasharray: 2 5;
}
.rv-node-dot {
  fill: var(--rv-white);
}
.rv-node-0 .rv-node-dot {
  fill: var(--rv-sky);
}
.rv-node-2 .rv-node-dot {
  fill: var(--rv-gold);
}
.rv-node-ring {
  fill: none;
  stroke: var(--rv-gold);
  stroke-width: 1.4;
  opacity: 0.75;
}
.rv-node-label {
  fill: rgba(255, 255, 255, 0.85);
  font-family: var(--rv-body);
  font-size: 12.5px;
  font-weight: 400;
  paint-order: stroke;
  stroke: rgba(20, 34, 80, 0.85);
  stroke-width: 3px;
  stroke-linejoin: round;
}
.rv-node-2 .rv-node-label {
  fill: var(--rv-gold-soft);
  font-family: var(--rv-display);
  font-size: 17px;
  font-weight: 700;
}
.rv-pulse {
  fill: var(--rv-gold-soft);
}
.rv-map-caption {
  position: absolute;
  right: 0;
  top: 46%;
  max-width: 15ch;
  color: rgba(255, 255, 255, 0.62);
  font-size: var(--rv-step--1);
  line-height: 1.4;
  text-align: right;
}
.rv-map-caption strong {
  display: block;
  font-family: var(--rv-display);
  font-size: 2.6rem;
  font-weight: 800;
  font-stretch: 80%;
  line-height: 1;
  color: var(--rv-gold);
}

/* À la une */
.rv-featured {
  position: relative;
  display: grid;
  grid-template-columns: 96px auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(16px, 2.6vw, 32px);
  padding: 14px clamp(14px, 2vw, 22px) 14px 14px;
  border-radius: var(--rv-radius-m);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: inset 0 0 0 1px var(--rv-line-light);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background-color 0.3s;
}
.rv-featured:hover {
  background: rgba(255, 255, 255, 0.11);
}
.rv-featured-media {
  display: block;
  aspect-ratio: 3 / 4;
  border-radius: var(--rv-radius-s);
  overflow: hidden;
  background: var(--rv-navy);
}
.rv-featured-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}
.rv-featured-when {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding-right: clamp(16px, 2.6vw, 32px);
  border-right: 1px solid var(--rv-line-light);
}
.rv-featured-badge {
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--rv-gold);
  color: var(--rv-ink);
  font-size: 0.78rem;
  font-weight: 600;
}
.rv-featured-when strong {
  margin-top: 6px;
  font-family: var(--rv-display);
  font-size: clamp(2.4rem, 2rem + 2vw, 3.4rem);
  font-weight: 800;
  font-stretch: 80%;
  line-height: 0.95;
  color: var(--rv-gold);
  font-variant-numeric: tabular-nums;
}
.rv-featured-when span[data-rv-days-label] {
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--rv-step--1);
}
.rv-featured-body {
  min-width: 0;
}
.rv-featured-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}
.rv-featured-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--rv-gold-soft);
  font-size: var(--rv-step--1);
}
.rv-featured-title {
  margin-top: 8px;
  font-size: var(--rv-step-1);
  font-weight: 650;
  font-stretch: 94%;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.rv-featured-title a {
  text-decoration: none;
}
.rv-featured-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--rv-radius-m);
}
.rv-featured-place {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.72);
  font-size: var(--rv-step--1);
}
.rv-featured-excerpt {
  margin-top: 6px;
  max-width: 70ch;
  color: rgba(255, 255, 255, 0.6);
  font-size: var(--rv-step--1);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rv-featured-go {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: none;
}
.rv-featured-go .rv-icon,
.rv-event-link .rv-icon,
.rv-textlink .rv-icon {
  transition: transform 0.3s var(--rv-ease);
}
.rv-featured:hover .rv-featured-go .rv-icon,
.rv-event-link:hover .rv-icon,
.rv-textlink:hover .rv-icon {
  transform: translateX(4px);
}
.rv-tag {
  position: absolute;
  left: 12px;
  top: 12px;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--rv-white);
  color: var(--rv-navy);
  font-size: 0.8rem;
  font-weight: 600;
}
.rv-tag-dark {
  position: static;
  padding: 3px 10px;
  background: rgba(255, 255, 255, 0.14);
  color: var(--rv-white);
}

.rv-scroll {
  position: absolute;
  left: 50%;
  bottom: 18px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-left: -22px;
  border-radius: 50%;
  color: var(--rv-white);
  box-shadow: inset 0 0 0 1px var(--rv-line-light);
  animation: rv-bob 2.4s ease-in-out infinite;
}
@keyframes rv-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}

@media (max-width: 960px) {
  .rv-hero {
    min-height: 0;
    justify-content: flex-start;
  }
  .rv-hero-grid {
    grid-template-columns: 1fr;
  }
  .rv-map {
    max-width: 440px;
  }
  .rv-map-svg {
    max-height: none;
    min-height: 0;
  }
  .rv-map-caption {
    top: auto;
    bottom: 8%;
  }
  .rv-node-label {
    font-size: 17px;
  }
  .rv-node-2 .rv-node-label {
    font-size: 21px;
  }
}
@media (max-width: 640px) {
  .rv-map {
    max-width: 330px;
    margin-left: -6px;
  }
  .rv-seal {
    width: 190%;
  }
  .rv-map-caption {
    right: -8px;
    max-width: 11ch;
  }
  .rv-map-caption strong {
    font-size: 2rem;
  }
  .rv-node-label {
    font-size: 21px;
    stroke-width: 4px;
  }
  .rv-node-2 .rv-node-label {
    font-size: 25px;
  }
  .rv-ministats {
    grid-template-columns: 1fr 1fr;
  }
  .rv-featured {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 14px;
    padding: 12px;
  }
  .rv-featured-when {
    grid-column: 2;
    grid-row: 1;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
    padding-right: 0;
    border-right: 0;
  }
  .rv-featured-when strong {
    font-size: 2rem;
    margin-top: 0;
  }
  .rv-featured-media {
    grid-row: 1 / span 2;
    align-self: start;
  }
  .rv-featured-body {
    grid-column: 2;
  }
  .rv-featured-excerpt {
    display: none;
  }
  .rv-featured-go {
    grid-column: 1 / -1;
    justify-content: center;
    min-height: 46px;
    border-radius: var(--rv-radius-s);
    background: rgba(255, 255, 255, 0.1);
  }
  .rv-scroll {
    display: none;
  }
}

/* Événements */
.rv-events {
  padding: var(--rv-section) 0;
  background: var(--rv-paper);
  overflow: hidden;
}
.rv-events-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: clamp(28px, 4vw, 48px);
}
.rv-events-head .rv-muted {
  margin-top: 14px;
}
.rv-events-nav {
  display: flex;
  gap: 10px;
  flex: none;
}
.rv-round {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--rv-white);
  color: var(--rv-navy);
  box-shadow: inset 0 0 0 1px var(--rv-line);
  cursor: pointer;
  transition: background-color 0.25s, color 0.25s;
}
.rv-round:hover:not(:disabled) {
  background: var(--rv-navy);
  color: var(--rv-white);
}
.rv-round:disabled {
  opacity: 0.35;
  cursor: default;
}
.rv-events-swiper {
  overflow: visible;
}
.rv-events-track {
  display: flex;
}
.rv-event {
  width: clamp(260px, 27vw, 330px);
  height: auto;
  display: flex;
  flex-direction: column;
  border-radius: var(--rv-radius-m);
  background: var(--rv-white);
  box-shadow: 0 1px 0 var(--rv-line), 0 18px 40px -24px rgba(26, 42, 94, 0.35);
  overflow: hidden;
}
.rv-events-swiper:not(.swiper-initialized) .rv-events-track {
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 12px;
}
.rv-events-swiper:not(.swiper-initialized) .rv-event {
  flex: none;
  scroll-snap-align: start;
}
.rv-event-poster {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--rv-navy);
}
.rv-event-poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform 0.8s var(--rv-ease);
}
.rv-event:hover .rv-event-poster img {
  transform: scale(1.04);
}
.rv-event-placeholder {
  display: grid;
  place-items: center;
  height: 100%;
  background: linear-gradient(160deg, var(--rv-navy), var(--rv-blue));
  color: var(--rv-gold);
  font-family: var(--rv-display);
  font-size: 1.4rem;
  font-weight: 800;
}
.rv-event-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 18px 20px 20px;
}
.rv-event-date {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--rv-gold-ink);
  font-size: var(--rv-step--1);
  font-weight: 600;
}
.rv-event h3 {
  margin-top: 8px;
  font-size: 1.15rem;
  font-weight: 650;
  font-stretch: 92%;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: var(--rv-navy);
}
.rv-event h3 a {
  text-decoration: none;
}
.rv-event-place {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 8px;
  color: var(--rv-muted);
  font-size: var(--rv-step--1);
  line-height: 1.45;
}
.rv-event-place .rv-icon {
  margin-top: 2px;
}
.rv-event-excerpt {
  margin-top: 10px;
  color: var(--rv-muted);
  font-size: var(--rv-step--1);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rv-event-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 14px;
  color: var(--rv-blue) !important;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
}
.rv-events-progress {
  position: relative;
  height: 2px;
  margin-top: 40px;
  background: var(--rv-line);
  overflow: hidden;
}
.rv-events-progress span {
  position: absolute;
  inset: 0;
  background: var(--rv-navy);
  transform-origin: left;
  transform: scaleX(0.2);
}
.rv-events-more {
  margin-top: 28px;
}
.rv-textlink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--rv-navy) !important;
  font-weight: 600;
  text-decoration: none;
}
.rv-empty {
  color: var(--rv-muted);
}
@media (max-width: 640px) {
  .rv-events-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .rv-event {
    width: 80vw;
  }
}

/* Qui sommes-nous : orbite à gauche, texte à droite */
.rv-about {
  padding: var(--rv-section) 0;
  background: var(--rv-white);
  overflow: hidden;
}
.rv-orbit {
  --rv-r: 34.5cqi;
  position: relative;
  width: 100%;
  max-width: 520px;
  aspect-ratio: 1;
  justify-self: center;
  container-type: inline-size;
}
.rv-orbit-rings {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.rv-orbit-rings circle {
  fill: none;
  stroke: rgba(26, 42, 94, 0.16);
  stroke-width: 1;
}
.rv-orbit-r3 {
  stroke-dasharray: 2 7;
}
.rv-orbit-r1 {
  fill: rgba(45, 95, 170, 0.06) !important;
  stroke: rgba(45, 95, 170, 0.22) !important;
}
.rv-orbit-spin {
  position: absolute;
  inset: 0;
  animation: rv-spin 80s linear infinite;
}
.rv-orbit-arm {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  transform: rotate(var(--a));
}
.rv-orbit-line {
  position: absolute;
  left: 15cqi;
  top: -0.5px;
  width: calc(var(--rv-r) - 15cqi);
  height: 1px;
  background: linear-gradient(90deg, rgba(245, 165, 0, 0.0), rgba(245, 165, 0, 0.9) 50%, rgba(245, 165, 0, 0.0)) no-repeat;
  background-size: 40% 100%;
  animation: rv-flow 3.2s linear infinite;
  opacity: 0.8;
}
.rv-orbit-arm:nth-child(2n) .rv-orbit-line {
  animation-delay: -1.6s;
}
.rv-orbit-arm:nth-child(3n) .rv-orbit-line {
  animation-delay: -0.8s;
}
@keyframes rv-flow {
  from { background-position: -60% 0; }
  to { background-position: 160% 0; }
}
.rv-orbit-arm::before {
  content: "";
  position: absolute;
  left: 15cqi;
  top: 0;
  width: calc(var(--rv-r) - 15cqi);
  height: 1px;
  background: rgba(26, 42, 94, 0.12);
}
.rv-chip {
  position: absolute;
  left: var(--rv-r);
  top: 0;
  transform: translate(-50%, -50%) rotate(calc(-1 * var(--a)));
}
.rv-chip > span {
  display: block;
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--rv-white);
  color: var(--rv-navy);
  box-shadow: 0 0 0 1px var(--rv-line), 0 10px 24px -12px rgba(26, 42, 94, 0.45);
  font-size: clamp(0.72rem, 2.9cqi, 0.92rem);
  font-weight: 500;
  white-space: nowrap;
  animation: rv-spin 80s linear infinite reverse;
}
.rv-orbit-arm:nth-child(odd) .rv-chip > span {
  background: var(--rv-navy);
  color: var(--rv-white);
  box-shadow: none;
}
.rv-orbit-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 26cqi;
  height: 26cqi;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--rv-white);
  box-shadow: 0 0 0 10px rgba(245, 165, 0, 0.12), 0 24px 60px -20px rgba(26, 42, 94, 0.5);
  display: grid;
  place-items: center;
  animation: rv-breathe 4s ease-in-out infinite;
}
.rv-orbit-core img {
  width: 86%;
  height: 86%;
  border-radius: 50%;
}
@keyframes rv-spin {
  to { transform: rotate(360deg); }
}
@keyframes rv-breathe {
  0%, 100% { box-shadow: 0 0 0 10px rgba(245, 165, 0, 0.12), 0 24px 60px -20px rgba(26, 42, 94, 0.5); }
  50% { box-shadow: 0 0 0 18px rgba(245, 165, 0, 0.06), 0 24px 60px -20px rgba(26, 42, 94, 0.5); }
}

.rv-about-sub {
  margin-top: 18px;
  font-size: var(--rv-step-2);
  font-weight: 600;
  font-stretch: 92%;
  line-height: 1.2;
  color: var(--rv-blue);
  max-width: 30ch;
}
.rv-manifesto {
  margin-top: 22px;
  font-family: var(--rv-display);
  font-size: clamp(1.25rem, 0.95rem + 1.3vw, 1.9rem);
  font-weight: 500;
  font-stretch: 94%;
  line-height: 1.32;
  letter-spacing: -0.012em;
  color: var(--rv-navy);
  max-width: 34ch;
}
.rv-manifesto p + p {
  margin-top: 16px;
}
.rv-js .rv-manifesto.is-ready .rv-w {
  color: rgba(26, 42, 94, 0.2);
  transition: color 0.25s linear;
}
.rv-js .rv-manifesto.is-ready .rv-w.is-lit {
  color: var(--rv-navy);
}
.rv-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 3vw, 32px);
  margin: clamp(56px, 7vw, 96px) 0 0;
}
.rv-facts > div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 16px;
  padding: 24px;
  border-radius: var(--rv-radius-m);
  background: var(--rv-paper);
}
.rv-fact-icon {
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(245, 165, 0, 0.16);
  color: var(--rv-gold-ink);
}
.rv-facts dt {
  font-family: var(--rv-display);
  font-size: var(--rv-step-2);
  font-weight: 700;
  font-stretch: 86%;
  color: var(--rv-navy);
  font-variant-numeric: tabular-nums;
}
.rv-facts dd {
  margin: 4px 0 0;
  color: var(--rv-muted);
  font-size: 0.95rem;
}
.rv-facts dd strong {
  display: block;
  color: var(--rv-text);
}

/* Missions : formes animées à gauche, texte à droite */
.rv-missions {
  position: relative;
  background: var(--rv-ink);
  color: var(--rv-white);
  overflow: hidden;
}
.rv-missions-stage {
  display: flex;
  align-items: center;
  min-height: 100svh;
  padding: calc(var(--rv-header-h) + 16px) 0 clamp(32px, 5vh, 64px);
}
@media (min-width: 1024px) {
  .rv-missions .rv-section-title {
    font-size: clamp(1.9rem, 1rem + 2.2vh + 1vw, 2.8rem);
  }
  .rv-missions-list {
    margin-top: 24px !important;
  }
  .rv-mission {
    padding-top: 14px;
    padding-bottom: 14px;
  }
}
.rv-missions .rv-label {
  color: var(--rv-gold-soft);
}
.rv-missions .rv-section-title {
  color: var(--rv-white);
}
.rv-morph {
  position: relative;
  width: 100%;
  max-width: 500px;
  aspect-ratio: 1;
  justify-self: center;
}
.rv-morph-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}
.rv-morph-halo {
  fill: none;
  stroke: rgba(157, 184, 230, 0.14);
  stroke-dasharray: 2 8;
}
.rv-morph-dot {
  fill: var(--rv-sky);
}
.rv-morph-dot.is-gold {
  fill: var(--rv-gold);
}
.rv-morph-links line {
  stroke: rgba(157, 184, 230, 0.18);
  stroke-width: 1;
}
.rv-morph-icons {
  position: absolute;
  left: 50%;
  bottom: -4px;
  width: 72px;
  height: 72px;
  margin-left: -36px;
}
.rv-morph-icon {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--rv-gold);
  color: var(--rv-ink);
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.45s var(--rv-ease), transform 0.45s var(--rv-ease);
}
.rv-morph-icon.is-active {
  opacity: 1;
  transform: none;
}
.rv-morph-steps {
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;
  display: flex;
  justify-content: center;
  gap: 8px;
}
.rv-morph-step {
  width: 26px;
  height: 4px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.18);
  transition: background-color 0.4s, width 0.4s var(--rv-ease);
}
.rv-morph-step.is-active {
  width: 44px;
  background: var(--rv-gold);
}
.rv-missions-list {
  display: grid;
  gap: 6px;
  margin-top: 32px !important;
}
.rv-mission {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 18px;
  padding: 18px 18px 18px 14px;
  border-radius: var(--rv-radius-m);
  opacity: 0.42;
  transition: opacity 0.45s, background-color 0.45s;
}
.rv-mission.is-active {
  opacity: 1;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 3px 0 0 var(--rv-gold);
}
.rv-mission-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(245, 165, 0, 0.16);
  color: var(--rv-gold-soft);
}
.rv-mission h3 {
  font-size: var(--rv-step-2);
  font-stretch: 88%;
  line-height: 1.15;
}
.rv-mission p {
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.72);
  max-width: 46ch;
}

/* MOOC : maquette à gauche, texte à droite */
.rv-mooc {
  padding: var(--rv-section) 0;
  background: var(--rv-paper);
  overflow: hidden;
}
.rv-pill {
  display: inline-block;
  margin-bottom: 18px;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--rv-gold);
  color: var(--rv-ink);
  font-size: 0.82rem;
  font-weight: 600;
}
.rv-mooc-lead {
  margin-top: 16px;
  color: var(--rv-muted);
  font-size: var(--rv-step-1);
  max-width: 40ch;
}
.rv-mooc-list {
  display: grid;
  gap: 14px;
  margin: 28px 0 32px !important;
}
.rv-mooc-list li {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--rv-navy);
  font-weight: 500;
}
.rv-mooc-list .rv-icon {
  color: var(--rv-gold-ink);
}
.rv-mooc-soon {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  color: var(--rv-muted);
  font-size: var(--rv-step--1);
}
.rv-dot {
  flex: none;
  margin: 0 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--rv-gold);
  animation: rv-ping 2.4s infinite;
}
@keyframes rv-ping {
  0% { box-shadow: 0 0 0 0 rgba(245, 165, 0, 0.55); }
  70%, 100% { box-shadow: 0 0 0 10px rgba(245, 165, 0, 0); }
}
.rv-course {
  position: relative;
  padding: 0 0 36px 0;
  width: 100%;
  max-width: 560px;
  justify-self: center;
}
.rv-course-screen {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34%;
  gap: 14px;
  padding: 14px;
  border-radius: var(--rv-radius-l);
  background: var(--rv-ink);
  box-shadow: 0 40px 80px -30px rgba(20, 34, 80, 0.6);
  transform: perspective(1200px) rotateY(10deg) rotateX(3deg);
  color: var(--rv-white);
}
.rv-course-video {
  position: relative;
  aspect-ratio: 16 / 11;
  border-radius: var(--rv-radius-m);
  background:
    radial-gradient(80% 80% at 30% 20%, rgba(245, 165, 0, 0.35), transparent 60%),
    linear-gradient(140deg, var(--rv-blue), var(--rv-navy));
  overflow: hidden;
}
.rv-course-play {
  position: absolute;
  left: 50%;
  top: 46%;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--rv-white);
  color: var(--rv-navy);
  transform: translate(-50%, -50%);
}
.rv-course-bar {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  height: 4px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.25);
  overflow: hidden;
}
.rv-course-bar span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--rv-gold);
  border-radius: 4px;
  transform-origin: left;
  transform: scaleX(0.58);
}
.rv-course-side {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px 4px;
}
.rv-course-title {
  font-family: var(--rv-display);
  font-weight: 700;
  margin-bottom: 4px;
}
.rv-course-step {
  position: relative;
  height: 30px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  transition: background-color 0.4s;
}
.rv-course-step.is-done {
  background: rgba(157, 184, 230, 0.28);
}
.rv-course-step.is-current {
  background: rgba(245, 165, 0, 0.32);
  box-shadow: inset 3px 0 0 var(--rv-gold);
}
.rv-course-check {
  position: absolute;
  right: 8px;
  top: 50%;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  border-radius: 50%;
  background: var(--rv-gold);
  color: var(--rv-ink);
  opacity: 0;
  transform: scale(0.4);
  transition: opacity 0.3s, transform 0.3s var(--rv-ease);
}
.rv-course-step.is-done .rv-course-check {
  opacity: 1;
  transform: none;
}
.rv-course-badge {
  position: absolute;
  left: 6%;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border-radius: var(--rv-radius-m);
  background: var(--rv-white);
  color: var(--rv-navy);
  font-weight: 600;
  box-shadow: 0 20px 40px -14px rgba(20, 34, 80, 0.4);
}
.rv-course-badge .rv-icon {
  color: var(--rv-gold-ink);
}

/* Contact et adhésion */
.rv-contact {
  padding: var(--rv-section) 0;
  background: var(--rv-white);
}
.rv-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(36px, 6vw, 96px);
  align-items: start;
}
.rv-contact-info {
  position: sticky;
  top: calc(var(--rv-header-h) + 32px);
}
.rv-contact-info .rv-muted {
  margin-top: 16px;
}
.rv-contact-list {
  display: grid;
  gap: 10px;
  margin-top: 28px !important;
}
.rv-contact-list a,
.rv-contact-list > li > span {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 14px 10px 10px;
  border-radius: var(--rv-radius-m);
  background: var(--rv-paper);
  color: var(--rv-navy);
  text-decoration: none;
  word-break: break-word;
  transition: background-color 0.25s;
}
.rv-contact-list a:hover {
  background: #E8ECF6;
}
.rv-contact-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--rv-white);
  color: var(--rv-gold-ink);
}
.rv-social {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 22px;
  color: var(--rv-navy) !important;
  font-weight: 600;
  text-decoration: none;
}
.rv-social .rv-icon {
  color: #0A66C2;
}
.rv-forms {
  padding: clamp(18px, 3vw, 40px);
  border-radius: var(--rv-radius-l);
  background: var(--rv-paper);
}
.rv-tabs {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 6px;
  border-radius: 14px;
  background: var(--rv-white);
  box-shadow: inset 0 0 0 1px var(--rv-line);
}
.rv-tab {
  position: relative;
  z-index: 1;
  min-height: 48px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--rv-muted);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.3s;
}
.rv-tab[aria-selected="true"] {
  color: var(--rv-white);
}
.rv-tab-ink {
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: 6px;
  width: calc(50% - 6px);
  border-radius: 10px;
  background: var(--rv-navy);
  transition: transform 0.45s var(--rv-ease);
}
.rv-tabs[data-active="adhesion"] .rv-tab-ink {
  transform: translateX(100%);
}
.rv-panel {
  margin-top: 26px;
}
.rv-panel[hidden] {
  display: none;
}
.rv-panel-title {
  margin-bottom: 20px !important;
  font-size: var(--rv-step-2);
  font-stretch: 90%;
  color: var(--rv-navy);
}
.rv-form {
  display: grid;
  gap: 18px;
}
.rv-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.rv-field {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.rv-field > span {
  color: var(--rv-navy);
  font-size: 0.93rem;
  font-weight: 600;
}
.rv-field > span em {
  color: var(--rv-muted);
  font-style: normal;
  font-weight: 330;
}
.rv-field input,
.rv-field select,
.rv-field textarea {
  width: 100%;
  min-height: 52px;
  padding: 12px 16px;
  border: 1.5px solid rgba(26, 42, 94, 0.18);
  border-radius: var(--rv-radius-s);
  background: var(--rv-white);
  color: var(--rv-text);
  font: inherit;
  font-size: max(16px, 1rem);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.rv-field textarea {
  resize: vertical;
  min-height: 120px;
}
.rv-field select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231A2A5E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 42px;
}
.rv-field input:focus,
.rv-field select:focus,
.rv-field textarea:focus {
  outline: none;
  border-color: var(--rv-blue);
  box-shadow: 0 0 0 4px rgba(45, 95, 170, 0.16);
}
.rv-field input:user-invalid,
.rv-field select:user-invalid,
.rv-field textarea:user-invalid {
  border-color: #C2410C;
}
.rv-file input {
  padding: 12px;
  border-style: dashed;
  cursor: pointer;
}
.rv-file small {
  color: var(--rv-muted);
  font-size: var(--rv-step--1);
}
.rv-form .rv-btn {
  justify-self: start;
  margin-top: 4px;
}
.rv-hp {
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.rv-fee {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px 28px;
  align-items: center;
  padding: 20px 22px;
  border-radius: var(--rv-radius-m);
  background: var(--rv-ink);
  color: var(--rv-white);
}
.rv-fee-label {
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--rv-step--1);
}
.rv-fee-value {
  font-family: var(--rv-display);
  font-size: var(--rv-step-3);
  font-weight: 800;
  font-stretch: 82%;
  line-height: 1.05;
  color: var(--rv-gold);
  white-space: nowrap;
}
.rv-fee-bank {
  padding-left: 24px;
  border-left: 1px solid var(--rv-line-light);
  font-size: 0.95rem;
}
.rv-fee-bank strong {
  color: rgba(255, 255, 255, 0.7);
  font-weight: 400;
}
.rv-rib {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin-top: 8px;
}
.rv-rib code {
  font-family: var(--rv-body);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  font-variant-numeric: tabular-nums;
}
.rv-copy {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  color: var(--rv-white);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}
.rv-copy:hover {
  background: rgba(255, 255, 255, 0.2);
}
.rv-copy.is-done {
  background: var(--rv-gold);
  color: var(--rv-ink);
}
.rv-copy-status {
  min-height: 1em;
  margin-top: 4px;
  font-size: var(--rv-step--1);
  color: var(--rv-gold-soft);
}
.rv-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  padding: 14px 16px;
  border-radius: var(--rv-radius-s);
  font-weight: 600;
}
.rv-notice-success {
  background: #E6F4EA;
  color: #14532D;
}
.rv-notice-error {
  background: #FDECEA;
  color: #8A1C12;
}
.rv-testnote {
  margin-top: 16px;
  padding: 10px 14px;
  border-radius: var(--rv-radius-s);
  background: rgba(245, 165, 0, 0.16);
  color: #6B4700;
  font-size: var(--rv-step--1);
}

/* Pied de page */
.rv-footer {
  padding: clamp(56px, 8vw, 96px) 0 28px;
  background: var(--rv-ink-2);
  color: rgba(255, 255, 255, 0.8);
  overflow: hidden;
}
.rv-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
}
.rv-footer-brand .rv-brand {
  color: var(--rv-white);
}
.rv-footer-brand .rv-brand img {
  width: 52px;
  height: 52px;
}
.rv-footer-brand p {
  margin-top: 18px;
  max-width: 40ch;
}
.rv-footer-title {
  margin-bottom: 14px !important;
  color: var(--rv-white);
  font-family: var(--rv-display);
  font-weight: 700;
  font-size: 1.1rem;
}
.rv-footer ul {
  display: grid;
  gap: 8px;
}
.rv-footer a {
  text-decoration: none;
}
.rv-footer a:hover {
  color: var(--rv-gold-soft);
}
/* Bas de page : la carte du hero, en négatif, posée sur le mot REMAREF */
.rv-footer-stage {
  position: relative;
  display: grid;
  place-items: center;
  height: clamp(280px, 38vw, 500px);
  margin-top: clamp(40px, 6vw, 72px);
  user-select: none;
  pointer-events: none;
}
.rv-footer-word {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--rv-display);
  font-size: clamp(4rem, 19vw, 17rem);
  font-weight: 800;
  font-stretch: 75%;
  line-height: 0.8;
  letter-spacing: -0.04em;
  text-align: center;
  white-space: nowrap;
}
.rv-footer-word span {
  display: inline-block;
  padding: 0 0.04em;
  background: linear-gradient(180deg, #2B3E7C 0%, #1C2A5A 65%, #131E47 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.rv-footmap {
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
  width: auto;
  aspect-ratio: 516 / 557;
  transform: translateX(-50%);
  overflow: visible;
}
.rv-footmap-land {
  fill: rgba(14, 26, 64, 0.38);
}
.rv-footmap-coast {
  fill: none;
  stroke: #9DB8E6;
  stroke-width: 1.6;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 7px rgba(157, 184, 230, 0.55));
}
.rv-flink {
  fill: none;
  stroke-linecap: round;
}
.rv-flink-near {
  stroke: rgba(245, 165, 0, 0.32);
  stroke-width: 1;
}
.rv-flink-hub {
  stroke: rgba(157, 184, 230, 0.55);
  stroke-width: 1.2;
  stroke-dasharray: 3 5;
}
.rv-fnode-dot {
  fill: var(--rv-gold);
}
.rv-fnode-0 .rv-fnode-dot {
  fill: var(--rv-gold-soft);
  fill-opacity: 0.7;
}
.rv-fnode-2 .rv-fnode-dot {
  fill: #FFFFFF;
}
.rv-fnode-ring {
  fill: none;
  stroke: #9DB8E6;
  stroke-width: 1.4;
}
.rv-fpulse {
  fill: #FFFFFF;
}
@media (max-width: 640px) {
  .rv-footer-stage {
    height: 300px;
  }
}
.rv-footer-bottom {
  margin-top: 28px;
  font-size: var(--rv-step--1);
}
.rv-footer-bottom-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid var(--rv-line-light);
}
.rv-footer-social {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
}

.rv-totop {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 90;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--rv-gold);
  color: var(--rv-ink);
  box-shadow: 0 12px 30px -10px rgba(20, 34, 80, 0.5);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.3s, transform 0.3s var(--rv-ease), visibility 0s 0.3s;
}
.rv-totop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity 0.3s, transform 0.3s var(--rv-ease);
}

/* Tablette et mobile */
@media (max-width: 960px) {
  .rv-split {
    grid-template-columns: 1fr;
  }
  .rv-about .rv-orbit {
    order: 2;
    max-width: 440px;
  }
  .rv-mooc .rv-course {
    order: 2;
  }
  .rv-missions-stage {
    min-height: 0;
  }
  .rv-morph {
    max-width: 340px;
  }
  .rv-contact-grid {
    grid-template-columns: 1fr;
  }
  .rv-contact-info {
    position: static;
  }
  .rv-facts {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .rv-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .rv-footer-brand {
    grid-column: 1 / -1;
  }
}
@media (max-width: 560px) {
  .rv-row {
    grid-template-columns: 1fr;
  }
  .rv-fee {
    grid-template-columns: 1fr;
  }
  .rv-fee-bank {
    padding-left: 0;
    padding-top: 14px;
    border-left: 0;
    border-top: 1px solid var(--rv-line-light);
  }
  .rv-form .rv-btn {
    justify-self: stretch;
  }
  .rv-hero-actions .rv-btn {
    flex: 1 1 100%;
  }
  .rv-course-screen {
    transform: none;
  }
  .rv-orbit {
    --rv-r: 30cqi;
    max-width: 340px;
  }
  .rv-chip > span {
    max-width: 8.5em;
    padding: 6px 10px;
    font-size: 0.72rem;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
  }
  .rv-map {
    max-width: 300px;
  }
  .rv-mission {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    padding: 14px 14px 14px 10px;
  }
  .rv-mission-icon {
    width: 44px;
    height: 44px;
  }
}

/* Séquence d'entrée : masquée seulement le temps que le script démarre */
.rv-intro-pending .rv-line > span,
.rv-intro-pending [data-rv-intro],
.rv-intro-pending .rv-map-svg,
.rv-intro-pending .rv-seal {
  opacity: 0;
}

/* Mouvement réduit : tout est visible, rien ne bouge */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  .rv-js .rv-manifesto.is-ready .rv-w {
    color: var(--rv-navy);
  }
  .rv-mission {
    opacity: 1;
  }
}
