/* Déjeunez sous l'Arbre — maquette MCD Builder
   Valeurs relevées sur le site actuel (getComputedStyle, 1440 / 1024 / 390 px). Une section = un composant. */

/* ---------------------------------------------------------------- polices */

@font-face { font-family: "Cormorant Garamond"; src: url("../../mcd-builder/assets/3831f999836f89c1d2028a66bec5a039f66d5af8.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("../../mcd-builder/assets/3554e075c5719021019b83e721e2f6e214996f16.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Karla"; src: url("../../mcd-builder/assets/9057b7890c0add587df95e83b4c981a67d7f8c62.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; }
/* polices de secours aux mêmes dimensions (pas de décalage au chargement) : size-adjust = largeur mesurée dans Chrome
   (phrase type) ; ascent / descent = métriques hhea de la police web (fontTools) divisées par size-adjust */
@font-face { font-family: "Cormorant secours"; src: local("Georgia"); size-adjust: 88.07%; ascent-override: 104.92%; descent-override: 32.59%; line-gap-override: 0%; }
@font-face { font-family: "Karla secours"; src: local("Arial"); size-adjust: 100.65%; ascent-override: 91.11%; descent-override: 25.04%; line-gap-override: 0%; }

/* ---------------------------------------------------------------- charte */

:root {
  --clair: #F4F0E6;
  --sable: #ECE6D7;
  --creme: #F6F1E6;
  --creme-2: #F0ECDD;
  --texte: #2C2A22;
  --texte-doux: #5A564A;
  --vert: #4C5240;
  --vert-fonce: #3A3F31;
  --olive: #989C82;
  --pierre: #D9D1BD;
  --terre: #B05F3C;
  --terre-fonce: #9A4F30;
  --peche: #E2A984;
  --ligne: rgba(44, 42, 34, .06);
  --ligne-clair: rgba(240, 236, 221, .12);
  --texte-clair: rgba(244, 240, 230, .82);

  --serif: "Cormorant Garamond", "Cormorant secours", Georgia, serif;
  --sans: "Karla", "Karla secours", Arial, sans-serif;

  --t-hero: 96px;   --lh-hero: 107.5px;  --ls-hero: .48px;
  --t-h2: 54px;     --lh-h2: 60.5px;     --ls-h2: .27px;
  --t-h3: 40px;     --lh-h3: 44.8px;     --ls-h3: .2px;
  --t-nom: 26px;    --lh-nom: 29.4px;
  --t-chapo: 26px;  --lh-chapo: 42.9px;
  --t-ligne: 24px;  --lh-ligne: 39.6px;
  --t-chiffre: 46px; --lh-chiffre: 51.5px;
  --t-texte: 46px; --lh-texte: 51.5px;
  --ls-texte: .23px;

  --wrap: 1200px;
  --gouttiere: 0px;
  --section: 110px;
  --entete-h: 100px;
}

@media (max-width: 1024px) {
  :root {
    --t-hero: 65px; --lh-hero: 72.5px; --ls-hero: .33px;
    --t-h2: 38px; --lh-h2: 42.6px; --ls-h2: .19px;
    --t-h3: 28px; --lh-h3: 31.4px; --ls-h3: .14px;
    --t-nom: 20px; --lh-nom: 22.4px;
    --t-chapo: 20px; --lh-chapo: 33px;
    --t-ligne: 19px; --lh-ligne: 31.3px;
    --t-chiffre: 32px; --lh-chiffre: 35.8px;
    --t-texte: 32px; --lh-texte: 35.8px;
    --ls-texte: .16px;
    --gouttiere: 28px;
    --section: 80px;
  }
}

@media (max-width: 767px) {
  :root {
    --t-hero: 44px; --lh-hero: 49px; --ls-hero: .22px;
    --t-h2: 34px; --lh-h2: 38px; --ls-h2: .17px;
    --t-chiffre: 30px; --lh-chiffre: 33.6px;
    --t-texte: 30px; --lh-texte: 33.6px;
    --ls-texte: .15px;
    --entete-h: 94px;
  }
}

/* ---------------------------------------------------------------- défilement doux (Lenis) */

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

/* ---------------------------------------------------------------- base */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
/* jamais de défilement horizontal sur mobile (photos agrandies pendant les animations, menus hors écran) :
   overflow-x: clip ne crée pas de conteneur de défilement, la scène épinglée (position: sticky) continue de marcher */
html, body { overflow-x: clip; }
@supports not (overflow: clip) { body { overflow-x: hidden; } }
body {
  margin: 0;
  background: var(--clair);
  color: var(--texte-doux);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 26.4px;
  letter-spacing: var(--ls-texte);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.icone { width: 1em; height: 1em; }

.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gouttiere)); margin: 0 auto; padding: 0 var(--gouttiere); }
.section { padding: var(--section) 0; }
.fond-clair { background: var(--clair); }
.fond-sable { background: var(--sable); }
.fond-creme { background: var(--creme-2); }
.fond-vert { background: var(--vert); color: var(--clair); }
.fond-vert-fonce { background: var(--vert-fonce); color: var(--clair); }
.fond-terre { background: var(--terre); color: var(--clair); }

/* surtitre, titre, texte */
.kicker {
  font-family: var(--sans); font-size: 11.5px; font-weight: 600; line-height: 19px;
  letter-spacing: 2.76px; text-transform: uppercase; color: var(--terre);
}
.kicker--clair, .fond-vert .kicker, .fond-vert-fonce .kicker { color: var(--peche); }
.fond-terre .kicker { color: var(--clair); }
.kicker--peche { color: var(--peche); }
.fond-clair .kicker--peche, .fond-sable .kicker--peche { color: var(--terre); }
.titre {
  font-family: var(--serif); font-size: var(--t-h2); font-weight: 500; line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2); color: var(--texte);
}
.fond-vert .titre, .fond-vert-fonce .titre, .fond-terre .titre { color: var(--clair); }
.kicker + .titre { margin-top: 24px; }
.prose { font-size: 18px; line-height: 29.7px; }
/* texte venu d'un éditeur : chaque paragraphe garde sa marge basse (0,9 rem), comme sur le site */
.txt > p, .txt > ul, .txt > ol, .hero__texte, .entete__texte { margin-bottom: 14.4px; }
.titre + .prose { margin-top: 24px; }
.prose--petite { font-size: 16px; line-height: 26.4px; }
.prose strong { font-weight: 600; color: var(--texte); }
.fond-vert .prose strong, .fond-terre .prose strong { color: inherit; }
.prose a { text-decoration: underline; text-underline-offset: 2px; }

/* boutons */
.boutons { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 15px 30px; border-radius: 5px; border: 1px solid transparent;
  background: var(--terre); color: var(--clair);
  font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 20.6px;
  letter-spacing: 2.25px; text-transform: uppercase; text-align: center;
  transition: background-color .3s, color .3s, border-color .3s;
}
.btn:hover { background: var(--terre-fonce); }
.btn--contour { background: transparent; border-color: var(--texte); color: var(--texte); }
.btn--contour:hover { background: var(--texte); color: var(--clair); }
.btn--contour-clair { background: transparent; border-color: var(--clair); color: var(--clair); }
.btn--contour-clair:hover { background: var(--clair); color: var(--texte); }
.btn--clair { background: var(--clair); color: var(--terre); }
.btn--clair:hover { background: var(--creme); color: var(--terre-fonce); }
.fond-vert .btn--contour, .fond-vert-fonce .btn--contour { border-color: var(--clair); color: var(--clair); }
.lien {
  display: inline-block; font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 20.6px;
  letter-spacing: 2.25px; text-transform: uppercase; color: var(--terre);
}
.lien:hover { color: var(--terre-fonce); }

/* puces carrées */
.puce { width: 8px; height: 8px; flex: none; color: var(--terre); }
.puces li { display: flex; gap: 12px; align-items: baseline; }
.puces .puce { transform: translateY(-1px); }

/* ---------------------------------------------------------------- en-tête du site */

.site-entete__barre {
  position: fixed; inset: 0 0 auto 0; z-index: 50; height: var(--entete-h);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 32px;
  color: var(--creme); transition: background-color .35s, box-shadow .35s, height .35s;
}
.site-entete.is-colle .site-entete__barre { background: rgba(244, 240, 230, .96); box-shadow: 0 1px 0 rgba(44, 42, 34, .08); color: var(--texte); height: 95px; }
.site-entete__gauche { display: flex; align-items: center; gap: 24px; }
.site-entete__menu { display: inline-flex; align-items: center; gap: 12px; font-size: 12.5px; font-weight: 600; line-height: 24px; letter-spacing: 2.25px; text-transform: uppercase; color: inherit; }
.burger { width: 24px; height: 14px; }
.site-entete .logo { width: auto; }
.site-entete__logis .logo { height: 40px; }
.site-entete__logo .logo { height: 54px; transition: height .35s; }
.site-entete.is-colle .site-entete__logo .logo { height: 49px; }
.site-entete.is-colle .site-entete__logis .logo { height: 39px; }
.logo--sombre, .site-entete.is-colle .logo--clair { display: none; }
.site-entete.is-colle .logo--sombre { display: block; }
.site-entete__droite { display: flex; align-items: center; justify-content: flex-end; gap: 24px; }
.site-entete__tel { font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; }
.site-entete__resa { padding: 11px 22px; color: #fff; }

/* sélecteur de langue (comme le menu déroulant du site) : la langue affichée (aria-current, posée par MCD Builder),
   un clic ouvre la liste des autres langues juste en dessous */
.lang-switcher { position: relative; z-index: 2; display: flex; flex-direction: column; min-width: 52px; height: 23px; font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 12.5px; letter-spacing: normal; text-transform: uppercase; }
.lang-switcher a { order: 2; display: none; padding: 5px 10px; color: inherit; }
.lang-switcher a + a { margin-top: .5px; }
.lang-switcher a[aria-current] { order: 1; display: block; position: relative; margin: 0; padding: 5px 27.5px 5px 10px; }
.lang-switcher a[aria-current]::after { content: ""; position: absolute; right: 10px; top: calc(50% - 2px); border: 4px solid transparent; border-top: 6px solid currentColor; border-bottom: 0; }
.lang-switcher.is-ouvert a, .lang-switcher:focus-within a { display: block; }
.no-js .lang-switcher { flex-direction: row; height: auto; }
.no-js .lang-switcher a { display: block; padding: 5px 4px; }
.no-js .lang-switcher a[aria-current]::after { content: none; }

.resa-mobile { display: none; }

@media (max-width: 1024px) {
  .site-entete__barre { padding: 0 28px; }
  .site-entete__tel { display: none; }
}
@media (max-width: 767px) {
  .site-entete__barre { grid-template-columns: 75px 1fr 75px; }
  .site-entete__logis, .site-entete__resa { display: none; }
  .site-entete__logo { justify-self: center; }
  .site-entete__logo .logo { height: 61px; }
  .site-entete__menu span { display: none; }
  .resa-mobile { display: flex; position: fixed; inset: auto 0 0 0; z-index: 40; border-radius: 0; padding: 11px; color: #fff; }
}

/* menu plein écran : le cadre vert entre par la gauche en fondu (1,2 s) sur un voile sombre, comme la fenêtre du site */
.menu { position: fixed; inset: 0; z-index: 60; background: rgba(0, 0, 0, .8); }
.menu[hidden] { display: none; }
.menu__boite {
  position: absolute; inset: 0; display: flex; flex-direction: column; overflow-x: hidden; overflow-y: auto;
  background: var(--vert); color: var(--clair); box-shadow: 2px 8px 23px 3px rgba(0, 0, 0, .2);
  animation: entree-gauche 1.2s ease both;
}
.menu.is-fermeture .menu__boite { animation: sortie-gauche 1.2s ease both; }
@keyframes entree-gauche { from { opacity: 0; transform: translate3d(-100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes sortie-gauche { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate3d(-100%, 0, 0); } }
.menu__haut { display: flex; justify-content: space-between; align-items: center; padding: 24px; }
.menu__logo .logo { width: 157px; height: 54px; }   /* dimensions du site (image légèrement resserrée) */
.menu__outils { display: flex; align-items: center; gap: 24px; }
.menu__fermer { display: flex; width: 34px; height: 34px; padding: 8px; border: 1px solid var(--clair); border-radius: 50%; color: var(--clair); transition: background-color .3s; }
.menu__fermer:hover, .menu__fermer:focus-visible { background-color: var(--texte-doux); }
.menu__fermer svg { width: 16px; height: 16px; }
.menu__corps { position: relative; flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; width: min(var(--wrap), 100% - 48px); margin: 0 auto; padding: 24px 0; }
.menu__ligne { border-bottom: 1px solid var(--ligne-clair); }
.menu__lien, .menu__sous-lien { width: 100%; display: flex; align-items: center; gap: 12px; padding: 6px 0; text-align: left; color: var(--clair); transition: color .25s, padding-left .3s; }
.menu__lien:hover, .menu__lien:focus-visible, .menu__ligne.is-ouvert .menu__lien,
.menu__sous-lien:hover, .menu__sous-lien:focus-visible { padding-left: 14px; color: var(--peche); }
.menu__num, .menu__plus { font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; }
.menu__nom { flex: 1; font-family: var(--serif); font-size: 30px; font-weight: 400; line-height: 49.5px; }
.menu__plus { letter-spacing: 0; transition: transform .3s, color .3s; }
.menu__ligne.is-ouvert .menu__plus { transform: rotate(45deg); }
.menu__photos { position: relative; height: 640px; max-height: 100%; overflow: hidden; }
.menu__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .5s ease; }
.menu__photo.is-active { opacity: 1; }
/* sous-menu : panneau vert foncé posé sur la photo (ordinateur) ou sur la liste (tablette, mobile), fondu + glissement */
.menu__panneau {
  position: absolute; z-index: 10; display: flex; flex-direction: column; justify-content: center; padding: 48px; overflow: hidden;
  background: var(--vert-fonce); opacity: 0; visibility: hidden; transform: translateX(6%);
  transition: opacity .45s ease, transform .45s ease, visibility .45s;
}
.menu__ligne.is-ouvert .menu__panneau { opacity: 1; visibility: visible; transform: none; }
.menu__panneau-titre { margin-bottom: 24px; font-family: var(--sans); font-size: 16px; line-height: 24px; color: var(--peche); }
.menu__sous li:has(.menu__num) { border-bottom: 1px solid var(--ligne-clair); }
.menu__sous-lien:not(:has(.menu__num)) { padding: 0; }
.menu__retour { align-self: flex-start; margin-top: 24px; font-family: var(--sans); font-size: 16px; line-height: 26.4px; letter-spacing: .48px; color: var(--clair); transition: color .25s; }
.menu__retour:hover, .menu__retour:focus-visible { color: var(--peche); }
.menu__bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; padding: 24px; border-top: 1px solid var(--ligne-clair); font-family: var(--sans); font-size: 16px; line-height: 26.4px; letter-spacing: .48px; }
.menu__bas a { transition: color .25s; }
.menu__bas a:hover, .menu__bas a:focus-visible { color: var(--peche); }
@media (max-width: 1024px) {
  .menu__logo .logo { width: 148px; }
  .menu__corps { grid-template-columns: 1fr; width: 100%; padding: 24px; }
  .menu__photos { display: none; }
  .menu__nom { font-size: 22px; line-height: 36.3px; }
  .menu__panneau { inset: 0; padding: 32px; }
  .menu__bas { letter-spacing: .33px; }
}
@media (max-width: 767px) {
  .menu__logo .logo { width: 137px; }
  .menu__fermer { width: 30px; height: 30px; padding: 7px; }
  .menu__fermer svg { width: 14px; height: 14px; }
  .menu__nom { font-size: 20px; line-height: 33px; }
  .menu__panneau { padding: 24px; }
  .menu__bas { gap: 24px; letter-spacing: .22px; }
  .menu__bas > :first-child { flex-basis: 100%; }
}

/* fenêtre de réservation : entre par la droite en fondu (1,2 s) sur un voile sombre, comme sur le site */
.resa { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: var(--vert); color: var(--clair); overflow-y: auto; }
.resa[open] { display: grid; grid-template-columns: 1fr 2fr; animation: entree-droite 1.2s ease both; }
.resa.is-fermeture { animation: sortie-droite 1.2s ease both; }
@keyframes entree-droite { from { opacity: 0; transform: translate3d(100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes sortie-droite { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate3d(100%, 0, 0); } }
.resa::backdrop { background: rgba(0, 0, 0, .8); }
.resa__photo { position: relative; }
.resa__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.resa__corps { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; padding: 60px 24px; }
.resa__fermer { position: absolute; top: 20px; right: 20px; display: flex; width: 15px; height: 15px; color: #333; }
.resa__fermer svg { width: 15px; height: 15px; }
.resa__logo { height: 60px; width: auto; }
.resa__titre { font-family: var(--serif); font-size: 54px; font-weight: 500; line-height: 60.5px; letter-spacing: .27px; text-align: center; color: #fff; }
.resa__form { width: 100%; max-width: 256px; display: grid; gap: 10px; }
.resa__dates { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; background: var(--clair); padding: 18px 20px; border-radius: 2px; cursor: pointer; }
.resa__champ { display: flex; flex-direction: column; gap: 6px; color: var(--texte); }
.resa__champ span { font-size: 11.5px; font-weight: 600; line-height: 1.2; letter-spacing: 2.76px; text-transform: uppercase; color: var(--texte-doux); }
.resa__champ input, .resa__champ select { width: 100%; border: 0; background: transparent; font-family: var(--serif); font-size: 22px; color: var(--texte); padding: 0; }
.resa__champ--adultes { background: var(--clair); padding: 18px 20px; border-radius: 2px; }
.resa__envoi { width: 100%; padding: 11px 10px; border-radius: 0; white-space: nowrap; font-size: 11.5px; line-height: 19px; letter-spacing: 2.3px; }
.resa__champ input::placeholder { color: var(--texte); opacity: 1; }
@media (max-width: 767px) {
  .resa[open] { grid-template-columns: 1fr; }
  .resa__photo { display: none; }
  .resa__titre { font-size: 34px; line-height: 38px; letter-spacing: .17px; }
  .resa__form { max-width: 222px; }
  .resa__dates { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) { .menu__boite, .menu.is-fermeture .menu__boite, .resa[open], .resa.is-fermeture { animation: none; } }

/* ---------------------------------------------------------------- hero (accueil) */

.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; color: var(--clair); background: var(--vert); overflow: hidden; }
.hero__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; background: rgba(44, 42, 34, .3); }
.hero__contenu { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 40px; }
.hero .kicker { color: var(--clair); }
.hero__titre { margin-top: 24px; font-family: var(--serif); font-size: var(--t-hero); font-weight: 500; line-height: var(--lh-hero); letter-spacing: var(--ls-hero); }
.hero__texte { max-width: 840px; margin-top: 24px; font-family: var(--serif); font-size: var(--t-chapo); font-style: italic; line-height: var(--lh-chapo); letter-spacing: normal; }
.hero .boutons { margin-top: 24px; justify-content: center; }
@media (max-width: 767px) {
  .boutons { flex-direction: column; gap: 12px; }
}

/* en-tête de page (photo + titre) */
.entete { position: relative; min-height: 630px; display: flex; align-items: flex-end; color: var(--clair); background: var(--vert); overflow: hidden; }
.entete__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.entete::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(44, 42, 34, .65) 0%, rgba(44, 42, 34, .15) 70%); }
.entete__contenu { position: relative; z-index: 1; padding-bottom: 60px; }
.entete__titre { max-width: 900px; margin-top: 16px; font-family: var(--serif); font-size: var(--t-hero); font-weight: 500; line-height: var(--lh-hero); letter-spacing: var(--ls-hero); }
.entete__texte { max-width: 720px; margin-top: 16px; font-family: var(--serif); font-size: var(--t-chapo); font-style: italic; line-height: var(--lh-chapo); letter-spacing: normal; }
.entete--droit .entete__texte { font-size: var(--t-ligne); font-style: normal; line-height: var(--lh-ligne); letter-spacing: var(--ls-texte); }
.entete--simple { min-height: 0; padding: calc(var(--entete-h) + 80px) 0 40px; background: var(--vert); }
.entete--simple::after { content: none; }
@media (max-width: 767px) {
  .entete { min-height: 591px; padding-top: 180px; }
  .entete--haut { min-height: 675px; }
  .entete__contenu { padding-bottom: 60px; }
}

/* ---------------------------------------------------------------- bandeau qui défile */

.defile { overflow: hidden; background: var(--vert); color: var(--clair); padding: 26px 0; }
.defile__piste { display: flex; gap: 24px; width: max-content; }
.js .defile__piste { animation: defile 48s linear infinite; }
.defile__piste:hover { animation-play-state: paused; }
.defile__liste { display: flex; gap: 24px; flex: none; }
.defile__liste li { display: flex; align-items: center; gap: 12px; white-space: nowrap; font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; }
.defile .puce { width: 6px; height: 6px; color: var(--peche); }
@keyframes defile { to { transform: translateX(calc(-50% - 12px)); } }
.no-js .defile__liste { flex-wrap: wrap; padding: 0 28px; }
@media (prefers-reduced-motion: reduce) { .js .defile__piste { animation: none; } }

/* ---------------------------------------------------------------- intro centrée */

.intro__corps { text-align: center; display: flex; flex-direction: column; align-items: center; }
.intro .prose { max-width: 660px; }
.intro__signature { margin-top: 24px; font-family: var(--serif); font-size: 19px; font-style: italic; line-height: var(--lh-hero); letter-spacing: var(--ls-hero); color: var(--texte); }
.intro .boutons { margin-top: 24px; justify-content: center; }
@media (max-width: 1024px) {
  .intro .prose { max-width: 774px; }
}

/* bande d'appel (fond terre) */
.appel__corps { text-align: center; display: flex; flex-direction: column; align-items: center; }
.appel .prose { margin-top: 24px; max-width: 600px; }
.appel .boutons { margin-top: 24px; justify-content: center; gap: 12px; }
@media (max-width: 1024px) { .appel .prose { max-width: 774px; } }

/* bandeau (texte + bouton, fond vert) */
.bandeau__corps { display: flex; align-items: center; justify-content: space-between; gap: 54px; }
.bandeau__texte { max-width: 640px; }
.bandeau .titre { font-size: var(--t-h3); line-height: var(--lh-h3); }
.bandeau { padding: 80px 0; }
.bandeau .prose { margin-top: 24px; color: var(--texte-clair); }
.bandeau .prose > p { margin: 0; }
@media (max-width: 767px) { .bandeau__corps { flex-direction: column; align-items: flex-start; gap: 24px; } }

/* en-tête de section partagé */
.section__tete { text-align: center; margin: 0 auto 24px; display: flex; flex-direction: column; align-items: center; }
.section__tete .prose { max-width: 660px; }
.section__tete--ligne { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 24px; text-align: left; }

/* ---------------------------------------------------------------- tuiles (photo + texte par-dessus) */

.tuiles { padding-top: 0; }   /* sur le site : tuiles collées en haut de leur section, marge en bas */
.tuiles__grille { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.tuile { position: relative; aspect-ratio: 1; display: flex; align-items: flex-end; overflow: hidden; color: var(--clair); background: var(--vert); }
.tuile__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tuile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(44, 42, 34, 0) 30%, rgba(44, 42, 34, .7) 100%); }
.tuile__corps { position: relative; z-index: 1; padding: 48px; display: flex; flex-direction: column; gap: 12px; }
.tuile__titre { font-family: var(--serif); font-size: var(--t-h3); font-weight: 500; line-height: var(--lh-h3); letter-spacing: var(--ls-h3); }
.tuile__texte { max-width: 344px; }
.tuile .txt > p, .vitrine .txt > p { margin-bottom: 0; }
.tuile__corps .btn { align-self: flex-start; }
.tuile .puces { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; display: grid; gap: 12px; }
.tuile .puce { color: var(--terre); }
.tuile__pied { align-self: stretch; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 24px; border-top: 1px solid var(--ligne-clair); }
.tuile__pied:not(:has(.tuile__prix)) { padding-top: 0; border-top: 0; }
.tuile__prix { font-family: var(--serif); font-size: var(--t-texte); font-weight: 500; line-height: var(--lh-texte); letter-spacing: .23px; }
.tuiles:has(.section__tete) { padding-top: var(--section); }
.tuiles--5 { grid-template-columns: repeat(6, 1fr); }
.tuiles--5 .tuile { grid-column: span 2; }
.tuiles--5 .tuile:nth-child(-n+2) { grid-column: span 3; }
@media (max-width: 1024px) {
  .tuiles__grille { grid-template-columns: 1fr; }
  .tuiles--5 { grid-template-columns: 1fr 1fr; }
  .tuiles--5 .tuile, .tuiles--5 .tuile:nth-child(-n+2), .tuiles--5 .tuile:nth-child(5) { grid-column: span 2; }
  .tuiles--5 .tuile:nth-child(3), .tuiles--5 .tuile:nth-child(4) { grid-column: span 1; }
  .tuile__corps { padding: 32px; }
}
@media (max-width: 767px) {
  .tuile { aspect-ratio: auto; align-items: flex-start; }
  .tuiles--5 { grid-template-columns: 1fr; }
  .tuiles--5 .tuile, .tuiles--5 .tuile:nth-child(n) { grid-column: auto; }
  .tuile__corps { padding: 24px; }
}

/* ---------------------------------------------------------------- vitrine des chambres (accueil) */

.vitrine__tete-section { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 48px; }
.vitrine__appel { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.vitrine__a-partir { font-family: var(--serif); font-size: var(--t-chapo); font-style: italic; line-height: var(--lh-chapo); color: var(--texte); }
.vitrine__show { display: grid; grid-template-columns: 665fr 481fr; gap: 54px; align-items: start; }
.vitrine__photos { position: relative; aspect-ratio: 665 / 560; overflow: hidden; }
.vitrine__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.1s; }
.vitrine__photo { transform: scale(1.09); }
.vitrine__photo.is-active { opacity: 1; transform: scale(1); transition: opacity 1.1s, transform 9s ease-out; }
.vitrine__liste { padding-top: 26px; }
.vitrine__item { position: relative; border-bottom: 1px solid var(--ligne); }
.vitrine__tete { width: 100%; display: flex; align-items: baseline; gap: 24px; padding: 24px 4px; text-align: left; transition: padding .4s; }
.vitrine__item.is-active .vitrine__tete { padding-left: 16px; padding-bottom: 12px; }
.vitrine__num { font-size: 18px; line-height: 29.7px; color: var(--terre); }
.vitrine__nom { flex: 1; font-family: var(--serif); font-size: var(--t-nom); font-weight: 500; line-height: var(--lh-nom); letter-spacing: .13px; color: var(--texte); }
.vitrine__prix { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; }
.vitrine__corps { display: none; padding: 0 4px 24px 16px; }
.vitrine__item.is-active .vitrine__corps, .no-js .vitrine__corps { display: block; }
.vitrine__texte { font-size: 16px; line-height: 26.4px; }
.vitrine__corps .lien { margin-top: 24px; }
.vitrine__barre { position: absolute; left: 0; bottom: -1px; height: 2px; width: 0; background: var(--terre); }
.vitrine__item.is-active .vitrine__barre { animation: barre 6.5s linear forwards; }
@keyframes barre { to { width: 100%; } }
.vitrine__equipements { display: flex; flex-wrap: wrap; gap: 6px 17px; margin-top: 48px; padding-top: 26px; border-top: 1px solid var(--ligne); font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; }
@media (max-width: 1024px) {
  .vitrine__show { grid-template-columns: 1fr; gap: 54px; }
  .vitrine__photos { aspect-ratio: auto; height: 560px; }
  .vitrine__liste { padding-top: 0; }
}
@media (max-width: 767px) {
  .vitrine__tete-section { flex-direction: column; }
  .vitrine__appel { align-self: flex-end; }
  .vitrine__show { gap: 44px; }
  .vitrine__photos { height: 400px; }
}

/* ---------------------------------------------------------------- duo (texte + média) */

.duo__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; align-items: center; }
.duo--inverse .duo__media { order: -1; }
.duo__texte { min-width: 0; }
.duo__texte > * + * { margin-top: 24px; }
.duo__texte > .kicker + .titre { margin-top: 24px; }
.duo__media--portrait .duo__img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.duo__media--collage { position: relative; aspect-ratio: 573 / 675; }
.duo__media--collage .duo__img { position: absolute; object-fit: cover; }
.duo__img--1 { left: 0; top: 0; width: 76%; aspect-ratio: 4 / 5; }
.duo__img--2 { right: 0; top: 38.5%; width: 58%; aspect-ratio: 4 / 5; }
.duo__media--carte iframe { display: block; width: 100%; height: 444px; border: 0; }
/* image carrée jusqu'au bord de l'écran */
.duo--bord { padding: 0; }
.duo--bord .duo__grille { max-width: none; padding: 0; gap: 0; align-items: stretch; }
.duo--bord .duo__texte, .duo--bord.duo--inverse .duo__texte, .duo--bord:not(.duo--inverse) .duo__texte { padding: 72px; align-self: center; }
.duo--bord .duo__media { aspect-ratio: 1; }
.duo--bord .duo__img { width: 100%; height: 100%; object-fit: cover; }
.duo--bord .duo__media--carte { aspect-ratio: auto; min-height: 738px; }
.duo--bord .duo__media--carte + .duo__texte, .duo--bord.duo--inverse:has(.duo__media--carte) .duo__texte { padding: 72px; }
@media (max-width: 1024px) { .duo--bord .duo__media--carte { min-height: 457px; } .duo--bord .duo__media--carte + .duo__texte, .duo--bord.duo--inverse:has(.duo__media--carte) .duo__texte { padding: 72px 44px; } }
@media (max-width: 767px) { .duo--bord .duo__media--carte { min-height: 422px; } .duo--bord.duo--inverse:has(.duo__media--carte) .duo__texte { padding: 36px; } }
.duo--bord .duo__media--carte iframe { height: 100%; }
@media (max-width: 1024px) {
  .duo__grille { grid-template-columns: 1fr; gap: 54px; }
  .duo__media { order: -1; }
  .duo--bord .duo__texte, .duo--bord.duo--inverse .duo__texte, .duo--bord:not(.duo--inverse) .duo__texte { padding: 72px; }
  .duo__media--carte iframe { height: 444px; }
  .duo--texte-avant-t .duo__media, .duo--texte-avant-t.duo--inverse .duo__media { order: 1; }
}
@media (max-width: 1024px) {
  .duo__media--collage { aspect-ratio: auto; height: 750px; }
  .duo__img--1 { height: 100%; aspect-ratio: auto; }
  .duo__img--2 { top: auto; bottom: 0; }
}
@media (max-width: 767px) {
  .duo--texte-avant-t .duo__media, .duo--texte-avant-t.duo--inverse .duo__media { order: -1; }
  .duo--texte-avant .duo__media, .duo--texte-avant.duo--inverse .duo__media { order: 1; }
  .duo--bord .duo__media:not(.duo__media--carte) { aspect-ratio: 1; }
  .duo--bord .duo__texte, .duo--bord.duo--inverse .duo__texte, .duo--bord:not(.duo--inverse) .duo__texte { padding: 36px; }
  .lignes--etapes .ligne { column-gap: 12px; row-gap: 8px; }
  .duo__media--carte iframe { height: 300px; }
  .duo__grille { gap: 44px; }
  .lignes--acces .ligne { gap: 24px; }
  .lignes--acces .ligne__plus { line-height: 22.4px; }
  .duo__media--collage { height: 360px; }
  .duo__img--1 { height: auto; aspect-ratio: 4 / 5; }
  .duo__media--portrait .duo__img { aspect-ratio: 334 / 400; }
  .duo--paysage .duo__media--portrait .duo__img { aspect-ratio: auto; }
  .duo--fond .duo__media--portrait .duo__img { height: 350px; }
}

/* lignes (liste à numéros) */
.lignes { border-top: 0; }
.ligne { display: flex; align-items: baseline; gap: 24px; padding: 15px 0; border-bottom: 1px solid var(--ligne); }
.fond-vert .ligne { border-color: var(--ligne-clair); }
.ligne__num { font-size: 18px; line-height: 29.7px; color: var(--terre); }
.fond-vert .ligne__num { color: var(--peche); }
.ligne__nom { flex: 1; font-family: var(--serif); font-size: var(--t-ligne); line-height: var(--lh-ligne); letter-spacing: .48px; color: var(--texte); }
.fond-vert .ligne__nom { color: var(--clair); }
.ligne__plus { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; text-align: right; }
.fond-vert .ligne__plus { color: var(--texte-clair); }
.lignes--carte .ligne__nom { color: var(--texte-doux); }
.fond-vert .lignes--carte .ligne__nom { color: var(--clair); }
.lignes--acces .ligne { align-items: baseline; }
.lignes--acces .ligne__nom { flex: none; font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; color: var(--texte-doux); }
.lignes--acces .ligne__plus { flex: 1; white-space: nowrap; font-size: 16px; font-weight: 400; line-height: 26.4px; letter-spacing: .48px; text-transform: none; text-align: left; }
.lignes--etapes { display: grid; gap: 24px; }
.lignes--etapes .ligne { display: grid; grid-template-columns: auto 1fr; column-gap: 24px; row-gap: 4px; border: 0; padding: 0; }
.lignes--etapes .ligne__num { letter-spacing: .48px; }
.lignes--etapes .ligne__nom { font-size: var(--t-nom); font-weight: 500; line-height: var(--lh-nom); letter-spacing: .13px; color: var(--texte); }
.lignes--etapes .ligne__plus { display: block; grid-column: 2; text-align: left; text-transform: none; letter-spacing: .48px; font-size: 16px; font-weight: 400; line-height: 26.4px; color: var(--texte); }
@media (max-width: 1024px) and (min-width: 768px) { .duo--lignes-etapes .duo__grille { grid-template-columns: 1fr 1fr; } .duo--lignes-etapes .duo__media { order: 0; } }
@media (max-width: 767px) {
  .ligne__plus { display: none; }
  .lignes--acces .ligne, .lignes--etapes .ligne { flex-direction: column; gap: 24px; }
  .lignes--acces .ligne__plus { line-height: 22.4px; }
  .lignes--acces .ligne__plus, .lignes--etapes .ligne__plus { display: block; white-space: normal; }
}

/* encadré « note » */
.note { display: flex; align-items: center; gap: 24px; padding: 24px; background: var(--sable); border: 1px solid var(--ligne); }
.note__titre { flex: none; font-family: var(--serif); font-size: 19px; font-style: italic; color: var(--texte-doux); }
.note__texte { font-size: 16px; line-height: 26.4px; }
@media (max-width: 767px) { .note { flex-direction: column; align-items: flex-start; gap: 0; } .note__titre { line-height: var(--lh-hero); } }

/* chiffres */
.chiffres { display: flex; justify-content: space-between; gap: 24px; }
.chiffre { display: flex; flex-direction: column-reverse; align-items: center; gap: 8px; }
.chiffre__nombre { font-family: var(--serif); font-size: var(--t-chiffre); line-height: var(--lh-chiffre); color: var(--texte-doux); }
.chiffre__libelle { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; }
@media (max-width: 767px) { .chiffres { flex-wrap: wrap; } .chiffre { width: calc(50% - 12px); } }

/* puces sur deux colonnes, formules, coordonnées */
.puces--deux { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; color: var(--texte); }
.duo--bord .titre { font-size: var(--t-texte); line-height: var(--lh-texte); letter-spacing: .23px; }
.puces--petites { display: grid; gap: 6px; font-size: 13px; line-height: 21px; }
.formules { display: grid; gap: 25px; }
.formule { min-height: 128px; align-content: center; }
@media (max-width: 1024px) { .formules { gap: 24px; } .formule { min-height: 93px; } }
@media (max-width: 767px) { .formule { min-height: 90px; } .duo--bord .duo__grille:has(.formules) .duo__media { aspect-ratio: auto; height: 300px; } }
.formule { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; }
.formule .puce { margin-top: 10px; }
.formule__titre { font-family: var(--serif); font-size: 19px; font-style: italic; color: var(--texte); }
.formule__texte { grid-column: 2; font-size: 11.5px; font-weight: 600; letter-spacing: 2.76px; text-transform: uppercase; }
.contacts { display: grid; }
.contacts__ligne { padding: 12px 0; border-bottom: 1px solid var(--ligne); }
.contacts dt { display: flex; align-items: center; gap: 12px; font-size: 18px; line-height: 29.7px; color: var(--texte); }
.contacts dd { font-size: 16px; line-height: 26.4px; color: var(--texte); }
.contacts dd a { color: var(--terre); }
@media (max-width: 1024px) and (min-width: 768px) { .contacts { grid-template-columns: 1fr 1fr; column-gap: 24px; } }

/* ---------------------------------------------------------------- cartes (photo + texte en dessous) */

.cartes__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cartes--2 { grid-template-columns: repeat(2, 1fr); }
.cartes--4 { grid-template-columns: repeat(4, 1fr); }
.carte { display: flex; flex-direction: column; }
.carte__media { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.carte__corps { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 32px; flex: 1; background: var(--clair); }
.carte__sur { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--terre); }
.cartes--autres .carte__sur { font-family: var(--serif); font-size: 19px; font-weight: 400; font-style: italic; line-height: var(--lh-hero); letter-spacing: .48px; text-transform: none; color: var(--texte-doux); }
.carte__titre { font-family: var(--serif); font-size: var(--t-nom); font-weight: 500; line-height: var(--lh-nom); letter-spacing: .13px; color: var(--texte); }
.carte__texte { font-size: 16px; line-height: 26.4px; }
.carte__texte > p { margin: 0; }
.fond-vert-fonce .carte__corps { background: var(--vert); color: var(--clair); }
.fond-vert-fonce .carte__sur, .fond-vert-fonce .carte .lien { color: var(--peche); }
.fond-vert-fonce .carte__titre { color: var(--clair); }
@media (max-width: 1024px) {
  .cartes__grille, .cartes--4 { grid-template-columns: 1fr; }
  .cartes--2 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .cartes__grille, .cartes--2, .cartes--4 { grid-template-columns: 1fr; }
  .section__tete--ligne { flex-direction: column; align-items: flex-start; }
}

/* ---------------------------------------------------------------- page Chambres : les 5 chambres (scène épinglée) */

.nids { position: relative; background: var(--vert); color: var(--clair); }
.js .nids { height: calc(var(--nids, 5) * 100vh); }
.nids__scene { position: relative; }
.js .nids__scene { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.nids__photos { position: absolute; inset: 0; }
.nids__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity 1.1s ease, transform 7s ease-out; }
.nids__photo.is-active { opacity: 1; transform: scale(1); }
.nids__voile { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(44, 42, 34, .72) 0%, rgba(44, 42, 34, .45) 60%, rgba(44, 42, 34, .35) 100%); }
.nids__liste { position: relative; height: 100%; }
.nid { display: flex; align-items: center; padding-left: 28px; }
.js .nid { position: absolute; inset: 0 var(--gouttiere); opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; pointer-events: none; }
.js .nid.is-active { opacity: 1; transform: none; pointer-events: auto; }
.nid__photo { display: none; }
.nid__corps { max-width: 840px; display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.nid__compteur { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--peche); }
.nid__nom { font-family: var(--serif); font-size: var(--t-h2); font-weight: 500; line-height: var(--lh-h2); letter-spacing: var(--ls-h2); }
.nid__prix { font-family: var(--serif); font-size: var(--t-chapo); font-style: italic; line-height: var(--lh-chapo); }
.nid__texte { font-size: 16px; line-height: 26.4px; color: var(--clair); }
.nid__texte > p { margin: 0; }
.nid .boutons { gap: 24px; }
.nids__progression { position: absolute; top: 50%; right: calc(max(var(--gouttiere), (100vw - var(--wrap)) / 2) + 80px); transform: translateY(-50%); display: flex; flex-direction: column; gap: 10px; }
.nids__pas { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 600; letter-spacing: 1px; opacity: .45; transition: opacity .3s; cursor: pointer; }
.nids__pas.is-active { opacity: 1; }
.nids__barre { width: 34px; height: 1px; background: rgba(244, 240, 230, .3); }
.nids__barre span { display: block; height: 100%; width: 0; background: var(--clair); }
.nids__pas.is-active .nids__barre span { width: 100%; transition: width .5s ease; }
/* sans JS : les chambres l'une sous l'autre */
.no-js .nids__photos, .no-js .nids__voile, .no-js .nids__progression { display: none; }
.no-js .nid { padding: 60px 0; flex-direction: column; align-items: flex-start; gap: 24px; }
.no-js .nid__photo { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
@media (max-width: 767px) {
  .nids__progression { left: 28px; right: auto; top: auto; bottom: 90px; transform: none; flex-direction: row; }
  .nids__num { display: none; }
}

/* ---------------------------------------------------------------- FAQ */

.faq__corps { display: flex; flex-direction: column; align-items: center; text-align: center; }
.faq__corps > .prose { max-width: 660px; }
.faq__liste { width: 70%; margin-top: 24px; text-align: left; }
.faq__item { border-bottom: 1px solid var(--ligne); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 24px 4px; cursor: pointer; list-style: none; }
@media (max-width: 1024px) { .faq__liste { width: 80%; } }
@media (max-width: 767px) { .faq__liste { width: 100%; } }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__question { font-family: var(--serif); font-size: var(--t-ligne); font-weight: 400; line-height: var(--lh-ligne); color: var(--texte); transition: color .3s; }
.faq__item summary:hover .faq__question { color: var(--terre); }
.faq__signe { width: 9px; height: 9px; flex: none; color: var(--terre); }
.faq__item[open] .faq__signe .faq__v { display: none; }
.faq__reponse { padding: 0 4px 24px; font-size: 16px; line-height: 26.4px; }

/* ---------------------------------------------------------------- fiches chambres */

.equipements .kicker, .equipements .titre { text-align: center; }
.equipements__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; margin-top: 24px; }
.equipements__titre { padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--terre); font-family: var(--serif); font-size: var(--t-ligne); font-weight: 400; line-height: var(--lh-ligne); letter-spacing: .22px; color: var(--terre); }
.equipements .puces { gap: 13px; font-size: 16px; line-height: 26.4px; color: var(--texte); }
.equipements .puces li { gap: 13px; }
@media (max-width: 767px) { .equipements__grille { grid-template-columns: 1fr; } }

.resume__grille { display: grid; grid-template-columns: 686fr 458fr; gap: 56px; align-items: start; }
.resume__chiffre { display: flex; align-items: flex-end; gap: 12px; margin-top: 24px; }
.resume__nombre { font-family: var(--serif); font-size: var(--t-texte); font-weight: 500; line-height: var(--lh-texte); letter-spacing: .23px; color: var(--texte); }
.resume__unite { padding-bottom: 6px; font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; }
.resume__liste { width: 100%; max-width: none; margin-top: 24px; }
.resume__panneau { background: var(--sable); padding: 32px; display: flex; flex-direction: column; gap: 24px; }
.resume__label { font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; color: var(--texte); }
.resume__texte { font-size: 16px; line-height: 26.4px; color: var(--texte); }
.pastilles { display: flex; flex-wrap: wrap; gap: 12px; }
.pastilles li { padding: 7px 14px; border: 1px solid var(--texte-doux); font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--texte); }
@media (max-width: 1024px) { .resume__grille { grid-template-columns: 1fr; } .resume__panneau { margin-top: 0; } }

.comparatif__corps { display: flex; flex-direction: column; align-items: center; text-align: center; }
.comparatif__corps > .prose { max-width: 600px; }
.comparatif__table { width: max-content; max-width: 100%; margin: 24px 0; overflow-x: auto; }
/* comme sur le site : styles de tableau par défaut du thème par-dessus les siens : filets gris, lignes impaires teintées, police système dans les cellules */
.comparatif table { width: max-content; min-width: 720px; border-collapse: collapse; background: var(--clair); text-align: left; color: var(--texte); }
.comparatif th, .comparatif td { border: 1px solid rgba(128, 128, 128, .5); line-height: 1.5; }
.comparatif thead th { padding: 16px 20px; border-bottom: 2px solid var(--terre); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texte-doux); }
.comparatif thead th:first-child, .comparatif tbody th { padding-left: 24px; }
.comparatif tbody th, .comparatif tbody td { padding: 18px 20px; border-bottom: 1px solid var(--ligne); font-size: 15px; vertical-align: middle; }
.comparatif tbody td { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; letter-spacing: normal; color: var(--texte-doux); }
.comparatif tbody tr:nth-child(odd) > * { background: rgba(128, 128, 128, .07); }
.comparatif tbody th { font-family: var(--serif); font-size: 19px; font-weight: 600; white-space: nowrap; }
.comparatif tbody tr:last-child > * { border-bottom: 0; }
.comparatif tbody th a:hover { color: var(--terre); }
.comparatif tr.is-courante { background: rgba(176, 95, 60, .1); }
.comparatif tr.is-courante th { color: var(--terre); }
.comparatif__badge { margin-left: 10px; font-family: var(--sans); font-size: 10.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--terre); }
@media (max-width: 1024px) { .comparatif__table, .comparatif table { width: 100%; } }
@media (max-width: 767px) { .comparatif table { min-width: 600px; } .comparatif tbody th, .comparatif tbody td, .comparatif thead th { padding: 14px; font-size: 13.5px; } .comparatif thead th:first-child, .comparatif tbody th { padding-left: 24px; } .comparatif tbody th { font-size: 16px; } }

/* carrousel photo (fondu + vignettes) */
.carrousel { background: var(--clair); }
.carrousel { height: 806px; display: flex; flex-direction: column; }
.carrousel__scene { position: relative; flex: 1; overflow: hidden; }
.carrousel__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .5s; }
.carrousel__img.is-active { opacity: 1; }
.no-js .carrousel__img:first-child { opacity: 1; }
.carrousel__fleche { position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; width: 40px; height: 40px; color: var(--clair); }
.carrousel__fleche--prec { left: 12px; }
.carrousel__fleche--suiv { right: 12px; }
.carrousel__vignettes { display: flex; gap: 6px; padding: 12px 0 0; overflow-x: auto; }
.carrousel__vignette { flex: 0 0 270px; }
.carrousel__vignette { opacity: .7; transition: opacity .3s; }
.carrousel__vignette.is-active { opacity: 1; }
.carrousel__mini { width: 100%; height: 112px; object-fit: cover; }
@media (max-width: 1024px) { .carrousel { height: 769px; } }
@media (max-width: 767px) { .carrousel { height: 696px; } .carrousel__vignette { flex-basis: 30%; } }

/* galerie (maçonnerie) */
.galerie .kicker, .galerie .titre { text-align: center; }
.galerie__grille { columns: 3; column-gap: 12px; margin-top: 24px; }
.galerie__lien { display: block; margin-bottom: 12px; break-inside: avoid; }
.galerie__img { width: 100%; }
/* avec JS : grille « maçonnerie » rangée de gauche à droite, comme sur le site */
.galerie__grille.is-macon { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1px; column-gap: 12px; columns: auto; }
.galerie__grille.is-macon .galerie__lien { margin: 0; }
@media (max-width: 1024px) { .galerie__grille { column-gap: 10px; } .galerie__grille.is-macon { column-gap: 10px; } }
@media (max-width: 767px) { .galerie__grille { columns: 1; } .galerie__grille.is-macon { grid-template-columns: 1fr; } }

/* carte et tarifs (liste de prix) */
.menu-carte__feuille { background: var(--clair); padding: 60px; }
.menu-carte__feuille .kicker { color: var(--terre); }
.menu-carte__feuille .titre { color: var(--texte); }
.fond-clair .menu-carte__feuille { background: var(--sable); }
.menu-carte .kicker, .menu-carte .titre { text-align: center; }
.prix__section { margin-top: 24px; }
.prix__partie { padding-bottom: 10px; margin-bottom: 24px; border-bottom: 1px solid var(--terre); font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 20.6px; letter-spacing: 2.25px; text-transform: uppercase; color: var(--terre); }
.prix__ligne { display: grid; grid-template-columns: 1fr auto; column-gap: 24px; row-gap: 12px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--ligne); }
.prix__nom { font-family: var(--serif); font-size: var(--t-nom); font-weight: 500; line-height: var(--lh-nom); letter-spacing: .13px; color: var(--texte); }
.prix__montant { font-family: var(--serif); font-size: var(--t-ligne); line-height: var(--lh-ligne); letter-spacing: .48px; color: var(--terre); text-align: right; }
.prix__detail { grid-column: 1 / -1; font-size: 16px; line-height: 26.4px; color: var(--texte); }
.prix__groupes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 56px; }
.prix__groupe-titre { font-family: var(--serif); font-size: var(--t-ligne); line-height: var(--lh-ligne); letter-spacing: .48px; text-align: center; color: var(--terre); }
/* variante bar à tapas */
.menu-carte--bar .menu-carte__feuille { border-top: 4px solid var(--terre); }
.menu-carte--bar .prix__partie { padding: 0; border: 0; text-align: center; font-size: 11.5px; line-height: 19px; letter-spacing: 2.76px; }
.menu-carte--bar .prix__section > .prix__liste { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.menu-carte--bar .prix__section > .prix__liste .prix__ligne { align-items: start; row-gap: 24px; padding: 24px; background: var(--sable); border: 1px solid var(--ligne); }
.menu-carte--bar .prix__groupe .prix__ligne { padding: 12px 0; }
.menu-carte--bar .prix__groupe .prix__nom { font-size: 19px; font-weight: 400; font-style: italic; line-height: var(--lh-hero); letter-spacing: .48px; }
@media (max-width: 767px) {
  .menu-carte--bar .prix__section > .prix__liste { grid-template-columns: 1fr; }
  .menu-carte--bar .prix__section > .prix__liste .prix__ligne { grid-template-columns: 1fr; }
  .menu-carte--bar .prix__section > .prix__liste .prix__montant { text-align: left; }
  .menu-carte--bar .prix__groupe .prix__nom, .menu-carte--bar .prix__montant, .formule__titre { letter-spacing: .22px; }
}
@media (max-width: 767px) { .menu-carte__feuille { padding: 40px 24px; } .prix__groupes { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- contact */

.coordonnees { padding: 80px 0; }
.coordonnees__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: center; }
.coord__valeur { margin-top: 12px; font-family: var(--serif); font-size: var(--t-nom); font-weight: 500; line-height: var(--lh-nom); letter-spacing: .13px; color: var(--clair); }
.coord__note { margin-top: 12px; font-size: 16px; line-height: 26.4px; color: var(--texte-clair); }
@media (max-width: 1024px) { .coordonnees__grille { grid-template-columns: 1fr; } }

.formulaire__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; align-items: start; }
.formulaire .titre, .titre--moyen { font-size: var(--t-texte); line-height: var(--lh-texte); letter-spacing: .23px; }
.formulaire__texte .prose { font-size: 16px; line-height: 26.4px; }
.formulaire__texte .prose p:last-child { font-family: var(--serif); font-size: 24px; line-height: 39.6px; color: var(--texte); }
.form-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field span { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--terre); }
.field--message { grid-column: 1 / -1; }
.input { width: 100%; height: 41px; padding: 8px 14px; border: 1px solid var(--ligne); background: var(--sable); font: inherit; font-size: 14px; line-height: 23px; color: var(--texte); border-radius: 0; }
textarea.input { height: 100px; resize: vertical; }
.consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; font-size: 13px; line-height: 20px; }
.consent a { text-decoration: underline; }
.formulaire__envoi { display: flex; justify-content: flex-end; margin-top: 12px; }
@media (max-width: 1024px) { .formulaire__grille { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .form-grille { grid-template-columns: 1fr; } }
/* Contact Form 7 */
.wpcf7-form-control-wrap { display: block; }
.wpcf7-not-valid { border-color: var(--terre); }
.wpcf7-not-valid-tip { color: var(--terre-fonce); font-size: .85em; margin-top: .25em; display: block; }
.wpcf7-response-output { margin: 1em 0 0; padding: .75em 1em; border-radius: 5px; }
.wpcf7-form.sent .wpcf7-response-output { background: var(--sable); color: var(--vert-fonce); }
.wpcf7-form.invalid .wpcf7-response-output, .wpcf7-form.failed .wpcf7-response-output { background: #f6e3da; color: var(--terre-fonce); }
.wpcf7-spinner { margin-left: .5em; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }

/* ---------------------------------------------------------------- avis, engagement, atouts */

.avis__corps { text-align: center; }
.avis__widget { margin-top: 24px; text-align: left; }

.engagement__corps { display: flex; flex-direction: column; align-items: center; text-align: center; }
.engagement__corps > .prose { max-width: 600px; }
.engagement__grille { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 24px; text-align: left; }
.engagement__item { min-height: 206px; padding: 30px 34px; border: 1px solid rgba(244, 240, 230, .35); margin: 0 -1px -1px 0; }
.engagement__item .puce { color: var(--peche); }
.engagement__titre { margin-top: 12px; font-family: var(--serif); font-size: var(--t-ligne); font-weight: 400; line-height: var(--lh-ligne); color: var(--clair); }
.engagement__texte { font-size: 14px; line-height: 23px; color: var(--texte-clair); }
.engagement__badge { display: flex; align-items: center; justify-content: center; padding: 30px 34px; background: var(--vert-fonce); }
.engagement__logo { width: 136px; height: auto; }
@media (max-width: 1024px) { .engagement__corps > .prose { max-width: 774px; } .engagement__item { min-height: 196px; } }
@media (max-width: 1024px) { .engagement__grille { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .engagement__grille { grid-template-columns: 1fr; } }

.atouts__corps { text-align: center; }
.atouts__liste { display: grid; margin-top: 24px; text-align: left; }
.atout { display: grid; grid-template-columns: 1fr; align-content: start; }
.atout__titre { font-weight: 400; }
/* grille à cases (comme « Une maison responsable ») */
.atouts--grille { grid-template-columns: repeat(4, 1fr); }
.atouts--grille .atout { min-height: 206px; padding: 30px 34px; border: 1px solid rgba(244, 240, 230, .35); margin: 0 -1px -1px 0; }
.atouts--grille .puce { color: var(--peche); }
.atouts--grille .atout__titre { margin-top: 12px; font-family: var(--serif); font-size: var(--t-ligne); line-height: var(--lh-ligne); color: var(--clair); }
.atouts--grille .atout__texte { font-size: 14px; line-height: 23px; color: var(--texte-clair); }
/* temps de trajet */
.atouts--trajets { grid-template-columns: repeat(4, 1fr); }
.atouts--trajets .atout { min-height: 141px; padding: 31px; border-left: 1px solid var(--ligne-clair); }
.atouts--trajets .atout:first-child { border-left: 0; }
.atouts--trajets .atout__titre { font-family: var(--serif); font-size: var(--t-h3); font-weight: 500; line-height: var(--lh-h3); color: var(--clair); }
.atouts--trajets .atout__texte { margin-top: 12px; font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--texte-clair); }
/* liste à deux colonnes */
.atouts--liste { grid-template-columns: repeat(2, 1fr); column-gap: 24px; }
.atouts--liste .atout { grid-template-columns: auto 1fr; column-gap: 12px; padding: 24px 0; }
.atouts--liste .puce { margin-top: 10px; }
.atouts--liste .atout__titre { font-size: 18px; font-weight: 600; line-height: 29.7px; color: var(--texte); }
.atouts--liste .atout__texte { grid-column: 2; margin-top: 6px; font-size: 16px; line-height: 26.4px; }
@media (max-width: 1024px) { .atouts--grille, .atouts--trajets { grid-template-columns: repeat(2, 1fr); } .atouts--grille .atout { min-height: 171px; } .atouts--trajets .atout { min-height: 128px; } .atouts--trajets { grid-auto-rows: 128px; min-height: 383px; } .atouts--trajets .atout:nth-child(odd) { border-left: 0; } }
@media (max-width: 767px) { .atouts--grille, .atouts--trajets, .atouts--liste { grid-template-columns: 1fr; } .atouts--trajets .atout { border-left: 0; } .atouts--trajets { min-height: 0; } }

/* tarifs Soirée Étape */
.offre-prix { padding-top: 0; }
.offre-prix .kicker, .offre-prix .titre { text-align: center; }
.offre-prix__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.offre-prix__carte { padding: 48px; background: var(--vert); color: var(--clair); display: flex; flex-direction: column; gap: 24px; }
.offre-prix__carte--2 { background: var(--terre); }
.offre-prix__carte .kicker { color: var(--peche); }
.offre-prix__carte--2 .kicker { color: var(--clair); }
.offre-prix__titre { margin-top: -0px; font-family: var(--serif); font-size: var(--t-h3); font-weight: 500; line-height: var(--lh-h3); letter-spacing: var(--ls-h3); }
.offre-prix__texte { font-size: 16px; line-height: 26.4px; color: var(--texte-clair); }
.offre-prix__texte > p { margin: 0; }
.offre-prix__tarifs { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 24px; border-top: 1px solid var(--ligne-clair); }
.offre-prix__tarif dt { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--texte-clair); }
.offre-prix__tarif dd { font-family: var(--serif); font-size: var(--t-h2); font-weight: 500; line-height: var(--lh-h2); }
@media (max-width: 767px) { .offre-prix__grille { grid-template-columns: 1fr; } }

/* prestations séminaires */
.prestations__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.prestation { padding: 32px; border: 1px solid var(--ligne-clair); display: flex; flex-direction: column; gap: 12px; }
.prestation__num { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; color: var(--peche); }
.prestation__titre { font-family: var(--serif); font-size: var(--t-nom); font-weight: 500; line-height: var(--lh-nom); color: var(--clair); }
.prestation__sous, .prestation__texte { font-size: 16px; line-height: 26.4px; letter-spacing: .23px; color: var(--texte-clair); }
.prestation__prix { font-family: var(--serif); font-size: 40px; font-weight: 500; line-height: 44.8px; letter-spacing: .2px; color: var(--clair); }
@media (max-width: 1024px) { .prestations__grille { grid-template-columns: 1fr; } .prestation__prix { font-size: 28px; line-height: 31.4px; } }

/* pages légales (thème WordPress d'origine : fond blanc, intertitres en Karla) */
.texte { background: #fff; }
.prose--legale { display: flex; flex-direction: column; font-size: 16px; line-height: 26.4px; color: var(--texte); }
.prose--legale > p { margin: 0 0 14.4px; }
.prose--legale h2 { margin: 8px 0; font-family: var(--sans); font-size: 32px; font-weight: 500; line-height: 1.2; color: var(--texte); }
.prose--legale h3 { margin: 8px 0; font-family: var(--sans); font-size: 24px; font-weight: 500; line-height: 1.2; color: var(--texte); }
.tableau { overflow-x: auto; margin: 16px 0; }
.tableau table { width: 100%; border-collapse: collapse; font-size: 14px; }
.tableau th, .tableau td { padding: 10px; border: 1px solid var(--pierre); text-align: left; }
.tableau th { background: var(--vert); color: var(--clair); }

/* ---------------------------------------------------------------- pied de page */

.site-pied { background: var(--vert); color: var(--texte-clair); padding: 110px 0 48px; font-size: 16px; line-height: 26.4px; letter-spacing: .48px; }
.site-pied__grille { display: grid; grid-template-columns: repeat(4, 1fr); gap: 44px; }
.site-pied__logo { width: 180px; height: auto; margin-bottom: 12px; }
.site-pied__logis { width: 60px; height: auto; margin-top: 12px; }
.site-pied__contact { margin-top: 8px; }
.site-pied__titre { margin-bottom: 12px; font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--peche); }
.site-pied li + li { margin-top: 4px; }
.site-pied a:hover { color: var(--clair); }
.site-pied__lien { margin-top: 12px; }
.site-pied__bas { display: flex; justify-content: space-between; gap: 24px; margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--ligne-clair); }
.site-pied__legal { display: flex; gap: 24px; }
.site-pied__legal ul { display: flex; gap: 12px; }
.site-pied__legal li + li { margin-top: 0; }
@media (max-width: 1024px) { .site-pied { padding-top: 80px; } .site-pied__grille { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) {
  .site-pied { padding-bottom: 90px; }
  .site-pied__grille { grid-template-columns: 1fr; }
  .site-pied__bas, .site-pied__legal { flex-direction: column; gap: 12px; }
}

/* ---------------------------------------------------------------- animations (GSAP + ScrollTrigger, comme le site)
   Les états de départ sont posés par le JS : sans JS, tout est affiché tel quel. */

[data-dezoom], .duo__media, .carte__cadre { overflow: hidden; }
.carte__cadre { display: block; }
[data-zoom] img { transition: transform 1s; }
[data-zoom]:hover img { transform: scale(1.05); }
.menu-carte--bar .prix__section:first-child { margin-top: 0; }

/* Mobile : surcharges placées après les règles de base */
@media (max-width: 1024px) { .puces--longues { grid-template-columns: 1fr; gap: 23.5px; } }
@media (max-width: 767px) {
  .puces--deux { grid-template-columns: 1fr; gap: 23.5px; }
  .engagement__item { min-height: 198px; }
  .atouts--grille { grid-template-columns: 1fr; }
  .lignes--etapes .ligne { column-gap: 12px; row-gap: 0; }
}

/* ---------------------------------------------------------------- articles (guides des alentours) */

/* guides en tuiles (page Que faire et « À lire aussi ») : 2 grandes, 3 moyennes, puis 2 + 2 grandes */
.tuiles--articles .tuile:nth-child(n) { grid-column: span 2; }
.tuiles--articles .tuile:nth-child(-n+2), .tuiles--articles .tuile:nth-child(n+6) { grid-column: span 3; }
.tuiles--3 { grid-template-columns: repeat(3, 1fr); }
/* les titres d'articles sont longs : la tuile grandit si besoin (overflow: clip garde la hauteur auto), titre plus petit
   sur les tuiles moyennes, dégradé un peu plus sombre pour lire le surtitre sur un ciel clair */
.tuiles--articles .tuile, .tuiles--3 .tuile { overflow: clip; }
.tuiles--articles .tuile::after, .tuiles--3 .tuile::after { background: linear-gradient(180deg, rgba(44, 42, 34, .05) 15%, rgba(44, 42, 34, .78) 100%); }
.tuiles--3 .tuile__corps { padding: 32px; }
.tuiles--3 .tuile__titre { font-size: var(--t-nom); line-height: var(--lh-nom); letter-spacing: .13px; }
@media (min-width: 1025px) {
  .tuiles--articles .tuile:nth-child(n+3):nth-child(-n+5) .tuile__corps { padding: 32px; }
  .tuiles--articles .tuile:nth-child(n+3):nth-child(-n+5) .tuile__titre { font-size: var(--t-nom); line-height: var(--lh-nom); letter-spacing: .13px; }
}
.tuile__titre a { color: inherit; }
.tuile__titre a:hover, .tuile__titre a:focus-visible { color: var(--peche); }
@media (max-width: 1024px) {
  .tuiles--articles { grid-template-columns: 1fr 1fr; }
  .tuiles--articles .tuile:nth-child(n) { grid-column: span 1; }
  .tuiles--articles .tuile:last-child:nth-child(odd) { grid-column: span 2; aspect-ratio: 2 / 1; }
  .tuiles--3 { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .tuiles--articles { grid-template-columns: 1fr; }
  .tuiles--articles .tuile:nth-child(n), .tuiles--articles .tuile:last-child:nth-child(odd) { grid-column: auto; aspect-ratio: auto; }
}
.entete--article .entete__titre { max-width: 980px; }
.article__grille { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; }
.fil { margin-bottom: 24px; font-size: 13px; line-height: 21px; color: var(--texte-doux); }
.fil a { text-decoration: underline; text-underline-offset: 2px; }
.fil a:hover { color: var(--terre); }
.article__meta { font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--terre); }
.chapo { margin: 16px 0 32px; font-family: var(--serif); font-size: var(--t-chapo); font-style: italic; line-height: var(--lh-chapo); color: var(--texte); }
.article-body { max-width: 760px; color: var(--texte-doux); }
.article-body h2 { margin: 48px 0 16px; font-family: var(--serif); font-size: 38px; font-weight: 500; line-height: 42.6px; letter-spacing: .19px; color: var(--texte); scroll-margin-top: 110px; }
.article-body h2:first-child { margin-top: 0; }
.article-body h3 { margin: 28px 0 10px; font-family: var(--serif); font-size: var(--t-ligne); font-weight: 500; line-height: 1.3; color: var(--texte); }
.article-body p, .article-body ul, .article-body ol { margin-bottom: 16px; }
.article-body ul, .article-body ol { padding-left: 22px; }
.article-body ul { list-style: square; }
.article-body ol { list-style: decimal; }
.article-body li { margin-bottom: 6px; }
.article-body li::marker { color: var(--terre); }
.article-body a { color: var(--terre); }
.article-body a:hover { color: var(--terre-fonce); }
.article-body table { width: 100%; margin: 8px 0 24px; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.article-body th, .article-body td { padding: 10px 12px; border-bottom: 1px solid var(--pierre); text-align: left; vertical-align: top; }
.article-body th { font-weight: 600; color: var(--texte); background: var(--sable); }
.article__aside { position: sticky; top: 120px; display: grid; gap: 24px; }
.article__encart { padding: 28px; background: var(--sable); }
.article__encart-titre { margin-bottom: 14px; font-size: 11.5px; font-weight: 600; line-height: 19px; letter-spacing: 2.76px; text-transform: uppercase; color: var(--terre); }
.sommaire ol { display: grid; gap: 10px; padding-left: 18px; list-style: decimal; font-size: 15px; line-height: 1.45; }
.sommaire li::marker { color: var(--terre); }
.sommaire a:hover { color: var(--terre); }
.article__encart--resa { background: var(--vert); color: var(--clair); }
.article__encart--resa .article__encart-titre { color: var(--peche); }
.article__encart--resa p { font-size: 16px; line-height: 26.4px; }
.article__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 18px; }
.lien--clair { color: var(--peche); }
.lien--clair:hover { color: var(--clair); }
@media (max-width: 1024px) {
  .article__grille { grid-template-columns: 1fr; }
  .article__aside { position: static; }
  .article-body h2 { font-size: 32px; line-height: 35.8px; }
}
@media (max-width: 767px) {
  .article-body h2 { font-size: 30px; line-height: 33.6px; }
  .article-body table { font-size: 14px; }
  .article-body th, .article-body td { padding: 8px; }
}
