/* Moorea Cook's Bay Hotel & Suites — feuille unique de la maquette.
   Source : _src/site.css (copiée dans css/site.css par _src/build.py, qui y insère l'emblème url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 677 1012'%3E%3Cpath d='M338.185 0C151.715 0 0 151.707 0 338.177V673.045C0 859.515 151.715 1011.23 338.185 1011.23C524.655 1011.23 676.362 859.515 676.362 673.045V338.177C676.362 151.707 524.655 0 338.185 0ZM659.461 338.177V497.169H627.319V340.357C627.319 183.762 502.161 55.936 346.639 51.432V17.117C519.887 21.629 659.461 163.864 659.461 338.177ZM338.185 943.106C188.073 943.106 65.944 820.977 65.944 670.873V340.357C65.944 190.245 188.073 68.124 338.185 68.124C488.297 68.124 610.418 190.245 610.418 340.357V670.873C610.418 820.977 488.297 943.106 338.185 943.106ZM329.731 17.117V51.432C174.209 55.936 49.043 183.762 49.043 340.357V497.169H16.901V338.177C16.901 163.864 156.475 21.629 329.731 17.117ZM16.901 673.045V514.07H49.043V670.873C49.043 827.469 174.209 955.295 329.731 959.79V994.113C156.475 989.601 16.901 847.358 16.901 673.045ZM346.639 994.113V959.79C502.161 955.295 627.319 827.469 627.319 670.873V514.07H659.461V673.045C659.461 847.358 519.887 989.601 346.639 994.113Z'/%3E%3Cpath d='M417.872 466.276C455.849 439.983 543.014 464.329 543.014 464.329V395.187C543.014 395.187 464.248 370.256 408.12 423.427C357.49 471.389 339.33 570.638 339.025 588.34C339.025 589.566 338.77 590.672 338.184 590.672C337.599 590.672 337.344 589.366 337.344 588.34C337.031 570.638 318.871 471.389 268.242 423.427C212.121 370.256 133.354 395.187 133.354 395.187V464.329C133.354 464.329 220.512 439.983 258.488 466.276C280.27 481.35 308.277 521.434 317.565 558.313C258.488 466.276 162.725 510.504 162.725 510.504V579.646C162.725 579.646 242.733 515.608 297.138 565.606C334.987 600.401 329.529 666.209 329.529 713.145C329.529 745.104 315.225 764.425 264.979 708.578C233.197 673.253 166.531 650.775 164.632 726.993C164.464 733.508 165.962 743.093 167.469 750.93C168.983 758.799 175.867 764.441 183.882 764.425C212.057 764.345 279.436 764.152 338.184 764.016C396.932 764.152 464.303 764.345 492.487 764.425C500.493 764.441 507.386 758.799 508.9 750.93C510.407 743.093 511.897 733.508 511.737 726.993C509.83 650.775 443.164 673.253 411.382 708.578C361.136 764.425 346.029 745.104 346.029 713.145C346.029 666.209 341.382 600.401 379.23 565.606C433.635 515.608 513.643 579.646 513.643 579.646V510.504C513.643 510.504 417.872 466.276 358.803 558.313C368.091 521.434 396.099 481.35 417.872 466.276Z'/%3E%3Cpath d='M403.452 294.665C403.452 330.711 374.226 359.936 338.181 359.936C302.135 359.936 272.909 330.711 272.909 294.665C272.909 258.62 302.135 229.394 338.181 229.394C374.226 229.394 403.452 258.62 403.452 294.665Z'/%3E%3C/svg%3E")).
   Ordre : polices · variables · base · typographie · boutons · mise en page · composants · en-tête · pied. */

/* ============================================================== Polices (hébergées, jeu latin) */
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../../mcd-builder/assets/f213fb70aaa11f26f4055e0b0eb8dfb864f4404c.woff2) format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 400 700; font-display: swap; src: url(../../mcd-builder/assets/a5efba88b8945c53b5e26fb04e1701656f19644f.woff2) format("woff2"); }
@font-face { font-family: Inter; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../../mcd-builder/assets/d776e729f9a9630ae7b953a609c89fc7b6968822.woff2) format("woff2"); }
/* Polices de secours aux mêmes dimensions (aucun décalage au chargement) : largeur mesurée dans Chrome,
   ascent / descent = métriques hhea des polices divisées par size-adjust. */
@font-face { font-family: "Playfair Display Fallback"; src: local("Georgia"); size-adjust: 99.48%; ascent-override: 108.77%; descent-override: 25.23%; line-gap-override: 0%; }
@font-face { font-family: "Inter Fallback"; src: local("Arial"); size-adjust: 105.84%; ascent-override: 91.53%; descent-override: 22.79%; line-gap-override: 0%; }

/* ============================================================== Variables (charte) */
:root {
  --color-primary: #183233;     /* vert lagon foncé : fonds, menu */
  --color-secondary: #97D1CF;   /* turquoise : soulignés, icônes */
  --color-accent: #D38A17;      /* orange : boutons */
  --color-sable: #E1E8DE;       /* fond clair (réservation) */
  --color-texte: #000;
  --color-blanc: #fff;
  --font-titre: "Playfair Display", "Playfair Display Fallback", Georgia, serif;
  --font-texte: Inter, "Inter Fallback", Arial, sans-serif;

  --marge: 200px;          /* marge gauche / droite des sections */
  --espace-bloc: 144px;    /* entre deux blocs */
  --espace: 48px;          /* entre le titre d'un bloc et son contenu */
  --gouttiere: 96px;       /* entre deux colonnes */
  --texte: 16px;
  --titre-xl: 48px;
  --titre: 32px;
  --titre-m: 24px;
}
@media (max-width: 1024px) {
  :root { --marge: 24px; --espace-bloc: 108px; --espace: 32px; --gouttiere: 60px; --titre-xl: 40px; --titre: 28px; --titre-m: 22px; }
}
@media (max-width: 767px) {
  :root { --marge: 16px; --espace-bloc: 72px; --espace: 24px; --gouttiere: 24px; --texte: 14px; --titre-xl: 32px; --titre: 24px; --titre-m: 20px; }
}

/* ============================================================== Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 400 var(--texte)/1.5 var(--font-texte); color: var(--color-texte); background: #fff;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }   /* rendu des polices du site actuel */
img { display: block; max-width: 100%; height: auto; }
video, iframe { display: block; max-width: 100%; }
h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding-left: 1.6em; }
a { color: inherit; }
strong { font-weight: 700; }
table { border-collapse: collapse; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.centre { text-align: center; }
/* Éléments masqués sur certains écrans (comme sur le site d'origine) */
@media (min-width: 768px) and (max-width: 1024px) { .masque-tablette { display: none !important; } }
@media (max-width: 767px) { .masque-mobile { display: none !important; } }
@media (min-width: 768px) { .seul-mobile { display: none !important; } }

/* Texte courant : espacements des paragraphes et listes (comme l'éditeur de texte d'origine) */
.duo__texte > * + *, .mosaique__texte > * + *, .carte__texte > * + *, .entete__texte > * + *, .texte > * + *,
.info > * + *, .faq__item > * + *, .bloc__tete > * + * { margin-top: 12px; }
:is(p, ul, ol) + :is(p, ul, ol) { margin-top: 14.4px !important; }

/* ============================================================== Typographie */
.titre-xl, .titre, .titre-m, .sous-titre, .etiquette { font-family: var(--font-titre); line-height: 1; margin: 0; }
.titre-xl { font-size: var(--titre-xl); font-weight: 700; letter-spacing: 2px; }
.titre { font-size: var(--titre); font-weight: 400; text-transform: uppercase; letter-spacing: 2px; }
.titre-m { font-size: var(--titre-m); font-weight: 400; text-transform: uppercase; letter-spacing: 2px; }
.sous-titre { font-size: var(--titre-m); font-weight: 700; font-style: italic; letter-spacing: .5px; }
.etiquette { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; line-height: 1.2; }

/* ============================================================== Boutons */
.btn {
  display: inline-block; padding: 12px; border: 0; background: var(--color-accent); color: #fff; cursor: pointer;
  font: 700 14px/1 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; text-decoration: none; text-align: center;
  transition: opacity .3s, color .3s;
}
.btn:hover { opacity: .9; }
.btn--lien { padding: 0; background: none; color: inherit; border-bottom: 2px solid var(--color-secondary); }
.btn--lien:hover { opacity: 1; color: var(--color-accent); }
.btn--plein-largeur { display: block; width: 100%; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px 48px; }

/* ============================================================== Mise en page */
main > * { margin-top: var(--espace-bloc); padding-inline: var(--marge); }
main > .hero { margin-top: 0; }
main > .bandeau { margin-top: 0; padding-inline: 0; }
main > .bandeau + *, main > .intro + *, main > .bloc--tete-seule + * { margin-top: var(--espace); }
main > :last-child { margin-bottom: var(--espace-bloc); }

/* Bloc : titre (ou en-tête) + contenu */
.bloc { display: flex; flex-direction: column; gap: var(--espace); }
.bloc > .bloc__titre { max-width: 680px; }
.bloc > .bloc__titre.centre { align-self: center; }
.bloc__tete { display: flex; flex-direction: column; gap: 20px; }
.bloc__tete > * + * { margin-top: 0; }
.bloc__tete.centre { align-items: center; max-width: 624px; align-self: center; }
.bloc__tete.centre > h2 { max-width: 520px; }

/* En-tête de bloc en deux colonnes : titre + lien | texte */
.entete { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--gouttiere); row-gap: 26px; align-items: start; }
.entete > .titre { grid-column: 1; }
.entete > .btn { grid-column: 1; justify-self: start; }
.entete__texte { grid-column: 2; grid-row: 1 / span 2; }
@media (max-width: 767px) {
  .entete { grid-template-columns: 1fr; row-gap: 12px; }
  .entete__texte { grid-column: 1; grid-row: auto; margin-top: 12px; }
}

/* ============================================================== Hero */
.hero {
  position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; align-items: center;
  min-height: 70vh; padding: 24px; background: var(--color-primary); color: #fff; text-align: center; overflow: hidden;
}
.hero--accueil { min-height: 98vh; }
.hero--plein { min-height: 100vh; }
.hero__media { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.hero__contenu { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 80%; }
.hero__avis { min-height: 35px; }
.hero--etroit .hero__contenu { width: 40%; }
.hero--moyen .hero__contenu { width: 50%; }
.hero__titre { margin: 0; }
.hero__texte { max-width: 100%; }
@media (max-width: 1024px) {
  .hero--accueil, .hero--plein { min-height: 70vh; }
  .hero__contenu, .hero--etroit .hero__contenu { width: 100%; }
  .hero--moyen .hero__contenu { width: 100%; }
  .hero--etroit .hero__contenu { width: 80%; }
}
@media (max-width: 767px) {
  .hero { padding: 16px; }
  .hero--accueil { min-height: 79vh; }
}

@media (max-width: 1024px) {
  /* accueil sur tablette et mobile : l'image en haut, le texte d'accroche dessous, en italique */
  .hero--accueil { display: grid; grid-template-rows: var(--hero-accueil) auto; min-height: 0; padding: 0; background: none; color: var(--color-texte); overflow: visible; }
  .hero--accueil .hero__media { height: var(--hero-accueil); bottom: auto; }
  .hero--accueil .hero__contenu { display: contents; }
  .hero--accueil .hero__titre, .hero--accueil .hero__avis { grid-row: 1; grid-column: 1; align-self: end; justify-self: stretch; padding: 0 16px 16px; color: #fff; }
  .hero--accueil .hero__titre { margin-bottom: 40px; }
  .hero--accueil .hero__avis { justify-self: center; }
  .hero--accueil .hero__texte { grid-row: 2; margin: calc(36px + var(--espace)) var(--marge) 0; font: italic 700 var(--titre-m)/1.5 var(--font-titre); letter-spacing: .5px; }
  /* le bandeau reste collé sous l'image, au-dessus du texte d'accroche */
  main { position: relative; }
  main > .hero--accueil + .bandeau { position: absolute; top: var(--hero-accueil); left: 0; right: 0; }
}
:root { --hero-accueil: 70vh; }
@media (max-width: 767px) { :root { --hero-accueil: 79vh; } }

/* Avis Google (shortcode Trustindex, remplacé par le widget dans WordPress) */
/* Avis Google (widget Trustindex, shortcode remplacé dans WordPress) : même habillage que le site actuel,
   police système du thème d'origine (le widget hérite de la police) et réglage personnalisé du badge (6 px, coins carrés). */
.avis { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; }
.avis:not(:has(.ti-widget)) { font-size: 12px; opacity: .7; }   /* texte du shortcode, dans la maquette seulement */
.avis .ti-header.ti-header-grid.source-Google { padding: 6px !important; border-radius: 0 !important; }

/* ============================================================== Bandeau défilant */
.bandeau { display: flex; gap: 12px; overflow: hidden; min-height: 36px; background: var(--color-accent); user-select: none; }
.bandeau__groupe { display: flex; flex-shrink: 0; align-items: center; gap: 12px; min-width: max-content; margin: 0 !important; padding: 0; list-style: none; }
.js .bandeau__groupe { animation: defilement 25s linear infinite; }   /* sans JS : ligne fixe */
.bandeau__groupe li { display: flex; align-items: center; gap: 12px; color: #fff; font: 400 14px/1.5 var(--font-texte); text-transform: uppercase; white-space: nowrap; }
.bandeau__groupe li::after { content: ""; width: 14px; height: 21px; background: #fff; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 677 1012'%3E%3Cpath d='M338.185 0C151.715 0 0 151.707 0 338.177V673.045C0 859.515 151.715 1011.23 338.185 1011.23C524.655 1011.23 676.362 859.515 676.362 673.045V338.177C676.362 151.707 524.655 0 338.185 0ZM659.461 338.177V497.169H627.319V340.357C627.319 183.762 502.161 55.936 346.639 51.432V17.117C519.887 21.629 659.461 163.864 659.461 338.177ZM338.185 943.106C188.073 943.106 65.944 820.977 65.944 670.873V340.357C65.944 190.245 188.073 68.124 338.185 68.124C488.297 68.124 610.418 190.245 610.418 340.357V670.873C610.418 820.977 488.297 943.106 338.185 943.106ZM329.731 17.117V51.432C174.209 55.936 49.043 183.762 49.043 340.357V497.169H16.901V338.177C16.901 163.864 156.475 21.629 329.731 17.117ZM16.901 673.045V514.07H49.043V670.873C49.043 827.469 174.209 955.295 329.731 959.79V994.113C156.475 989.601 16.901 847.358 16.901 673.045ZM346.639 994.113V959.79C502.161 955.295 627.319 827.469 627.319 670.873V514.07H659.461V673.045C659.461 847.358 519.887 989.601 346.639 994.113Z'/%3E%3Cpath d='M417.872 466.276C455.849 439.983 543.014 464.329 543.014 464.329V395.187C543.014 395.187 464.248 370.256 408.12 423.427C357.49 471.389 339.33 570.638 339.025 588.34C339.025 589.566 338.77 590.672 338.184 590.672C337.599 590.672 337.344 589.366 337.344 588.34C337.031 570.638 318.871 471.389 268.242 423.427C212.121 370.256 133.354 395.187 133.354 395.187V464.329C133.354 464.329 220.512 439.983 258.488 466.276C280.27 481.35 308.277 521.434 317.565 558.313C258.488 466.276 162.725 510.504 162.725 510.504V579.646C162.725 579.646 242.733 515.608 297.138 565.606C334.987 600.401 329.529 666.209 329.529 713.145C329.529 745.104 315.225 764.425 264.979 708.578C233.197 673.253 166.531 650.775 164.632 726.993C164.464 733.508 165.962 743.093 167.469 750.93C168.983 758.799 175.867 764.441 183.882 764.425C212.057 764.345 279.436 764.152 338.184 764.016C396.932 764.152 464.303 764.345 492.487 764.425C500.493 764.441 507.386 758.799 508.9 750.93C510.407 743.093 511.897 733.508 511.737 726.993C509.83 650.775 443.164 673.253 411.382 708.578C361.136 764.425 346.029 745.104 346.029 713.145C346.029 666.209 341.382 600.401 379.23 565.606C433.635 515.608 513.643 579.646 513.643 579.646V510.504C513.643 510.504 417.872 466.276 358.803 558.313C368.091 521.434 396.099 481.35 417.872 466.276Z'/%3E%3Cpath d='M403.452 294.665C403.452 330.711 374.226 359.936 338.181 359.936C302.135 359.936 272.909 330.711 272.909 294.665C272.909 258.62 302.135 229.394 338.181 229.394C374.226 229.394 403.452 258.62 403.452 294.665Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 677 1012'%3E%3Cpath d='M338.185 0C151.715 0 0 151.707 0 338.177V673.045C0 859.515 151.715 1011.23 338.185 1011.23C524.655 1011.23 676.362 859.515 676.362 673.045V338.177C676.362 151.707 524.655 0 338.185 0ZM659.461 338.177V497.169H627.319V340.357C627.319 183.762 502.161 55.936 346.639 51.432V17.117C519.887 21.629 659.461 163.864 659.461 338.177ZM338.185 943.106C188.073 943.106 65.944 820.977 65.944 670.873V340.357C65.944 190.245 188.073 68.124 338.185 68.124C488.297 68.124 610.418 190.245 610.418 340.357V670.873C610.418 820.977 488.297 943.106 338.185 943.106ZM329.731 17.117V51.432C174.209 55.936 49.043 183.762 49.043 340.357V497.169H16.901V338.177C16.901 163.864 156.475 21.629 329.731 17.117ZM16.901 673.045V514.07H49.043V670.873C49.043 827.469 174.209 955.295 329.731 959.79V994.113C156.475 989.601 16.901 847.358 16.901 673.045ZM346.639 994.113V959.79C502.161 955.295 627.319 827.469 627.319 670.873V514.07H659.461V673.045C659.461 847.358 519.887 989.601 346.639 994.113Z'/%3E%3Cpath d='M417.872 466.276C455.849 439.983 543.014 464.329 543.014 464.329V395.187C543.014 395.187 464.248 370.256 408.12 423.427C357.49 471.389 339.33 570.638 339.025 588.34C339.025 589.566 338.77 590.672 338.184 590.672C337.599 590.672 337.344 589.366 337.344 588.34C337.031 570.638 318.871 471.389 268.242 423.427C212.121 370.256 133.354 395.187 133.354 395.187V464.329C133.354 464.329 220.512 439.983 258.488 466.276C280.27 481.35 308.277 521.434 317.565 558.313C258.488 466.276 162.725 510.504 162.725 510.504V579.646C162.725 579.646 242.733 515.608 297.138 565.606C334.987 600.401 329.529 666.209 329.529 713.145C329.529 745.104 315.225 764.425 264.979 708.578C233.197 673.253 166.531 650.775 164.632 726.993C164.464 733.508 165.962 743.093 167.469 750.93C168.983 758.799 175.867 764.441 183.882 764.425C212.057 764.345 279.436 764.152 338.184 764.016C396.932 764.152 464.303 764.345 492.487 764.425C500.493 764.441 507.386 758.799 508.9 750.93C510.407 743.093 511.897 733.508 511.737 726.993C509.83 650.775 443.164 673.253 411.382 708.578C361.136 764.425 346.029 745.104 346.029 713.145C346.029 666.209 341.382 600.401 379.23 565.606C433.635 515.608 513.643 579.646 513.643 579.646V510.504C513.643 510.504 417.872 466.276 358.803 558.313C368.091 521.434 396.099 481.35 417.872 466.276Z'/%3E%3Cpath d='M403.452 294.665C403.452 330.711 374.226 359.936 338.181 359.936C302.135 359.936 272.909 330.711 272.909 294.665C272.909 258.62 302.135 229.394 338.181 229.394C374.226 229.394 403.452 258.62 403.452 294.665Z'/%3E%3C/svg%3E") center / contain no-repeat; }
@keyframes defilement { to { transform: translateX(calc(-100% - 12px)); } }
@media (prefers-reduced-motion: reduce) { .js .bandeau__groupe { animation: none; } }

/* ============================================================== Intro (texte centré, replié sur mobile) */
.intro { max-width: calc(520px + 2 * var(--marge)); margin-inline: auto; text-align: center; }
.intro__plus { display: none; color: var(--color-accent); cursor: pointer; list-style: none; }
.intro__plus::-webkit-details-marker { display: none; }
@media (max-width: 1024px) {
  .intro { max-width: none; text-align: left; }
  .intro__plus { display: block; margin-top: 6px; }
  .intro { display: flex; flex-direction: column-reverse; }
}

/* ============================================================== Duo : texte + image */
.duo { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--gouttiere); align-items: center; }
.duo__media { width: 100%; height: auto; object-fit: cover; }
.duo__texte { min-width: 0; }
@media (max-width: 1024px) {
  .duo { grid-template-columns: 1fr; row-gap: 48px; }
  .duo--inverse-tablette > :first-child { order: 2; }
  .duo--image-gauche .duo__media { order: 0; }
}
@media (max-width: 767px) {
  .duo { row-gap: 24px; }
  .duo--inverse-mobile > :first-child { order: 2; }
  .mosaique__col--inverse-mobile > :first-child { order: 2; }
}

/* Suite de duos (accueil) : colonnes inégales, une rangée par duo ; carrousel sur mobile */
.duos .carrousel__piste { display: flex; flex-direction: column; gap: 86px; }
.duos .duo { grid-template-columns: 34fr 64fr; column-gap: 2%; }
.duos .duo--image-gauche { grid-template-columns: 64fr 34fr; }
@media (max-width: 1024px) {
  .duos .duo, .duos .duo--image-gauche { grid-template-columns: 1fr; }
}

/* Proportions des images */
.ratio-16-9 { aspect-ratio: 16 / 9; object-fit: cover; }
.ratio-16-10 { aspect-ratio: 16 / 10; object-fit: cover; }
.ratio-3-2 { aspect-ratio: 3 / 2; object-fit: cover; }
.ratio-4-3 { aspect-ratio: 4 / 3; object-fit: cover; }
.ratio-1-1 { aspect-ratio: 1; object-fit: cover; }
.ratio-4-5 { aspect-ratio: 4 / 5; object-fit: cover; }
.ratio-3-4 { aspect-ratio: 3 / 4; object-fit: cover; }
.ratio-2-3 { aspect-ratio: 2 / 3; object-fit: cover; }
.media { width: 100%; }
.media--petit { width: 57px; margin-inline: auto; }

/* ============================================================== Mosaïque : deux colonnes décalées */
.mosaique { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--gouttiere); }
.mosaique__col { display: flex; flex-direction: column; justify-content: space-between; gap: 48px; }
.mosaique__media { width: 100%; object-fit: cover; }
@media (max-width: 767px) { .mosaique { grid-template-columns: 1fr; row-gap: 48px; } .mosaique__col { gap: 24px; } }

/* ============================================================== Cartes photo (grille et carrousel) */
.cartes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; margin: 0; padding: 0; list-style: none; }
.carte { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden;
  padding: 48px; color: #fff; background: var(--color-primary); aspect-ratio: 4 / 5; }
.carte::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--color-primary); opacity: .3; }
.carte__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.carte--centre { justify-content: center; align-items: center; text-align: center; }
.carte--centre::before { opacity: .5; }
.carte--centre .carte__texte { max-width: 612px; }
.carte__texte > .titre + * { margin-top: 20px; }
@media (max-width: 1024px) { .cartes { grid-template-columns: 1fr; gap: 32px; } .carte { padding: 32px; } }
@media (max-width: 767px) { .cartes { gap: 24px; } .carte { padding: 24px; } }

.liste-icones { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 24px; padding: 0; list-style: none;
  font: 400 12px/1.5 var(--font-texte); text-transform: uppercase; }
.liste-icones li { display: flex; align-items: center; gap: 4px; }
.liste-icones li::before { content: ""; width: 14px; height: 14px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 48c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56m140.2 130.3-22.5-22.7c-4.7-4.7-12.3-4.7-17-.1L215.3 303.7l-59.8-60.3c-4.7-4.7-12.3-4.7-17-.1l-22.7 22.5c-4.7 4.7-4.7 12.3-.1 17l90.8 91.5c4.7 4.7 12.3 4.7 17 .1l172.6-171.2c4.7-4.7 4.7-12.3.1-17z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 48c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56m140.2 130.3-22.5-22.7c-4.7-4.7-12.3-4.7-17-.1L215.3 303.7l-59.8-60.3c-4.7-4.7-12.3-4.7-17-.1l-22.7 22.5c-4.7 4.7-4.7 12.3-.1 17l90.8 91.5c4.7 4.7 12.3 4.7 17 .1l172.6-171.2c4.7-4.7 4.7-12.3.1-17z'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ============================================================== Carrousel (défilement natif + flèches) */
.carrousel { position: relative; margin-inline: calc(var(--marge) * -1); }
.carrousel__piste { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding-inline: var(--marge); scroll-padding-inline: var(--marge); }
.carrousel__piste::-webkit-scrollbar { display: none; }
.carrousel__piste > * { flex: 0 0 100%; scroll-snap-align: center; }
.carrousel--cartes .carte { aspect-ratio: 16 / 9; min-height: 540px; padding: 10px; }
.carrousel--images .carrousel__image { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.carrousel--plans .carrousel__image { aspect-ratio: 16 / 9; object-fit: contain; }   /* format des plans, écrit en dur : avec aspect-ratio auto, WordPress (sizes="auto") leur donne 1500 px de haut */
.carrousel__prec, .carrousel__suiv { position: absolute; top: 50%; z-index: 2; width: 48px; height: 48px; margin-top: -24px; padding: 0; border: 0; cursor: pointer;
  background: center / contain no-repeat; }
.carrousel__prec { left: calc(var(--marge) + 48px); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Crect width='48' height='48' rx='24' fill='%239FD1CC'/%3E%3Cpath d='M29.5 14.47v19.06L13 24z' fill='none' stroke='white'/%3E%3C/svg%3E"); }
.carrousel__suiv { right: calc(var(--marge) + 48px); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Crect width='48' height='48' rx='24' fill='%239FD1CC'/%3E%3Cpath d='M18.5 33.53V14.47L35 24z' fill='none' stroke='white'/%3E%3C/svg%3E"); }
.no-js .carrousel__prec, .no-js .carrousel__suiv { display: none; }
/* Carrousel « focus » : la diapositive active en grand, les voisines réduites et estompées dans les marges */
.carrousel--focus .carrousel__piste > * { transform: scale(.88); opacity: .45; transition: transform .35s ease-out, opacity .35s ease-out; }
.carrousel--focus .carrousel__piste > .is-active { transform: none; opacity: 1; }
.carrousel--focus .carrousel__piste > .is-proche { transform: scale(.92); opacity: .7; }
.no-js .carrousel--focus .carrousel__piste > * { transform: none; opacity: 1; }
.carrousel__piste.is-saut > * { transition: none; }
@media (min-width: 1025px) { [data-carrousel="mobile"] .carrousel__copie { display: none; } }
/* Mobile : diapositives au format 3/4 (une carte trop chargée en texte peut grandir), flèches sous le carrousel */
@media (max-width: 767px) {
  .carrousel--cartes .carte { aspect-ratio: 3 / 4; min-height: auto; padding: 32px 20px; }
  .carrousel--images .carrousel__image { aspect-ratio: 3 / 4; }
  .carrousel--plans .carrousel__image { aspect-ratio: 16 / 9; }   /* un plan garde son format (ni recadré, ni perdu dans du blanc) */
  .carrousel__prec { left: 8px; } .carrousel__suiv { right: 8px; }
  .carrousel:not(.duos) { padding-bottom: 64px; }
  .carrousel:not(.duos) > .carrousel__prec, .carrousel:not(.duos) > .carrousel__suiv { top: auto; bottom: 0; margin-top: 0; }
  .carrousel:not(.duos) > .carrousel__prec { left: calc(50% - 56px); }
  .carrousel:not(.duos) > .carrousel__suiv { right: calc(50% - 56px); }
}
/* Carrousel seulement sur mobile (suite de duos) */
@media (min-width: 1025px) {
  [data-carrousel="mobile"] { margin-inline: 0; }
  [data-carrousel="mobile"] > .carrousel__piste { overflow: visible; padding: 0; }
  [data-carrousel="mobile"] > .carrousel__piste > * { flex: none; }
  [data-carrousel="mobile"] > .carrousel__prec, [data-carrousel="mobile"] > .carrousel__suiv { display: none; }
}
@media (max-width: 1024px) {
  .duos > .carrousel__piste { flex-direction: row; gap: 12px; align-items: start; }
  .duos .duo { grid-template-columns: 1fr; align-content: start; row-gap: 24px; }
  .duos .duo--image-gauche .duo__media, .duos .duo .duo__media { order: -1; }
  .duos .carrousel__prec, .duos .carrousel__suiv { top: 120px; }
}

/* ============================================================== Atouts (icônes) */
.atouts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 72px 72px; margin: 0; padding: 0; list-style: none; text-align: center; }
.atout { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.atout__icone { width: auto; height: 38px; margin-bottom: 8px; }
.atout p { margin: 0; }
/* Atouts des suites : lignes inégales comme sur le site. Chaque atout fait 20 % de la ligne (46 % sur tablette) ;
   ceux marqués atout--etire s'élargissent pour la remplir, la dernière ligne est centrée. Icône à sa largeur d'origine (--icone). */
.atouts--souple { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 72px; }
.atouts--souple .atout { flex: 0 0 20%; gap: 0; }
.atouts--souple .atout--etire { flex-grow: 1; }
.atouts--souple .atout__icone { width: var(--icone, 40px); height: auto; margin-bottom: 29px; }
.atouts--souple .etiquette { margin-bottom: 7px; }
@media (max-width: 1024px) {
  .atouts--souple { gap: 48px; }
  .atouts--souple .atout { flex-basis: 46%; }
  .atouts--souple .atout--plein-tablette { flex-basis: 100%; }
}
/* Mobile : grille de deux colonnes, tout est visible d'un coup (pas de carrousel) */
@media (max-width: 767px) {
  .atouts, .atouts--souple { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 40px 24px; }
  .atouts .atout, .atouts--souple .atout--plein-tablette { flex: 0 0 calc(50% - 12px); }
  .atouts--souple .atout__icone { height: 43px; object-fit: contain; object-position: bottom; margin-bottom: 20px; }   /* titres alignés d'une colonne à l'autre */
}

/* ============================================================== Horaires (arrivée / départ) */
.horaires { display: grid; grid-template-columns: repeat(2, 312px); justify-content: center; gap: 72px; margin: 0; padding: 0; list-style: none; text-align: center; }
.horaire { display: flex; flex-direction: column; gap: 20px; }
.horaire .chiffre { font-family: var(--font-titre); font-size: var(--titre-xl); font-weight: 700; letter-spacing: 2px; text-transform: none; color: var(--color-accent); line-height: 1; }
@media (max-width: 767px) { .horaires { grid-template-columns: 1fr; gap: 32px; } }

/* ============================================================== Défilement horizontal (page Suites) */
/* Chaque suite occupe tout l'écran : photo en pleine hauteur sur la moitié gauche, texte centré à droite (mesures du site). */
.defile { display: flex; overflow: hidden; padding-inline: 0 !important; }
.bloc > .defile { margin-inline: calc(var(--marge) * -1); }
.defile__item { flex: 0 0 100%; display: grid; grid-template-columns: 1fr 1fr; align-items: center; height: 100vh; }
.defile__media { align-self: stretch; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.defile__texte { padding-inline: 8.06vw; }
.no-js .defile { overflow-x: auto; }
@media (max-width: 1024px) { .defile__texte { padding-inline: 12px; } }
@media (max-width: 767px) {
  .defile__item { grid-template-columns: 1fr; grid-template-rows: auto 1fr; align-items: start; }
  .defile__media { height: auto; aspect-ratio: 390 / 317; }
  .defile__texte { padding: 59px 12px 0; }
}

/* ============================================================== FAQ */
.faq { width: 100%; max-width: 624px; align-self: center; }
.faq__item + .faq__item { margin-top: 16px; }
.faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; list-style: none;
  font: italic 700 var(--titre-m)/1.5 var(--font-titre); letter-spacing: .5px; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: ""; flex: none; width: 21px; height: 24px; background: var(--color-secondary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H272V64c0-17.7-14.3-32-32-32h-32c-17.7 0-32 14.3-32 32v144H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h144v144c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V304h144c17.7 0 32-14.3 32-32v-32c0-17.7-14.3-32-32-32z'/%3E%3C/svg%3E") center / 21px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H272V64c0-17.7-14.3-32-32-32h-32c-17.7 0-32 14.3-32 32v144H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h144v144c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V304h144c17.7 0 32-14.3 32-32v-32c0-17.7-14.3-32-32-32z'/%3E%3C/svg%3E") center / 21px no-repeat; }
.faq__item[open] summary::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32v-32c0-17.7-14.3-32-32-32z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32v-32c0-17.7-14.3-32-32-32z'/%3E%3C/svg%3E"); }
.faq__item > :not(summary) { margin-top: 12px; }
@media (max-width: 767px) { .faq__item summary { font-size: 20px; } }

/* ============================================================== Pages de texte et articles */
.texte { max-width: calc(1040px + 2 * var(--marge)); }
.texte h2 { font: 400 var(--titre)/1 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; color: var(--color-primary); margin-top: 48px; }
.texte h3 { font: 400 var(--titre-m)/1 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; color: var(--color-primary); margin-top: 32px; }
.texte h4 { font: italic 700 20px/1.2 var(--font-titre); margin-top: 24px; }
.texte > :first-child { margin-top: 0; }
.texte table { width: 100%; margin-block: 8px; background: #fff; font-size: 15px; box-shadow: 0 6px 24px rgba(24, 50, 51, .08); }
.texte th, .texte td { padding: 13px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid #eef2ef; }
.texte thead th { background: var(--color-primary); color: #fff; font: 700 13px/1.4 var(--font-titre); text-transform: uppercase; letter-spacing: 1.5px; border-bottom: 3px solid var(--color-accent); }
.texte tbody tr:nth-child(even) { background: #f3f6f2; }
.texte td:first-child { font-weight: 600; color: var(--color-primary); }
.texte .faq { max-width: none; margin-top: 24px; }
.texte .faq summary { font-size: 20px; }
.encart { margin-top: 48px; padding: 32px; background: var(--color-primary); color: #fff; text-align: center; }
.encart > * + * { margin-top: 20px; }
.texte .encart h2 { margin-top: 0; color: #fff; }
.encart .btn { margin-top: 20px; }
@media (max-width: 767px) { .texte table { display: block; overflow-x: auto; font-size: 14px; } }

/* ============================================================== Article (modèle commun à tous les articles)
   Colonne de lecture de 720 px, sommaire collant à droite, titres et liens à la charte. */
.hero--article { min-height: 78vh; padding-bottom: 72px; }
.hero--article::after { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, rgba(24, 50, 51, .85), rgba(24, 50, 51, .1) 65%, rgba(24, 50, 51, .3)); }
.hero--article .hero__contenu { width: min(880px, 100%); gap: 16px; }
.hero--article .hero__titre { font-size: var(--titre-xl); line-height: 1.15; }
.article-meta { order: -1; font: 400 12px/1.5 var(--font-texte); text-transform: uppercase; letter-spacing: 2px; }
.article-meta .categorie { font-weight: 700; color: var(--color-secondary); }
.article-lecture { font: italic 400 16px/1.4 var(--font-titre); opacity: .85; }

.article { display: grid; grid-template-columns: minmax(0, 720px) 240px; justify-content: center; align-items: start; column-gap: 80px; }
main > .article { margin-top: min(96px, var(--espace-bloc)); }
.article-body { font-size: 18px; line-height: 1.75; color: #1d2b2c; }
.article-body > * + *, .article-body :is(p, ul, ol) + :is(p, ul, ol) { margin-top: 1.1em !important; }
.article-body > p:first-child { font: 400 22px/1.6 var(--font-titre); color: var(--color-primary); }
.article-body h2 { scroll-margin-top: 130px; margin-top: 72px !important; font-size: 28px; line-height: 1.25; }
.article-body h2::before { content: ""; display: block; width: 48px; height: 2px; margin-bottom: 20px; background: var(--color-accent); }
.article-body h3 { margin-top: 40px !important; font: italic 700 22px/1.3 var(--font-titre); text-transform: none; letter-spacing: .5px; }
.article-body h2 + *, .article-body h3 + * { margin-top: 16px !important; }
.article-body strong { color: var(--color-primary); }
.article-body a:not(.btn) { color: var(--color-primary); text-decoration-color: var(--color-secondary); text-decoration-thickness: 2px; text-underline-offset: 3px; transition: color .3s; }
.article-body a:not(.btn):hover { color: var(--color-accent); }
.article-body ul { padding-left: 0; list-style: none; }
.article-body ul + ul, .article-body li + li { margin-top: .5em !important; }
.article-body li { position: relative; padding-left: 26px; }
.article-body li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 8px; height: 8px; border-radius: 50%; background: var(--color-secondary); }
.article-body table { margin-block: 32px !important; font-size: 16px; line-height: 1.5; }
.article-body .faq { margin-top: 24px !important; border-top: 1px solid #e3e9e4; }
.article-body .faq__item { margin: 0 !important; padding: 20px 0; border-bottom: 1px solid #e3e9e4; }
.article-body .faq__item summary { color: var(--color-primary); }
.article-body .encart { margin-top: 72px !important; padding: 56px 48px; border-top: 4px solid var(--color-secondary); }
.article-body .encart h2 { margin-top: 0 !important; }
.article-body .encart h2::before { display: none; }
.article-body .encart strong { color: inherit; }

.article-aside { position: sticky; top: 140px; }
.article-aside:has(.sommaire:empty) { display: none; }   /* sommaire pas encore rempli (maquette sans JS) */
.article-aside__titre { padding-bottom: 16px; border-bottom: 2px solid var(--color-accent); color: var(--color-primary);
  font: 700 14px/1 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; }
.sommaire :is(ol, ul) { max-height: calc(100vh - 260px); margin: 16px 0 0; padding: 0; overflow-y: auto; list-style: none; }
.sommaire li + li { margin-top: 10px; }
.sommaire :is(ol, ul) :is(ol, ul) { max-height: none; margin: 8px 0 0 14px; overflow: visible; }   /* h3 sous leur h2 (sommaire de MCD Builder) */
.sommaire li li a { font-size: 13px; }
.sommaire a { display: block; padding-left: 14px; border-left: 2px solid transparent; color: #5b6b6c; font: 400 14px/1.45 var(--font-texte);
  text-decoration: none; transition: color .3s, border-color .3s; }
.sommaire a:hover, .sommaire a.is-actif { border-left-color: var(--color-secondary); color: var(--color-primary); }
.sommaire a.is-actif { font-weight: 600; }
@media (max-width: 1024px) {
  .article { grid-template-columns: minmax(0, 720px); }
  .article-aside { display: none; }
}
@media (max-width: 767px) {
  .hero--article { min-height: 70vh; padding-bottom: 40px; }
  .article-body { font-size: 16px; }
  .article-body > p:first-child { font-size: 19px; }
  .article-body h2 { margin-top: 56px !important; font-size: 24px; }
  .article-body h3 { font-size: 20px; }
  .article-body .encart { padding: 40px 24px; }
}

/* ============================================================== Contact */
.infos { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gouttiere); margin: 0; padding: 0; list-style: none; }
.info { padding: 32px; border: 2px solid var(--color-accent); background: #fff; }
.info > .titre-m + * { margin-top: 20px; }
.reseaux { display: flex; gap: 8px; margin-top: 20px !important; padding: 0; list-style: none; }
.reseaux a { display: flex; width: 24px; height: 24px; align-items: center; justify-content: center; color: #69727d; }
.reseaux svg { width: 24px; height: 24px; fill: currentColor; }
.contact { display: grid; grid-template-columns: 715fr 725fr; align-items: center; padding-inline: 0 !important; }
.contact__carte { width: 100%; height: 100%; min-height: 540px; border: 0; }
.contact__form { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 48px var(--marge) 48px 96px; }
.contact__form > * { width: 100%; max-width: 494px; text-align: center; }
.formulaire { display: flex; flex-wrap: wrap; gap: 12px; }
.champ { flex: 1 1 100%; }
.champ--demi { flex-basis: calc(50% - 6px); }
@media (max-width: 767px) { .champ--demi { flex-basis: 100%; } }
.champ input, .champ select, .champ textarea { display: block; width: 100%; min-height: 40px; padding: 8px 16px; border: 0; border-bottom: 1px solid #69727d; border-radius: 0; background: #fff; font: 400 14px/1.4 var(--font-texte); color: inherit; }
.consent { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 1.4; flex: 1 1 100%; }
.consent input { margin-top: 3px; }
.formulaire .btn { width: auto; margin: 12px auto 0; background: none; color: inherit; }
.formulaire .btn:hover { color: var(--color-accent); }
.consent { text-align: left; }
@media (max-width: 1024px) {
  .infos { grid-template-columns: 1fr; gap: 32px; }
  .contact { grid-template-columns: 1fr; }
  .contact__form { padding: 48px var(--marge); }
}

/* ============================================================== Actualités (liste d'articles) */
/* L'article le plus récent reste fixe à gauche (format carré) pendant que la liste défile à droite. */
.actus { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 64px; }
.actus__une { position: sticky; top: 130px; }
.carte-article { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: 220px; padding: 24px; color: #fff; overflow: hidden; background: var(--color-primary); }
.actus__une .carte-article { aspect-ratio: 1; min-height: 0; padding: 48px; }
.carte-article__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .9s ease; }
.carte-article:hover .carte-article__media { transform: scale(1.04); }
.carte-article::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(24, 50, 51, .8), rgba(24, 50, 51, .1) 70%); }
.carte-article__texte { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.carte-article__meta { font: 400 12px/1.5 var(--font-texte); text-transform: uppercase; letter-spacing: 1px; }
.carte-article__meta .categorie { font-weight: 700; }
.carte-article h2 a { text-decoration: none; }
.carte-article__extrait { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 15px; line-height: 1.5; }
.actus__grille .carte-article__extrait { color: #3c4a4b; }
.carte-article h2 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }   /* toute la carte est cliquable */
.carte-article .btn { position: relative; z-index: 2; }
.actus__une .titre-m { font-size: var(--titre); line-height: 1.15; }
.actus__grille { display: flex; flex-direction: column; }
.actus__grille .carte-article { flex-direction: row; align-items: center; gap: 28px; min-height: 0; padding: 24px 0; border-bottom: 1px solid #e3e9e4;
  color: var(--color-texte); background: none; overflow: visible; }
.actus__grille .carte-article:first-child { padding-top: 0; }
.actus__grille .carte-article::before { display: none; }
.actus__grille .carte-article__media { position: static; z-index: auto; flex: none; width: 180px; height: 180px; }
.actus__grille .carte-article:hover .carte-article__media { transform: none; opacity: .85; }
.actus__grille .carte-article__meta .categorie { color: var(--color-accent); }
.actus__grille .titre-m { font-size: 22px; line-height: 1.25; color: var(--color-primary); }
@media (max-width: 1024px) {
  .actus { grid-template-columns: 1fr; gap: 48px; }
  .actus__une { position: static; }
  .actus__une .carte-article { aspect-ratio: 16 / 10; }
}
@media (max-width: 767px) {
  .actus__une .carte-article { aspect-ratio: 1; padding: 24px; }
  .actus__grille .carte-article { gap: 16px; padding: 16px 0; }
  .actus__grille .carte-article__media { width: 110px; height: 110px; }
  .actus__grille .titre-m { font-size: 18px; }
}

/* ============================================================== Galerie */
.galerie { columns: 3; column-gap: 12px; }
.galerie a { display: block; margin-bottom: 12px; break-inside: avoid; overflow: hidden; }
.galerie img { width: 100%; transition: transform .4s; }
.galerie a:hover img { transform: scale(1.03); }
@media (max-width: 1024px) { .galerie { columns: 2; column-gap: 10px; } .galerie a { margin-bottom: 10px; } }
@media (max-width: 767px) { .galerie { columns: 1; } }
.lightbox { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .9); }
.lightbox__img { max-width: 92vw; max-height: 88vh; width: auto; height: auto; object-fit: contain; }
.lightbox button { position: absolute; width: 56px; height: 56px; padding: 0; border: 0; background: center / 28px no-repeat; cursor: pointer; }
.lightbox__fermer { top: 8px; right: 8px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E") !important; }
.lightbox__prec { left: 8px; top: 50%; transform: translateY(-50%); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Cpath d='M15 4l-8 8 8 8'/%3E%3C/svg%3E") !important; }
.lightbox__suiv { right: 8px; top: 50%; transform: translateY(-50%); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Cpath d='M9 4l8 8-8 8'/%3E%3C/svg%3E") !important; }

/* ============================================================== Animations (jamais sans JS) */
[data-revele] { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }

/* ============================================================== En-tête */
.entete-site { position: relative; z-index: 100; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  margin-bottom: -146px; padding: 24px; color: #fff; transition: background-color .3s, padding .3s, box-shadow .3s; }
.entete-site.is-fixe { position: fixed; top: 0; left: 0; right: 0; }
.entete-site.is-defile { background: #fff; color: var(--color-primary); padding-block: 12px; box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }
/* Logo : image vert foncé, passée en blanc par filtre sur fond sombre (photo du hero, pied de page) */
.logo-lien { display: block; width: 149px; transition: width .3s; }
.logo { display: block; width: 100%; height: auto; }
.entete-site .logo, .pied .logo { filter: brightness(0) invert(1); transition: filter .3s; }
.entete-site.is-defile .logo { filter: none; }
.entete-site.is-defile .logo-lien { width: 125px; }
/* Boutons « Menu » / « Fermer » : l'emblème de l'hôtel en icône */
.entete-site__menu, .navigation__fermer { display: none; align-items: center; gap: 8px; color: inherit; text-decoration: none; font: 700 14px/1 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; }
.entete-site__menu::before, .navigation__fermer::before { content: ""; width: 20px; height: 30px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 677 1012'%3E%3Cpath d='M338.185 0C151.715 0 0 151.707 0 338.177V673.045C0 859.515 151.715 1011.23 338.185 1011.23C524.655 1011.23 676.362 859.515 676.362 673.045V338.177C676.362 151.707 524.655 0 338.185 0ZM659.461 338.177V497.169H627.319V340.357C627.319 183.762 502.161 55.936 346.639 51.432V17.117C519.887 21.629 659.461 163.864 659.461 338.177ZM338.185 943.106C188.073 943.106 65.944 820.977 65.944 670.873V340.357C65.944 190.245 188.073 68.124 338.185 68.124C488.297 68.124 610.418 190.245 610.418 340.357V670.873C610.418 820.977 488.297 943.106 338.185 943.106ZM329.731 17.117V51.432C174.209 55.936 49.043 183.762 49.043 340.357V497.169H16.901V338.177C16.901 163.864 156.475 21.629 329.731 17.117ZM16.901 673.045V514.07H49.043V670.873C49.043 827.469 174.209 955.295 329.731 959.79V994.113C156.475 989.601 16.901 847.358 16.901 673.045ZM346.639 994.113V959.79C502.161 955.295 627.319 827.469 627.319 670.873V514.07H659.461V673.045C659.461 847.358 519.887 989.601 346.639 994.113Z'/%3E%3Cpath d='M417.872 466.276C455.849 439.983 543.014 464.329 543.014 464.329V395.187C543.014 395.187 464.248 370.256 408.12 423.427C357.49 471.389 339.33 570.638 339.025 588.34C339.025 589.566 338.77 590.672 338.184 590.672C337.599 590.672 337.344 589.366 337.344 588.34C337.031 570.638 318.871 471.389 268.242 423.427C212.121 370.256 133.354 395.187 133.354 395.187V464.329C133.354 464.329 220.512 439.983 258.488 466.276C280.27 481.35 308.277 521.434 317.565 558.313C258.488 466.276 162.725 510.504 162.725 510.504V579.646C162.725 579.646 242.733 515.608 297.138 565.606C334.987 600.401 329.529 666.209 329.529 713.145C329.529 745.104 315.225 764.425 264.979 708.578C233.197 673.253 166.531 650.775 164.632 726.993C164.464 733.508 165.962 743.093 167.469 750.93C168.983 758.799 175.867 764.441 183.882 764.425C212.057 764.345 279.436 764.152 338.184 764.016C396.932 764.152 464.303 764.345 492.487 764.425C500.493 764.441 507.386 758.799 508.9 750.93C510.407 743.093 511.897 733.508 511.737 726.993C509.83 650.775 443.164 673.253 411.382 708.578C361.136 764.425 346.029 745.104 346.029 713.145C346.029 666.209 341.382 600.401 379.23 565.606C433.635 515.608 513.643 579.646 513.643 579.646V510.504C513.643 510.504 417.872 466.276 358.803 558.313C368.091 521.434 396.099 481.35 417.872 466.276Z'/%3E%3Cpath d='M403.452 294.665C403.452 330.711 374.226 359.936 338.181 359.936C302.135 359.936 272.909 330.711 272.909 294.665C272.909 258.62 302.135 229.394 338.181 229.394C374.226 229.394 403.452 258.62 403.452 294.665Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 677 1012'%3E%3Cpath d='M338.185 0C151.715 0 0 151.707 0 338.177V673.045C0 859.515 151.715 1011.23 338.185 1011.23C524.655 1011.23 676.362 859.515 676.362 673.045V338.177C676.362 151.707 524.655 0 338.185 0ZM659.461 338.177V497.169H627.319V340.357C627.319 183.762 502.161 55.936 346.639 51.432V17.117C519.887 21.629 659.461 163.864 659.461 338.177ZM338.185 943.106C188.073 943.106 65.944 820.977 65.944 670.873V340.357C65.944 190.245 188.073 68.124 338.185 68.124C488.297 68.124 610.418 190.245 610.418 340.357V670.873C610.418 820.977 488.297 943.106 338.185 943.106ZM329.731 17.117V51.432C174.209 55.936 49.043 183.762 49.043 340.357V497.169H16.901V338.177C16.901 163.864 156.475 21.629 329.731 17.117ZM16.901 673.045V514.07H49.043V670.873C49.043 827.469 174.209 955.295 329.731 959.79V994.113C156.475 989.601 16.901 847.358 16.901 673.045ZM346.639 994.113V959.79C502.161 955.295 627.319 827.469 627.319 670.873V514.07H659.461V673.045C659.461 847.358 519.887 989.601 346.639 994.113Z'/%3E%3Cpath d='M417.872 466.276C455.849 439.983 543.014 464.329 543.014 464.329V395.187C543.014 395.187 464.248 370.256 408.12 423.427C357.49 471.389 339.33 570.638 339.025 588.34C339.025 589.566 338.77 590.672 338.184 590.672C337.599 590.672 337.344 589.366 337.344 588.34C337.031 570.638 318.871 471.389 268.242 423.427C212.121 370.256 133.354 395.187 133.354 395.187V464.329C133.354 464.329 220.512 439.983 258.488 466.276C280.27 481.35 308.277 521.434 317.565 558.313C258.488 466.276 162.725 510.504 162.725 510.504V579.646C162.725 579.646 242.733 515.608 297.138 565.606C334.987 600.401 329.529 666.209 329.529 713.145C329.529 745.104 315.225 764.425 264.979 708.578C233.197 673.253 166.531 650.775 164.632 726.993C164.464 733.508 165.962 743.093 167.469 750.93C168.983 758.799 175.867 764.441 183.882 764.425C212.057 764.345 279.436 764.152 338.184 764.016C396.932 764.152 464.303 764.345 492.487 764.425C500.493 764.441 507.386 758.799 508.9 750.93C510.407 743.093 511.897 733.508 511.737 726.993C509.83 650.775 443.164 673.253 411.382 708.578C361.136 764.425 346.029 745.104 346.029 713.145C346.029 666.209 341.382 600.401 379.23 565.606C433.635 515.608 513.643 579.646 513.643 579.646V510.504C513.643 510.504 417.872 466.276 358.803 558.313C368.091 521.434 396.099 481.35 417.872 466.276Z'/%3E%3Cpath d='M403.452 294.665C403.452 330.711 374.226 359.936 338.181 359.936C302.135 359.936 272.909 330.711 272.909 294.665C272.909 258.62 302.135 229.394 338.181 229.394C374.226 229.394 403.452 258.62 403.452 294.665Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.entete-site__droite { display: flex; align-items: center; gap: 12px; }
@media (max-width: 1024px) {
  .entete-site { display: grid; grid-template-columns: 1fr auto 1fr; padding: 24px 16px; margin-bottom: -118px; }
  .entete-site__menu { display: flex; }
  .entete-site .logo-lien { width: 107px; }
  .entete-site__droite { justify-self: end; }
}
@media (max-width: 767px) { .entete-site__resa { display: none; } }

/* Sélecteur de langue : la langue affichée d'abord, l'autre au survol */
.lang-switcher { position: relative; display: inline-flex; flex-direction: column; }
.lang-switcher a { padding: 5px 22px 5px 10px; color: inherit; font: 400 12px/1.2 var(--font-texte); text-transform: uppercase; letter-spacing: 1px; text-decoration: none; }
.lang-switcher a[aria-current] { order: -1; position: relative; }
.lang-switcher a[aria-current]::after { content: ""; position: absolute; right: 8px; top: calc(50% - 2px); border: .3em solid transparent; border-top-color: currentColor; border-bottom: 0; }
.lang-switcher a:not([aria-current]) { position: absolute; top: 100%; left: 0; opacity: 0; visibility: hidden; transition: opacity .2s; }
.lang-switcher:hover a:not([aria-current]), .lang-switcher:focus-within a:not([aria-current]) { opacity: 1; visibility: visible; }

/* Navigation : boîte fixe en bas à gauche (bureau), panneau plein écran (tablette, mobile) */
.navigation { position: fixed; left: 24px; bottom: 24px; z-index: 100; padding: 12px; border-radius: 5px; background: var(--color-primary); transition: padding-right .28s ease; }
.navigation__haut { display: none; }
.menu, .menu__sous { margin: 0; padding: 0; list-style: none; }
.menu > li + li { margin-top: 12px; }
.menu a { display: block; color: #fff; text-decoration: none; font: 700 14px/20px var(--font-titre); text-transform: uppercase; letter-spacing: 2px; }
.menu a:hover, .menu__parent.is-ouvert > a { color: var(--color-accent); }
.menu__parent { position: relative; }
/* Sous-menu (ordinateur) : s'ouvre à droite dans la même boîte, qui s'élargit, aligné sur le haut du menu (comme le site).
   --sous-l (largeur du sous-menu) et --decalage (position du lien parent) sont mesurés par site.js. */
.menu__sous { position: absolute; left: calc(100% + 12px); top: calc(var(--decalage, 0px) * -1); display: flex; flex-direction: column; gap: 16px;
  white-space: nowrap; opacity: 0; visibility: hidden; transform: translateX(-12px); transition: opacity .22s ease, transform .28s ease, visibility .28s; }
.menu__sous a { letter-spacing: normal; line-height: 21px; }
.menu__parent.is-ouvert > .menu__sous, .menu__parent:focus-within > .menu__sous { opacity: 1; visibility: visible; transform: none; }
.navigation:has(.menu__parent.is-ouvert, .menu__parent:focus-within) { padding-right: calc(24px + var(--sous-l, 138px)); }
.menu__retour { display: none; }
@media (max-width: 1024px) {
  .navigation { inset: 0; display: flex; flex-direction: column; padding: 24px 16px; border-radius: 0; background: #fff; opacity: 0; visibility: hidden; transition: opacity .4s, visibility .4s; overflow: auto; }
  .navigation.is-ouvert, .navigation:target { opacity: 1; visibility: visible; }
  .navigation__haut { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: var(--color-primary); }
  .navigation__haut .lang-switcher { justify-self: end; }
  .navigation__haut .logo-lien { width: 107px; }
  .navigation__fermer { display: flex; }
  .navigation__menu { flex: 1; display: flex; flex-direction: column; justify-content: center; }
  .menu > li + li { margin-top: 10px; }
  .menu a { color: var(--color-texte); font: 400 24px/1.4 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; }
  .navigation:has(.menu__parent.is-ouvert, .menu__parent:focus-within) { padding-right: 16px; }
  .menu__sous { position: fixed; inset: 0; z-index: 9; justify-content: center; gap: 10px; padding: 16px; background: #fff; opacity: 1; visibility: visible; transform: translateX(100%); transition: transform .25s; }
  .menu__sous a { letter-spacing: 2px; line-height: 1.4; }
  .menu__parent.is-ouvert > .menu__sous { transform: none; }
  .menu__retour { display: block; }
  .menu__retour button { padding: 12px 0; border: 0; background: none; cursor: pointer; font: 700 14px/1 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; }
}

/* Bouton « Réserver » fixe en bas d'écran (mobile) */
.resa-mobile { display: none; }
@media (max-width: 767px) { .resa-mobile { position: fixed; left: 0; right: 0; bottom: 0; z-index: 99; display: block; border-radius: 0; } }

/* Popup de réservation */
.popup-resa { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; background: rgba(0, 0, 0, .8); }
.popup-resa:target, .popup-resa.is-open { display: flex; }
.popup-resa__boite { display: grid; grid-template-columns: 1fr 2fr; width: 100vw; height: 100vh; background: #fff; overflow: auto; }
.popup-resa__media { width: 100%; height: 100%; object-fit: cover; }
.popup-resa__contenu { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; padding: 48px; background: var(--color-primary); color: #fff; text-align: center; }
.popup-resa__logo { width: 200px; height: auto; }
.popup-resa__fermer { position: absolute; top: 20px; right: 20px; z-index: 2; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: -10px; color: #fff; }
.popup-resa__fermer:hover { color: var(--color-accent); }
@media (max-width: 1024px) { .popup-resa__boite { grid-template-columns: 1fr; } .popup-resa__media { display: none; } }   /* croix blanche : sur mobile tout le fond est vert foncé */

/* Formulaire de réservation (branché par MCD Builder) */
.resa { width: 100%; max-width: 520px; text-align: left; }
.resa__dates, .resa__adultes { display: flex; gap: 12px; margin-bottom: 10px; padding: 14px; border-radius: 5px; background: var(--color-sable); }
.resa__champ { display: flex; flex: 1; flex-direction: column; gap: 4px; min-width: 0; color: var(--color-primary); }
.resa__champ--droite { text-align: right; }
.resa__label { font: 700 14px/1.2 var(--font-titre); text-transform: uppercase; letter-spacing: 2px; }
.resa input, .resa select { width: 100%; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; font: italic 700 var(--titre)/1 var(--font-titre); text-align: inherit; }
.resa input::placeholder { color: inherit; opacity: 1; }
.resa .btn { margin-top: 6px; }
[data-mc-prix-etat="ferme"] { opacity: .5; }
@media (max-width: 767px) { .resa__dates { flex-direction: column; } .resa__champ--droite { text-align: left; } .resa input, .resa select { font-size: 24px; } }

/* ============================================================== Pied de page */
.pied { margin-top: var(--espace-bloc); background: var(--color-primary); color: #fff; text-align: center; }
.pied__avis { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: var(--espace-bloc) var(--marge) 0; }
.pied__avis .titre { max-width: 624px; }
.pied__contact { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: var(--espace-bloc) var(--marge) 0; }
.pied__petit { font: 400 12px/1 var(--font-texte); text-transform: uppercase; letter-spacing: 2px; }
.pied__coord { margin-top: 36px !important; font: 400 16px/1.7 var(--font-texte); letter-spacing: 2px; }
.pied__adresse { display: flex; flex-direction: column; align-items: center; gap: 12px; font-style: normal; }
.pied__adresse p { transition: color .3s ease-in-out; }
.pied__adresse:hover p { color: var(--color-accent); }
.pied__coord a, .pied__bas a { text-decoration: none; transition: color .3s; }
.pied__coord a:hover, .pied__coord a:focus, .pied__bas a:hover, .pied__bas a:focus { color: var(--color-accent); }
.pied__contact .btn { margin-top: 36px; }
.pied__navigation { display: grid; grid-template-columns: 260px repeat(3, 1fr); gap: 24px; padding: var(--espace-bloc) var(--marge) 24px; text-align: left; }
.pied__logo { width: 149px; }
.pied__col .etiquette { margin-bottom: 12px; }
.pied__liens { margin: 0; padding: 0; list-style: none; }
.pied__liens a { display: block; text-decoration: none; font: 400 12px/20px var(--font-texte); text-transform: uppercase; letter-spacing: 2px; }
.pied__liens li + li { margin-top: 12px; }
.pied__liens a:hover { color: var(--color-accent); }
.pied__bas { display: flex; justify-content: space-between; gap: 12px; padding: 48px var(--marge); }
@media (max-width: 1024px) { .pied__navigation { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) {
  .pied__coord { font-size: 14px; }
  .pied__navigation { grid-template-columns: 1fr; padding-bottom: 16px; }
  .pied__bas { flex-direction: column; padding: 16px; padding-bottom: 54px; text-align: left; }
}

/* ============================================================== États des formulaires Contact Form 7 (consignes § 12 bis) */
.wpcf7-form-control-wrap { display: block; }
.wpcf7-not-valid { border-color: #b3261e !important; }
.wpcf7-not-valid-tip { display: block; margin-top: .25em; color: #b3261e; font-size: .85em; }
.wpcf7-response-output { flex: 1 1 100%; margin: 1em 0 0; padding: .75em 1em; }
.wpcf7-form.sent .wpcf7-response-output { background: var(--color-sable); color: var(--color-primary); }
.wpcf7-form.invalid .wpcf7-response-output, .wpcf7-form.failed .wpcf7-response-output { background: #fdecea; color: #8a1c13; }
.wpcf7-spinner { margin-left: .5em; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
