/* ==========================================================================
   Le Souffle des Muses — feuille de style
   --------------------------------------------------------------------------
   Ordre du fichier : polices, couleurs, bases, éléments communs (boutons,
   menu, photos), puis les sections de l'accueil dans l'ordre de la page,
   puis la galerie, le pied de page, les pages intérieures (Charte, Galerie,
   Mentions légales) et la fenêtre « Prendre RDV ».
   Téléphone : @media (max-width: 800px) pour les photos et la plupart des
   réglages, 700px ou 900px pour quelques blocs (menu, pages intérieures).
   ========================================================================== */

/* ---------- Polices ---------- */
@font-face {
  font-family: "Lora";
  src: url("../assets/fonts/Lora-MediumItalic.woff2") format("woff2");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Lora";
  src: url("../assets/fonts/Lora-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Lora";
  src: url("../assets/fonts/Lora-SemiBoldItalic.woff2") format("woff2");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("../assets/fonts/PlayfairDisplay-Regular.woff2") format("woff2"), url("../assets/fonts/PlayfairDisplay-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("../assets/fonts/PlayfairDisplay-Italic.woff2") format("woff2"), url("../assets/fonts/PlayfairDisplay-Italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("../assets/fonts/PlayfairDisplay-Bold.woff2") format("woff2"), url("../assets/fonts/PlayfairDisplay-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("../assets/fonts/PlayfairDisplay-BoldItalic.woff2") format("woff2"), url("../assets/fonts/PlayfairDisplay-BoldItalic.ttf") format("truetype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-BoldItalic.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-MediumItalic.woff2") format("woff2");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("../assets/fonts/SourceSans3-LightItalic.woff2") format("woff2");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

/* ---------- Couleurs et polices du site ---------- */

:root {
  --cream: #f9e3cc;
  --cream-light: #fdf1e6;
  --terracotta: #d9853f;
  --terracotta-dark: #c06a30;
  --rouge: #a63d3d;
  --rouge-dark: #7c2c2c;
  --brun: #3a1f1a;
  --brun-text: #4a2a22;
  --blanc-casse: #fbf3e9;
  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body: "Source Sans 3", Helvetica, Arial, sans-serif;
  --radius-lg: 28px;
  --shadow-soft: 0 20px 45px -20px rgba(58, 31, 26, 0.35);
  --container: 1280px;
}
.site-shell {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  background: var(--cream);
}

/* ---------- Bases ---------- */

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
[id] {
  scroll-margin-top: 132px;
}

@media (max-width: 900px) {
  [id] {
    scroll-margin-top: 84px;
  }
}
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--brun-text);
  background: var(--cream);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img {
  max-width: 100%;
  display: block;
}
a {
  color: inherit;
  text-decoration: none;
}
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
}
h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
  margin: 0 0 0.5em;
  line-height: 1.15;
  color: var(--rouge-dark);
  font-weight: 700;
}
h1 {
  font-size: clamp(2.6rem, 7vw, 62px);
  color: #f9e3cc;
}
h2 {
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(2.3rem, 5vw, 63px);
  font-style: italic;
}
h3 {
  font-size: 1.25rem;
}
h2:hover,
h3:hover,
h4:hover {
  text-decoration: none;
  text-underline-offset: 0.12em;
  background: none;
  box-shadow: none;
  outline: none;
}
p {
  margin: 0 0 1em;
  line-height: calc(1em + 5px);
}
.eyebrow {
  display: inline-block;
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: italic;
  color: var(--terracotta-dark);
  font-size: 1.1rem;
  margin-bottom: 0.4em;
}
.site-shell > main {
  position: relative;
}

@media (min-width: 1281px) {
  .site-shell {
    max-width: none;
    width: 100%;
  }
}

/* ---------- Accessibilité (focus clavier, animations réduites) ---------- */
a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--rouge);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
  html {
    scroll-behavior: auto;
  }
}

/* ---------- Boutons ---------- */
.btn[hidden] {
  display: none;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 207.3px;
  min-height: 44.3px;
  justify-content: center;
  padding: 10.5px 22.5px;
  border-radius: 999px;
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: 20.1333px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.btn-primary {
  background: #ea8123;
  color: #f9e3cc;
  box-shadow: 0 10px 25px -10px rgba(234, 129, 35, 0.7);
}
.btn-primary:hover {
  background: #c96b1c;
  transform: translateY(-2px);
}
.btn-outline {
  min-width: 164.5px;
  min-height: 39.1px;
  background: #aa4444;
  border: none;
  color: #f9e3cc;
}
.btn-outline:hover {
  background: #833836;
  color: #f9e3cc;
}

/* ---------- Menu (en-tête fixe) ---------- */
.site-header {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1280px;
  z-index: 50;
  background: transparent;
  transition: background 0.25s ease, box-shadow 0.25s ease;
}
.site-header.is-stuck {
  background: rgba(170, 68, 68, 0.60);
  box-shadow: 0 6px 24px -12px rgba(30, 14, 10, 0.55);
}

@media (max-width: 900px) {
  .site-header.is-stuck {
    background: rgba(170, 68, 68, 0);
    box-shadow: none;
  }
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px 24px;
  max-width: 1280px;
  margin: 0 auto;
}
.brand {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.brand-title {
  margin: 0;
  font-size: 1rem;
  line-height: 1;
  display: flex;
}
.brand img.logo-mark {
  height: 46px;
  width: auto;
  flex-shrink: 0;
}
.nav-links {
  display: flex;
  align-items: center;
  flex: 1;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-links a {
  display: inline-block;
  white-space: nowrap;
  color: #f9e3cc;
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: italic;
  font-size: 20px;
  padding: 10px 12px;
  border-radius: 8px;
  background: transparent;
  transition: background 0.2s ease;
  position: relative;
}
.nav-links a::after {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 4px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(20, 6, 4, 0.9) 0%, rgba(20, 6, 4, 0.5) 40%, rgba(20, 6, 4, 0) 72%);
  filter: blur(3px);
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
  z-index: -1;
}
.nav-links a:hover {
  background: transparent;
  text-decoration: none;
}
.nav-links a:hover::after {
  opacity: 1;
}
/* Charte et Galerie : la photo du haut est plus sombre que celle de l'accueil,
   l'ombre au survol des menus est renforcée pour rester aussi visible */
body:has(.hero-page) .nav-links a::after {
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.8) 40%, rgba(0, 0, 0, 0) 72%);
}
.nav-toggle {
  display: none;
  background: none;
  border: none;
  color: #f9e3cc;
  font-size: 1.6rem;
  cursor: pointer;
}

@media (max-width: 900px) {
  .nav-toggle {
    display: block;
  }
  .nav-links {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #9e4a47;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 32px 28px;
    gap: 16px;
    display: none;
  }
  .nav-links.open {
    display: flex;
  }
  .nav-links a {
    color: #f9e3cc;
  }
  .nav-cta {
    align-self: flex-start;
  }
}

@media (min-width: 1281px) {
  .site-header {
    max-width: none;
    width: 100%;
  }
}

/* ---------- Accueil : grande photo du haut ---------- */
.hero {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  height: 779px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #f9e3cc;
  background: var(--cream);
  overflow: hidden;
}
.hero .photo-placeholder {
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: 0;
}
.hero .hero-bg-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding: 0 24px;
}
.hero-logo {
  width: clamp(150px, 18vw, 241px);
  height: clamp(150px, 18vw, 241px);
  border-radius: 50%;
  margin: 0 auto 44px;
}
.hero .tagline {
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: italic;
  color: #dd863c;
  font-size: clamp(1.35rem, 3.6vw, 32px);
}
picture.photo-mobile {
  display: contents;
}
/* 17/10/2026 (SEO) : texte invisible a l'ecran mais lu par les lecteurs d'ecran,
   Google et les IA (technique d'accessibilite standard, sans texte transparent) */
.visuellement-cache {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.hero:not(.hero-page) h1,
.hero:not(.hero-page) h2 {
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: normal;
  color: #f9e3cc;
  font-size: clamp(2.3rem, 5.3vw, 65px);
  margin-bottom: 60px;
}

@media (max-width: 700px) {
  .hero {
    height: 560px;
  }
}

@media (min-width: 1281px) {
  .hero {
    max-width: none;
    width: 100%;
  }
}

/* ---------- Photos ---------- */
.photo-img {
  display: block;
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: var(--ph-ratio, 4/3);
  border-radius: var(--ph-radius, 18px);
  object-fit: cover;
}

/* ---------- Photo manquante (cadre affiché si le fichier n'est pas en ligne) ---------- */
.photo-placeholder {
  position: relative;
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: var(--ph-ratio, 4/3);
  border-radius: var(--ph-radius, 18px);
  background: none;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
}
.photo-placeholder::before {
  content: none;
}
.ph-label {
  display: none;
}

/* ---------- Accueil : L'Expérience du Massage Voyage ---------- */
.section-cream.section-intro-experience {
  background: #f9e3cc;
  height: 400px;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 40px;
}

@media (max-width: 700px) {
  .section-cream.section-intro-experience {
    height: auto;
    padding-bottom: 32px;
  }
  .section-intro-experience .eyebrow {
    line-height: calc(1em + 5px);
  }
}
.section-intro-experience .eyebrow {
  display: block;
  font-size: clamp(1.8rem, 5vw, 55px);
  color: #9e4b47;
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: italic;
  margin-bottom: 0.15em;
}
.section-intro-experience p {
  max-width: 1060px;
  margin-left: auto;
  margin-right: auto;
  font-size: 20px;
  color: #9e4b47;
  margin-bottom: 0.5em;
}
.section-intro-experience > .container {
  max-width: 1200px;
}

@media (min-width: 701px) {
  .section-cream.section-intro-experience {
    height: 370px;
    padding-top: 50px;
    padding-bottom: 55px;
    align-items: center;
  }
  .section-intro-experience .eyebrow {
    line-height: 1.2;
    margin-bottom: calc(0.15em + 15px);
  }
  .section-intro-experience .container > :last-child {
    margin-bottom: 0;
  }
}

@media (max-width: 800px) {
  .section-intro-experience .eyebrow {
    margin-bottom: 20px;
  }
}

/* ---------- Accueil : Le Massage Voyage (photo pleine largeur, texte incrusté) ---------- */
.section-massage-voyage {
  position: relative;
  padding: 0;
  min-height: 615px;
  background: var(--cream);
  overflow: hidden;
  display: flex;
  align-items: center;
}
.section-massage-voyage .mv-fond,
.section-massage-voyage .photo-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
  aspect-ratio: auto;
  max-width: none;
  z-index: 0;
}
.section-massage-voyage > .container {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-top: 0;
  margin-top: -4px;
  padding-bottom: 64px;
  padding-left: 130px;
}
.section-massage-voyage h2 {
  color: #f9e3cc;
  margin-bottom: 0.55em;
  text-shadow: 0 2px 16px rgba(30,14,10,0.5);
  font-size: 55.7px;
}
.section-massage-voyage p {
  color: #f9e3cc;
  font-size: 20px;
  font-weight: 500;
  text-shadow: 0 1px 10px rgba(30,14,10,0.5);
}
.section-massage-voyage .mv-texte > p:first-of-type {
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-style: normal;
  font-weight: 500;
  font-size: 28.6px;
  white-space: nowrap;
  margin-bottom: 0.3em;
}
.section-massage-voyage .mv-cta {
  text-align: center;
  margin: 44px 0 0;
}
.section-massage-voyage .btn {
  color: #f9e3cc;
}
.section-massage-voyage:has(.photo-placeholder) h2,
.section-massage-voyage:has(.photo-placeholder) p {
  text-shadow: none;
}

@media (max-width: 800px) {
  .section-massage-voyage {
    min-height: 0;
  }
  .section-massage-voyage > .container {
    padding-top: 60px;
    padding-bottom: 48px;
    padding-left: 32px;
  }
}

@media (max-width: 700px) {
  .section-massage-voyage .mv-texte > p:first-of-type {
    white-space: normal;
    font-size: 22px;
  }
}

.section-massage-voyage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient( 180deg, rgba(249, 227, 204, 0) 0%, rgba(249, 227, 204, 0) 20.7%, rgba(249, 227, 204, 1) 94.5%, rgba(249, 227, 204, 1) 100% );
}
.mv-texte {
  max-width: 660px;
}

@media (max-width: 800px) {
  .mv-texte {
    max-width: none;
  }
}

/* ---------- Accueil : Notre Temple, Notre Charte ---------- */

.section-charte-teaser > .container {
  padding-left: 130px;
}
.charte-texte {
  max-width: 660px;
}
.section-charte-teaser h2 {
  color: #9e4b47;
}
.section-charte-teaser p {
  color: #9e4b47;
  font-size: 20px;
}
.section-charte-teaser .charte-cta {
  text-align: center;
  margin: 44px 0 0;
}

@media (max-width: 800px) {
  .section-charte-teaser > .container {
    padding-left: 32px;
  }
  .charte-texte {
    max-width: none;
  }
}

/* ---------- Fonds de section et « Une quête d'évasion » ---------- */
section {
  padding: 80px 0;
}
.section-cream {
  background: var(--cream);
}
.section-blanc {
  background: var(--blanc-casse);
}
.section-brun {
  background: #aa4444;
  color: var(--cream);
  padding: 30px 0;
}
.section-brun > .container.grid-2 {
  padding-left: 130px;
}

@media (max-width: 800px) {
  .section-brun > .container.grid-2 {
    padding-left: 32px;
    display: contents;
  }
}

@media (max-width: 350px) {
  .section-brun h2 {
    font-size: 34px;
  }
}

@media (min-width: 801px) and (max-width: 1279px) {
  .section-brun h2 {
    font-size: calc((100vw - 250px) * 0.052 + 0.5rem);
  }
}

@media (min-width: 801px) {
  .section-brun h2 {
    white-space: nowrap;
  }
}
.section-brun h2 {
  margin-top: -106px;
  color: var(--cream);
}

@media (max-width: 800px) {
  .section-brun h2 {
    margin-top: 0;
  }
}
.section-brun p,
.section-brun li {
  font-size: 20px;
}
.section-brun li {
  line-height: calc(1em + 5px);
}
.section-brun .evasion-intro {
  margin-bottom: 12px;
}
.section-brun .evasion-liste {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
}
.section-brun .evasion-liste li {
  margin-bottom: 6px;
}
.text-center {
  text-align: center;
}
.max-prose {
  max-width: 760px;
  margin: 0 auto;
}
.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.evasion-photo-wrap {
  position: relative;
}
.evasion-photo-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--ph-radius, 18px);
  pointer-events: none;
  background: linear-gradient( 180deg, rgba(170, 68, 68, 0) 0%, rgba(170, 68, 68, 0) 10%, rgba(170, 68, 68, 0.04) 20%, rgba(170, 68, 68, 0.09) 30%, rgba(170, 68, 68, 0.16) 40%, rgba(170, 68, 68, 0.26) 50%, rgba(170, 68, 68, 0.36) 60%, rgba(170, 68, 68, 0.53) 70%, rgba(170, 68, 68, 0.74) 80%, rgba(170, 68, 68, 0.92) 90%, rgba(170, 68, 68, 1) 100% );
}

@media (max-width: 800px) {
  .grid-2 {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .section-brun {
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
  }
  .section-brun > .container.grid-2 > div:first-child {
    order: 1;
    padding: 0 32px;
  }
  .section-brun .evasion-baseline {
    order: 2;
    padding: 0 32px;
    margin: 16px auto 24px;
  }
  .section-brun .evasion-photo-wrap {
    order: 3;
    width: 100%;
    margin: 0;
  }
  .section-brun .evasion-photo-wrap::after {
    border-radius: 0;
  }
  .section-brun .evasion-photo-wrap .photo-img {
    max-width: none;
    border-radius: 0;
  }
}
.evasion-baseline {
  text-align: center;
  font-weight: 700;
  font-size: 30px;
  margin: 16px auto 0;
  max-width: 560px;
}

/* ---------- Accueil : Formules & Tarifs ---------- */
.section-formules {
  position: relative;
  overflow: hidden;
  padding-top: 60px;
}
.section-formules h2 {
  color: #9e4b47;
}
.motif-formules {
  position: absolute;
  top: 37px;
  left: calc(50% - min(256px, 18.74%));
  width: min(1281px, 93.78%);
  height: auto;
  pointer-events: none;
  z-index: 0;
}
.section-formules > .container {
  position: relative;
  z-index: 1;
}
.section-formules > .container > p.max-prose {
  font-size: 20px;
  color: #9e4b47;
}
.section-formules .formules-note {
  font-size: 0.85rem;
  color: #c06a30;
  font-style: italic;
  margin-top: 22px;
}
.section-formules .formules-cta {
  margin-top: 24px;
}

/* ---------- Formules : cartes ---------- */
.formules-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10.42%;
  margin-top: 48px;
}

@media (max-width: 900px) {
  .formules-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.formule-card {
  background: transparent;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  display: flex;
  flex-direction: column;
}
.formule-card .photo-placeholder,
.formule-card .photo-img {
  border-radius: 0;
  --ph-ratio: 312/371;
}

/* ---------- Formules : titre sur la photo ---------- */
.formule-photo-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
}
.formule-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 33% 8% 0;
  text-align: center;
  color: #f9e3cc;
}
.formule-overlay h3 {
  color: #f9e3cc;
  font-family: var(--font-display);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(2.2rem, 2.6vw, 2.8rem);
  letter-spacing: 0.01em;
  line-height: 1.1;
  margin: 0 0 0.75em;
  text-shadow: 0 2px 12px rgba(30,14,10,0.45);
}
.formule-overlay p {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: clamp(1rem, 1.5vw, 1.28rem);
  line-height: 1.3;
  margin: 0;
  color: #f9e3cc;
  text-shadow: 0 2px 10px rgba(30,14,10,0.45);
}
.formule-photo-wrap:has(.photo-placeholder) .formule-overlay h3,
.formule-photo-wrap:has(.photo-placeholder) .formule-overlay p {
  text-shadow: none;
}

/* ---------- Formules : bandeau prix ---------- */
.formule-prix-bar {
  background: #aa4444;
  border-radius: 0 0 20px 20px;
  padding: 18px 16px;
  min-height: 102px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.formule-prix-bar p {
  margin: 0;
  font-family: var(--font-body);
  color: #f9e3cc;
  font-size: clamp(0.95rem, 1.4vw, 1.2rem);
  line-height: 1.35;
}
.formule-prix-bar strong {
  font-weight: 400;
}

/* ---------- Accueil : grand bandeau photo et Nos Muses ---------- */
.bandeau-muses {
  position: relative;
  padding: 0;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  overflow: hidden;
}
.bandeau-muses .photo-img,
.bandeau-muses .photo-placeholder {
  object-position: top;
  width: 100%;
  max-width: none;
  margin: 0;
}
.bandeau-muses::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 45%;
  background: linear-gradient( 180deg, rgba(233,172,120,0) 0%, rgba(233,172,120,0.028) 10%, rgba(233,172,120,0.104) 20%, rgba(233,172,120,0.216) 30%, rgba(233,172,120,0.352) 40%, rgba(233,172,120,0.5) 50%, rgba(233,172,120,0.648) 60%, rgba(233,172,120,0.784) 70%, rgba(233,172,120,0.896) 80%, rgba(233,172,120,0.972) 90%, #e9ac78 100% );
  pointer-events: none;
}
.section-muses {
  background: #e9ac78;
  padding: 40px 0 80px;
}
.section-muses h2 {
  color: #f9e3cc;
}
.muses-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
  align-items: start;
}

@media (max-width: 800px) {
  .muses-grid {
    grid-template-columns: 1fr;
    max-width: 380px;
    margin-left: auto;
    margin-right: auto;
  }
  .bandeau-muses .photo-img {
    aspect-ratio: auto;
    height: calc(100vw * 9 / 16 + 54px);
  }
  .bandeau-muses {
    margin-bottom: -54px;
    margin-top: -55px;
  }
  .section-muses {
    padding-top: 50px;
  }
  .section-muses .muses-grid {
    margin-top: 30px;
  }
  .bandeau-muses::after {
    top: 0;
    height: auto;
    background: linear-gradient(180deg, rgba(233,172,120,0) 0%, rgba(233,172,120,0) 35%, rgba(233,172,120,0.5) 62%, rgba(233,172,120,0.92) 85%, #e9ac78 100%);
  }
}
.muse-card {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-soft);
}
.muse-card::after {
  content: "";
  display: block;
  padding-top: 125.7576%;
}
.muse-card .photo-img,
.muse-card .photo-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  object-position: top center;
}

@media (min-width: 801px) {
  .bandeau-muses::after {
    background: linear-gradient( 180deg, rgba(233,172,120,0.000) 0%, rgba(233,172,120,0.001) 10%, rgba(233,172,120,0.011) 20%, rgba(233,172,120,0.047) 30%, rgba(233,172,120,0.124) 40%, rgba(233,172,120,0.250) 50%, rgba(233,172,120,0.420) 60%, rgba(233,172,120,0.615) 70%, rgba(233,172,120,0.803) 80%, rgba(233,172,120,0.945) 90%, rgba(233,172,120,1.000) 100% );
  }
  .bandeau-muses .photo-img {
    aspect-ratio: auto;
    height: calc(100vw * 9 / 16 + 52px);
  }
  .bandeau-muses {
    margin-bottom: -22px;
  }
  .section-muses {
    padding-top: 10px;
  }
}

/* ---------- Nos Muses : bio au survol de la photo ---------- */
.muse-card-bio::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(20,10,8,0.9) 0%, rgba(20,10,8,0.72) 55%, rgba(20,10,8,0.4) 100%);
  z-index: 1;
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}
.muse-bio-text {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
  padding: 26px;
  color: #f9e3cc;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.muse-card-bio:hover::before,
.muse-card-bio:focus-within::before {
  opacity: 1;
}
.muse-card-bio:hover .muse-bio-text,
.muse-card-bio:focus-within .muse-bio-text {
  opacity: 1;
  transform: translateY(0);
}
.muse-bio-text h3 {
  color: #f9e3cc;
  margin-bottom: 0;
  font-size: 1.3rem;
}
.muse-bio-text .muse-role {
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: italic;
  color: #f9e3cc;
  margin-bottom: 1em;
}
.muse-bio-text .muse-formations {
  font-size: 0.78rem;
  opacity: 0.85;
  margin-top: 1em;
}

@media (max-width: 800px) {
  .muse-card::after {
    padding-top: 125%;
  }
}

/* ---------- Accueil : FAQ ---------- */
.section-faq {
  background: var(--cream);
  padding-top: 91.5px;
  padding-bottom: 106.5px;
  margin-bottom: -166px;
}

@media (min-width: 801px) {
  .section-faq:has(.faq-item:last-child[open]) {
    margin-bottom: -75px;
  }
}
.section-faq > .container {
  padding-left: 130px;
}
.section-faq h2 {
  color: #9e4a47;
}

@media (max-width: 800px) {
  .section-faq > .container {
    padding-left: 32px;
  }
  .section-faq {
    margin-bottom: -123px;
    padding-top: 60.5px;
    padding-bottom: 136.5px;
  }
}
.faq {
  max-width: 100%;
  margin: 32px 0 0;
  text-align: left;
}
.faq-item {
  border: none;
  margin-bottom: -2px;
  position: relative;
  z-index: 3;
  -webkit-tap-highlight-color: transparent;
}
.faq-item:last-child {
  margin-bottom: 9px;
}
.faq-item summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 0px 0;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.25rem;
  color: #9e4a47;
  -webkit-tap-highlight-color: transparent;
}
.faq-item summary::-webkit-details-marker {
  display: none;
}
.faq-item summary::before {
  content: ">";
  font-family: var(--font-body);
  font-size: 1.15rem;
  color: #9e4a47;
  transition: transform 0.2s ease;
  flex-shrink: 0;
  display: inline-block;
}
.faq-item[open] summary::before {
  transform: rotate(90deg);
}
.faq-body {
  padding: 0 0 20px 32px;
  color: #9e4a47;
}
.faq-body h4 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.05rem;
  color: #9e4a47;
  margin: 1.2em 0 0.35em;
}
.faq-body h4:first-child {
  margin-top: 0;
}
.faq-body p {
  margin: 0 0 0.6em;
}

/* ---------- Accueil : Comment réserver ? ---------- */
.section-reserver-inner {
  text-align: left;
  max-width: var(--container);
  padding-left: 130px;
}
.section-reserver-inner > * {
  max-width: 780px;
}
.section-reserver-inner h2 {
  font-style: italic;
  color: #9e4a47;
}
.section-reserver-inner h2:hover {
  text-decoration: none;
}

@media (max-width: 800px) {
  .section-reserver-inner {
    padding-left: 32px;
  }
  .section-reserver-inner > * {
    max-width: none;
  }
  .section-reserver-inner h2 {
    margin-top: 20px;
  }
}
.section-reserver-inner p {
  font-size: 20px;
  color: #9e4a47;
}
.section-reserver-inner .reserver-note {
  font-size: 0.85rem;
}
.section-reserver-inner .reserver-cta {
  margin-top: 20px;
}
.section-reserver-inner > :last-child {
  margin-bottom: 0;
}

/* ---------- Vagues ---------- */
.wave {
  display: block;
  width: 100%;
  line-height: 0;
  margin: 0;
}
.wave img {
  width: 100%;
  height: auto;
  display: block;
}

/* ---------- Vague crème vers bordeaux (avant « Une quête d'évasion ») ---------- */
.wave-quete {
  background: var(--cream);
  margin-bottom: -1px;
}
.wave-quete img {
  margin-bottom: -1px;
}

/* ---------- Accueil : Vos jolis Mots (photo voilée de bordeaux) ---------- */
.section-temoignage {
  position: relative;
  padding: 0;
  background: #aa4444;
  overflow: hidden;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
}
.section-temoignage > picture > .photo-img,
.section-temoignage > picture > .photo-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: auto;
  border-radius: 0;
  max-width: none;
  margin: 0;
}
.section-temoignage::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(170,68,68,0) 0%, rgba(170,68,68,0.55) 45%, rgba(170,68,68,0.95) 78%, #aa4444 100%);
  z-index: 1;
}
.section-temoignage .quote-block {
  position: relative;
  z-index: 2;
  padding: 369px 0 60px;
  max-width: 900px;
}
.section-temoignage .quote-block .eyebrow {
  font-size: clamp(2.5rem, 3.5vw, 3.3rem);
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: italic;
  color: #f9e3cc;
  margin-bottom: 0.6em;
}
.section-temoignage::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 120px;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(249,227,204,0.6) 0%, rgba(249,227,204,0.2) 50%, rgba(249,227,204,0) 100%);
}

@media (max-width: 800px) {
  .section-temoignage .quote-block {
    padding: 290px 0 30px;
  }
  .section-temoignage::before {
    background: linear-gradient(180deg, rgba(170,68,68,0) 0%, rgba(170,68,68,0) 35%, rgba(170,68,68,0.5) 62%, rgba(170,68,68,0.92) 85%, #aa4444 100%);
  }
}

/* ---------- Vague après Nos Muses ---------- */
.wave-muses {
  background: var(--cream);
  margin-top: -59px;
  margin-bottom: -1px;
}
.wave-muses img {
  margin-bottom: -1px;
}

/* ---------- Bas de page de l'accueil : « Prendre RDV » sur la photo ---------- */
.section-cta-final {
  position: relative;
  padding: 252px 0 161px;
  background: transparent;
  overflow: hidden;
}
.section-cta-final::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(181, 73, 69, 0.05) 0%, rgba(181, 73, 69, 0.15) 60%, rgba(181, 73, 69, 0.85) 88%, rgba(181, 73, 69, 0.97) 100%);
}
.section-cta-final .wave-faq {
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  z-index: 1;
  pointer-events: none;
}
.section-cta-final .container {
  position: relative;
  z-index: 2;
}

@media (max-width: 700px) {
  .section-cta-final {
    padding: 90px 0 60px;
  }
}

/* ---------- Bas de page : photo commune « Prendre RDV » + pied de page ---------- */
.cta-footer-band {
  position: relative;
  z-index: 2;
  overflow: hidden;
  background: var(--cream);
}
.cta-footer-photo,
.cta-footer-band > picture > .photo-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  z-index: 0;
}
.cta-footer-band .section-cta-page,
.cta-footer-band .section-cta-final,
.cta-footer-band .site-footer {
  position: relative;
  z-index: 1;
  background: transparent;
}
.cta-footer-band .site-footer::before {
  background: linear-gradient( 180deg, rgba(181, 73, 69, 0.97) 0%, rgba(181, 73, 69, 1) 35%, rgba(181, 73, 69, 1) 100% );
}

@media (min-width: 701px) {
  .cta-footer-band .site-footer::before {
    background: linear-gradient(180deg, rgba(181, 73, 69, 0.72) 0px, rgba(181, 73, 69, 0.85) 24px, rgba(181, 73, 69, 0.97) 80px, rgba(181, 73, 69, 1) 185px, rgba(181, 73, 69, 1) 100%);
  }
}

@media (max-width: 800px) {
  .cta-footer-band > picture > .cta-footer-photo {
    height: auto;
    bottom: auto;
  }
  .cta-footer-band .site-footer::before {
    background: linear-gradient(180deg, rgba(181, 73, 69, 0.20) 0px, rgba(181, 73, 69, 0.20) 208px, rgba(181, 73, 69, 0.70) 283px, rgba(181, 73, 69, 1) 358px, rgba(181, 73, 69, 1) 100%);
  }
}

/* ---------- Vos jolis Mots : témoignages ---------- */
.quote-block {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
}
.quote-block .eyebrow {
  display: block;
}
.quote-block blockquote {
  font-size: 1.5rem;
  color: #f9e3cc;
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--font-body);
  font-style: italic;
}
.temoignage-auteur {
  display: block;
  margin-bottom: 0.35em;
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 500;
}
.temoignage-texte {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
  min-height: calc(1.5rem * 1.4 * 3);
}
.temoignage-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
}

@media (max-width: 700px) {
  .temoignage-row {
    gap: 12px;
  }
  .quote-block blockquote {
    font-size: 1.08rem;
  }
  .temoignage-texte {
    -webkit-line-clamp: 4;
    min-height: calc(1.08rem * 1.4 * 4);
  }
  #temoignage-quote {
    cursor: pointer;
  }
}
.temoignage-hint {
  display: none;
}

@media (max-width: 700px) {
  .temoignage-hint {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    margin-top: 10px;
  }
}
.temoignage-hint-arrow {
  background: none;
  border: none;
  padding: 6px 10px;
  font-size: 1.1rem;
  line-height: 1;
  color: #f9e3cc;
  opacity: 0.55;
  cursor: pointer;
}

/* ---------- Notre Charte : listes ---------- */
.charte-content ul {
  list-style: none;
  padding-left: 0;
  margin: 0 0 1em;
}

/* ---------- Galerie : mosaïque ---------- */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(40, 1fr);
  gap: 12px;
  grid-auto-rows: 380px;
  margin-top: 40px;
}
.gallery-grid[hidden] {
  display: none;
}
.gallery-grid .gallery-item {
  grid-column: span 40;
}
.gallery-grid .gallery-item:nth-child(8n + 1) {
  grid-column: span 8;
}
.gallery-grid .gallery-item:nth-child(8n + 2) {
  grid-column: span 19;
}
.gallery-grid .gallery-item:nth-child(8n + 3) {
  grid-column: span 13;
}
.gallery-grid .gallery-item:nth-child(8n + 4) {
  grid-column: span 19;
}
.gallery-grid .gallery-item:nth-child(8n + 5) {
  grid-column: span 21;
}
.gallery-grid .gallery-item:nth-child(8n + 6) {
  grid-column: span 8;
}
.gallery-grid .gallery-item:nth-child(8n + 7) {
  grid-column: span 19;
}
.gallery-grid .gallery-item:nth-child(8n) {
  grid-column: span 13;
}
.gallery-item {
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 6px;
}
.gallery-item .photo-placeholder,
.gallery-item .photo-img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 6px;
  object-fit: cover;
  max-width: none;
}

@media (max-width: 900px) {
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 260px;
    margin-top: 0;
  }
  .gallery-grid .gallery-item,
  .gallery-grid .gallery-item:nth-child(n) {
    grid-column: span 1;
  }
}

@media (max-width: 480px) {
  .gallery-grid {
    grid-auto-rows: 176px;
  }
}

@media (min-width: 901px) {
  .gallery-grid {
    margin-top: 0;
  }
}

/* ---------- Galerie : photos après « Chargez plus » ---------- */
.gallery-grid-more {
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 300px;
}
.gallery-grid-more .gallery-item,
.gallery-grid-more .gallery-item:nth-child(n) {
  grid-column: span 1;
}

/* ---------- Galerie : bouton « Chargez plus » ---------- */
.gallery-grid.gallery-grid-more {
  margin-top: 12px;
}
.load-more-wrap {
  margin-top: 36px;
}

/* 18/10/2026 : texte de presentation sous la galerie (discret) */
.galerie-texte {
  max-width: 720px;
  margin: 28px auto 0;
  text-align: center;
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: 0.95rem;
  line-height: 1.7;
  color: #6b5a5f;
}

.load-more {
  background: none;
  border: none;
  min-width: 0;
  min-height: 0;
  padding: 8px 4px;
  color: #9e4a47;
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 600;
  font-size: 1.25rem;
  cursor: pointer;
}
.load-more:hover {
  color: var(--terracotta-dark);
}

/* ---------- Galerie : photo agrandie ---------- */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(20, 10, 8, 0.92);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 200;
  padding: 24px;
}
.lightbox.open {
  display: flex;
}
.lightbox .photo-placeholder {
  max-width: 900px;
  width: 100%;
  --ph-ratio: 3/2;
}
.lightbox-photo img {
  display: block;
  max-width: 900px;
  width: 100%;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 8px;
}
.lightbox-close {
  position: absolute;
  top: 24px;
  right: 32px;
  background: none;
  border: none;
  color: #f9e3cc;
  font-size: 2rem;
  cursor: pointer;
  z-index: 1;
}
.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 33px;
  height: 39px;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  opacity: 0.9;
  z-index: 1;
}
.lightbox-nav:hover {
  opacity: 1;
}
.lightbox-nav img {
  width: 100%;
  height: 100%;
  display: block;
}
.lightbox-prev {
  left: 24px;
}
.lightbox-next {
  right: 24px;
  transform: translateY(-50%) scaleX(-1);
}

@media (max-width: 700px) {
  .lightbox-nav {
    width: 24px;
    height: 28px;
  }
  .lightbox-prev {
    left: 8px;
  }
  .lightbox-next {
    right: 8px;
  }
}

/* ---------- Pied de page ---------- */
.site-footer {
  position: relative;
  overflow: hidden;
  background: #3a1f1a;
  color: #f9e3cc;
  padding: 62px 0 26px;
  min-height: 267px;
}
.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient( 180deg, rgba(181, 73, 69, 0) 0%, rgba(181, 73, 69, 0.35) 30%, rgba(181, 73, 69, 0.68) 65%, rgba(181, 73, 69, 0.93) 100% );
}
.site-footer > .container {
  position: relative;
  z-index: 2;
}
.site-footer,
.site-footer a {
  text-shadow: 0 1px 8px rgba(20, 10, 8, 0.5);
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: center;
  gap: 64px;
  align-items: center;
  text-align: center;
}

@media (max-width: 700px) {
  .footer-grid {
    grid-template-columns: 1fr;
    text-align: center;
    align-items: center;
    gap: 32px;
  }
}
.footer-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
}
.footer-logo {
  height: 142px;
  width: auto;
  display: block;
  margin: 0 auto;
}
.footer-legal {
  font-size: 0.9rem;
  margin: 0;
}
.footer-credit {
  font-size: 0.82rem;
  color: rgba(249,227,204,0.75);
  margin: 14px auto 0;
  text-align: center;
}
.footer-credit a {
  color: inherit;
}
.footer-credit a:hover {
  color: #f9e3cc;
}
.footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-col li {
  margin-bottom: 10px;
}
.footer-col a:hover {
  color: var(--terracotta);
}
.footer-contact li {
  display: flex;
  gap: 10px;
  align-items: center;
}
.footer-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex-shrink: 0;
}
.footer-nav li {
  display: flex;
  gap: 8px;
  align-items: baseline;
}
.footer-nav li::before {
  content: "›";
  color: rgba(249,227,204,0.6);
}
.site-footer .footer-legal {
  font-size: 9px;
  line-height: 1.4;
}
.site-footer .footer-legal a {
  color: inherit;
}

@media (max-width: 800px) {
  .site-footer .footer-legal {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    text-align: center;
  }
  .site-footer .footer-brand {
    margin-bottom: 0;
  }
  .site-footer > .container {
    padding-bottom: 27px;
  }
}

@media (max-width: 900px) {
  .site-footer .footer-legal {
    font-size: 8px;
  }
}

@media (min-width: 801px) {
  .site-footer > .container {
    padding-bottom: 29px;
  }
  .site-footer .footer-legal {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    text-align: center;
  }
  .site-footer .footer-brand {
    margin-bottom: 0;
  }
}

/* ---------- Comment réserver ? : motif de fond ---------- */
.section-reserver {
  position: relative;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 56px;
}
.motif-reserver {
  position: absolute;
  top: 0;
  left: 53.51%;
  width: 60.91%;
  height: auto;
  pointer-events: none;
  z-index: 0;
}
.section-reserver > .container {
  position: relative;
  z-index: 1;
}
@media (max-width: 800px) {
  .motif-reserver {
    top: -30vw;
    left: 2.6vw;
    width: 161vw;
    max-width: none;
  }
}

/* ---------- Vos jolis Mots : flèches ---------- */
.temoignage-arrow {
  position: static;
  flex: 0 0 auto;
  width: 33px;
  height: 39px;
  z-index: 3;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  opacity: 0.95;
}
.temoignage-arrow img {
  width: 100%;
  height: 100%;
  display: block;
}
.temoignage-arrow.next {
  transform: scaleX(-1);
}

@media (max-width: 700px) {
  .temoignage-arrow {
    display: none;
  }
}

/* ---------- Pages intérieures : motifs de fond ---------- */
.page-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.page-bg img {
  position: absolute;
  height: auto;
  max-width: none;
}
.page-bg .motif-a {
  left: -13.32%;
  top: 722px;
  width: 53.15%;
}
.page-bg .motif-b {
  left: 56.44%;
  top: 1310px;
  width: 67.71%;
}

/* ---------- Pages intérieures : photo du haut et vague ---------- */
.hero-page {
  height: 812px;
}
.hero-charte {
  height: 765px;
}
.hero-galerie {
  height: 765px;
}
/* Bas de la photo découpé en forme de vague (points repris de assets/graphics/wave-charte.svg) */

@media (max-width: 900px) {
  .hero-charte,
  .hero-galerie {
    clip-path: polygon(0% 0px,100% 0px,99.93% calc(100% - 38.0px),99.44% calc(100% - 37.0px),98.81% calc(100% - 36.0px),98.18% calc(100% - 35.0px),97.55% calc(100% - 34.0px),96.92% calc(100% - 33.5px),96.29% calc(100% - 32.5px),95.66% calc(100% - 31.5px),95.03% calc(100% - 31.0px),94.41% calc(100% - 30.0px),93.78% calc(100% - 29.5px),93.15% calc(100% - 28.5px),92.52% calc(100% - 28.0px),91.89% calc(100% - 27.5px),91.26% calc(100% - 27.0px),90.63% calc(100% - 26.5px),90.00% calc(100% - 26.0px),89.37% calc(100% - 25.5px),88.74% calc(100% - 25.0px),88.11% calc(100% - 24.5px),87.48% calc(100% - 24.0px),86.85% calc(100% - 23.5px),86.22% calc(100% - 23.5px),85.59% calc(100% - 23.0px),84.97% calc(100% - 23.0px),84.34% calc(100% - 22.5px),83.71% calc(100% - 22.5px),83.08% calc(100% - 22.0px),82.45% calc(100% - 22.0px),81.82% calc(100% - 22.0px),81.19% calc(100% - 22.0px),80.56% calc(100% - 21.5px),79.93% calc(100% - 21.5px),79.30% calc(100% - 21.5px),78.67% calc(100% - 21.5px),78.04% calc(100% - 21.5px),77.41% calc(100% - 21.5px),76.78% calc(100% - 22.0px),76.15% calc(100% - 22.0px),75.52% calc(100% - 22.0px),74.90% calc(100% - 22.0px),74.27% calc(100% - 22.5px),73.64% calc(100% - 22.5px),73.01% calc(100% - 22.5px),72.38% calc(100% - 23.0px),71.75% calc(100% - 23.0px),71.12% calc(100% - 23.5px),70.49% calc(100% - 23.5px),69.86% calc(100% - 24.0px),69.23% calc(100% - 24.5px),68.60% calc(100% - 24.5px),67.97% calc(100% - 25.0px),67.34% calc(100% - 25.5px),66.71% calc(100% - 26.0px),66.08% calc(100% - 26.0px),65.45% calc(100% - 26.5px),64.83% calc(100% - 27.0px),64.20% calc(100% - 27.5px),63.57% calc(100% - 28.0px),62.94% calc(100% - 28.5px),62.31% calc(100% - 29.0px),61.68% calc(100% - 30.0px),61.05% calc(100% - 30.5px),60.42% calc(100% - 31.0px),59.79% calc(100% - 31.5px),59.16% calc(100% - 32.5px),58.53% calc(100% - 33.0px),57.90% calc(100% - 33.5px),57.27% calc(100% - 34.5px),56.64% calc(100% - 35.0px),56.01% calc(100% - 35.5px),55.38% calc(100% - 36.5px),54.76% calc(100% - 37.0px),54.13% calc(100% - 38.0px),53.50% calc(100% - 39.0px),52.87% calc(100% - 39.5px),52.24% calc(100% - 40.5px),51.61% calc(100% - 41.5px),50.98% calc(100% - 42.0px),50.35% calc(100% - 43.0px),49.72% calc(100% - 44.0px),49.09% calc(100% - 45.0px),48.46% calc(100% - 46.0px),47.83% calc(100% - 47.0px),47.20% calc(100% - 47.5px),46.57% calc(100% - 48.5px),45.94% calc(100% - 49.5px),45.31% calc(100% - 50.5px),44.69% calc(100% - 52.0px),44.06% calc(100% - 53.0px),43.43% calc(100% - 54.0px),42.80% calc(100% - 55.0px),42.17% calc(100% - 56.0px),41.54% calc(100% - 57.0px),40.91% calc(100% - 58.0px),40.28% calc(100% - 59.5px),39.65% calc(100% - 60.5px),39.02% calc(100% - 61.5px),38.39% calc(100% - 63.0px),37.76% calc(100% - 64.0px),37.13% calc(100% - 65.5px),36.50% calc(100% - 66.5px),35.87% calc(100% - 68.0px),35.24% calc(100% - 69.0px),34.62% calc(100% - 70.5px),33.99% calc(100% - 71.5px),33.36% calc(100% - 73.0px),32.73% calc(100% - 74.0px),32.10% calc(100% - 75.0px),31.47% calc(100% - 76.0px),30.84% calc(100% - 77.0px),30.21% calc(100% - 78.0px),29.58% calc(100% - 79.0px),28.95% calc(100% - 80.0px),28.32% calc(100% - 80.5px),27.69% calc(100% - 81.5px),27.06% calc(100% - 82.0px),26.43% calc(100% - 83.0px),25.80% calc(100% - 83.5px),25.17% calc(100% - 84.0px),24.55% calc(100% - 84.5px),23.92% calc(100% - 85.0px),23.29% calc(100% - 85.5px),22.66% calc(100% - 86.0px),22.03% calc(100% - 86.5px),21.40% calc(100% - 86.5px),20.77% calc(100% - 87.0px),20.14% calc(100% - 87.0px),19.51% calc(100% - 87.5px),18.88% calc(100% - 87.5px),18.25% calc(100% - 87.5px),17.62% calc(100% - 88.0px),16.99% calc(100% - 88.0px),16.36% calc(100% - 88.0px),15.73% calc(100% - 87.5px),15.10% calc(100% - 87.5px),14.48% calc(100% - 87.5px),13.85% calc(100% - 87.5px),13.22% calc(100% - 87.0px),12.59% calc(100% - 87.0px),11.96% calc(100% - 86.5px),11.33% calc(100% - 86.0px),10.70% calc(100% - 85.5px),10.07% calc(100% - 85.0px),9.44% calc(100% - 84.5px),8.81% calc(100% - 84.0px),8.18% calc(100% - 83.5px),7.55% calc(100% - 83.0px),6.92% calc(100% - 82.0px),6.29% calc(100% - 81.0px),5.66% calc(100% - 80.5px),5.03% calc(100% - 79.5px),4.41% calc(100% - 78.5px),3.78% calc(100% - 77.5px),3.15% calc(100% - 76.5px),2.52% calc(100% - 75.0px),1.89% calc(100% - 74.0px),1.26% calc(100% - 72.5px),0.63% calc(100% - 71.0px),0.00% calc(100% - 70.5px));
  }
  .wave-charte img,
  .wave-galerie img {
    height: 25px;
  }
  .wave-charte + .section-cream {
    padding-top: 10px;
  }
  .wave-galerie + .section-cream {
    padding-top: 10px;
  }
}

@media (min-width: 901px) {
  .hero-charte,
  .hero-galerie {
    clip-path: polygon(0% 0px,100% 0px,99.93% calc(100% - 44.3px),99.44% calc(100% - 43.2px),98.81% calc(100% - 42.0px),98.18% calc(100% - 40.8px),97.55% calc(100% - 39.7px),96.92% calc(100% - 39.1px),96.29% calc(100% - 37.9px),95.66% calc(100% - 36.7px),95.03% calc(100% - 36.2px),94.41% calc(100% - 35.0px),93.78% calc(100% - 34.4px),93.15% calc(100% - 33.3px),92.52% calc(100% - 32.7px),91.89% calc(100% - 32.1px),91.26% calc(100% - 31.5px),90.63% calc(100% - 30.9px),90.00% calc(100% - 30.3px),89.37% calc(100% - 29.8px),88.74% calc(100% - 29.2px),88.11% calc(100% - 28.6px),87.48% calc(100% - 28.0px),86.85% calc(100% - 27.4px),86.22% calc(100% - 27.4px),85.59% calc(100% - 26.8px),84.97% calc(100% - 26.8px),84.34% calc(100% - 26.2px),83.71% calc(100% - 26.2px),83.08% calc(100% - 25.7px),82.45% calc(100% - 25.7px),81.82% calc(100% - 25.7px),81.19% calc(100% - 25.7px),80.56% calc(100% - 25.1px),79.93% calc(100% - 25.1px),79.30% calc(100% - 25.1px),78.67% calc(100% - 25.1px),78.04% calc(100% - 25.1px),77.41% calc(100% - 25.1px),76.78% calc(100% - 25.7px),76.15% calc(100% - 25.7px),75.52% calc(100% - 25.7px),74.90% calc(100% - 25.7px),74.27% calc(100% - 26.2px),73.64% calc(100% - 26.2px),73.01% calc(100% - 26.2px),72.38% calc(100% - 26.8px),71.75% calc(100% - 26.8px),71.12% calc(100% - 27.4px),70.49% calc(100% - 27.4px),69.86% calc(100% - 28.0px),69.23% calc(100% - 28.6px),68.60% calc(100% - 28.6px),67.97% calc(100% - 29.2px),67.34% calc(100% - 29.8px),66.71% calc(100% - 30.3px),66.08% calc(100% - 30.3px),65.45% calc(100% - 30.9px),64.83% calc(100% - 31.5px),64.20% calc(100% - 32.1px),63.57% calc(100% - 32.7px),62.94% calc(100% - 33.3px),62.31% calc(100% - 33.8px),61.68% calc(100% - 35.0px),61.05% calc(100% - 35.6px),60.42% calc(100% - 36.2px),59.79% calc(100% - 36.7px),59.16% calc(100% - 37.9px),58.53% calc(100% - 38.5px),57.90% calc(100% - 39.1px),57.27% calc(100% - 40.2px),56.64% calc(100% - 40.8px),56.01% calc(100% - 41.4px),55.38% calc(100% - 42.6px),54.76% calc(100% - 43.2px),54.13% calc(100% - 44.3px),53.50% calc(100% - 45.5px),52.87% calc(100% - 46.1px),52.24% calc(100% - 47.2px),51.61% calc(100% - 48.4px),50.98% calc(100% - 49.0px),50.35% calc(100% - 50.2px),49.72% calc(100% - 51.3px),49.09% calc(100% - 52.5px),48.46% calc(100% - 53.7px),47.83% calc(100% - 54.8px),47.20% calc(100% - 55.4px),46.57% calc(100% - 56.6px),45.94% calc(100% - 57.8px),45.31% calc(100% - 58.9px),44.69% calc(100% - 60.7px),44.06% calc(100% - 61.8px),43.43% calc(100% - 63.0px),42.80% calc(100% - 64.2px),42.17% calc(100% - 65.3px),41.54% calc(100% - 66.5px),40.91% calc(100% - 67.7px),40.28% calc(100% - 69.4px),39.65% calc(100% - 70.6px),39.02% calc(100% - 71.8px),38.39% calc(100% - 73.5px),37.76% calc(100% - 74.7px),37.13% calc(100% - 76.4px),36.50% calc(100% - 77.6px),35.87% calc(100% - 79.3px),35.24% calc(100% - 80.5px),34.62% calc(100% - 82.2px),33.99% calc(100% - 83.4px),33.36% calc(100% - 85.2px),32.73% calc(100% - 86.3px),32.10% calc(100% - 87.5px),31.47% calc(100% - 88.7px),30.84% calc(100% - 89.8px),30.21% calc(100% - 91.0px),29.58% calc(100% - 92.2px),28.95% calc(100% - 93.3px),28.32% calc(100% - 93.9px),27.69% calc(100% - 95.1px),27.06% calc(100% - 95.7px),26.43% calc(100% - 96.8px),25.80% calc(100% - 97.4px),25.17% calc(100% - 98.0px),24.55% calc(100% - 98.6px),23.92% calc(100% - 99.2px),23.29% calc(100% - 99.8px),22.66% calc(100% - 100.3px),22.03% calc(100% - 100.9px),21.40% calc(100% - 100.9px),20.77% calc(100% - 101.5px),20.14% calc(100% - 101.5px),19.51% calc(100% - 102.1px),18.88% calc(100% - 102.1px),18.25% calc(100% - 102.1px),17.62% calc(100% - 102.7px),16.99% calc(100% - 102.7px),16.36% calc(100% - 102.7px),15.73% calc(100% - 102.1px),15.10% calc(100% - 102.1px),14.48% calc(100% - 102.1px),13.85% calc(100% - 102.1px),13.22% calc(100% - 101.5px),12.59% calc(100% - 101.5px),11.96% calc(100% - 100.9px),11.33% calc(100% - 100.3px),10.70% calc(100% - 99.8px),10.07% calc(100% - 99.2px),9.44% calc(100% - 98.6px),8.81% calc(100% - 98.0px),8.18% calc(100% - 97.4px),7.55% calc(100% - 96.8px),6.92% calc(100% - 95.7px),6.29% calc(100% - 94.5px),5.66% calc(100% - 93.9px),5.03% calc(100% - 92.8px),4.41% calc(100% - 91.6px),3.78% calc(100% - 90.4px),3.15% calc(100% - 89.2px),2.52% calc(100% - 87.5px),1.89% calc(100% - 86.3px),1.26% calc(100% - 84.6px),0.63% calc(100% - 82.8px),0.00% calc(100% - 82.2px));
  }
  .wave-charte img,
  .wave-galerie img {
    height: 40px;
  }
  .wave-charte + .section-cream {
    padding-top: 10px;
  }
  .wave-galerie + .section-cream {
    padding-top: 10px;
  }
  .wave-galerie + .section-cream .fond-element {
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: none;
    z-index: 0;
  }
  .wave-galerie + .section-cream .fond-element-1 {
    background-image: url("../assets/graphics/element-graphique-1.png?v=2");
    left: 56.44%;
    top: 344px;
    width: 925px;
    height: 936px;
  }
}
.hero-charte .hero-bg-photo {
  object-position: 50% 20%;
  transform: scale(1);
}
.hero-page h1,
.hero-page h2 {
  text-shadow: 0 4px 24px rgba(30,14,10,0.5);
  font-size: clamp(2.6rem, 7vw, 62px);
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: normal;
  color: #f9e3cc;
}
.hero-page:has(.photo-placeholder) h1,
.hero-page:has(.photo-placeholder) h2 {
  text-shadow: none;
}
.hero-charte::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.5;
  background: linear-gradient(180deg, rgba(238,207,187,0) 0%, rgba(238,207,187,0) 15%, rgba(238,207,187,0.06) 25%, rgba(238,207,187,0.16) 35%, rgba(238,207,187,0.29) 45%, rgba(238,207,187,0.43) 55%, rgba(238,207,187,0.57) 65%, rgba(238,207,187,0.71) 75%, rgba(238,207,187,0.84) 85%, rgba(238,207,187,0.94) 95%, rgba(238,207,187,1) 100%);
}
.wave-charte {
  margin-top: -1px;
  background: #f9e3cc;
}
.wave-charte img {
  margin-top: -1px;
}
.hero-galerie::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.5;
  background: linear-gradient(180deg, rgba(238,207,187,0) 0%, rgba(238,207,187,0) 15%, rgba(238,207,187,0.06) 25%, rgba(238,207,187,0.16) 35%, rgba(238,207,187,0.29) 45%, rgba(238,207,187,0.43) 55%, rgba(238,207,187,0.57) 65%, rgba(238,207,187,0.71) 75%, rgba(238,207,187,0.84) 85%, rgba(238,207,187,0.94) 95%, rgba(238,207,187,1) 100%);
}
.wave-galerie {
  margin-top: -1px;
  background: #f9e3cc;
}
.wave-galerie img {
  margin-top: -1px;
}
.wave-galerie + .section-cream > .container {
  position: relative;
  z-index: 1;
}
.wave-charte + .section-cream {
  position: relative;
  background: #f9e3cc;
  overflow-x: hidden;
}
.wave-galerie + .section-cream {
  position: relative;
  background: #f9e3cc;
  overflow-x: hidden;
}

@media (max-width: 700px) {
  .wave-galerie + .section-cream {
    background: #f9e3cc url("../assets/graphics/fond-charte.png") repeat-y top center;
    background-size: 100% auto;
  }
  .hero-page {
    height: 460px;
  }
}

/* ---------- Pages intérieures : bas de page « Prendre RDV » ---------- */
.section-cta-page {
  position: relative;
  padding: 252px 0 161px;
  background: transparent;
  overflow: hidden;
  text-align: center;
}
.section-cta-page::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(181, 73, 69, 0.05) 0%, rgba(181, 73, 69, 0.15) 60%, rgba(181, 73, 69, 0.85) 88%, rgba(181, 73, 69, 0.97) 100%);
}
.section-cta-page .wave-faq {
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  z-index: 1;
  pointer-events: none;
}
.section-cta-page .container {
  position: relative;
  z-index: 2;
}

@media (max-width: 700px) {
  .section-cta-page {
    padding: 130px 0 90px;
  }
  .cta-charte .section-cta-page {
    padding: 90px 0 60px;
  }
}

@media (max-width: 800px) {
  .cta-charte .section-cta-page .btn {
    visibility: hidden;
  }
}

/* ---------- Notre Charte : texte ---------- */
.charte-content {
  position: relative;
  z-index: 1;
  font-size: 1.12rem;
  max-width: 1100px;
  margin-inline: auto;
}
.charte-content h2 {
  margin-bottom: 1.2em;
}
.charte-content .charte-titre {
  font-style: italic;
}
.section-mentions {
  padding-top: 120px;
}
.section-mentions .charte-content h2 {
  color: var(--rouge-dark);
}
.charte-content .mentions-avertissement {
  margin-top: 2em;
  font-style: italic;
}
.charte-content h3 {
  color: #9e4a47;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.32rem;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}
.charte-content p,
.charte-content li {
  color: #9e4a47;
  font-size: 21px;
}
.charte-content li::before {
  content: "• ";
}
.charte-content li {
  margin-bottom: 0.8em;
}

/* ---------- Notre Charte : motif « M » décoratif ---------- */
/* Le M est calé sur le bas de la section (il passe derrière le bas de page) :
   .motif-charte-wrap = dans la section, .motif-charte-bas = sa suite dans la vague crème du bas. */
.motif-charte-bas {
  display: none;
}
.motif-charte-wrap {
  display: block;
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.motif-charte {
  position: absolute;
  height: auto;
  max-width: none;
}
/* téléphone (mise en page mobile de la Charte jusqu'à 900px) */
@media (max-width: 900px) {
  .motif-charte {
    width: 185.9vw;
    left: -7.85vw;
    bottom: -73.6vw;
  }
}
/* ordinateur : taille fixe à partir de 1366px, proportionnelle en dessous */
@media (min-width: 901px) {
  .motif-charte {
    width: min(997px, 72.99%);
    left: calc(50% + min(69px, 5.05%));
    bottom: max(-265px, -19.4vw);
  }
}

@supports (overflow-x: clip) {
  .wave-charte + .section-cream {
    overflow-x: clip;
  }
  .motif-charte-bas {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 3;
  }
  /* vague crème du bas : 1366 x 181 sur ordinateur, 390 x 52 sur téléphone */
  @media (min-width: 801px) {
    .motif-charte-bas {
      bottom: calc(-181 / 1366 * 100vw);
      clip-path: inset(calc(100% - 181 / 1366 * 100vw) 0 0 0);
      -webkit-mask: url("../assets/graphics/wave-faq.png?v=1") bottom center / 100% auto no-repeat;
      mask: url("../assets/graphics/wave-faq.png?v=1") bottom center / 100% auto no-repeat;
    }
  }
  @media (max-width: 800px) {
    .motif-charte-bas {
      bottom: calc(-52 / 390 * 100vw);
      clip-path: inset(calc(100% - 52 / 390 * 100vw) 0 0 0);
      -webkit-mask: url("../assets/graphics/wave-faq-mobile.png?v=1") bottom center / 100% auto no-repeat;
      mask: url("../assets/graphics/wave-faq-mobile.png?v=1") bottom center / 100% auto no-repeat;
    }
    .motif-charte-bas .motif-charte {
      bottom: calc(-73.6vw + 52 / 390 * 100vw);
    }
  }
  @media (min-width: 801px) and (max-width: 900px) {
    .motif-charte-bas .motif-charte {
      bottom: calc(-73.6vw + 181 / 1366 * 100vw);
    }
  }
  @media (min-width: 901px) {
    .motif-charte-bas .motif-charte {
      bottom: calc(181 / 1366 * 100vw + max(-265px, -19.4vw));
    }
  }
}

/* ---------- Bas de page : dégradé sur la photo (accueil et pages intérieures) ---------- */

@media (max-width: 700px) {
  .section-cta-final::before,
  .section-cta-page::before {
    background: linear-gradient(180deg, rgba(181, 73, 69, 0.05) 0%, rgba(181, 73, 69, 0.10) 70%, rgba(181, 73, 69, 0.20) 100%);
  }
}

@media (min-width: 701px) {
  .section-cta-final::before,
  .section-cta-page::before {
    background: linear-gradient(180deg, rgba(181, 73, 69, 0.05) 0px, rgba(181, 73, 69, 0.05) 80px, rgba(181, 73, 69, 0.15) 360px, rgba(181, 73, 69, 0.72) 100%);
  }
}

/* ---------- Fenêtre « Prendre RDV » (SMS ou WhatsApp, ouverte par js/main.js) ---------- */

.rdv-choix {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(58, 31, 26, 0.6);
}
.rdv-choix[hidden] {
  display: none;
}
.rdv-boite {
  position: relative;
  width: 100%;
  max-width: 440px;
  background: var(--cream-light);
  color: var(--brun-text);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  padding: 40px 28px 28px;
  text-align: center;
}
.rdv-titre {
  font-family: var(--font-display);
  font-size: 1.6rem;
  line-height: 1.2;
  color: var(--rouge-dark);
  margin: 0 0 12px;
}
.rdv-texte {
  font-family: var(--font-body);
  margin: 0 0 24px;
  line-height: 1.5;
}
.rdv-boutons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.rdv-boutons .btn {
  width: 100%;
  max-width: 300px;
}
.rdv-fermer {
  position: absolute;
  top: 10px;
  right: 14px;
  border: 0;
  background: none;
  font-size: 2rem;
  line-height: 1;
  color: var(--brun-text);
  cursor: pointer;
  padding: 4px 8px;
}
body.rdv-ouvert {
  overflow: hidden;
}

/* 18/10/2026 : les images portent maintenant width/height (ajoutes par rendu.php) ;
   :where() = priorite nulle, donc toute regle existante qui fixe une hauteur l'emporte.
   Sans regle de hauteur, l'image garde ses proportions comme avant. */
:where(img[width][height]) {
  height: auto;
}

/* 18/10/2026 : page 404 (404.html), titre dans le style des titres de section */
.page-404 h1 {
  font-family: "Lora", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(2.3rem, 5vw, 63px);
  color: var(--rouge-dark);
  margin-bottom: 0.6em;
}
.page-404 .liste-404 li::before {
  content: "";
}
