/* FC TACOS VIENNE — HERO VIDÉO CINÉMATIQUE (Ken Burns + vapeur + halo + grain)
   + carte avec vignettes produits devant les prix */
@font-face {
  font-family: "Anton";
  src: url("../fonts/anton-v27-latin-regular.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Archivo Black";
  src: url("../fonts/archivo-black-v23-latin-regular.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Pacifico";
  src: url("../fonts/pacifico-v23-latin-regular.woff2") format("woff2");
  font-display: swap;
}

:root {
  --bordeaux: #240809;
  --bordeaux-2: #4A090A;
  --rouge-halo: #741410;
  --presque-noir: #160707;
  --tomate: #E33A21;
  --moutarde: #FFB51B;
  --orange: #F6A20D;
  --orange-fonce: #E98509;
  --orange-main: #ED8C28;
  --ivory: #FFF8DD;
  --cream: #F8F0D4;
  --card: #FBF6E6;
  --ink: #171313;
  --ink-soft: #766F60;
  --cream-on-dark: #FFF8EC;
  --dim-on-dark: #D7C2B0;
  --rouge-prix: #B92B23;
  --radius-btn: 4px;
  --radius-card: 7px;
  --gutter: clamp(20px, 4vw, 64px);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  overflow-x: clip;
  background: var(--bordeaux);
  color: var(--cream-on-dark);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body, p, small, dd, dt { font-family: ui-sans-serif, system-ui, "Segoe UI", Roboto, Arial, sans-serif; }

img { display: block; max-width: 100%; height: auto; }

/* ---------- BOUTONS ---------- */
.btn {
  display: inline-block; text-decoration: none; font-weight: 800;
  border-radius: var(--radius-btn); padding: 14px 26px; font-size: 14px;
  text-transform: uppercase;
  transition: transform .16s ease, filter .2s;
  font-family: "Anton", "Arial Black", sans-serif; letter-spacing: 0.06em;
}
.btn:active { transform: translateY(1px) scale(0.99); }
.btn--red { background: var(--tomate); color: #fff; box-shadow: 0 10px 24px rgba(227, 58, 33, 0.35); }
.btn--red:hover { filter: brightness(1.08); }
.btn--yellow { background: transparent; color: var(--cream-on-dark); border: 2px solid rgba(255,248,236,0.45); }
.btn--wide { width: 100%; text-align: center; }

/* ================================================================
   HERO VIDÉO CINÉMATIQUE — 4 couches animées sur l'image fixe
   ================================================================ */
.hero {
  position: relative;
  min-height: 100dvh;
  background:
    radial-gradient(circle at 55% 38%, var(--rouge-halo) 0%, var(--bordeaux-2) 44%, var(--presque-noir) 100%);
  overflow: hidden;
  display: grid; grid-template-columns: 47fr 53fr; align-items: center;
  gap: clamp(16px, 3vw, 48px);
  padding: 0 var(--gutter);
}

/* COUCHE 1: Ken Burns cinématique lent (zoom + pan, 22s loop alterné) */
.hero__media {
  position: absolute; inset: 0; z-index: 0;
}
.hero__media::after {
  /* scrim léger pour la lisibilité du texte sur l'image plein écran */
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(20,6,6,0.86) 0%, rgba(20,6,6,0.5) 32%, rgba(20,6,6,0.05) 52%, rgba(20,6,6,0) 68%);
  pointer-events: none;
}
.hero__media img {
  width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: right center;
  opacity: 0.97;
  filter: drop-shadow(0 30px 60px rgba(0,0,0,0.5));
  animation: kenburns 24s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes kenburns {
  0%   { transform: scale(1.02) translate(0, 0); }
  50%  { transform: scale(1.09) translate(-1.2%, -1.6%); }
  100% { transform: scale(1.02) translate(0, 0); }
}

/* COUCHE 2: Halo rouge pulsant (respiration lumineuse) */
.hero__glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 58% 42%, rgba(227,58,33,0.34) 0%, transparent 42%);
  animation: glowpulse 7s ease-in-out infinite;
  mix-blend-mode: screen;
}
@keyframes glowpulse {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 0.95; }
}

/* COUCHE 3: Vapeur — 3 volutes CSS (blurs flottants qui montent) */
.hero__steam { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }
.hero__steam span {
  position: absolute; bottom: -22%; border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(255,248,236,0.13) 0%, transparent 65%);
  filter: blur(26px);
  animation: steamrise 16s linear infinite;
  opacity: 0;
}
.hero__steam span:nth-child(1) { left: 52%; width: 240px; height: 340px; animation-delay: 0s; animation-duration: 15s; }
.hero__steam span:nth-child(2) { left: 63%; width: 190px; height: 280px; animation-delay: 5s; animation-duration: 18s; }
.hero__steam span:nth-child(3) { left: 44%; width: 280px; height: 400px; animation-delay: 9s; animation-duration: 20s; }
@keyframes steamrise {
  0%   { transform: translateY(0) scale(0.85); opacity: 0; }
  25%  { opacity: 0.7; }
  60%  { opacity: 0.4; }
  100% { transform: translateY(-78vh) scale(1.5) translateX(6%); opacity: 0; }
}

/* COUCHE 4: Grain film cinématique (SVG noise, opacité très faible) */
.hero__grain {
  position: absolute; inset: -100px; z-index: 3; pointer-events: none;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1.2s steps(4) infinite;
}
@keyframes grain {
  0% { transform: translate(0, 0); }
  25% { transform: translate(-40px, 30px); }
  50% { transform: translate(30px, -45px); }
  75% { transform: translate(-25px, -25px); }
  100% { transform: translate(0, 0); }
}

/* Vignettage sombre sur les bords */
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none;
  background: radial-gradient(120% 90% at 50% 45%, transparent 55%, rgba(10,3,3,0.75) 100%);
}
.hero__copy { position: relative; z-index: 5; padding: 110px 0 70px; max-width: 560px; }

/* Nav intégrée */
.hero__nav {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  margin-bottom: clamp(28px, 5vh, 64px);
  transition: transform .4s cubic-bezier(.16,1,.3,1), opacity .4s;
}
.nav--hidden { transform: translateY(-120%); opacity: 0; }
.hero__brand {
  font-family: "Pacifico", cursive; font-size: 24px; color: #fff; text-decoration: none;
  text-shadow: 0 2px 12px rgba(0,0,0,0.5);
}
.hero__brand span { font-size: 18px; }
.hero__links { display: flex; gap: 24px; }
.hero__links a {
  color: var(--cream-on-dark); text-decoration: none; font-size: 14px; font-weight: 700;
  transition: color .25s; padding: 8px 0;
}
.hero__links a:hover { color: var(--moutarde); }
.hero__cta {
  background: var(--moutarde); color: var(--bordeaux); text-decoration: none;
  padding: 9px 18px; border-radius: var(--radius-btn); font-weight: 800; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.05em;
}

.hero__kicker {
  display: flex; align-items: center; gap: 14px;
  font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--cream-on-dark); font-weight: 700; margin-bottom: 20px;
}
.hero__kicker span { display: block; height: 1px; width: 42px; background: rgba(255,248,236,0.35); }

.hero__title {
  font-family: "Anton", "Arial Black", sans-serif;
  font-size: clamp(64px, 9.5vw, 132px);
  line-height: 0.92; letter-spacing: -0.015em;
  text-transform: uppercase; font-weight: 400;
  margin-bottom: 22px;
  overflow: hidden;
}
.hero__title .line { display: block; overflow: hidden; }
.hero__title .txt { display: inline-block; }
.hero__title .line:first-child .txt { color: var(--moutarde); }
.hero__title .line:last-child .txt { color: var(--cream-on-dark); }

.hero__sub {
  color: var(--cream-on-dark); font-size: clamp(15px, 1.4vw, 17.5px);
  max-width: 44ch; margin-bottom: 30px; line-height: 1.6;
}
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 40px; }
.hero__meta {
  display: flex; gap: 32px; list-style: none;
  border-top: 1px solid rgba(255,248,236,0.18); padding-top: 20px;
}
.hero__meta strong { display: block; font-size: 21px; font-family: "Anton", sans-serif; letter-spacing: 0.02em; }
.hero__meta span { color: var(--dim-on-dark); font-size: 12px; }

/* Indicateur scroll cinématique */
.hero__scrollcue {
  position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%);
  z-index: 5; display: flex; flex-direction: column; align-items: center; gap: 8px;
  color: var(--dim-on-dark); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase;
}
.hero__scrollcue::after {
  content: ""; width: 1px; height: 38px;
  background: linear-gradient(180deg, var(--moutarde), transparent);
  animation: cue 2s ease-in-out infinite;
}
@keyframes cue {
  0%, 100% { transform: scaleY(0.6); opacity: 0.5; }
  50% { transform: scaleY(1); opacity: 1; }
}

/* ---------- BANDE FRESH ---------- */
.fresh {
  background: var(--ivory); color: var(--ink);
  text-align: center; padding: clamp(64px, 9vw, 110px) var(--gutter);
  clip-path: polygon(0 6%, 8% 2%, 18% 7%, 30% 1%, 32% 6%, 46% 2%, 60% 5%, 74% 1%, 88% 6%, 100% 2%, 100% 100%, 0 100%);
  margin-top: -12px;
}
.fresh__title {
  font-family: "Anton", sans-serif; font-size: clamp(38px, 5.4vw, 72px);
  text-transform: uppercase; line-height: 0.95;
}
.fresh__title em { color: var(--tomate); }
.fresh__text { color: var(--ink-soft); max-width: 52ch; margin: 18px auto 30px; font-size: 15.5px; }

/* ---------- SCÈNE ORANGE ---------- */
.stage { position: relative; background: var(--ivory); padding: clamp(20px, 3vw, 40px) var(--gutter) clamp(24px, 4vw, 56px); }
.stage__band {
  position: absolute; left: 0; right: 0; top: 12%; height: 62%;
  background: linear-gradient(115deg, var(--orange-main) 0%, var(--orange) 55%, var(--orange-fonce) 100%);
  border-radius: 8px 14px 10px 6px;
  clip-path: polygon(0 4%, 6% 0, 15% 5%, 26% 1%, 37% 6%, 48% 0, 59% 5%, 71% 1%, 83% 5%, 94% 1%, 100% 4%, 100% 96%, 92% 100%, 80% 94%, 68% 99%, 55% 95%, 43% 100%, 31% 94%, 19% 99%, 9% 95%, 0 97%);
}
.stage__items {
  position: relative; display: grid;
  grid-template-columns: 1fr 1.15fr 1fr; gap: clamp(10px, 2vw, 30px);
  align-items: center; max-width: 1080px; margin-inline: auto;
}
.stage__item { margin: 0; filter: drop-shadow(0 22px 18px rgba(62, 28, 9, 0.36)); }
.stage__item--left { transform: translateY(-34px); }
.stage__item--center { transform: translateY(26px); z-index: 2; }
.stage__item--right { transform: translateY(-34px); }
.stage__item img { width: 100%; }

/* ---------- CARTE AVEC VIGNETTES PRODUITS ---------- */
.carte { background: var(--ivory); color: var(--ink); padding: clamp(64px, 9vw, 110px) var(--gutter); }
.carte__title { font-family: "Anton", sans-serif; font-size: clamp(38px, 5vw, 68px); text-transform: uppercase; }
.carte__title em { color: var(--tomate); font-style: italic; }
.carte__lede { color: var(--ink-soft); margin: 12px 0 34px; font-size: 15.5px; }

.carte__tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 30px; }
.carte__tab {
  border: 1.5px solid var(--ink); background: transparent; color: var(--ink);
  font-family: "Anton", sans-serif; font-size: clamp(12px, 1.2vw, 15px);
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 13px 10px; cursor: pointer; border-radius: 6px;
  transition: background .22s, color .22s, transform .16s, border-color .22s;
  white-space: nowrap;
}
.carte__tab:hover { transform: translateY(-2px); border-color: var(--tomate); color: var(--tomate); }
.carte__tab.is-active { background: var(--ink); border-color: var(--ink); color: var(--cream-on-dark); }

.carte__panel { display: none; }
.carte__panel.is-active { display: block; animation: panelIn .45s cubic-bezier(.16,1,.3,1); }
@keyframes panelIn {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

/* Ligne tarifaire élégante */
.carte__pricebar { display: flex; gap: 12px; flex-wrap: wrap; align-items: baseline; margin-bottom: 26px; }
.carte__badge {
  background: transparent; color: var(--ink);
  font-family: "Anton", sans-serif; font-size: 15px; letter-spacing: 0.05em;
  text-transform: uppercase;
}
.carte__badge + .carte__badge { margin-left: 26px; }
.carte__badge + .carte__badge::before {
  content: "|"; color: rgba(23,19,19,0.25); margin-right: 26px; font-weight: 300;
}
.carte__badge--alt { color: var(--ink-soft); font-family: ui-sans-serif, system-ui; font-size: 13px; font-weight: 600; }

/* Lignes produit: vignette + grille fixe (nom → pointillés → prix alignés) */
.carte__items { list-style: none; }
.carte__item {
  display: grid; grid-template-columns: 68px 1fr; gap: 0 14px;
  padding: 13px 0; border-bottom: 1px solid rgba(23,19,19,0.07);
  align-items: center;
}
.carte__item:last-child { border-bottom: 0; }
.carte__item__thumb {
  grid-row: span 2;
  width: 68px; height: 68px;
  border-radius: 12px; overflow: hidden;
  box-shadow: 0 8px 18px rgba(73,35,16,0.22);
  border: 2px solid #fff;
  transform: rotate(-1deg);
  transition: transform .35s cubic-bezier(.16,1,.3,1);
}
.carte__item:nth-child(even) .carte__item__thumb { transform: rotate(1deg); }
.carte__item:hover .carte__item__thumb { transform: rotate(0) scale(1.08); }
.carte__item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.carte__item__body { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.carte__item__name {
  font-family: "Anton", sans-serif; font-size: 16px; letter-spacing: 0.02em; text-transform: uppercase;
  flex: 0 0 auto; white-space: nowrap;
}
.carte__item__leader {
  flex: 1 1 auto; border-bottom: 2px dotted rgba(23,19,19,0.30);
  transform: translateY(-4px); min-width: 20px;
}
.carte__item__price {
  flex: 0 0 auto; color: var(--rouge-prix); font-weight: 900;
  font-variant-numeric: tabular-nums; font-size: 15.5px;
  display: inline-flex; align-items: baseline;
}
/* Le nombre principal aligne les € ; le suffixe menu occupe une réserve fixe à droite */
.carte__item__price em {
  font-style: normal; color: #5B5348; font-size: 11px; font-weight: 600;
  display: inline-block; min-width: 64px; text-align: right; margin-left: 10px;
}
.carte__item__price:not(:has(em))::after {
  content: ""; display: inline-block; min-width: 74px;
}
.carte__item__desc {
  color: #5B5348; font-size: 12.5px; line-height: 1.4;
  grid-column: 2; margin-top: 3px;
}

/* En-têtes groupes */
.carte__group h3, .carte__cols h3 {
  font-family: "Anton", sans-serif; font-size: 20px; text-transform: uppercase;
  color: var(--ink); letter-spacing: 0.05em;
  border-bottom: 0; padding-bottom: 10px;
  margin-bottom: 12px; display: flex; align-items: center; gap: 10px;
}
.carte__group h3::after, .carte__cols h3::after {
  content: ""; flex: 1; height: 2px; background: var(--tomate); margin-left: 12px; border-radius: 1px;
}
.carte__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 38px; align-items: start; }
.carte__side { position: sticky; top: 24px; display: grid; gap: 16px; }
.carte__photo { border-radius: 10px; overflow: hidden; box-shadow: 0 24px 50px rgba(73,35,16,0.28); border: 1px solid rgba(23,19,19,0.08); }
.carte__photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.carte__hint { color: var(--ink-soft); font-size: 13.5px; }
.carte__formule {
  background: var(--ink); color: var(--cream-on-dark); display: inline-block;
  padding: 10px 18px; border-radius: 6px; font-weight: 700; font-size: 14px;
  margin-bottom: 24px; font-family: "Anton", sans-serif; letter-spacing: 0.05em; text-transform: uppercase;
}
.carte__formule strong { color: var(--moutarde); }
.carte__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.carte__kid { background: var(--cream); padding: 16px 20px; border-radius: 8px; font-size: 14.5px; border: 1px dashed rgba(23,19,19,0.25); }
.carte__kid strong { color: var(--rouge-prix); font-family: "Anton", sans-serif; font-size: 17px; }

/* ---------- GALERIE ---------- */
.galerie { background: var(--presque-noir); color: var(--cream-on-dark); padding: clamp(70px, 10vw, 130px) var(--gutter) clamp(60px, 8vw, 100px); }
.galerie__head { text-align: center; margin-bottom: clamp(28px, 3.6vw, 44px); }
.galerie__title { font-family: "Anton", sans-serif; font-size: clamp(34px, 4.6vw, 62px); text-transform: uppercase; }
.galerie__title em { color: var(--moutarde); font-style: italic; }
.galerie__lede { color: var(--dim-on-dark); margin-top: 12px; font-size: 15.5px; }
.galerie__hero { position: relative; margin: 0 0 18px; border-radius: 10px; overflow: hidden; box-shadow: 0 30px 70px rgba(0,0,0,0.55); }
.galerie__hero img { width: 100%; aspect-ratio: 16/8; object-fit: cover; }
@media (max-width: 900px) {
  .galerie__hero img { aspect-ratio: 4/3; }
  .galerie__hero-copy { position: static; transform: none; max-width: none; text-align: left; padding: 18px 16px 8px; }
  .galerie__hero-kicker { justify-content: flex-start; }
}
.galerie__hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(270deg, rgba(22,7,7,0.72) 0%, rgba(22,7,7,0.25) 45%, transparent 70%);
  pointer-events: none;
}
.galerie__hero-copy {
  position: absolute; right: clamp(24px, 4.5vw, 64px); top: 50%; transform: translateY(-50%);
  z-index: 2; max-width: 380px; text-align: right;
}
.galerie__hero-kicker {
  font-size: 11.5px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--moutarde); font-weight: 800; font-family: "Anton", sans-serif;
  display: flex; align-items: center; gap: 12px; margin-bottom: 12px; justify-content: flex-end;
}
.galerie__hero-kicker::after { content: ""; width: 34px; height: 2px; background: var(--moutarde); }
.galerie__hero-title { font-family: "Anton", sans-serif; font-size: clamp(30px, 3.8vw, 52px); line-height: 0.95; text-transform: uppercase; margin-bottom: 12px; }
.galerie__hero-title em { color: var(--moutarde); font-style: italic; }
.galerie__hero-sub { color: var(--cream-on-dark); font-size: 14.5px; margin-bottom: 20px; max-width: 34ch; }
.galerie__hero-copy .btn { font-size: 13px; padding: 12px 20px; }
.galerie__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.galerie__item { position: relative; margin: 0; border-radius: 10px; overflow: hidden; box-shadow: 0 22px 50px rgba(0,0,0,0.45); border: 1px solid rgba(255,248,236,0.07); }
.galerie__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.galerie__item:hover img { transform: scale(1.045); }
.galerie__tag {
  position: absolute; left: 14px; bottom: 14px; z-index: 2;
  display: flex; align-items: center; gap: 12px;
  background: rgba(22, 7, 7, 0.82); backdrop-filter: blur(6px);
  border: 1px solid rgba(255,248,236,0.14); border-radius: 6px; padding: 9px 16px;
}
.galerie__tag span { color: var(--cream-on-dark); font-size: 13px; font-weight: 700; }
.galerie__tag b { color: var(--moutarde); font-family: "Anton", sans-serif; font-size: 15px; }

/* ---------- INFOS ---------- */
.infos { background: var(--rouge-sombre, #931816); color: var(--cream-on-dark); padding: clamp(56px, 8vw, 100px) var(--gutter); position: relative; }
.infos::before {
  content: ""; position: absolute; inset: -2px 0 auto 0; height: 34px;
  background: var(--ivory);
  clip-path: polygon(0 0, 100% 0, 100% 20%, 88% 60%, 74% 30%, 60% 70%, 45% 35%, 30% 75%, 16% 40%, 4% 70%, 0 45%);
}
.infos__card { max-width: 720px; margin-inline: auto; text-align: center; }
.infos h2 { font-family: "Anton", sans-serif; font-size: clamp(30px, 4.4vw, 56px); text-transform: uppercase; margin-bottom: 34px; }
.infos h2 em { color: var(--moutarde); font-style: italic; }
.infos__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; text-align: left; margin-bottom: 34px; }
.infos dt { font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--moutarde); font-weight: 800; margin-bottom: 5px; font-family: "Anton", sans-serif; }
.infos dd { color: var(--cream-on-dark); font-size: 15.5px; }
.infos dd a { color: var(--cream-on-dark); text-decoration: underline; text-decoration-color: var(--moutarde); text-underline-offset: 3px; }

/* ---------- FOOTER ---------- */
.footer { background: var(--rouge-sombre, #931816); border-top: 1px solid rgba(255,248,236,0.15); padding: 26px var(--gutter) 40px; color: var(--dim-on-dark); font-size: 13px; }
.footer__fine { margin-top: 5px; font-size: 12px; color: rgba(215,194,176,0.65); }

/* ---------- REVEALS ---------- */
@media (prefers-reduced-motion: no-preference) {
  .fresh__title, .carte__title, .galerie__title, .infos h2,
  .carte__side, .galerie__item, .infos__card, .stage__item, .galerie__hero {
    opacity: 0; transform: translateY(24px);
    transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  }
  .galerie__hero { transform: none; }
  .in-view { opacity: 1 !important; transform: translateY(0) !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero__media img, .hero__glow, .hero__steam, .hero__grain, .hero__scrollcue::after { animation: none; }
  .hero__steam { display: none; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero__media { inset: 0; }
  .hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 72% center; opacity: 0.55; }
  .hero__copy { max-width: none; }
  .stage__items { grid-template-columns: 1fr; max-width: 420px; }
  .stage__item--left, .stage__item--center, .stage__item--right { transform: none; }
  .carte__grid { grid-template-columns: 1fr; }
  .carte__side { position: static; }
  .carte__cols { grid-template-columns: 1fr; }
  .carte__tabs { grid-template-columns: repeat(2, 1fr); }
  .galerie__grid { grid-template-columns: 1fr; }
  .galerie__hero img { aspect-ratio: 3/2; }
  .galerie__hero::after { background: linear-gradient(180deg, rgba(22,7,7,0.15) 40%, rgba(22,7,7,0.85) 100%); }
  .galerie__hero-copy { left: 20px; right: 20px; top: auto; bottom: 18px; transform: none; max-width: none; text-align: left; }
  .galerie__hero-kicker { justify-content: flex-start; }
  .infos__grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .hero__links { display: none; }
  .hero__title { font-size: clamp(52px, 16vw, 76px); }
  .hero__meta { gap: 20px; flex-wrap: wrap; }
  /* Vignettes plus compactes sur mobile */
  .carte__item { gap: 12px; }
  .carte__item__thumb { flex: 0 0 58px; width: 58px; height: 58px; }
  .carte__item__desc { display: none; }
}

/* ---------- AVIS CLIENTS ---------- */
.avis {
  background: var(--bordeaux, #240809);
  color: var(--ivoire, #FFF8DD);
  padding: clamp(56px, 8vw, 100px) var(--gutter, 24px);
  text-align: center;
}
.avis__kicker { font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase; opacity: 0.75; margin: 0 0 10px; }
.avis__title { font-family: "Anton", sans-serif; font-size: clamp(34px, 5vw, 60px); text-transform: uppercase; margin: 0 0 8px; }
.avis__title span { color: #FFB51B; }
.avis__lede { opacity: 0.85; margin: 0 0 clamp(28px, 4vw, 44px); }
.avis__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 22px); max-width: 1100px; margin: 0 auto; }
.avis__card {
  background: rgba(255, 248, 221, 0.05);
  border: 1px solid rgba(255, 248, 221, 0.14);
  border-radius: 12px;
  padding: clamp(18px, 2.4vw, 28px);
  text-align: left;
  display: flex; flex-direction: column; gap: 12px;
}
.avis__stars { color: #FFB51B; letter-spacing: 3px; font-size: 15px; }
.avis__card blockquote { margin: 0; line-height: 1.55; font-size: 15.5px; }
.avis__card figcaption { font-size: 13px; opacity: 0.7; margin-top: auto; }
.avis__cta { margin-top: clamp(28px, 4vw, 42px); }
@media (max-width: 900px) {
  .avis__grid { grid-template-columns: 1fr; max-width: 480px; }
}

/* ---------- BADGE OUVERT/FERMÉ ---------- */
.open-badge {
  display: inline-block; margin-left: 8px;
  padding: 3px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.04em;
  vertical-align: middle;
}
.open-badge.is-open { background: #1d5c33; color: #c8f7d8; }
.open-badge.is-closed { background: #5c1d1d; color: #f7c8c8; }

/* ---------- STICKY CTA MOBILE ---------- */
.sticky-cta {
  position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 90;
  display: none;
  gap: 10px;
  transform: translateY(140%);
  transition: transform 0.45s cubic-bezier(.16,1,.3,1);
}
.sticky-cta.is-visible { transform: translateY(0); }
.sticky-cta__call, .sticky-cta__order {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 14px 10px; border-radius: 12px;
  font-weight: 800; font-size: 15px; letter-spacing: 0.03em;
  text-decoration: none;
  box-shadow: 0 12px 32px rgba(0,0,0,0.45);
}
.sticky-cta__call { background: #1d5c33; color: #fff; }
.sticky-cta__order { background: var(--tomate, #E33A21); color: #fff; }
@media (max-width: 720px) {
  .sticky-cta { display: flex; }
  /* ne pas masquer le footer: espace réservé en bas */
  footer { padding-bottom: 96px; }
}
@media (prefers-reduced-motion: reduce) {
  .sticky-cta { transition: none; }
}

.btn--pdf {
  background: transparent; color: var(--ivoire, #FFF8DD);
  border: 2px solid rgba(255, 248, 221, 0.35);
}
.btn--pdf:hover { border-color: var(--ivoire, #FFF8DD); }


/* ---------- v15 PREMIUM: fresh + infos split (images GPT Image 2.5) ---------- */
.fresh {
  position: relative;
  overflow: clip;
}
.fresh__photo {
  position: absolute; right: clamp(-80px, -4vw, -20px); top: 50%;
  transform: translateY(-50%);
  width: clamp(220px, 30vw, 420px); aspect-ratio: 1145 / 1374;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,0.45);
  opacity: 0.94;
}
.fresh__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fresh__body { position: relative; z-index: 1; max-width: 58%; }
@media (max-width: 900px) {
  .fresh__photo { position: static; transform: none; width: 100%; margin: 0 0 20px; aspect-ratio: 16/10; }
  .fresh__body { max-width: 100%; text-align: center; }
}

.infos {
  position: relative;
  display: grid; grid-template-columns: 47fr 53fr; gap: clamp(20px, 3vw, 40px);
  align-items: stretch;
}
.infos__photo {
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,0.5);
  min-height: 320px;
}
.infos__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.infos__card { height: 100%; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 900px) {
  .infos { grid-template-columns: 1fr; }
  .infos__photo { min-height: 220px; }
}

/* Polish cartes avis: hover lift + bordure accent */
.avis__card {
  transition: transform .35s cubic-bezier(.16,1,.3,1), border-color .35s, box-shadow .35s;
}
.avis__card:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 181, 27, 0.45);
  box-shadow: 0 18px 44px rgba(0,0,0,0.4);
}
@media (prefers-reduced-motion: reduce) {
  .avis__card, .avis__card:hover { transition: none; transform: none; }
}

/* Vignettes carte: ombre douce premium */
.carte__item__thumb img {
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}




/* ---------- v17: produits détourés flottants (plus de carrés) ---------- */
.stage { overflow: clip; }
.stage__items { align-items: center; }
.stage__item {
  position: relative;
  filter: drop-shadow(0 34px 44px rgba(36, 8, 9, 0.38)) drop-shadow(0 8px 14px rgba(36, 8, 9, 0.22));
  transition: transform .55s cubic-bezier(.16,1,.3,1);
}
.stage__item--left { transform: rotate(-2deg); }
.stage__item--center { transform: translateY(-10px); }
.stage__item--right { transform: rotate(2.4deg); }
.stage__item:hover { transform: translateY(-14px) rotate(0deg) scale(1.03); }
.stage__item img { display: block; width: 100%; height: auto; }
@media (prefers-reduced-motion: reduce) {
  .stage__item, .stage__item:hover { transition: none; transform: none; }
}


/* ---------- v18: photo réelle de la salle au-dessus du footer ---------- */
.footer-photo {
  position: relative;
  margin: 0;
  overflow: hidden;
}
.footer-photo img {
  display: block; width: 100%; height: clamp(200px, 30vw, 400px); object-fit: cover;
  filter: saturate(1.04);
}
.footer-photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(36,8,9,0.0) 55%, rgba(36,8,9,0.55) 100%);
  pointer-events: none;
}
.footer-photo figcaption {
  position: absolute; left: var(--gutter); bottom: 14px; z-index: 1;
  color: #FFF8DD; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
  opacity: 0.9;
}
@media (prefers-reduced-motion: reduce) { .footer-photo img { filter: none; } }
