/* Le Cook's Island House — feuille unique de la maquette (MCD Builder).
   Valeurs relevées sur le site d'origine (charte, règles par élément, getComputedStyle) aux 3 largeurs.
   Points de rupture du site : tablette ≤ 1024 px, mobile ≤ 767 px. */

/* ---------- Charte ---------- */
:root {
  --color-primary: #2E5148;   /* vert */
  --color-secondary: #7DA591; /* sauge (survol des boutons) */
  --color-accent: #C9A84C;    /* or */
  --color-sable: #F1EDE6;     /* fond des pages */
  --color-texte: #000;
  --color-blanc: #fff;
  --color-lien: #c36;         /* liens dans les textes (thème Hello) */
  --font-titre: "Playfair Display", "Playfair secours", Georgia, serif;
  --font-texte: "Inter", "Inter secours", Arial, sans-serif;
  --titre-1: 32px;            /* typographie « primaire » du kit */
  --titre-2: 24px;            /* « secondaire » */
  --titre-24: 24px;           /* texte Inter 24 (citations, questions) */
  --marge: 6vw;               /* marge latérale des sections */
  --ecart-l: 10vw; --ecart-m: 7vw; --ecart-s: 2vw; --ecart-s2: 2vw; --ecart-maison: 5vw;
}
@media (max-width: 1024px) {
  :root { --titre-1: 28px; --titre-2: 20px; --titre-24: 20px; --marge: 4vw;
          --ecart-l: 20vw; --ecart-m: 10vw; --ecart-s: 5vw; --ecart-s2: 5vw; --ecart-maison: 10vw; }
}
@media (max-width: 767px) {
  :root { --titre-1: 24px; --titre-2: 18px; --titre-24: 16px;
          --ecart-l: 30vw; --ecart-m: 15vw; --ecart-s: 7vw; --ecart-s2: 15vw; --ecart-maison: 15vw; }
}

/* ---------- Polices (fichiers locaux, jeu latin) et polices de secours aux mêmes dimensions ---------- */
@font-face { font-family: "Playfair Display"; src: url(../../mcd-builder/assets/655bf2c5121ec8e07b48becb88cb496a799616e9.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url(../../mcd-builder/assets/66462aa4e18f854d1129123261be0dc9dcab7bfd.woff2) format("woff2"); font-weight: 700; font-display: swap; } /* titres de la page Contact */
@font-face { font-family: "Inter"; src: url(../../mcd-builder/assets/3423e58fa0d26ab5c16be25a818a650a4eaa0ef7.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url(../../mcd-builder/assets/b82d5bf9c9b8af18ae2d982db690d78a465743cf.woff2) format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Inter"; src: url(../../mcd-builder/assets/08f520ba7c1b6768cef2d24f8b83ea2ff17c758a.woff2) format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url(../../mcd-builder/assets/712cb0d4f8088946595b37d857486b0d7d0b90cc.woff2) format("woff2"); font-weight: 600; font-display: swap; } /* une phrase de la page Contact */
@font-face { font-family: "Playfair secours"; src: local("Georgia"); size-adjust: 101.4%; ascent-override: 106.7%; descent-override: 24.8%; line-gap-override: 0%; }
@font-face { font-family: "Inter secours"; src: local("Arial"); size-adjust: 106%; ascent-override: 91.4%; descent-override: 22.8%; line-gap-override: 0%; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
/* Défilement doux (Lenis) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
body {
  margin: 0; background: var(--color-sable); color: var(--color-texte);
  font: 400 16px/1.5 var(--font-texte);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4, p, figure, blockquote, ul { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
svg { display: block; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
main { display: block; overflow: clip; }

/* Masqué selon l'écran (comme sur le site) */
@media (min-width: 1025px) { .cache-ordi { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .cache-tablette { display: none !important; } }
@media (max-width: 767px) { .cache-mobile { display: none !important; } }

/* Espaces entre sections */
.ecart-l { margin-top: var(--ecart-l); }
.ecart-m { margin-top: var(--ecart-m); }
.ecart-s { margin-top: var(--ecart-s); }
.ecart-s2 { margin-top: var(--ecart-s2); }
.ecart-maison { margin-top: var(--ecart-maison); }

/* ---------- Typographie ---------- */
.titre { font: 400 var(--titre-1)/1 var(--font-titre); text-transform: uppercase; color: var(--color-texte); }
.titre-2 { font: 400 var(--titre-2)/1 var(--font-titre); text-transform: uppercase; color: var(--color-texte); }
.texte p, .texte ul { margin-bottom: .9rem; }
.texte .p-serre { margin-bottom: 0; }
.texte .p-ligne { margin-bottom: 24px; }
.texte .p-vide-apres, .legal__corps .p-vide-apres { margin-bottom: calc(1.8rem + 24px); }
.legal__corps .p-titre-vide-apres { margin-bottom: calc(.9rem + 50px); }
.texte a, .legal__corps a, .contact a { color: var(--color-lien); }
.texte ul { padding-left: 40px; list-style: disc; margin-bottom: 0; }

/* ---------- Boutons ---------- */
.boutons { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 24px; }
.boutons--lien { min-height: 24px; align-items: center; }
.hero__boutons, .vitrine .boutons { justify-content: center; }
.btn {
  display: inline-block; padding: 12px 30px; border: 2px solid var(--color-accent); background: var(--color-accent);
  color: var(--color-blanc); font: 400 14px/1 var(--font-titre); text-transform: uppercase; text-align: center;
  transition: all .3s;
}
.btn:hover, .btn:focus-visible { background: var(--color-secondary); border-color: var(--color-secondary); }
.btn--contour { background: transparent; border-color: var(--color-blanc); }
.btn--contour:hover, .btn--contour:focus-visible { background: var(--color-blanc); border-color: var(--color-blanc); color: var(--color-texte); }
.btn-lien {
  display: inline-block; padding: 0; border-bottom: 2px solid var(--color-secondary); color: var(--color-texte);
  font: 400 16px/1 var(--font-titre); transition: all .3s;
}

/* ---------- En-tête ---------- */
.entete { position: relative; z-index: 100; margin-bottom: -180px; padding: 24px; }
.entete__barre { display: flex; align-items: center; }
.entete__burger { display: none; align-items: center; gap: 6px; padding-right: 12px; color: var(--color-blanc); font: 400 14px/1 var(--font-titre); text-transform: uppercase; }
.entete__burger svg { height: 24px; width: auto; }
.entete__burger svg path { fill: currentColor; }
.entete__logo { width: 30%; flex: none; }
.entete__logo .logo { width: auto; height: 120px; }
.entete__outils { width: 70%; display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.nav { display: flex; gap: 24px; }
.nav__item { position: relative; display: flex; }
.nav__lien { display: flex; align-items: center; min-height: 48px; color: var(--color-blanc); font: 400 14px/20px var(--font-titre); text-transform: uppercase; transition: color .3s; }
.nav__item--sous > .nav__lien { padding: 12px 30px; border: 2px solid var(--color-blanc); }
.nav__item--sous > .nav__lien:hover, .nav__item--sous > .nav__lien:focus-visible { background: var(--color-blanc); color: var(--color-texte); }
.nav__fleche { display: none; }
.nav__sous {
  position: absolute; top: 100%; left: 0; min-width: 100%; background: var(--color-blanc); display: none; z-index: 2;
}
.nav__item--sous:hover .nav__sous, .nav__item--sous:focus-within .nav__sous { display: block; }
.nav__sous-lien { display: block; padding: 13px 20px; color: #33373d; font: 400 16px/20px var(--font-titre); text-transform: uppercase; white-space: nowrap; }
.nav__sous-lien:hover { background: #3f444b; color: var(--color-blanc); }
/* Sélecteur de langue : la langue de la page (avec la flèche), l'autre langue en dessous au survol */
.lang-switcher { position: relative; }
.lang-switcher a { position: relative; display: block; padding: 5px 29.6px 5px 10px; color: var(--color-blanc); font: 400 14px/14px var(--font-titre); text-transform: uppercase; }
.lang-switcher a[aria-current]::after { content: ""; position: absolute; right: 10px; top: calc(50% - 4px); border: .35em solid transparent; border-top: 7px solid var(--color-blanc); }
.lang-switcher a:not([aria-current]) { position: absolute; top: 100%; left: 0; right: 0; display: none; background: var(--color-blanc); color: var(--color-texte); }
.lang-switcher:hover a:not([aria-current]), .lang-switcher:focus-within a:not([aria-current]) { display: block; }
.lang-switcher a:not([aria-current]):hover { background: #3f444b; color: var(--color-blanc); }
.reseaux { display: flex; gap: 5px; }
.reseaux a { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; color: var(--color-blanc); transition: color .3s; }
.reseaux a:hover { color: var(--color-accent); }
.reseaux svg { width: 25px; height: 25px; fill: currentColor; }
@media (max-width: 1024px) {
  .entete { margin-bottom: -120px; }
  .entete__burger { display: flex; width: 30%; }
  .entete__logo { width: 40%; display: flex; justify-content: center; }
  .entete__logo .logo { height: 70px; }
  .entete__outils { width: 30%; }
  .entete__nav { display: none; }
  .reseaux { gap: 0; }
  .reseaux a { width: 12px; height: 12px; }
  .reseaux svg { width: 12px; height: 12px; }
}
@media (max-width: 767px) {
  .entete { margin-bottom: -116px; padding: 16px; }
  .entete__burger { width: 35%; }
  .entete__burger svg { height: 36px; }
  .entete__logo { width: 30%; }
  .entete__outils { width: 35%; }
}

/* Menu mobile (plein écran) : barre (Fermer, logo, réseaux + Réserver) puis liens centrés ;
   les deux rangées se partagent la hauteur restante, comme le conteneur du site */
.menu-mobile { position: fixed; inset: 0; z-index: 200; display: flex; flex-wrap: wrap; align-content: stretch; background: var(--color-primary); overflow-y: auto; }
.menu-mobile[hidden] { display: none; }
.menu-mobile__barre { width: 100%; display: flex; align-items: center; }
.menu-mobile__fermer { display: flex; align-items: center; gap: 6px; padding-right: 12px; width: 50%; color: var(--color-blanc); font: 400 14px/1 var(--font-titre); text-transform: uppercase; }
.menu-mobile__fermer svg { height: 24px; width: auto; }
.menu-mobile__fermer svg path { fill: #183233; }
.menu-mobile__logo { display: flex; }
.menu-mobile__logo .logo { height: 70px; width: auto; }
.menu-mobile__outils { display: flex; flex-wrap: wrap; justify-content: safe flex-end; align-items: center; gap: 12px; width: 50%; margin-left: auto; }
.menu-mobile__nav { width: 100%; min-height: 90vh; display: flex; flex-direction: column; justify-content: center; padding: 10px; }
.mnav { margin-bottom: 48px; }
.mnav__item { display: flex; flex-wrap: wrap; align-items: center; }
.mnav__item + .mnav__item { margin-top: 48px; }
.mnav__lien, .mnav__sous-lien { display: block; color: var(--color-blanc); font: 400 var(--titre-1)/20px var(--font-titre); text-transform: uppercase; transition: color .3s; }
.mnav__lien:hover, .mnav__sous-lien:hover { color: var(--color-accent); }
.mnav__lien[aria-current] { color: var(--color-texte); }
.mnav__fleche { color: var(--color-blanc); padding: 0 4px; margin-left: 10px; }
.mnav__fleche svg { width: 15px; height: 24px; fill: currentColor; transition: transform .2s; }
.mnav__fleche[aria-expanded="true"] svg { transform: rotate(-180deg); }
.mnav__sous { display: none; width: 100%; }
.mnav__fleche[aria-expanded="true"] + .mnav__sous { display: block; }
.mnav__sous-lien { padding: 13px 20px 13px 24px; }
@media (max-width: 1024px) {
  .menu-mobile { padding: 0 24px; }
  .menu-mobile__barre { justify-content: center; }
  .menu-mobile__fermer { width: 20%; }
  .menu-mobile__logo { width: 40%; justify-content: center; }
  .menu-mobile__outils { width: 40%; margin-left: 0; }
  .menu-mobile__nav { min-height: 75vh; padding: 50px 0 0; }
}
@media (max-width: 767px) {
  .menu-mobile { padding: 0 16px; }
  .menu-mobile__fermer { width: 35%; }
  .menu-mobile__fermer svg { height: 36px; }
  .menu-mobile__logo { width: 30%; }
  .menu-mobile__outils { width: 35%; }
  .menu-mobile__barre { margin-top: -5px; }
  .menu-mobile__nav { min-height: 72vh; padding: 66px 12px 12px; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; align-items: center;
  min-height: 70vh; padding: 6vw; color: var(--color-blanc);
}
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: #000; opacity: .1; }
.hero__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.hero__contenu { display: flex; flex-direction: column; align-items: center; gap: 32px; }
.hero__titre { font: 400 var(--titre-1)/1 var(--font-titre); text-transform: uppercase; text-align: center; color: var(--color-blanc); }
.hero--plein { min-height: 100vh; }
.hero--accueil { min-height: 98vh; justify-content: center; padding: 24px; }
.hero--accueil::before { display: none; }
.hero--accueil .hero__contenu { gap: 20px; width: 100%; }
.hero__logo { width: 360px; max-width: 100%; height: 240px; }
/* accueil : photo à sa taille réelle, calée en haut à gauche (comme le fond du site d'origine, sans « cover ») */
.hero--accueil .hero__media { right: auto; bottom: auto; width: 1920px; height: 1079px; max-width: none; object-fit: cover; }
.hero--bas { min-height: 560px; margin-top: -45px; padding: 0; }
.hero--bas::before { display: none; }
.hero--bas .hero__media { object-position: 0 15px; }
@media (max-width: 1024px) {
  .hero__contenu { gap: 24px; }
  .hero--accueil { min-height: 70vh; }
  .hero--bas { min-height: 620px; }
  .hero--bas .hero__media { object-position: 0 0; }
}
@media (max-width: 767px) {
  .hero__boutons { gap: 12px; }
  .hero--accueil { min-height: 79vh; justify-content: flex-end; padding: 16px; }
  .hero--accueil .hero__boutons { gap: 24px; }
  .hero--bas { min-height: 490px; margin-top: 0; }
  .hero--bas .hero__media { object-position: -147px 0; }
}

/* ---------- Intro (titre + texte + bouton) ---------- */
.intro { display: flex; flex-direction: column; gap: 24px; width: calc((100% - 2 * var(--marge)) / 2); margin-inline: auto; text-align: center; }
.intro--large { width: auto; margin-inline: var(--marge); text-align: left; }
@media (max-width: 1024px) {
  .intro { gap: 16px; width: calc((100% - 2 * var(--marge)) * .8); }
  .intro--large { width: auto; }
}
@media (max-width: 767px) {
  .intro, .intro--maison { gap: 12px; width: auto; margin-inline: var(--marge); }
}

/* ---------- Mosaïque de photos (parallaxe) ---------- */
.mosaique { position: relative; display: flex; gap: 1vw; overflow: hidden; }
.mosaique__col { flex: 1; display: flex; flex-direction: column; gap: 1vw; will-change: transform; }
.mosaique__case { position: relative; overflow: hidden; }
@media (prefers-reduced-motion: no-preference) { .js .mosaique__img { transform: scale(1.18); will-change: transform; } }
.mosaique__case--34 { aspect-ratio: 3 / 4; }
.mosaique__case--43 { aspect-ratio: 4 / 3; }
.mosaique__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mosaique__bouton { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; }
@media (min-width: 1025px) { .mosaique.ecart-l { margin-top: 0; padding-top: var(--ecart-l); } }
@media (max-width: 767px) { .mosaique__col { flex: none; width: 49%; } }

/* ---------- Vitrine (titre + photo + boutons) ---------- */
.vitrine { display: flex; flex-direction: column; gap: 24px; width: calc((100% - 2 * var(--marge)) / 2); margin-inline: auto; text-align: center; }
.vitrine__img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.vitrine .boutons { padding: 10px; gap: 20px; }
@media (max-width: 1024px) { .vitrine { gap: 16px; width: calc((100% - 2 * var(--marge)) * .8); } }
@media (max-width: 767px) { .vitrine { gap: 12px; width: auto; margin-inline: var(--marge); } }

/* ---------- Zigzag (2 textes, 2 photos en quinconce) ---------- */
.zigzag { display: flex; gap: 48px; margin-inline: var(--marge); }
.zigzag__col { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 128px; }
.zigzag__texte { display: flex; flex-direction: column; gap: 24px; text-align: center; }
.zigzag__img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
@media (max-width: 1024px) {
  .zigzag { flex-direction: column; gap: 32px; }
  .zigzag__col { gap: 72px; }
}
@media (max-width: 767px) {
  .zigzag, .zigzag__col { display: contents; }
  .zigzag { display: flex; flex-direction: column; gap: 0; }
  .zigzag__texte--1 { order: 1; }
  .zigzag__media--2 { order: 2; margin-top: 48px; }
  .zigzag__media--1 { order: 3; margin-top: 24px; }
  .zigzag__texte--2 { order: 4; margin-top: 48px; }
  /* accueil : le 2e texte passe avant sa photo en mobile (comme sur le site) */
  .zigzag--texte-avant .zigzag__texte--2 { order: 3; margin-top: 24px; }
  .zigzag--texte-avant .zigzag__media--1 { order: 4; margin-top: 48px; }
}

/* ---------- Duo (texte + photo) ---------- */
.duo { display: flex; align-items: center; gap: 48px; margin-inline: var(--marge); }
.duo > * { flex: 1; min-width: 0; }
.duo--inverse .duo__media { order: -1; }
.duo__texte { display: flex; flex-direction: column; gap: 20px; }
.duo__img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.duo--provisoire .duo__media { flex: 0 0 calc((100% - 48px) * .4557); padding: 10px; }
.duo--provisoire .duo__texte { gap: 24px; text-align: center; }
.duo--provisoire .duo__img { aspect-ratio: auto; }
.duo--symbole .duo__img { width: auto; height: 400px; max-width: 100%; margin-inline: auto; object-fit: contain; }
@media (max-width: 767px) { .duo--symbole .duo__img { height: 300px; } }
@media (max-width: 1024px) {
  .duo { flex-direction: column; align-items: stretch; gap: 32px; }
  .duo--inverse .duo__media, .duo__media { order: 1; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .duo--provisoire { align-items: center; }
  .duo--provisoire .duo__media { order: 0; flex: none; width: 50%; }
  .duo--provisoire .duo__texte { width: 60%; }
}
@media (max-width: 767px) { .duo { gap: 24px; } }
.page-index .duo__texte { text-align: center; }

/* ---------- Cartes des menus (photo + bouton) ---------- */
.cartes-menu { margin-inline: var(--marge); }
.cartes-menu__liste { display: flex; gap: 48px; }
.carte-menu { position: relative; isolation: isolate; flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; aspect-ratio: 4 / 5; padding: 48px; background: var(--color-primary); }
.carte-menu::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--color-primary); opacity: .3; }
.carte-menu__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1024px) {
  .cartes-menu__liste { flex-direction: column; gap: 32px; }
  .carte-menu { position: sticky; top: 145px; padding: 32px; }
}
@media (max-width: 767px) {
  .cartes-menu__liste { gap: 24px; }
  .carte-menu { top: 120px; padding: 24px; }
}

/* ---------- Carte (listes de prix) ---------- */
.carte { display: flex; flex-direction: column; align-items: center; gap: 48px; margin-inline: var(--marge); }
.carte__entete { display: flex; flex-direction: column; gap: 20px; align-items: center; text-align: center; width: 100%; }
.carte__titre { text-align: center; }
.carte__accroche { font: 400 14px/1 var(--font-texte); }
.carte__rangee { display: flex; gap: 48px; width: 100%; }
.carte__col { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.carte__groupe { display: flex; flex-direction: column; gap: 20px; }
.carte__groupe-tete { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.carte__note { font: 400 14px/1 var(--font-texte); text-transform: uppercase; }
.carte__intro, .carte__pied { font: 400 14px/1.5 var(--font-texte); }
.carte__mentions { width: 100%; text-align: center; font: 400 12px/1.6 var(--font-texte); color: #555; }
.prix__item { display: flex; flex-direction: column; }
.prix--ecart-12 .prix__item + .prix__item { margin-top: 12px; }
.prix--ecart-20 .prix__item + .prix__item { margin-top: 20px; }
.prix--ecart-24 .prix__item + .prix__item { margin-top: 24px; }
.prix__ligne { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font: 400 16px/24px var(--font-titre); }
.prix__nom { max-width: 80%; }
.prix__filet { flex-grow: 1; height: 0; margin-inline: 10px; border-bottom: 2px dotted var(--color-texte); }
.prix__montant { flex: none; margin-left: auto; }
.prix--inter .prix__montant { font: 600 16px/24px var(--font-texte); }
.prix__desc { font: 400 14px/1.5 var(--font-texte); }
@media (max-width: 1024px) { .carte { gap: 32px; } }
@media (max-width: 767px) {
  .carte { gap: 24px; }
  .carte__rangee { flex-direction: column; gap: 48px; }
}

/* ---------- Bandeau (photo + titre) ---------- */
.bandeau { position: relative; isolation: isolate; overflow: hidden; display: flex; justify-content: center; align-items: center; min-height: 70vh; padding: 0 var(--marge); }
.bandeau__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.bandeau__titre { color: var(--color-blanc); text-align: center; }
.bandeau--voile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: #000; opacity: .3; }

/* ---------- Privatisation ---------- */
.chiffres { display: flex; flex-direction: column; align-items: center; gap: 48px; margin-inline: var(--marge); }
.chiffres__grille { display: flex; gap: 20px; width: 100%; padding: 10px; }
.chiffres__col { flex: 0 0 calc((100% - 40px) * .2317); display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 10px; text-align: center; }
.chiffres__col--texte { flex: 1; }
.titre-seul { margin-inline: var(--marge); text-align: center; }
.espaces { display: flex; flex-direction: column; gap: 6vw; margin-inline: var(--marge); }
.espace { display: flex; gap: 2%; }
.espace > * { flex: 0 0 49%; min-width: 0; }
.espace--inverse .espace__media { order: 1; }
.espace__img { width: 100%; height: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.espace__texte { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; padding: 48px; text-align: center; }
.puces li { display: flex; align-items: center; gap: 5px; }
.puces svg { width: 7px; height: 14px; fill: var(--color-texte); }
.diapos { margin-inline: var(--marge); overflow: hidden; }
.diapos__piste { display: flex; }
.diapo { flex: 0 0 100%; display: flex; gap: 4vw; padding-left: 4vw; }
.js .diapo { transition: transform .5s; }
.diapo__texte { width: calc((100% - 4vw) * .4); flex: none; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 20px; }
.diapo__media { flex: 1; min-width: 0; }
.diapo__img { width: 100%; height: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
@media (max-width: 1024px) {
  .chiffres { gap: 32px; }
  .chiffres__col { flex-basis: calc((100% - 40px) * .2404); }
}
@media (max-width: 767px) {
  .chiffres { gap: 24px; }
  .chiffres__grille { flex-direction: column; }
  .chiffres__col { flex-basis: auto; }
  .diapo { flex-direction: column; gap: 4vw; padding-left: 0; }
  .diapo__texte { width: 100%; justify-content: flex-start; padding: 0 4vw; }
  .diapo__media { flex: none; }
}

/* ---------- Galerie (affiches) ---------- */
.galerie { display: flex; flex-direction: column; align-items: center; gap: 48px; margin-inline: var(--marge); }
.galerie__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
.galerie__lien { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.galerie__lien::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0); transition: background .3s; }
.galerie__lien:hover::after { background: rgba(0, 0, 0, .5); }
.galerie__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1024px) { .galerie { gap: 32px; } }
@media (max-width: 767px) { .galerie { gap: 24px; } .galerie__grille { grid-template-columns: 1fr; } }
.visionneuse { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .87); }
.visionneuse img { max-width: 90vw; max-height: 90vh; width: auto; }
.visionneuse__fermer { position: absolute; top: 15px; right: 15px; width: 40px; height: 40px; color: #fff; }

/* ---------- Blog ---------- */
.entete-lien { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-inline: var(--marge); }
.citations { display: flex; flex-direction: column; }
.citation { display: flex; align-items: center; gap: 48px; margin-inline: var(--marge); }
.citation + .citation { margin-top: var(--ecart-m); }
.citation--inverse .citation__logo { order: -1; }
.citation__corps { flex: 1; display: flex; flex-direction: column; gap: 12px; }
.citation__source { font: 400 16px/1 var(--font-titre); }
.citation__p { font: 400 var(--titre-24)/1.5 var(--font-texte); }
.citation__logo { flex: none; width: 93px; height: 147px; object-fit: contain; }
@media (max-width: 1024px) { .citation__logo { width: 104px; } }
.entete-2col { display: flex; align-items: center; gap: 48px; margin-inline: var(--marge); }
.entete-2col > * { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.posts { display: flex; gap: 1vw; overflow: hidden; }
.posts__liste { flex: 0 0 55%; padding: 30px 0; }
.posts__liste--2 { flex: 0 0 45%; }
.posts__vide { text-align: center; font: 400 var(--titre-2)/1.5 var(--font-titre); text-transform: uppercase; }
.faq__titre { width: 64%; margin-inline: auto; text-align: center; }
.faq { margin-inline: var(--marge); }
.faq__liste { width: 60%; margin-inline: auto; }
.faq__item { border: 0; }
.faq__item + .faq__item { margin-top: 16px; }
.faq__q { display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__question { font: 400 var(--titre-24)/1.5 var(--font-texte); }
.faq__icone svg { width: 11px; height: 12px; fill: #97D1CF; }
.faq__icone--moins, .faq__item[open] .faq__icone--plus { display: none; }
.faq__item[open] .faq__icone--moins { display: block; }
.faq__item[open] .faq__icone--moins svg { fill: #D38A17; }
.faq__reponse { padding: 10px 0; font: 400 14px/1.5 var(--font-texte); }
@media (max-width: 1024px) {
  .entete-lien { gap: 32px; }
  .citation, .entete-2col { flex-direction: column; align-items: flex-start; gap: 32px; }
  .faq__titre { width: auto; } .faq__liste { width: 80%; }
  .posts__liste, .posts__liste--2 { flex-basis: 100%; }
}
@media (max-width: 767px) {
  .entete-lien { gap: 24px; }
  .citation, .entete-2col { gap: 24px; }
  .faq__liste { width: 100%; }
  .posts { flex-direction: column; gap: 4px; }
}

/* ---------- Modèle d'article (08/11 : sur le modèle des articles de Cook's Bay) ----------
   En-tête photo, colonne de lecture de 720 px, sommaire collant à droite, encart « Réserver une table » commun. */
.categorie { font-weight: 700; }
.hero--article { min-height: 78vh; padding-bottom: 72px; }
.hero--article::before { opacity: 1; background: linear-gradient(to top, rgba(20, 38, 33, .85), rgba(20, 38, 33, .1) 65%, rgba(20, 38, 33, .35)); }
.hero--article .hero__contenu { width: min(880px, 100%); gap: 16px; }
.hero--article .hero__titre { font-size: clamp(30px, 3.4vw, 48px); 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 { color: var(--color-accent); }
.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;
  margin: var(--ecart-m) var(--marge) 0; }
.article-body { font-size: 18px; line-height: 1.75; color: #1d2723; }
.article-body > * + * { margin-top: 1.1em; }
.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; font: 400 28px/1.25 var(--font-titre); text-transform: uppercase; color: var(--color-primary); }
.article-body h2::before { content: ""; display: block; width: 48px; height: 2px; margin-bottom: 20px; background: var(--color-accent); }
.article-body h3 { scroll-margin-top: 130px; margin-top: 40px; font: italic 700 22px/1.3 var(--font-titre); color: var(--color-primary); }
.article-body h2 + *, .article-body h3 + * { margin-top: 16px; }
.article-body li + li { margin-top: .5em; }
.article-body strong { color: var(--color-primary); }
.article-body a:not(.btn) { color: var(--color-primary); text-decoration: underline; text-decoration-color: var(--color-accent); 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 li { position: relative; padding-left: 26px; }
.article-body ul > li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 8px; height: 8px; border-radius: 50%; background: var(--color-accent); }
.article-body ol { padding-left: 1.4em; list-style: decimal; }
.article-body ol > li { padding-left: 6px; }
.article-body img { width: 100%; height: auto; margin-block: 32px; }
.article-body figcaption { margin-top: -20px; font-size: 14px; color: #5d6662; }
.article-body table { width: 100%; margin-block: 32px; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.article-body th { padding: 12px 16px; background: var(--color-primary); color: var(--color-blanc); font: 400 13px/1.3 var(--font-titre); text-transform: uppercase; letter-spacing: 1px; text-align: left; }
.article-body td { padding: 12px 16px; border-bottom: 1px solid #ddd5c8; }
.article-body tbody tr:nth-child(even) { background: rgba(255, 255, 255, .5); }
.article-body blockquote { margin-block: 40px; padding: 8px 0 8px 28px; border-left: 3px solid var(--color-accent); font: italic 400 24px/1.5 var(--font-titre); color: var(--color-primary); }
.article-body details { padding: 20px 0; border-bottom: 1px solid #ddd5c8; }
.article-body summary { cursor: pointer; font-weight: 600; color: var(--color-primary); }

.article-aside { position: sticky; top: 140px; grid-row: 1 / span 2; grid-column: 2; }
.article-aside:has(.sommaire:empty) { display: none; }
.article-aside__titre { padding-bottom: 16px; border-bottom: 2px solid var(--color-accent); color: var(--color-primary);
  font: 400 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: #5d6662; font: 400 14px/1.45 var(--font-texte); transition: color .3s, border-color .3s; }
.sommaire a:hover, .sommaire a.is-actif { border-left-color: var(--color-accent); color: var(--color-primary); }
.sommaire a.is-actif { font-weight: 600; }

.article-encart { grid-column: 1; margin-top: 72px; padding: 56px 48px; border-top: 4px solid var(--color-accent); background: var(--color-primary); color: var(--color-blanc); text-align: center; }
.article-encart__titre { font: 400 28px/1.25 var(--font-titre); text-transform: uppercase; }
.article-encart > * + * { margin-top: 16px; }
.article-encart .boutons { justify-content: center; margin-top: 28px; }
@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; font-size: 24px; }
  .article-body h3 { font-size: 20px; }
  .article-body blockquote { font-size: 20px; }
  .article-body table { display: block; overflow-x: auto; font-size: 14px; }
  .article-encart { padding: 40px 24px; }
}

/* ---------- Actualités : liste des articles (08/11 : comme l'actualité de Cook's Bay) ----------
   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; margin-inline: var(--marge); }
.actus__une { position: sticky; top: 130px; }
.carte-article { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: var(--color-primary); color: var(--color-blanc); }
.actus__une .carte-article { aspect-ratio: 1; padding: 48px; }
.carte-article__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; 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(20, 38, 33, .92), rgba(20, 38, 33, .55) 45%, rgba(20, 38, 33, .05) 80%); }
.carte-article__texte { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.carte-article__meta { font: 400 12px/1.5 var(--font-texte); text-transform: uppercase; letter-spacing: 1px; }
.carte-article__titre { font: 400 var(--titre-1)/1.15 var(--font-titre); text-transform: uppercase; }
.carte-article__titre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }   /* toute la carte est cliquable */
.carte-article__extrait { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 15px; line-height: 1.5; }
.carte-article__lien { position: relative; z-index: 2; color: inherit; font-size: 14px; text-transform: uppercase; }
.carte-article__lien:hover { color: var(--color-accent); border-color: var(--color-accent); }
.actus__une .carte-article__meta .categorie { color: var(--color-accent); }
.actus__grille { display: flex; flex-direction: column; }
.actus__grille .carte-article { flex-direction: row; align-items: center; gap: 28px; padding: 24px 0; border-bottom: 1px solid #ddd5c8;
  overflow: visible; background: none; color: var(--color-texte); }
.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: #9a7b2c; }
.actus__grille .carte-article__titre { font-size: 22px; line-height: 1.25; color: var(--color-primary); }
.actus__grille .carte-article__extrait { color: #3d4642; }
/* aucun article publié : MCD Builder vide les deux listes, le message prend leur place */
.actus__vide { display: none; grid-column: 1 / -1; padding: 40px 0; font: 400 var(--titre-2)/1.4 var(--font-titre); text-transform: uppercase; text-align: center; color: var(--color-primary); }
.actus:not(:has(.carte-article)) .actus__vide { display: block; }
.actus:not(:has(.carte-article)) :is(.actus__une, .actus__grille) { display: none; }
@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 .carte-article__titre { font-size: 18px; }
  .actus__grille .carte-article__extrait { display: none; }
}

/* ---------- Contact ---------- */
.titre-contact { font: 700 25px/1 var(--font-titre); text-transform: uppercase; text-align: center; color: var(--color-primary); }
.reserver { max-width: 1160px; margin: 0 auto; padding: 40px 10px 0; }
.reserver__widget { display: flex; justify-content: center; padding: 20px 0; min-height: 556px; }
.contact { max-width: 1160px; margin: 0 auto; padding: 40px 10px 100px; text-align: center; }
.contact__formulaire { width: 900px; max-width: 100%; margin: 40px auto 0; padding: 30px; text-align: left; }
.contact__creux { margin: 30px 0 .9rem; font: 600 16px/1.5 "Montserrat", var(--font-texte); }
.contact__autre { width: 65%; margin: 0 auto .9rem; padding: 10px 0; }
@media (max-width: 1024px) {
  .reserver, .contact { padding-left: 20px; padding-right: 10px; } .contact__autre { width: 70%; }
}
@media (max-width: 767px) {
  .reserver { padding: 20px 10px 0; } .contact { padding: 20px 10px 100px; } .contact__creux { padding: 0 10px; } .contact__autre { width: 100%; }
}

/* ---------- Pages légales ---------- */
.legal { max-width: 1160px; margin: 0 auto; padding: 50px 10px 80px; }
.legal__filet { width: 5%; height: 0; margin: 15px 0; border: 0; border-top: 4px double var(--color-primary); }
.legal__h1 { padding: 10px 0; font: 400 var(--titre-1)/1 var(--font-titre); text-transform: uppercase; color: var(--color-primary); }
.legal__corps { display: flow-root; padding-top: 30px; }
.legal__corps p { margin-bottom: .9rem; }
.legal__corps ul { padding-left: 40px; list-style: disc; }
.legal__titre { margin: 0 0 20px; padding-top: 30px; font: 400 var(--titre-1)/1 var(--font-titre); text-transform: uppercase; color: var(--color-primary); }
.legal__sous-titre { margin-bottom: 16px; font: 500 28px/1.2 var(--font-texte); }
.legal__logo { width: 6%; margin: 60px auto 0; opacity: .3; }
@media (max-width: 1024px) { .legal { padding-top: 30px; } .legal__filet { margin-left: 12px; } }
/* Politique de confidentialité : sur le site, les blocs de texte n'ont pas de marge latérale (seul le titre en a une) */
.page-politique-de-confidentialite .legal { max-width: 1140px; padding-inline: 0; }
@media (max-width: 1160px) { .page-politique-de-confidentialite .legal__h1 { padding-inline: 10px; } }
@media (max-width: 767px) { .legal__filet { width: 10%; margin-inline: auto; } .legal__h1 { text-align: center; } }

/* ---------- Formulaires (+ états Contact Form 7) ---------- */
:is(.form, .wpcf7 form) { display: flex; flex-wrap: wrap; margin: 0 -5px; padding-top: 15px; }
.form__groupe { padding: 0 5px; margin-bottom: 10px; }
.form__groupe--50 { width: 50%; } .form__groupe--100 { width: 100%; }
.form__champ { display: block; width: 100%; min-height: 40px; padding: 8px 16px; border: 0; border-bottom: 1px solid #69727d; background: transparent; color: #000; font: 400 16px/1.4 var(--font-texte); border-radius: 0; }
textarea.form__champ { padding: 5px 14px; resize: vertical; }
.form__consent { width: 100%; padding: 0 5px; margin-bottom: 10px; font-size: 13px; }
.form__consent a { color: var(--color-lien); }
.form__envoi { width: 100%; padding: 0 5px; margin-bottom: 10px; text-align: center; }
.form__envoi .btn { min-height: 40px; border: 0; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7-not-valid { border-color: #b3261e; }
.wpcf7-not-valid-tip { color: #b3261e; font-size: .85em; margin-top: .25em; display: block; }
.wpcf7-response-output { width: 100%; margin: 1em 5px 0; padding: .75em 1em; }
.wpcf7-form.sent .wpcf7-response-output { background: #e8f5e9; color: #1b5e20; }
.wpcf7-form.invalid .wpcf7-response-output, .wpcf7-form.failed .wpcf7-response-output { background: #fdecea; color: #8a1c13; }
.wpcf7-spinner { position: absolute; margin-left: .5em; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
@media (max-width: 767px) { .form__groupe--50 { width: 100%; } }

/* ---------- Pied de page ---------- */
.pied-resa { display: flex; margin-top: 120px; border-top: 1px solid var(--color-texte); background: var(--color-primary); }
.pied-resa__carte { flex: 0 0 48.5%; }
.pied-resa__carte iframe { display: inline; width: 100%; height: 600px; border: 0; } /* en ligne comme sur le site : +6 px sous la carte */
.pied-resa__module { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; padding: 3vw; }
.pied-resa__titre { color: var(--color-blanc); text-align: center; }
.pied-resa__widget { min-height: 496px; }
/* Pied : module de réservation (par défaut) ou formulaire de contact (Privatisation, Island House : body.pied-formulaire) */
.pied-resa__module--contact { display: none; }
.pied-formulaire .pied-resa__module--table { display: none; }
.pied-formulaire .pied-resa__module--contact { display: flex; }
.pied-resa__module--contact .form { width: 100%; max-width: 560px; }
.pied-resa__module--contact .form__champ { border-bottom-color: rgba(255, 255, 255, .7); color: var(--color-blanc); }
.pied-resa__module--contact .form__champ::placeholder { color: rgba(255, 255, 255, .8); }
.pied-resa__module--contact select.form__champ { appearance: none; background: transparent; }
.pied-resa__module--contact select.form__champ option { color: #000; }
.pied-resa__module--contact .form__consent { color: var(--color-blanc); }
.pied-resa__module--contact .form__consent a { color: var(--color-accent); }
.opentable { display: block; width: 300px; max-width: 100%; height: 490px; border: 0; }
.pied__colonnes { display: flex; justify-content: center; align-items: flex-start; gap: 48px; padding: 6vw; background: var(--color-primary); color: var(--color-blanc); }
.pied__col { flex: 1; display: flex; flex-direction: column; gap: 12px; }
.pied__titre { font: 600 16px/1 var(--font-texte); }
.pied__horaires p { font: 400 14px/1.5 var(--font-texte); margin-bottom: 4px; }
.pied__logo { width: 149px; }
.pied__reseaux { margin-top: 8px; margin-left: -12px; }
.pied__reseaux a { width: 40px; height: 40px; }
.pied__reseaux svg { width: 20px; height: 20px; }
.pnav { }
.pnav__item { display: flex; flex-wrap: wrap; align-items: center; }
.pnav__item + .pnav__item { margin-top: 12px; }
.pnav__lien, .pnav__sous-lien { display: block; font: 400 14px/20px var(--font-texte); transition: color .3s; }
.pnav__sous-lien { padding: 0 12px 4px 2px; text-transform: uppercase; }
.pnav__lien:hover, .pnav__sous-lien:hover { color: var(--color-accent); }
.pnav__fleche { margin-left: 10px; }
.pnav__fleche svg { width: 10px; height: 14px; fill: currentColor; transition: transform .2s; }
.pnav__fleche[aria-expanded="true"] svg { transform: rotate(180deg); }
.pnav__sous { display: none; width: 100%; }
.pnav__fleche[aria-expanded="true"] + .pnav__sous { display: block; }
.pied__bas { display: flex; justify-content: space-between; align-items: center; gap: 48px; padding: 0 6vw 2vw; background: var(--color-primary); color: var(--color-blanc); font: 400 14px/1 var(--font-texte); }
.pied__bas a:hover { color: var(--color-accent); }
.popup-resa { width: fit-content; max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 0; background: var(--color-primary); overflow: auto; }
.popup-resa::backdrop { background: rgba(0, 0, 0, .8); }
.popup-resa__fermer { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; color: var(--color-blanc); z-index: 1; }
.popup-resa__fermer svg { width: 100%; height: 100%; }
.popup-resa__widget { padding: 40px 12px 12px; }
@media (max-width: 1024px) {
  .pied-resa { margin-top: 80px; }
  .pied-resa__carte { flex-basis: 48.4%; }
  .pied__colonnes { flex-direction: column; gap: 32px; margin-top: 10vw; padding: 0 4vw; }
  .pied__col { flex: none; width: 100%; }
  .pied__bas { flex-direction: column; gap: 32px; margin-top: 10vw; padding: 0 4vw; }
}
@media (min-width: 768px) and (max-width: 1024px) { .pied__col { width: 48%; } }
@media (max-width: 767px) {
  .pied-resa { flex-direction: column; margin-top: 60px; }
  .pied-resa__module { padding: 25px; }
  .pied__colonnes { gap: 24px; margin-top: 15vw; }
  .pied__bas { gap: 24px; margin-top: 15vw; }
}

/* ---------- Alignements relevés sur le site (en dernier : ils l'emportent) ---------- */
.a-g { text-align: left; } .a-c { text-align: center; } .a-d { text-align: right; }
.boutons.a-g { justify-content: flex-start; } .boutons.a-c { justify-content: center; } .boutons.a-d { justify-content: flex-end; }
.boutons.a-j > * { flex: 1; }
@media (max-width: 1024px) {
  .t-a-g { text-align: left; } .t-a-c { text-align: center; } .t-a-d { text-align: right; }
  .boutons.t-a-g { justify-content: flex-start; } .boutons.t-a-c { justify-content: center; } .boutons.t-a-d { justify-content: flex-end; }
}
@media (max-width: 767px) {
  .m-a-g { text-align: left; } .m-a-c { text-align: center; } .m-a-d { text-align: right; }
  .boutons.m-a-g { justify-content: flex-start; } .boutons.m-a-c { justify-content: center; } .boutons.m-a-d { justify-content: flex-end; }
}
/* Diaporama des espaces (tablette / mobile) : textes alignés à gauche comme sur le site */
.diapo__texte .a-c { text-align: left; }
.diapo__texte .boutons.a-c { justify-content: flex-start; }

/* ---------- Retours client du 2026-11-05 ---------- */
/* Accueil : devise sous le texte de présentation */
.intro__devise { margin-top: 1em; font-family: var(--font-titre); letter-spacing: .08em; }
/* Accueil : flyer Local Sunday dans « Expériences », affiché en entier */
.vitrine__img--affiche { aspect-ratio: auto; height: auto; object-fit: contain; }
/* Expériences : grand format du flyer Local Sunday */
.galerie__lien--une { aspect-ratio: auto; width: 100%; max-width: 1200px; }
.galerie__img--une { position: static; width: 100%; height: auto; object-fit: contain; }
/* Pied de page : réseaux | horaires | logo au centre | infos pratiques | pages légales */
.pied__col--logo { align-items: center; }
.pied__col--reseaux .pied__reseaux { margin-top: 0; }
@media (max-width: 1024px) { .pied__col--logo { align-items: flex-start; } }
/* Boissons : catégories enchaînées dans chaque colonne, même écart partout */
.carte__col--flux { gap: 48px; }
@media (max-width: 1024px) { .carte__col--flux { gap: 32px; } }
@media (max-width: 767px) { .carte__col--flux { gap: 48px; } }

/* ---------- Retours client du 2026-11-08 ---------- */
/* Accueil, « Expériences » : affiche en paysage plus grande, moins de vide au-dessus et en dessous */
.vitrine--affiche { width: min(960px, calc(100% - 2 * var(--marge))); }
.vitrine--affiche.ecart-l, .vitrine--affiche + .zigzag.ecart-l { margin-top: var(--ecart-maison); }
@media (max-width: 767px) { .vitrine--affiche { width: auto; } }
/* Accueil, « Eat · Drink · Feel » : symbole du logo un peu plus petit */
.duo--symbole .duo__img { height: 240px; }
@media (max-width: 767px) { .duo--symbole .duo__img { height: 200px; } }

/* ---------- Retours du 2026-11-08 (2) : accueil sans grands blancs ----------
   1. Mosaïque : les colonnes en parallaxe dépassent de 140 px en haut et en bas (mobile : 50 px) ; la section coupe ce
      dépassement, il n'y a plus de vide au-dessus ou en dessous d'une colonne quand elle glisse.
   2. Accueil, happy hour / Groupes : deux rangées alignées (texte | photo, photo | texte) au lieu des colonnes en quinconce.
   3. Écarts entre sections de l'accueil réduits. */
.mosaique__col { margin-block: -140px; }
@media (max-width: 767px) { .mosaique__col { margin-block: -50px; } }
@media (min-width: 768px) {
  .page-index .zigzag { display: grid; grid-template-columns: 1fr 1fr; column-gap: 64px; row-gap: 64px; align-items: center; }
  .page-index .zigzag__col { display: contents; }
  .page-index .zigzag__texte { max-width: 520px; margin-inline: auto; }
  .page-index .zigzag__texte--1 { grid-area: 1 / 1; }
  .page-index .zigzag__media--2 { grid-area: 1 / 2; }
  .page-index .zigzag__media--1 { grid-area: 2 / 1; }
  .page-index .zigzag__texte--2 { grid-area: 2 / 2; }
  .page-index .zigzag__img { aspect-ratio: 4 / 3; }
}
.page-index { --ecart-l: 6vw; --ecart-maison: 4vw; }
@media (max-width: 1024px) { .page-index { --ecart-l: 12vw; --ecart-maison: 8vw; } }
@media (max-width: 767px) { .page-index { --ecart-l: 16vw; --ecart-maison: 12vw; } }
@media (min-width: 1025px) { .page-index .mosaique.ecart-l { margin-top: var(--ecart-l); padding-top: 0; } }
/* affiche (accueil) : format des affiches Local Sunday & co (1920 × 1359), même si WordPress réserve un cadre de 3000 × 1500
   aux images « sizes=auto » ; site.js recale sur le format réel si l'affiche est remplacée par une image d'un autre format */
.vitrine__img--affiche, .galerie__img--une { aspect-ratio: 1920 / 1359; }

/* Retours du 2026-11-11 : bandeaux Rhums et Mocktails moins zoomés (photo verticale : bandeau plus haut = verre visible en entier) */
@media (min-width: 768px) { .bandeau--haut { min-height: 90vh; } }
