/* ═════════════ Pages légales (CGV, mentions légales) — thème commun ═════════════ */
body { background: #fff; }

/* Bandeau de titre */
.reservation-hero {
  position: relative; overflow: hidden; padding: 8.5rem 0 3rem;
  background: radial-gradient(1000px 420px at 80% -10%, var(--bleu-100), transparent 70%),
              linear-gradient(180deg, var(--bleu-50) 0%, #fff 100%);
}
.reservation-hero-eyebrow {
  display: inline-block; margin-bottom: 1rem; padding: .35rem .9rem; border-radius: 999px;
  background: var(--bleu-100); color: var(--bleu-700); font-size: .8rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
}
.reservation-hero-title {
  font-size: clamp(2rem, 4.5vw, 3rem); font-weight: 800; line-height: 1.1;
  letter-spacing: -.02em; color: var(--bleu-900); margin-bottom: 1rem;
}
.reservation-hero-title em {
  font-style: normal;
  background: linear-gradient(90deg, var(--bleu-600), var(--cyan-400));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.reservation-hero-subtitle { color: var(--gris); max-width: 42rem; margin: 0; }

/* Contenu */
.legal-content { font-size: .95rem; line-height: 1.8; color: var(--texte); }
.legal-block { margin-bottom: 2.25rem; padding-bottom: 2.25rem; border-bottom: 1px solid var(--bordure); }
.legal-block:last-child { border-bottom: none; }
.legal-title { font-size: 1.25rem; font-weight: 700; color: var(--bleu-900); margin-bottom: .9rem; }
.legal-list { padding-left: 1.2rem; }
.legal-list li { margin-bottom: .4rem; }
.legal-list li::marker { color: var(--bleu-600); }
.legal-placeholder { color: var(--bleu-600); font-style: italic; }
.legal-content a { color: var(--bleu-700); text-underline-offset: 3px; }
.legal-content a:hover { color: var(--bleu-600); }

/* Encadrés */
.cgv-intro, .cgv-note {
  background: var(--bleu-50); border-left: 3px solid var(--bleu-600);
  border-radius: 0 1rem 1rem 0; color: var(--texte);
}
.cgv-intro { padding: 1.4rem 1.8rem; font-size: .95rem; line-height: 1.8; }
.cgv-note { padding: .8rem 1.2rem; font-size: .88rem; margin: 1rem 0 0; }
.cgv-price-box {
  display: inline-flex; align-items: baseline; gap: .8rem;
  background: var(--bleu-50); border: 1px solid var(--bordure); border-radius: 1rem; padding: .8rem 1.4rem;
}
.cgv-price-amount { font-size: 2rem; font-weight: 800; color: var(--bleu-900); line-height: 1; }
.cgv-price-label { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--gris); }
.cgv-policy-card { display: flex; gap: .8rem; padding: 1rem 1.2rem; font-size: .88rem; line-height: 1.6; height: 100%; border-radius: 0 1rem 1rem 0; }
.cgv-policy-ok { background: rgba(22, 163, 74, .06); border-left: 3px solid var(--vert); }
.cgv-policy-ko { background: rgba(224, 83, 61, .06); border-left: 3px solid var(--rouge); }
.cgv-policy-icon { font-size: 1.1rem; margin-top: 1px; flex-shrink: 0; }
.cgv-policy-ok .cgv-policy-icon { color: var(--vert); }
.cgv-policy-ko .cgv-policy-icon { color: var(--rouge); }

/* Lien retour */
.btn-ghost { font-weight: 600; color: var(--bleu-700); text-decoration: none; }
.btn-ghost:hover { color: var(--bleu-600); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 767.98px) { .reservation-hero { padding: 7rem 0 2.5rem; } }
