/* =========================================================
   POZEÏDON — Homepage V2
   Construction calquée sur la grille de Marlund (40 px de marge,
   20 px de gouttière, 3 colonnes, 150 px entre les sections),
   avec l'identité Pozeïdon : marine #14263B sur ivoire, Cinzel en
   voix unique, Cormorant Garamond et Open Sans en appoint.
   ========================================================= */

:root {
  --ivory: #f7f5ed;
  --navy: #14263b;
  --navy-deep: #0e1c2d;
  --muted: #5b6672;
  --mist: #a9b6c4;
  --line: rgba(20, 38, 59, 0.14);

  --f-display: "Cinzel", "Trajan Pro", Georgia, serif;
  --f-serif: "Cormorant Garamond", Georgia, serif;
  --f-sans: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --pad: 40px;
  --gap: 20px;
  --space: 150px;
  --max: 1680px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 76px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
  margin: 0;
  background: var(--ivory);
  color: var(--navy);
  font-family: var(--f-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, figure, blockquote { margin: 0; }
h1, h2, h3 { font-weight: inherit; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
.nowrap { white-space: nowrap; }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip {
  position: fixed; left: 16px; top: -60px; z-index: 200;
  background: var(--ivory); color: var(--navy); padding: 10px 16px;
  font-family: var(--f-display); font-weight: 600; transition: top .2s;
}
.skip:focus { top: 16px; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.logo { display: block; width: 100%; height: auto; aspect-ratio: 340.5 / 311.3; fill: currentColor; }
.filet { display: block; width: 120px; height: auto; aspect-ratio: 202.6 / 24.6; fill: currentColor; }

/* ---------- Voix typographique : Cinzel en capitales, interlettrage serré ---------- */

.h2 {
  font-family: var(--f-display); font-weight: 600;
  font-size: clamp(2.3rem, 4.6vw, 4.25rem);
  line-height: 1.04; letter-spacing: -0.025em;
  text-transform: uppercase; color: var(--navy);
  text-align: center;
}
.h2--left { text-align: left; }

.intro {
  max-width: 560px;
  font-family: var(--f-display); font-weight: 500;
  font-size: 1.05rem; line-height: 1.85; letter-spacing: 0.01em;
  text-transform: uppercase; color: var(--muted);
  text-align: center; text-wrap: balance;
}
.intro--left { text-align: left; }
.intro--wide { max-width: 720px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 52px; padding: 0 30px;
  background: var(--navy); color: var(--ivory);
  font-family: var(--f-display); font-weight: 600; font-size: 0.78rem;
  letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; line-height: 1;
  border: 1px solid var(--navy);
  transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn:hover { background: transparent; color: var(--navy); }
.btn--light { background: var(--ivory); color: var(--navy); border-color: var(--ivory); }
.btn--light:hover { background: transparent; color: var(--ivory); }
.btn--ghost { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn--ghost:hover { background: var(--navy); color: var(--ivory); }

.chip {
  display: inline-block; padding: 6px 8px;
  background: var(--ivory); color: var(--navy);
  font-family: var(--f-display); font-weight: 700; font-size: 0.86rem;
  letter-spacing: 0.02em; text-transform: uppercase; line-height: 1.5;
}

/* ---------- Soulignement : le filet du logo se trace au survol ---------- */

.hdr__nav a:not(.hdr__book), .hero__foot a, .ftr__col a { position: relative; }
.hdr__nav a:not(.hdr__book)::after, .hero__foot a::after, .ftr__col a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -0.16em;
  height: 0.6em;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='113.6 312.5 202.6 24.6' preserveAspectRatio='none'%3E%3Cpath fill-rule='evenodd' d='M205.8 333.6C206.9 333.3 208.2 333.2 208.8 333.2C209.3 333.2 210.8 333 212.2 332.8C216.3 332.3 217.3 332.2 220.1 332C221.5 331.9 223.2 331.7 223.8 331.6C224.4 331.4 225.4 331.3 225.9 331.3C227.5 331.3 230.7 331 230.7 330.8C230.7 330.5 214.7 331 212.7 331.4C212.2 331.4 210.2 331.6 208.3 331.8C206.5 331.9 204.5 332.1 204.1 332.2C203.6 332.3 203 332.4 202.6 332.4C201.8 332.5 201.1 333.1 201.3 333.5C201.4 333.9 202.1 334.2 203 334.1C203.4 334 204.7 333.8 205.8 333.6ZM308.3 333.5C310.5 333 311.9 332.3 312.8 331.2C313.6 330.2 313.7 329.7 313.2 328.9C312.6 328 308.7 325.5 307.1 325C306.7 324.9 306.1 324.7 305.8 324.5C303.6 323.4 295.4 321.8 290.2 321.4C289.4 321.4 288.4 321.2 288 321.2C287.6 321.1 286 320.9 284.4 320.8C282.9 320.7 281 320.6 280.2 320.5C278.8 320.3 272.9 320 264.8 319.6C251.4 318.9 226.9 319.2 213.8 320.1C211.9 320.2 209 320.4 207.5 320.5C206 320.6 203.8 320.7 202.6 320.8C201.4 320.9 199.5 321.1 198.4 321.2C197.3 321.3 195.9 321.4 195.2 321.5C194.5 321.6 193 321.7 191.9 321.7C190.8 321.8 189 322 187.8 322.1C186.7 322.2 185 322.4 184.2 322.5C179.2 323 177.3 323.2 176.2 323.3C175.6 323.4 174.5 323.5 173.8 323.6C172.7 323.7 171.6 323.8 167.8 324.3C167.2 324.4 166 324.6 165.1 324.7C164.2 324.8 162.7 324.9 161.8 325.1C159.6 325.4 156.7 325.8 154.7 326C153.7 326.1 152.5 326.3 152.1 326.4C151.6 326.5 150.3 326.7 149.2 326.8C148 326.9 146.7 327.1 146.2 327.2C145.7 327.4 144.3 327.6 143.1 327.7C141.9 327.8 140.1 328 139 328.2C138 328.3 136.4 328.5 135.4 328.6C134.5 328.6 132.5 328.8 130.9 328.9C129.4 329.1 126.4 329.2 124.2 329.2C122.1 329.3 120.2 329.4 119.9 329.4C119.5 329.5 119.3 329.5 119.1 329.3C118.5 328.7 118.7 328.4 121 326.1C123.9 323.1 126.3 321.2 128.3 320.2C128.7 320.1 129 319.9 129.2 319.7C129.3 319.6 129.8 319.4 130.1 319.3C130.5 319.1 131.1 318.9 131.3 318.7C131.8 318.3 132.5 318.3 132.6 318.6C132.7 318.7 132.4 319 132.1 319.2C131.4 319.6 131.1 320.4 131.4 320.7C131.6 320.9 131.8 321 131.9 321C132 321 133 320.4 134.1 319.6C135.2 318.8 136.4 317.9 136.9 317.6C138 316.9 138.2 315.9 137.2 315.5C136.7 315.3 136.1 315.4 133.8 316.2C133.2 316.4 132.4 316.6 131.9 316.7C130.8 317 126.5 319.3 125.3 320.1C122.5 322.2 117.8 326.6 116.9 328.1C116.1 329.3 116 329.7 116.6 330.3C117 330.7 117.1 330.7 118.1 330.6C118.9 330.5 119.3 330.6 119.6 330.8C120.4 331.1 128.5 331.1 131.9 330.7C133.4 330.5 135.5 330.3 136.7 330.3C137.8 330.2 139.3 330 140.1 329.9C140.8 329.8 142.5 329.6 143.9 329.4C145.3 329.3 147.2 329 148.1 328.8C149 328.7 150.5 328.4 151.3 328.3C152.2 328.2 154.2 328 155.8 327.7C157.4 327.5 159.4 327.3 160.2 327.2C161.1 327.2 162.9 327 164.3 326.7C165.8 326.5 167.6 326.3 168.4 326.2C169.2 326.2 171.5 326 173.4 325.7C175.3 325.5 177.9 325.3 179.1 325.2C180.3 325.1 181.8 324.9 182.6 324.8C183.3 324.7 184.9 324.6 186.1 324.5C187.3 324.4 189 324.3 190 324.2C196.6 323.5 207.6 322.7 213.8 322.5C215.9 322.4 219.5 322.2 221.9 322.1C228.1 321.9 256.1 321.9 261.8 322.1C264.3 322.3 267.6 322.4 269.2 322.5C275 322.8 290.3 324.1 293.3 324.7C293.8 324.7 294.8 324.9 295.5 324.9C297.6 325.1 303.7 326.6 305.4 327.3C306.1 327.6 306.8 327.9 307 327.9C307.6 328.1 309.4 329.2 310 329.7C310.5 330.1 310.6 330.1 310.3 330.5C309.9 331.2 305.7 332.7 304.2 332.7C303.9 332.7 303.6 332.8 303.4 332.9C303.1 333.2 303.1 333.2 303.5 333.5C304 334 306.1 334 308.3 333.5ZM278.2 333.3C278.4 333.1 278.5 332.9 278.5 332.8C278.3 332.3 277.4 332 275.3 331.8C274.2 331.7 272.8 331.6 272.2 331.5C270.1 331.2 267.8 331 262.1 330.6C250.1 330 247.6 329.9 234.5 330.3C232.8 330.3 232.1 330.4 231.8 330.6C231.5 330.8 231.5 330.8 231.9 330.9C232.1 330.9 234.3 331 236.8 331C243.4 331 249.5 331.3 257.2 331.8C258.5 331.9 261.3 332.1 263.3 332.2C265.4 332.4 267.8 332.6 268.7 332.7C269.5 332.9 271.4 333.1 272.9 333.2C274.4 333.3 275.6 333.4 275.7 333.4C275.8 333.6 278 333.5 278.2 333.3Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='113.6 312.5 202.6 24.6' preserveAspectRatio='none'%3E%3Cpath fill-rule='evenodd' d='M205.8 333.6C206.9 333.3 208.2 333.2 208.8 333.2C209.3 333.2 210.8 333 212.2 332.8C216.3 332.3 217.3 332.2 220.1 332C221.5 331.9 223.2 331.7 223.8 331.6C224.4 331.4 225.4 331.3 225.9 331.3C227.5 331.3 230.7 331 230.7 330.8C230.7 330.5 214.7 331 212.7 331.4C212.2 331.4 210.2 331.6 208.3 331.8C206.5 331.9 204.5 332.1 204.1 332.2C203.6 332.3 203 332.4 202.6 332.4C201.8 332.5 201.1 333.1 201.3 333.5C201.4 333.9 202.1 334.2 203 334.1C203.4 334 204.7 333.8 205.8 333.6ZM308.3 333.5C310.5 333 311.9 332.3 312.8 331.2C313.6 330.2 313.7 329.7 313.2 328.9C312.6 328 308.7 325.5 307.1 325C306.7 324.9 306.1 324.7 305.8 324.5C303.6 323.4 295.4 321.8 290.2 321.4C289.4 321.4 288.4 321.2 288 321.2C287.6 321.1 286 320.9 284.4 320.8C282.9 320.7 281 320.6 280.2 320.5C278.8 320.3 272.9 320 264.8 319.6C251.4 318.9 226.9 319.2 213.8 320.1C211.9 320.2 209 320.4 207.5 320.5C206 320.6 203.8 320.7 202.6 320.8C201.4 320.9 199.5 321.1 198.4 321.2C197.3 321.3 195.9 321.4 195.2 321.5C194.5 321.6 193 321.7 191.9 321.7C190.8 321.8 189 322 187.8 322.1C186.7 322.2 185 322.4 184.2 322.5C179.2 323 177.3 323.2 176.2 323.3C175.6 323.4 174.5 323.5 173.8 323.6C172.7 323.7 171.6 323.8 167.8 324.3C167.2 324.4 166 324.6 165.1 324.7C164.2 324.8 162.7 324.9 161.8 325.1C159.6 325.4 156.7 325.8 154.7 326C153.7 326.1 152.5 326.3 152.1 326.4C151.6 326.5 150.3 326.7 149.2 326.8C148 326.9 146.7 327.1 146.2 327.2C145.7 327.4 144.3 327.6 143.1 327.7C141.9 327.8 140.1 328 139 328.2C138 328.3 136.4 328.5 135.4 328.6C134.5 328.6 132.5 328.8 130.9 328.9C129.4 329.1 126.4 329.2 124.2 329.2C122.1 329.3 120.2 329.4 119.9 329.4C119.5 329.5 119.3 329.5 119.1 329.3C118.5 328.7 118.7 328.4 121 326.1C123.9 323.1 126.3 321.2 128.3 320.2C128.7 320.1 129 319.9 129.2 319.7C129.3 319.6 129.8 319.4 130.1 319.3C130.5 319.1 131.1 318.9 131.3 318.7C131.8 318.3 132.5 318.3 132.6 318.6C132.7 318.7 132.4 319 132.1 319.2C131.4 319.6 131.1 320.4 131.4 320.7C131.6 320.9 131.8 321 131.9 321C132 321 133 320.4 134.1 319.6C135.2 318.8 136.4 317.9 136.9 317.6C138 316.9 138.2 315.9 137.2 315.5C136.7 315.3 136.1 315.4 133.8 316.2C133.2 316.4 132.4 316.6 131.9 316.7C130.8 317 126.5 319.3 125.3 320.1C122.5 322.2 117.8 326.6 116.9 328.1C116.1 329.3 116 329.7 116.6 330.3C117 330.7 117.1 330.7 118.1 330.6C118.9 330.5 119.3 330.6 119.6 330.8C120.4 331.1 128.5 331.1 131.9 330.7C133.4 330.5 135.5 330.3 136.7 330.3C137.8 330.2 139.3 330 140.1 329.9C140.8 329.8 142.5 329.6 143.9 329.4C145.3 329.3 147.2 329 148.1 328.8C149 328.7 150.5 328.4 151.3 328.3C152.2 328.2 154.2 328 155.8 327.7C157.4 327.5 159.4 327.3 160.2 327.2C161.1 327.2 162.9 327 164.3 326.7C165.8 326.5 167.6 326.3 168.4 326.2C169.2 326.2 171.5 326 173.4 325.7C175.3 325.5 177.9 325.3 179.1 325.2C180.3 325.1 181.8 324.9 182.6 324.8C183.3 324.7 184.9 324.6 186.1 324.5C187.3 324.4 189 324.3 190 324.2C196.6 323.5 207.6 322.7 213.8 322.5C215.9 322.4 219.5 322.2 221.9 322.1C228.1 321.9 256.1 321.9 261.8 322.1C264.3 322.3 267.6 322.4 269.2 322.5C275 322.8 290.3 324.1 293.3 324.7C293.8 324.7 294.8 324.9 295.5 324.9C297.6 325.1 303.7 326.6 305.4 327.3C306.1 327.6 306.8 327.9 307 327.9C307.6 328.1 309.4 329.2 310 329.7C310.5 330.1 310.6 330.1 310.3 330.5C309.9 331.2 305.7 332.7 304.2 332.7C303.9 332.7 303.6 332.8 303.4 332.9C303.1 333.2 303.1 333.2 303.5 333.5C304 334 306.1 334 308.3 333.5ZM278.2 333.3C278.4 333.1 278.5 332.9 278.5 332.8C278.3 332.3 277.4 332 275.3 331.8C274.2 331.7 272.8 331.6 272.2 331.5C270.1 331.2 267.8 331 262.1 330.6C250.1 330 247.6 329.9 234.5 330.3C232.8 330.3 232.1 330.4 231.8 330.6C231.5 330.8 231.5 330.8 231.9 330.9C232.1 330.9 234.3 331 236.8 331C243.4 331 249.5 331.3 257.2 331.8C258.5 331.9 261.3 332.1 263.3 332.2C265.4 332.4 267.8 332.6 268.7 332.7C269.5 332.9 271.4 333.1 272.9 333.2C274.4 333.3 275.6 333.4 275.7 333.4C275.8 333.6 278 333.5 278.2 333.3Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  clip-path: inset(0 100% 0 0);
  transition: clip-path .75s var(--ease-out);
  pointer-events: none;
}
.hdr__nav a:not(.hdr__book):hover::after, .hero__foot a:hover::after, .ftr__col a:hover::after,
.hdr__nav a:not(.hdr__book):focus-visible::after, .hero__foot a:focus-visible::after, .ftr__col a:focus-visible::after {
  clip-path: inset(0 0 0 0);
}
@media (prefers-reduced-motion: reduce) {
  .hdr__nav a:not(.hdr__book)::after, .hero__foot a::after, .ftr__col a::after { transition: none; }
}

/* =========================================================
   EN-TÊTE
   ========================================================= */

.hdr {
  position: fixed; inset: 0 0 auto; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 18px var(--pad);
  color: var(--ivory);
  transition: background-color .45s var(--ease), color .45s var(--ease), padding .45s var(--ease), box-shadow .45s var(--ease);
}
.hdr__logo { display: block; width: 96px; transition: width .45s var(--ease); }
.hdr__nav { display: flex; align-items: center; gap: 30px; }
.hdr__nav a {
  font-family: var(--f-display); font-weight: 600; font-size: 0.76rem;
  letter-spacing: 0.16em; text-transform: uppercase; line-height: 2.2;
}
.hdr__nav .hdr__book {
  margin-left: 6px; padding: 0 24px; line-height: 46px;
  font-weight: 600; font-size: 0.76rem; letter-spacing: 0.16em;
  background: var(--ivory); color: var(--navy); border: 1px solid var(--ivory);
  transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.hdr__nav .hdr__book:hover { background: transparent; color: var(--ivory); }
.hdr__burger { display: none; }

.hdr.is-solid {
  padding-block: 10px;
  background: rgba(247, 245, 237, 0.96);
  color: var(--navy);
  box-shadow: 0 1px 0 var(--line);
}
@supports (backdrop-filter: blur(8px)) {
  .hdr.is-solid { background: rgba(247, 245, 237, 0.88); backdrop-filter: blur(14px); }
}
.hdr.is-solid .hdr__logo { width: 64px; }
.hdr.is-solid .hdr__book { background: var(--navy); color: var(--ivory); border-color: var(--navy); }
.hdr.is-solid .hdr__book:hover { background: transparent; color: var(--navy); }

/* =========================================================
   HERO — photo plein cadre, titre centré, coordonnées en pied
   ========================================================= */

.hero {
  position: relative; height: 100vh; height: 100svh; min-height: 640px; max-height: 1100px;
  display: grid; grid-template-rows: 1fr auto; justify-items: center;
  color: var(--ivory); background: var(--navy-deep); overflow: hidden;
}
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% 50%; }
.hero__veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(14,28,45,.55) 0%, rgba(14,28,45,.25) 30%, rgba(14,28,45,.3) 65%, rgba(14,28,45,.7) 100%),
    rgba(14, 28, 45, .16);
}
.hero__center {
  position: relative; align-self: center;
  display: grid; justify-items: center; gap: 34px;
  padding: 110px var(--pad) 0; text-align: center;
}
.hero__title { display: grid; justify-items: center; gap: 18px; }
.hero__big {
  font-family: var(--f-display); font-weight: 600;
  font-size: clamp(2.5rem, 6vw, 5.6rem);
  line-height: 1.02; letter-spacing: -0.03em; text-transform: uppercase;
  max-width: 12em; text-wrap: balance;
}
.hero__small {
  font-family: var(--f-serif); font-style: italic; font-weight: 500;
  font-size: clamp(1.35rem, 2.1vw, 1.95rem); line-height: 1.25;
  text-wrap: balance;
}
.hero__foot {
  position: relative; display: grid; justify-items: center; gap: 4px;
  padding: 0 var(--pad) 40px; text-align: center;
  font-family: var(--f-display); font-weight: 700; font-size: 1.05rem;
  letter-spacing: 0.01em; text-transform: uppercase; line-height: 1.9;
}

/* =========================================================
   SECTIONS — titre centré, texte court, bouton, visuel à 60 px
   ========================================================= */

.sec { padding-top: var(--space); }
.sec--last { padding-bottom: var(--space); }
.head {
  display: grid; justify-items: center; gap: 24px;
  max-width: 900px; margin: 0 auto; padding: 0 var(--pad); text-align: center;
}
.head--wide { max-width: 1000px; }
.head .btn, .head__btns { margin-top: 4px; }
.head__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

.grid {
  display: grid; gap: var(--gap);
  max-width: var(--max); margin: 60px auto 0; padding: 0 var(--pad);
}
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--2x2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; row-gap: 48px; }

.note {
  max-width: var(--max); margin: 28px auto 0; padding: 0 var(--pad);
  font-size: 0.8rem; color: var(--muted);
}
.note--left { margin: 28px 0 0; padding: 0; }

/* Carte photo + légende nom / prix */
.card__img { aspect-ratio: 435 / 495; overflow: hidden; background: #dcd8cc; }
.card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease-out); }
.card:hover .card__img img { transform: scale(1.035); }
.card__cap {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  margin-top: 14px;
  font-family: var(--f-display); font-weight: 700; text-transform: uppercase; letter-spacing: -0.005em;
}
.card__cap h3 { font-size: 1.14rem; line-height: 1.35; }
.card__cap span { font-size: 1.02rem; white-space: nowrap; }
.card__desc { margin-top: 6px; max-width: 34em; font-size: 0.86rem; line-height: 1.6; color: var(--muted); }

/* Grandes vignettes avec étiquette */
.tile {
  position: relative; display: block; overflow: hidden;
  aspect-ratio: 663 / 735; color: var(--ivory); background: var(--navy-deep);
}
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.tile:hover img { transform: scale(1.03); }
.tile::after {
  content: ""; position: absolute; inset: 45% 0 0;
  background: linear-gradient(180deg, rgba(14,28,45,0) 0%, rgba(14,28,45,.78) 100%);
}
.tile .chip { position: absolute; top: 26px; left: 28px; z-index: 1; }
.tile__body { position: absolute; left: 20px; right: 20px; bottom: 22px; z-index: 1; display: grid; gap: 4px; }
.tile__title {
  font-family: var(--f-display); font-weight: 700; font-size: 1.55rem;
  letter-spacing: -0.015em; text-transform: uppercase; line-height: 1.35;
}
.tile__text {
  font-family: var(--f-display); font-weight: 600; font-size: 1rem;
  letter-spacing: 0.01em; text-transform: uppercase; line-height: 1.8; color: rgba(247,245,237,.9);
}

/* =========================================================
   BANDEAU PHOTO EN DÉFILEMENT CONTINU
   ========================================================= */

.ticker { margin-top: 100px; overflow: hidden; }
.ticker__track {
  display: flex; align-items: center; gap: var(--gap); width: max-content;
  animation: ticker 60s linear infinite;
}
.ticker:hover .ticker__track { animation-play-state: paused; }
.ticker__item { flex: none; overflow: hidden; background: #dcd8cc; }
.ticker__item img { width: 100%; height: 100%; object-fit: cover; }
.ticker__item--l { width: 360px; height: 261px; }
.ticker__item--p { width: 356px; height: 408px; }
@keyframes ticker { to { transform: translate3d(calc(-50% - var(--gap) / 2), 0, 0); } }

/* =========================================================
   COLONNE FIXE + GRILLE (mixologie)
   ========================================================= */

.split {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap);
  max-width: var(--max); margin: 0 auto; padding: 0 var(--pad);
}
.split__aside { grid-column: 1; }
.split__sticky .h2 { font-size: clamp(2.2rem, 3.9vw, 3.6rem); }
.split__sticky { position: sticky; top: 120px; display: grid; justify-items: start; gap: 24px; max-width: 380px; }
.split__sticky .btn { margin-top: 4px; }
.split__more { margin-top: 12px; font-size: 0.9rem; line-height: 1.65; color: var(--muted); }
.split__main { grid-column: 2 / span 2; }

/* =========================================================
   LE CHEF — titre centré puis photo pleine largeur
   ========================================================= */

.quote-line {
  max-width: 760px;
  font-family: var(--f-serif); font-style: italic; font-weight: 500;
  font-size: clamp(1.4rem, 2vw, 1.85rem); line-height: 1.3; color: var(--navy);
}
.bleed { position: relative; margin-top: 60px; height: min(66.6vw, 1000px); overflow: hidden; }
.bleed img { width: 100%; height: 100%; object-fit: cover; }
.chip--bottom { position: absolute; left: var(--pad); bottom: 28px; }

/* =========================================================
   LE MOT DE LA GÉRANTE
   ========================================================= */

.sec--navy { margin-top: var(--space); padding: var(--space) 0; background: var(--navy); color: var(--ivory); }
.mot { display: grid; justify-items: center; gap: 40px; max-width: 1100px; margin: 0 auto; padding: 0 var(--pad); text-align: center; }
.sec--navy .mot__quote p { color: var(--ivory); }
.mot__quote p {
  font-family: var(--f-serif); font-weight: 500;
  font-size: clamp(1.75rem, 3.4vw, 3.1rem);
  line-height: 1.22; letter-spacing: 0; text-transform: none;
  text-wrap: balance;
}
.mot__sign { display: grid; justify-items: center; gap: 10px; }
.mot__name { margin-top: 10px; color: var(--ivory); font-family: var(--f-display); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; }
.mot__role { font-family: var(--f-display); font-weight: 500; font-size: 0.92rem; text-transform: uppercase; color: var(--mist); }

/* =========================================================
   RÉSERVER — titre, bouton, image centrée
   ========================================================= */

.resa-img { width: 360px; max-width: calc(100% - 2 * var(--pad)); aspect-ratio: 360 / 380; margin: 60px auto 0; overflow: hidden; }
.resa-img img { width: 100%; height: 100%; object-fit: cover; }

/* =========================================================
   PIED DE PAGE
   ========================================================= */

.ftr { background: var(--navy); color: var(--ivory); padding: 72px var(--pad) 0; }
.ftr__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 40px;
  max-width: var(--max); margin: 0 auto;
}
.ftr__brand { grid-row: span 2; display: grid; align-content: start; gap: 22px; }
.ftr__logo { display: block; width: 128px; }
.ftr__small { font-family: var(--f-display); font-weight: 600; font-size: 0.85rem; text-transform: uppercase; color: rgba(247,245,237,.7); }
.ftr__col h3 {
  margin-bottom: 8px;
  font-family: var(--f-display); font-weight: 700; font-size: 1rem; text-transform: uppercase; color: var(--mist);
}
.ftr__col p {
  font-family: var(--f-display); font-weight: 600; font-size: 0.98rem;
  text-transform: uppercase; line-height: 1.85; letter-spacing: 0.005em;
}
.ftr__h3-gap { margin-top: 28px; }
.ftr__bottom {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 32px;
  max-width: var(--max); margin: 72px auto 0; padding: 22px 0 26px;
  border-top: 1px solid rgba(247,245,237,.16);
  font-size: 0.78rem; color: rgba(247,245,237,.6);
}

.menu, .mbook { display: none; }

/* =========================================================
   APPARITIONS (désactivées si prefers-reduced-motion)
   ========================================================= */

@media (prefers-reduced-motion: no-preference) {
  .js [data-appear] { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease-out), transform 1s var(--ease-out); }
  .js [data-appear][data-delay="1"] { transition-delay: .1s; }
  .js [data-appear][data-delay="2"] { transition-delay: .2s; }
  .js [data-appear][data-delay="3"] { transition-delay: .3s; }
  .js [data-appear].is-in { opacity: 1; transform: none; }
  /* Les boutons qui apparaissent gardent leur transition de survol */
  .js .btn[data-appear] {
    transition: opacity .9s var(--ease-out), transform 1s var(--ease-out),
      background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
  }
  .js .btn[data-appear][data-delay="1"] { transition-delay: .1s, .1s, 0s, 0s, 0s; }
  .js .btn[data-appear][data-delay="2"] { transition-delay: .2s, .2s, 0s, 0s, 0s; }
  .js .btn[data-appear][data-delay="3"] { transition-delay: .3s, .3s, 0s, 0s, 0s; }
  .js .hero__img { animation: heroIn 2.4s var(--ease-out) both; }
}
@keyframes heroIn { from { transform: scale(1.06); } to { transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .ticker { overflow-x: auto; }
  .ticker__track { animation: none; }
}

/* =========================================================
   TABLETTE
   ========================================================= */

@media (max-width: 1199px) {
  :root { --pad: 30px; --space: 120px; }
  .hdr__nav { gap: 16px; }
  .hdr__nav a { font-size: 0.7rem; letter-spacing: 0.12em; }
  .ticker__item--l { width: 300px; height: 218px; }
  .ticker__item--p { width: 290px; height: 332px; }
  .tile__title { font-size: 1.3rem; }
  .tile__text { font-size: 0.9rem; }
  .split { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .split__main { grid-column: 2; }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 809px) {
  :root { --pad: 20px; --gap: 16px; --space: 96px; }
  html { scroll-padding-top: 70px; }

  .hdr { padding: 12px var(--pad); }
  .hdr__logo { width: 70px; }
  .hdr.is-solid { padding-block: 8px; }
  .hdr.is-solid .hdr__logo { width: 52px; }
  .hdr__nav { display: none; }
  .hdr__burger {
    display: grid; align-content: center; gap: 7px; width: 44px; height: 44px; padding: 0 6px;
    background: none; border: 0; cursor: pointer;
  }
  .hdr__burger span { display: block; height: 2px; background: currentColor; transition: transform .4s var(--ease); }
  .hdr__burger[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .hdr__burger[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }

  .menu-open .hdr { background: transparent; color: var(--ivory); box-shadow: none; backdrop-filter: none; }
  .menu {
    display: flex; flex-direction: column; justify-content: space-between; gap: 40px;
    position: fixed; inset: 0; z-index: 40; overflow-y: auto;
    padding: 120px var(--pad) 32px;
    background: var(--navy); color: var(--ivory);
    opacity: 0; visibility: hidden; transition: opacity .4s var(--ease), visibility 0s linear .4s;
  }
  .menu[hidden] { display: flex; }
  .menu-open .menu { opacity: 1; visibility: visible; transition: opacity .4s var(--ease); }
  .menu__nav { display: grid; gap: 4px; }
  .menu__nav a {
    font-family: var(--f-display); font-weight: 700; font-size: 2rem;
    letter-spacing: -0.02em; text-transform: uppercase; line-height: 1.3;
  }
  .menu__foot { display: grid; gap: 18px; }
  .menu__foot .btn { width: 100%; }
  .menu__foot p {
    font-family: var(--f-display); font-weight: 600; font-size: 0.9rem; text-transform: uppercase;
    line-height: 1.8; color: rgba(247,245,237,.8);
  }

  .hero { max-height: none; }
  .hero__center { gap: 28px; padding-top: 90px; }
  .hero__big { font-size: clamp(2.2rem, 10.6vw, 3.4rem); letter-spacing: -0.035em; }
  .hero__big .nowrap { white-space: normal; }
  .hero__veil { background: linear-gradient(180deg, rgba(14,28,45,.5) 0%, rgba(14,28,45,.42) 40%, rgba(14,28,45,.5) 70%, rgba(14,28,45,.8) 100%); }
  .hero__small { font-size: 1.3rem; max-width: 17em; }
  .hero__foot { font-size: 0.92rem; padding-bottom: 28px; }

  .h2 { font-size: clamp(2.05rem, 9.6vw, 2.9rem); text-wrap: balance; }
  .h2 br { display: none; }
  .intro { font-size: 0.95rem; line-height: 1.8; }

  .ticker { margin-top: 64px; }
  .ticker__track { animation-duration: 42s; }
  .ticker__item--l { width: 240px; height: 174px; }
  .ticker__item--p { width: 210px; height: 240px; }

  .grid { margin-top: 48px; }
  .grid--3, .grid--2, .grid--2x2 { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
  .card__img { aspect-ratio: 335 / 360; }
  .card__cap h3 { font-size: 1.08rem; }
  .tile { aspect-ratio: 335 / 400; }
  .tile .chip { top: 18px; left: 18px; }
  .tile__body { left: 18px; right: 18px; bottom: 18px; }
  .tile__title { font-size: 1.25rem; }
  .tile__text { font-size: 0.85rem; line-height: 1.7; }

  .split { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .split__aside, .split__main { grid-column: 1; }
  .split__sticky { position: static; justify-items: center; text-align: center; max-width: none; }
  .split__sticky .h2--left, .split__sticky .intro--left { text-align: center; }

  .bleed { height: 120vw; margin-top: 48px; }
  .chip--bottom { bottom: 18px; font-size: 0.78rem; }

  .mot { gap: 32px; }
  .mot__quote p { font-size: clamp(1.6rem, 7.2vw, 2.1rem); line-height: 1.22; }

  .resa-img { margin-top: 48px; }

  .ftr { padding-top: 56px; }
  .ftr__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .ftr__brand { grid-column: 1 / -1; grid-row: auto; }
  .ftr__logo { width: 104px; }
  .ftr__col p { font-size: 0.86rem; }
  .ftr__bottom { margin-top: 48px; }

  body { padding-bottom: 64px; }
  .mbook {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
    padding-bottom: env(safe-area-inset-bottom); background: var(--navy);
    transform: translateY(110%); transition: transform .45s var(--ease);
  }
  .mbook.is-visible { transform: none; }
  .menu-open .mbook { transform: translateY(110%); }
  .mbook__main {
    flex: 1; display: grid; place-items: center; min-height: 58px;
    background: var(--navy); color: var(--ivory);
    font-family: var(--f-display); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase;
  }
  .mbook__tel { width: 62px; display: grid; place-items: center; background: var(--ivory); color: var(--navy); }
  .mbook__tel svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linejoin: round; }
}

@media (max-width: 380px) {
  .hero__big { font-size: 2.05rem; }
}
