/* ==========================================================================
   Rose des Vents — feuille de style
   Transcription fidèle des styles de la maquette HTML d'origine.
   Palette : les deux bleus du logo — #0F2E93 (foncé) et #39B3E5 (clair) —
   et leurs dérivés. Le jaune du logo n'est jamais utilisé comme couleur de
   texte ou de fond.
   ========================================================================== */

:root {
  /* Les deux bleus du logo, relevés sur le fichier source. */
  --rdv-marine: #0F2E93;
  --rdv-ciel: #39B3E5;
  /* Tout le reste en dérive : même famille de teintes, jamais de violet. */
  --rdv-azur: #1966B2;
  --rdv-encre: #151D38;
  --rdv-gris: #39415C;
  --rdv-brume: #F2F8FA;
  --rdv-glace: #E6F4FA;
  --rdv-trait: #CFDFE6;
  --rdv-trait-fort: #9FBCC7;
  /* Seule exception à la famille du logo : le rouge ne sert qu'à signaler une
     erreur ou un champ obligatoire, où la couleur porte du sens. */
  --rdv-rouge: #C0392B;
  /* Gouttière : marges latérales fluides, contenu centré à 1400 px max. */
  --rdv-gutter: max(clamp(20px, 5vw, 48px), calc((100vw - 1400px) / 2));
  --rdv-section-y: clamp(56px, 9vw, 88px);
  /* Estimation de la hauteur de l'en-tête : logo 56px + cadre 2×6px +
     marges 2×14px. assets/js/accueil.js y substitue la mesure exacte. */
  --rdv-header-h: 96px;
}

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--rdv-brume);
  color: var(--rdv-encre);
  font-family: 'IBM Plex Sans', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }

a {
  color: var(--rdv-marine);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
a:hover { color: var(--rdv-encre); text-decoration-thickness: 4px; }

:focus-visible { outline: 4px solid var(--rdv-marine); outline-offset: 3px; }

input, select, textarea, button { font-family: inherit; }

img { max-width: 100%; }

/* Conteneurs de page ------------------------------------------------------ */

.rdv-page {
  background: var(--rdv-brume);
  color: var(--rdv-encre);
  font-size: 20px;
  line-height: 1.65;
  overflow-x: hidden;
}

.rdv-page--form { font-size: 20px; line-height: 1.6; overflow-x: hidden; }

.rdv-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: #fff;
  color: var(--rdv-marine);
  font-weight: 700;
  padding: 12px 20px;
  z-index: 100;
}
.rdv-skip-link:focus { left: 8px; top: 8px; }

/* Boutons ----------------------------------------------------------------- */

.rdv-btn {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-weight: 700;
  border-radius: 10px;
  border: 0;
  cursor: pointer;
}

.rdv-btn--marine { background: var(--rdv-marine); color: #fff; }
.rdv-btn--marine:hover { background: var(--rdv-encre); color: #fff; }

.rdv-btn--blanc { background: #fff; color: var(--rdv-marine); }
.rdv-btn--blanc:hover { background: var(--rdv-glace); color: var(--rdv-marine); }

.rdv-btn--contour {
  background: #fff;
  color: var(--rdv-marine);
  border: 2px solid var(--rdv-marine);
}
.rdv-btn--contour:hover { background: var(--rdv-glace); color: var(--rdv-marine); }

.rdv-btn--contour-blanc {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
}
.rdv-btn--contour-blanc:hover { background: var(--rdv-encre); color: #fff; }

.rdv-btn--sm { font-size: 20px; padding: 0 24px; height: 58px; }
.rdv-btn--sm-serre { font-size: 20px; padding: 0 22px; height: 58px; }
.rdv-btn--md { font-size: 21px; padding: 0 26px; height: 64px; }
.rdv-btn--lg { font-size: 22px; padding: 0 32px; height: 68px; }

/* En-tête ----------------------------------------------------------------- */

.rdv-header {
  background: var(--rdv-marine);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 24px;
  padding: 14px var(--rdv-gutter);
}

.rdv-header--form { padding: 14px 20px; }

.rdv-header__brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}

.rdv-logo-badge {
  background: #fff;
  border-radius: 10px;
  padding: 6px;
  display: flex;
}
.rdv-logo-badge img { height: 56px; width: auto; display: block; }
.rdv-header--form .rdv-logo-badge img { height: 52px; }

.rdv-header__name {
  font-family: Outfit, sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
}

.rdv-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 26px;
  font-size: 19px;
  font-weight: 500;
  color: #fff;
}

.rdv-nav__link {
  text-decoration: none;
  color: #fff;
  padding: 10px 0;
  border-bottom: 3px solid transparent;
}
.rdv-nav__link:hover { border-bottom-color: var(--rdv-ciel); color: #fff; }

/* En grand écran le conteneur s'efface : les liens redeviennent des enfants
   directs du menu, exactement comme dans la maquette d'origine. */
.rdv-nav__liens { display: contents; }

/* Bouton burger : masqué par défaut, révélé par le script en petit écran.
   Sans JavaScript, les liens restent affichés et le bouton n'apparaît pas. */
.rdv-burger { display: none; }

/* Bannière ---------------------------------------------------------------- */

.rdv-hero {
  position: relative;
  overflow: hidden;
  background: #D9F1FA;
  /* La bannière occupe le reste de l'écran à l'arrivée sur la page. */
  min-height: calc(100svh - var(--rdv-header-h));
  display: grid;
  align-content: center;
}

#hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% 40%;
  display: block;
}

#hero-veil {
  position: absolute;
  inset: 0;
  /* Le voile suit la largeur du texte : il reste opaque sous les lignes. */
  background: linear-gradient(90deg, rgba(230,244,250,0.96) 0%, rgba(230,244,250,0.92) 74%, rgba(230,244,250,0.5) 90%, rgba(230,244,250,0.25) 100%);
}

#hero-text {
  position: relative;
  padding: clamp(48px, 8vw, 72px) var(--rdv-gutter) clamp(48px, 8vw, 64px);
  /* Largeur du texte lui-même, marges latérales exclues : au-delà de 1400px la
     gouttière grandit et viendrait sinon rogner le bloc de l'intérieur. */
  --rdv-hero-texte: clamp(560px, 74vw, 1180px);
  max-width: calc(var(--rdv-hero-texte) + 2 * var(--rdv-gutter));
  display: grid;
  gap: 24px;
}

.rdv-hero__titre {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-size: clamp(40px, 7.5vw, 68px);
  line-height: 1.05;
  font-weight: 700;
  color: var(--rdv-marine);
  letter-spacing: -0.03em;
  text-wrap: pretty;
}
.rdv-hero__titre em { font-style: normal; color: var(--rdv-azur); }

.rdv-hero__intro {
  margin: 0;
  font-size: 22px;
  line-height: 1.55;
  /* Ligne plus courte que le titre : le texte courant reste confortable à lire. */
  max-width: min(100%, 820px);
  text-wrap: pretty;
}

.rdv-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 8px;
}

/* Surtitres --------------------------------------------------------------- */

/* Ces surtitres disent à qui la section s'adresse : ils doivent se lire du
   premier coup d'œil. Corps et graisse relevés, espacement des lettres réduit
   — l'ancienne combinaison (17px, graisse fine, 0.08em) était la moins lisible
   du site pour un public malvoyant. */
.rdv-surtitre {
  margin: 0 0 18px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--rdv-azur);
}
.rdv-surtitre--ciel { color: var(--rdv-ciel); }
.rdv-surtitre--pied { margin: 0 0 8px; font-size: 18px; }

.rdv-h2 {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-size: clamp(34px, 5.5vw, 46px);
  line-height: 1.08;
  font-weight: 700;
  color: var(--rdv-marine);
  letter-spacing: -0.02em;
}

/* Agrément ---------------------------------------------------------------- */

.rdv-agrement {
  margin: 4px 0 0;
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  background: #fff;
  border: 2px solid var(--rdv-ciel);
  border-radius: 999px;
  font-size: 18px;
  font-weight: 600;
  color: var(--rdv-marine);
}
.rdv-agrement__marque {
  color: var(--rdv-azur);
  font-weight: 700;
}

.rdv-footer__agrement {
  margin: 10px 0 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--rdv-azur);
}

/* Section « Qui suis-je » ------------------------------------------------- */

.rdv-qui {
  padding: var(--rdv-section-y) var(--rdv-gutter);
  display: grid;
  /* Colonne photo calée sur la largeur de l'image, le texte prend le reste. */
  grid-template-columns: minmax(300px, 480px) minmax(340px, 1fr);
  gap: 40px 64px;
  align-items: center;
}

.rdv-qui__photo {
  width: 100%;
  max-width: 480px;
  aspect-ratio: 360 / 440;
  object-fit: cover;
  object-position: 50% 30%;
  border-radius: 20px;
  display: block;
  margin-inline: auto;
}

.rdv-qui__titre { margin: 0 0 24px; }

/* Ciblé par classe : le surtitre est un <p> lui aussi et garde ses réglages. */
.rdv-qui__p { margin: 0 0 20px; }
.rdv-qui__p--intro { font-size: 21px; }
.rdv-qui__p:last-child { margin-bottom: 0; }

.rdv-valeurs {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.rdv-valeur {
  background: #fff;
  border: 1px solid var(--rdv-trait);
  border-radius: 14px;
  padding: 26px 28px;
}
.rdv-valeur__titre {
  margin: 0 0 8px;
  font-family: Outfit, sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--rdv-marine);
  line-height: 1.25;
}
.rdv-valeur__texte { margin: 0; font-size: 19px; line-height: 1.6; }

/* Formules ---------------------------------------------------------------- */

.rdv-formules {
  background: #fff;
  padding: var(--rdv-section-y) var(--rdv-gutter);
  border-top: 1px solid var(--rdv-trait);
}

.rdv-formules__entete {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: end;
  gap: 20px 40px;
  margin-bottom: 44px;
}
.rdv-formules__aparte { margin: 0; font-size: 20px; max-width: 360px; }

.rdv-formules__grille {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}

.rdv-formule {
  background: var(--rdv-brume);
  border: 1px solid var(--rdv-trait);
  border-radius: 20px;
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.rdv-formule__num { margin: 0; }
.rdv-formule__titre {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-size: 30px;
  line-height: 1.15;
  font-weight: 700;
  color: var(--rdv-marine);
  letter-spacing: -0.01em;
}
.rdv-formule__pour { margin: 0; font-size: 19px; font-weight: 600; }
.rdv-formule__texte { margin: 0; font-size: 18px; line-height: 1.6; }
.rdv-formule__points {
  margin: 0;
  padding: 16px 0 0;
  list-style: none;
  display: grid;
  gap: 10px;
  border-top: 1px solid var(--rdv-trait);
}
.rdv-formule__points li {
  display: flex;
  gap: 12px;
  font-size: 18px;
  line-height: 1.55;
}
.rdv-formule__coche { color: var(--rdv-azur); font-weight: 700; }
.rdv-formule__cta {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  padding: 12px 20px;
  line-height: 1.25;
  text-align: center;
  font-size: 20px;
}

.rdv-formules__prix {
  margin: 28px 0 0;
  padding: 22px 26px;
  background: var(--rdv-glace);
  border-radius: 14px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--rdv-encre);
}

/* Proches et institutions ------------------------------------------------- */

.rdv-proches {
  background: #fff;
  border-top: 1px solid var(--rdv-trait);
  padding: var(--rdv-section-y) var(--rdv-gutter);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 40px 64px;
  align-items: start;
}

.rdv-proches__texte { margin: 0 0 20px; font-size: 21px; }

.rdv-proches__intro .rdv-h2 { margin: 0 0 24px; }
.rdv-proches__intro .rdv-btn { margin-top: 8px; }

.rdv-proches__liste {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 18px;
}

.rdv-proches__liste li {
  padding-left: 26px;
  border-left: 4px solid var(--rdv-ciel);
}

.rdv-proches__liste h3 {
  margin: 0 0 6px;
  font-family: Outfit, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--rdv-marine);
  line-height: 1.25;
}

.rdv-proches__liste p { margin: 0; font-size: 19px; line-height: 1.6; }

/* Bon à savoir ------------------------------------------------------------ */

.rdv-inclus { padding: var(--rdv-section-y) var(--rdv-gutter); }
.rdv-inclus__titre { margin: 0 0 40px; }
.rdv-inclus__grille {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}
.rdv-inclus__carte {
  background: #fff;
  border: 1px solid var(--rdv-trait);
  border-radius: 16px;
  padding: 28px 30px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}
.rdv-inclus__puce {
  flex: none;
  width: 14px;
  height: 14px;
  margin-top: 12px;
  border-radius: 50%;
  background: var(--rdv-ciel);
}
.rdv-inclus__carte h3 {
  margin: 0 0 6px;
  font-family: Outfit, sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--rdv-marine);
  line-height: 1.25;
}
.rdv-inclus__carte p { margin: 0; font-size: 19px; line-height: 1.6; }

/* Bloc demande ------------------------------------------------------------ */

.rdv-demande { padding: 0 var(--rdv-gutter) var(--rdv-section-y); }

.rdv-demande__bloc {
  background: var(--rdv-marine);
  color: #fff;
  border-radius: 28px;
  padding: clamp(28px, 5vw, 56px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px 56px;
  align-items: center;
}
.rdv-demande__bloc .rdv-h2 { color: #fff; margin: 0 0 20px; }
.rdv-demande__texte { margin: 0 0 20px; font-size: 21px; }
.rdv-demande__texte--dernier { margin: 0 0 32px; }
.rdv-demande__texte a { color: #fff; font-weight: 700; }
.rdv-demande__texte a:hover { color: #fff; }
.rdv-demande__actions { display: flex; flex-wrap: wrap; gap: 14px; }

.rdv-demande__aside { display: grid; gap: 14px; }
.rdv-demande__avertissement {
  margin: 0;
  padding: 22px 24px;
  background: #fff;
  color: var(--rdv-encre);
  border-radius: 14px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.6;
}
.rdv-demande__etapes {
  margin: 0;
  padding: 22px 24px;
  list-style: none;
  display: grid;
  gap: 10px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 14px;
  font-size: 19px;
  line-height: 1.5;
}
.rdv-demande__etapes li { display: flex; gap: 12px; }
.rdv-demande__etapes b { color: var(--rdv-ciel); font-weight: 700; }

/* Pied de page ------------------------------------------------------------ */

.rdv-footer {
  background: #fff;
  border-top: 1px solid var(--rdv-trait);
  padding: clamp(32px, 6vw, 48px) var(--rdv-gutter);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px 48px;
  align-items: center;
}
.rdv-footer__logo { height: 130px; width: auto; display: block; }
.rdv-footer__contact { margin: 0; font-size: 20px; line-height: 1.7; }
.rdv-footer__contact a:first-child { font-weight: 700; }
.rdv-footer__zone { margin: 0; font-size: 19px; line-height: 1.6; }

.rdv-footer--form {
  background: #fff;
  border-top: 1px solid var(--rdv-trait);
  padding: 32px 20px;
  text-align: center;
  font-size: 18px;
  color: var(--rdv-gris);
  display: block;
}
.rdv-footer--form p { margin: 0; }
.rdv-footer--form a { font-weight: 700; }

/* ==========================================================================
   Page « Demande de transport »
   ========================================================================== */

.rdv-form-main {
  max-width: 960px;
  margin: 0 auto;
  padding: 40px clamp(20px, 4vw, 48px) 80px;
}

.rdv-retour {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 19px;
  font-weight: 600;
}

.rdv-form-surtitre { margin: 28px 0 14px; }

/* Le numéro de formule reprend le style des surtitres : même règle. */
.rdv-formule__num { font-size: 18px; letter-spacing: 0.03em; }

.rdv-form__h1 {
  margin: 0 0 20px;
  font-family: Outfit, sans-serif;
  font-size: clamp(38px, 8vw, 54px);
  line-height: 1.05;
  font-weight: 700;
  color: var(--rdv-marine);
  letter-spacing: -0.02em;
  text-wrap: pretty;
}

.rdv-form__intro { margin: 0 0 24px; font-size: 21px; }
.rdv-form__intro a { font-weight: 700; white-space: nowrap; }

.rdv-form__avertissement {
  margin: 0 0 40px;
  padding: 20px 22px;
  background: #fff;
  border: 2px solid var(--rdv-ciel);
  border-radius: 14px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.6;
}

.rdv-merci {
  background: var(--rdv-marine);
  color: #fff;
  border-radius: 20px;
  padding: 36px 28px;
  display: grid;
  gap: 16px;
}
.rdv-merci h2 {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-size: 34px;
  line-height: 1.1;
  font-weight: 700;
}
.rdv-merci p { margin: 0; font-size: 20px; }
.rdv-merci .rdv-btn { justify-self: start; }

.rdv-erreurs {
  margin: 0 0 28px;
  padding: 20px 22px;
  background: #FDECEA;
  border: 2px solid var(--rdv-rouge);
  border-radius: 14px;
  font-size: 19px;
  line-height: 1.6;
}
.rdv-erreurs p { margin: 0 0 8px; font-weight: 700; color: var(--rdv-rouge); }
.rdv-erreurs ul { margin: 0; padding-left: 22px; }

.rdv-form { display: grid; gap: 28px; }

.rdv-form__mention { margin: 0; font-size: 18px; color: var(--rdv-gris); }
.rdv-form__mention--centre { text-align: center; }
.rdv-requis { color: var(--rdv-rouge); font-weight: 700; }

.rdv-fieldset {
  border: 1px solid var(--rdv-trait);
  margin: 0;
  padding: 32px 24px;
  background: #fff;
  border-radius: 20px;
  display: grid;
  gap: 24px;
}
.rdv-fieldset > legend {
  padding: 0 8px;
  margin-left: -8px;
  font-family: Outfit, sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--rdv-marine);
}

.rdv-fieldset__note {
  margin: -6px 0 0;
  font-size: 18px;
  line-height: 1.6;
  color: var(--rdv-gris);
}

.rdv-champ { display: grid; gap: 8px; font-weight: 600; }
.rdv-champ__aide { font-weight: 400; font-size: 18px; color: var(--rdv-gris); }

.rdv-input {
  font-size: 20px;
  padding: 0 16px;
  height: 62px;
  border: 2px solid var(--rdv-trait-fort);
  border-radius: 10px;
  background: #fff;
  width: 100%;
}

.rdv-textarea {
  font-size: 20px;
  padding: 14px 16px;
  border: 2px solid var(--rdv-trait-fort);
  border-radius: 10px;
  background: #fff;
  line-height: 1.5;
  width: 100%;
}
.rdv-textarea--revele { border-color: var(--rdv-marine); }

.rdv-paire {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.rdv-groupe { display: grid; gap: 10px; }
.rdv-groupe__question { margin: 0; font-weight: 600; }

.rdv-choix { display: grid; gap: 10px; }
.rdv-choix--court { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.rdv-choix--long { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

.rdv-choix label {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 18px;
  min-height: 62px;
  border: 2px solid var(--rdv-trait-fort);
  border-radius: 10px;
  cursor: pointer;
  font-weight: 500;
}
.rdv-choix label:hover { border-color: var(--rdv-marine); background: var(--rdv-glace); }

input[type="radio"] {
  width: 28px;
  height: 28px;
  margin: 0;
  accent-color: var(--rdv-marine);
  flex: none;
}

.rdv-form__envoi {
  background: var(--rdv-marine);
  color: #fff;
  border: 0;
  border-radius: 12px;
  font-size: 22px;
  font-weight: 700;
  height: 72px;
  cursor: pointer;
}
.rdv-form__envoi:hover { background: var(--rdv-encre); }

/* Pot de miel anti-robots : invisible, mais atteignable par les robots. */
.rdv-pot-de-miel {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

[hidden] { display: none !important; }

/* ==========================================================================
   Page « Mentions légales »
   ========================================================================== */

.rdv-legal__maj {
  margin: 0 0 40px;
  font-size: 18px;
  color: var(--rdv-gris);
}

.rdv-legal__article {
  margin: 0 0 40px;
  padding: 28px 26px;
  background: #fff;
  border: 1px solid var(--rdv-trait);
  border-radius: 16px;
}

.rdv-legal__titre {
  margin: 0 0 18px;
  font-family: Outfit, sans-serif;
  font-size: 26px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--rdv-marine);
  letter-spacing: -0.01em;
}

.rdv-legal__article p {
  margin: 0 0 16px;
  font-size: 19px;
  line-height: 1.65;
}
.rdv-legal__article p:last-child { margin-bottom: 0; }

.rdv-legal__liste { margin: 0; }
.rdv-legal__liste + p { margin-top: 16px; }

.rdv-legal__ligne {
  display: grid;
  grid-template-columns: minmax(180px, 34%) 1fr;
  gap: 6px 24px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rdv-trait);
}
.rdv-legal__ligne:first-child { padding-top: 0; }
.rdv-legal__ligne:last-child { border-bottom: 0; padding-bottom: 0; }

.rdv-legal__ligne dt {
  font-size: 18px;
  font-weight: 600;
  color: var(--rdv-gris);
}
.rdv-legal__ligne dd {
  margin: 0;
  font-size: 19px;
  font-weight: 600;
  overflow-wrap: anywhere;
}

@media (max-width: 620px) {
  .rdv-legal__ligne { grid-template-columns: 1fr; }
}

/* Lien vers les mentions légales, en bas des deux autres pages. */

.rdv-footer__legal {
  grid-column: 1 / -1;
  margin: 0;
  padding-top: 24px;
  border-top: 1px solid var(--rdv-trait);
  font-size: 17px;
  text-align: center;
  color: var(--rdv-gris);
}

/* Mention discrète : le lien reste gris, sans la couleur marine des autres. */
.rdv-footer__legal a { color: var(--rdv-gris); }
.rdv-footer__legal a:hover { color: var(--rdv-encre); }

.rdv-footer--form .rdv-footer__legal {
  padding-top: 10px;
  border-top: 0;
  font-size: 17px;
}

/* Menu burger ------------------------------------------------------------- */

@media (max-width: 900px) {
  .rdv-header--js .rdv-burger {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255, 255, 255, 0.55);
    border-radius: 10px;
    height: 58px;
    padding: 0 18px;
    font-size: 19px;
    font-weight: 700;
    cursor: pointer;
  }
  .rdv-header--js .rdv-burger:hover { background: rgba(255, 255, 255, 0.12); }

  /* Trois barres, dessinées avec les bordures d'un seul élément. */
  .rdv-burger__barres,
  .rdv-burger__barres::before,
  .rdv-burger__barres::after {
    display: block;
    width: 26px;
    height: 3px;
    background: #fff;
    border-radius: 2px;
  }
  .rdv-burger__barres { position: relative; }
  .rdv-burger__barres::before,
  .rdv-burger__barres::after {
    content: '';
    position: absolute;
    left: 0;
  }
  .rdv-burger__barres::before { top: -8px; }
  .rdv-burger__barres::after { top: 8px; }

  /* Ouvert : les barres forment une croix. */
  .rdv-burger[aria-expanded="true"] .rdv-burger__barres { background: transparent; }
  .rdv-burger[aria-expanded="true"] .rdv-burger__barres::before { top: 0; transform: rotate(45deg); }
  .rdv-burger[aria-expanded="true"] .rdv-burger__barres::after { top: 0; transform: rotate(-45deg); }

  /* Le panneau se déplie par-dessus la bannière : l'en-tête garde sa hauteur
     et rien ne se décale à l'ouverture. */
  .rdv-header--js { position: relative; z-index: 10; }

  .rdv-header--js .rdv-nav__liens {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--rdv-marine);
    padding: 2px var(--rdv-gutter) 18px;
    box-shadow: 0 18px 28px rgba(21, 29, 56, 0.22);
  }
  .rdv-header--js .rdv-nav__liens[data-ouvert="true"] {
    display: grid;
    gap: 2px;
  }

  .rdv-header--js .rdv-nav__liens .rdv-nav__link {
    padding: 16px 4px;
    font-size: 21px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  }
  .rdv-header--js .rdv-nav__liens .rdv-nav__link:last-child { border-bottom: 0; }
  .rdv-header--js .rdv-nav__liens .rdv-nav__link:hover {
    border-bottom-color: var(--rdv-ciel);
    color: var(--rdv-ciel);
  }
}

@media (max-width: 560px) {
  /* Logo, bouton d'appel et menu doivent tenir sur une seule rangée : la
     marque se réduit au logo et les espacements se resserrent. */
  .rdv-header--js.rdv-header { gap: 10px 12px; }
  .rdv-header--js .rdv-header__name { display: none; }
  .rdv-header--js .rdv-nav { gap: 8px 12px; }
  .rdv-header--js .rdv-nav > .rdv-btn { padding: 0 14px; }
  .rdv-header--js .rdv-burger { padding: 0 14px; }
  .rdv-header--js .rdv-burger__texte { display: none; }
}

/* Adaptations mobiles ----------------------------------------------------- */

@media (max-width: 900px) {
  .rdv-qui { grid-template-columns: 1fr; align-items: start; }
}

@media (max-width: 780px) {
  /* Le menu passe sous la marque : l'en-tête occupe deux rangées. */
  :root { --rdv-header-h: 168px; }
}

@media (max-width: 560px) {
  /* Le bouton d'appel passe à son tour sur sa propre rangée. */
  :root { --rdv-header-h: 228px; }
}

@media (max-width: 720px) {
  #hero-veil {
    background: linear-gradient(180deg, rgba(230,244,250,0.97) 0%, rgba(230,244,250,0.95) 62%, rgba(230,244,250,0.35) 82%, rgba(230,244,250,0.1) 100%) !important;
  }
  #hero-img { object-position: 60% 30% !important; }
  #hero-text { padding-bottom: 220px !important; }
}
