/* Base du thème Fourrier (complète theme.json). Reproduit l'habillage du site
   existant, éléments non couverts par theme.json. */

html { overflow-x: clip; }

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip;
  /* or assombri pour le TEXTE sur fond clair (WCAG AA 4.69:1) ; l'or de marque
     #B98D58 reste pour les usages sur fond sombre (header/footer) où il passe. */
  --gold-ink: #8A6A3E;
  /* Surfaces photo (cartes, galeries, images de contenu) : rayon doux + ombre
     chaude légère pour un rendu actuel. Packshots bouteilles détourés exclus. */
  --img-radius: 12px;
  --img-shadow: 0 10px 30px -12px rgba(40, 30, 22, 0.30), 0 3px 10px -5px rgba(40, 30, 22, 0.16);
}

/* Focus clavier cohérent avec la charte (or), au lieu de l'outline générique du
   navigateur. Uniquement :focus-visible → invisible à la souris, visible au clavier. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.wp-element-button:focus-visible {
  outline: 2px solid var(--wp--preset--color--gold);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Sur-titre (eyebrow) réutilisable hors hiérarchie Hn */
.is-eyebrow {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: var(--wp--preset--font-size--eyebrow);
  font-weight: 100;
  letter-spacing: 10px;
  text-transform: uppercase;
  color: var(--gold-ink);
}

/* Header transparent superposé au hero de la home */
.site-header {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: transparent;
}
.nav-toggle { display: none; } /* burger : visible uniquement en mobile (voir media query) */
/* La barre d'admin WP (position:fixed) ne pousse pas un header absolu :
   on le décale manuellement de sa hauteur quand on est connecté. */
body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .site-header { top: 0; } /* header relatif en mobile : pas d'offset (la marge html de la barre WP suffit) */
}
.site-header .wp-block-navigation a,
.site-header .wp-block-navigation .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wp--preset--color--white);
}
/* Hover menu = réplique de la réf : texte vers gris clair + barre dorée
   animée (largeur 0 -> 100%) en bas du lien. */
.site-header .site-nav a { position: relative; }
.site-header .site-nav a::after {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  transform-origin: left center;
  width: 100%; height: 2px;
  background: var(--wp--preset--color--gold);
  transition: transform 0.3s ease;
  scale: 0 1;
}
.site-header .site-nav a:hover::after { scale: 1 1; }
.site-header .wp-block-navigation a:hover { color: var(--wp--preset--color--border); }
.site-header .wp-block-navigation__submenu-icon {
  min-width: 24px;
  min-height: 24px;
  margin-left: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .site-header .site-nav a::after { transition: none; }
}
/* Mega-menu : déroulé sombre (gammes sous « Nos champagnes ») */
.site-header .wp-block-navigation__submenu-container {
  background-color: var(--wp--preset--color--ink-dark) !important; border: 0 !important; border-radius: 3px;
  padding: 8px 0; min-width: 220px; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
}
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.site-header .wp-block-navigation__submenu-container a {
  color: var(--wp--preset--color--white) !important; padding: 11px 22px; font-size: 12px; letter-spacing: 1px;
}
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--gold); }
.site-header .wp-block-navigation__submenu-container a::after { display: none; } /* pas de soulignement animé dans le déroulé */
/* en-tête split : menu gauche | logo centré | menu droite */
.site-header__grid { display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; }
.site-nav--left { justify-self: start; }
.site-nav--right { justify-self: end; }
.site-header__grid .site-logo { justify-self: center; }
.site-logo { margin: 0; }
.site-logo img { width: 256px !important; height: auto; }
@media (max-width: 900px) {
  .site-header__grid { grid-template-columns: 1fr; justify-items: center; gap: 12px; }
  .site-nav--left, .site-nav--right { justify-self: center; }
  .site-nav { flex-wrap: wrap !important; justify-content: center !important; }
}

/* Hero de la home + hero des pages internes (même esprit : image + H1 + frise) */
.home-hero { position: relative; }
.page-hero {
  --fourrier-hero-shape-height: clamp(60px, calc(100vw * 0.0827), 160px);
  position: relative;
  min-height: clamp(360px, 54vh, 560px);
  /* dégage le header (haut, absolu) et la frise déchirée (bas) pour que le
     titre centré ne les percute jamais, même sur 2-3 lignes. */
  padding-block: clamp(104px, 13vh, 150px) clamp(64px, 8vh, 104px);
  box-sizing: border-box;
}
.home-hero .wp-block-heading,
.page-hero .wp-block-heading { font-family: var(--wp--preset--font-family--display); text-shadow: 0 1px 14px rgba(0, 0, 0, 0.35); }
/* Titre du hero des pages : porté par le modèle page.html via le bloc post-title
   (titre de la page). Stylé ici (et non en inline) pour rester éditable et DRY. */
/* Le fond du hero reste pleine largeur, mais le titre est contraint à la
   largeur de contenu du site (1260px) + padding, jamais bord à bord. */
.page-hero .wp-block-cover__inner-container {
  width: 100%;
  max-width: 1260px;
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
  box-sizing: border-box;
}
.page-hero h1, .page-hero .wp-block-post-title {
  font-family: var(--wp--preset--font-family--display);
  color: #fff;
	font-size: 60px;
  font-weight: 300;
  line-height: 1.15;
  text-align: center;
  margin: 0;
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.35);
	max-width: 22ch;
	margin-inline: auto;
	padding-inline: 8px;
	box-sizing: border-box;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: none;
	text-wrap: balance;
}
@media (max-width: 1200px) {
	.page-hero h1, .page-hero .wp-block-post-title { font-size: 48px; }
}
/* Hero enrichi : fil d'Ariane centré au-dessus du H1, descriptif centré sous le H1, dans la photo */
.page-hero__crumb { margin: 0 0 16px; }
.page-hero__crumb .fil-ariane__nav { text-align: center; font-size: 1rem; color: rgba(255, 255, 255, 0.92); text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); }
.page-hero__crumb .fil-ariane__nav a { color: #e8d5b3; }
.page-hero__crumb .fil-ariane__nav a:hover { color: #fff; }
.page-hero__crumb .fil-ariane__nav .current { color: rgba(255, 255, 255, 0.95); }
.page-hero__crumb .fil-ariane__nav .separator { color: rgba(255, 255, 255, 0.55); }
.page-hero__lede {
  max-width: 52ch; margin: 24px auto 0;
  text-align: center;
  color: #fff;
  font-size: clamp(1.18rem, 1.5vw, 1.42rem);
  line-height: 1.6;
  letter-spacing: 0.01em;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.6);
  text-wrap: balance;
}
.page-hero__lede p { margin: 0; }
/* overlay renforcé : le texte clair reste lisible sur toute photo (contraste) */
.page-hero.page-hero--rich .wp-block-cover__background { opacity: 0.66 !important; }
/* Hero enrichi : plus de place en haut (passer sous le logo centré) et en bas
   (le descriptif, parfois sur 4-5 lignes, ne doit jamais toucher la frise déchirée ~119px). */
.page-hero--rich { padding-block: clamp(256px, 24vh, 300px) clamp(158px, 17vh, 200px); min-height: clamp(520px, 66vh, 720px); }
/* hero "titre seul" (catégories, sans texte sous le H1) : resserré, moins de vide sous le titre.
   Plancher 256px = hauteur mesurée du header (jusqu'à 216px en desktop, nav sur 2 lignes) + marge
   de sécurité ; sans ce plancher le fil d'Ariane chevauchait le logo à 1280-1920px (mesuré -26px). */
.page-hero--titleonly {
  padding-block: clamp(256px, 22vh, 290px) calc(var(--fourrier-hero-shape-height) + 28px);
  min-height: clamp(460px, 52vh, 580px);
}
.page-hero--titleonly h1,
.page-hero--titleonly .wp-block-post-title {
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.78), 0 1px 5px rgba(0, 0, 0, 0.72);
}
/* Mobile : le header passe en flux normal (barre solide) au lieu d'être en
   absolu par-dessus le hero, sinon le titre long le percute. Titre réduit.
   Placé APRÈS les règles de base pour gagner la cascade. */
@media (max-width: 781px) {
  /* header en flux normal (barre solide) + contexte pour le burger absolu */
  .site-header { position: relative; background: var(--wp--preset--color--ink-dark); }
  /* header en flux au-dessus du hero : plus besoin de descendre le bloc rich,
     mais on garde de la place en bas pour la frise + le descriptif */
  .page-hero--rich { padding-block: clamp(40px, 7vh, 64px) clamp(104px, 14vh, 134px); }
  .page-hero--titleonly { padding-block: clamp(36px, 6vh, 56px) calc(var(--fourrier-hero-shape-height) + 20px); }
  /* le fil revient dans le flux (centré, au-dessus du titre) : pas de logo absolu à éviter */
  .page-hero--rich .page-hero__crumb { position: static; margin: 0 0 12px; }
  .page-hero__crumb .fil-ariane__nav { text-align: center; }
  /* bouton burger */
  .nav-toggle {
    display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
    position: absolute; top: 22px; right: 24px; z-index: 210;
    width: 32px; height: 28px; padding: 0; background: none; border: 0; cursor: pointer;
  }
  .nav-toggle__bar { display: block; width: 28px; height: 2px; background: var(--wp--preset--color--white); transition: transform .25s ease, opacity .2s ease; }
  .site-header.nav-open .nav-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .site-header.nav-open .nav-toggle__bar:nth-child(2) { opacity: 0; }
  .site-header.nav-open .nav-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  /* fermé : barre avec le logo (le logo reste sur le site) ; navs + lang masquées */
  .site-header__grid { flex-direction: column; align-items: center; gap: 0; }
  .site-nav { display: none !important; width: 100%; }
  .site-lang { display: none; }

  /* OUVERT : overlay PLEIN ÉCRAN (100dvh), opaque, écran du dessous jamais visible.
     AUCUN logo dans le menu, juste les liens + FR/EN centrés verticalement. */
  .site-header.nav-open {
    position: fixed; inset: 0; z-index: 200;
    min-height: 100vh; min-height: 100dvh;
    background: var(--wp--preset--color--ink-dark);
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    overflow-y: auto; padding: 84px 24px; box-sizing: border-box;
  }
  /* connecté : l'overlay démarre SOUS la barre d'admin WP (la croix reste
     cliquable, la barre WP n'est jamais recouverte). Invisible pour les visiteurs. */
  body.admin-bar .site-header.nav-open { top: 46px; min-height: calc(100dvh - 46px); }
  .site-header.nav-open .site-logo { display: none !important; } /* le logo n'a rien à faire dans le menu */
  .site-header.nav-open .site-header__grid { width: 100%; gap: 0; }
  .site-header.nav-open .site-nav { display: flex !important; flex-direction: column; align-items: center; width: 100%; }
  .site-header.nav-open .site-nav ul { flex-direction: column !important; align-items: center; gap: 0; width: 100%; }
  .site-header.nav-open .site-nav a { display: block; padding: 16px 0; font-size: 19px; }
  .site-header.nav-open .site-lang { display: flex; justify-content: center; margin-top: 28px; }

  /* hero */
  .page-hero { padding-block: 44px 52px; min-height: clamp(260px, 40vh, 400px); }
  .page-hero.page-hero--titleonly {
    padding-block: clamp(36px, 6vh, 56px) calc(var(--fourrier-hero-shape-height) + 20px);
  }
  .page-hero::before { display: none; }
	.page-hero h1, .page-hero .wp-block-post-title { font-size: 34px; line-height: 1.2; }
}
@media (max-width: 480px) {
	.page-hero h1, .page-hero .wp-block-post-title { font-size: 30px; }
}
/* Contraste du hero home : la photo (vignoble + village) est claire partout,
   le texte blanc devenait illisible avec le simple voile plat à 0.3. On remplace
   ce voile par un scrim radial : sombre au centre (sous le titre = contraste AA/AAA),
   léger sur les bords (la photo reste lisible). Le cover__background est toujours
   au-dessus de l'image et sous le contenu, donc stacking garanti. */
.home-hero > .wp-block-cover__background {
  opacity: 0.92 !important;
  background-color: transparent !important;
  background-image: radial-gradient(ellipse 92% 70% at 50% 50%,
      rgba(8, 10, 12, 0.62) 0%,
      rgba(8, 10, 12, 0.40) 48%,
      rgba(8, 10, 12, 0.12) 100%);
}

/* scrim dégradé en haut : rend le menu blanc lisible sur les zones claires (ciel) */
.home-hero::before,
.page-hero::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 200px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.30), rgba(0, 0, 0, 0));
  z-index: 1;
  pointer-events: none;
}
/* Effet Ken Burns : zoom lent in/out en boucle sur la photo du hero.
   100% CSS, animé sur transform (GPU, ni layout ni repaint) = coût perf nul.
   overflow:clip du hero évite tout débordement. */
.home-hero .wp-block-cover__image-background {
  transform-origin: center;
  animation: hero-kenburns 16s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes hero-kenburns {
  from { transform: scale(1); }
  to   { transform: scale(1.10); }
}
@media (prefers-reduced-motion: reduce) {
  .home-hero .wp-block-cover__image-background { animation: none; }
}

/* bord papier déchiré crème en bas du hero (SVG cream qui se dessine,
   comme la réf : header-shape-1-1.svg, ratio 2613:216 = 0.0827) */
.home-hero::after,
.page-hero::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: var(--fourrier-hero-shape-height);
  background: url(../img/header-shape.svg) bottom center / 100% 100% no-repeat;
  z-index: 2;
  pointer-events: none;
}

/* ===== Section cuvées (home) : en-tête + carrousel dynamique auto-défilant ===== */
.cuvees-head { max-width: 780px; margin: 0 auto clamp(34px, 5vh, 60px); }
.cuvees-head .eyebrow { display: block; margin-bottom: 14px; }
.cuvees-head__title { font-size: clamp(34px, 4.6vw, 56px); font-weight: 300; line-height: 1.08; margin: 0 0 22px; }
.cuvees-head__lede { font-size: 19px; line-height: 1.66; color: var(--wp--preset--color--ink); max-width: 66ch; margin: 0 auto; }

/* le post-template rend un <ul> : rangée horizontale, scroll fluide, scrollbar masquée */
/* pas de scroll-snap : il annulerait le defilement automatique par micro-increments
   (le snap rappellerait au point d'ancrage a chaque frame). Scroll manuel reste libre. */
.cuvees-carousel {
  display: flex; flex-wrap: nowrap; gap: clamp(26px, 3vw, 52px);
  list-style: none; margin: 0; padding: 6px 0 10px;
  width: max-content;
}
.cuvees-carousel > li {
  flex: 0 0 clamp(216px, 23vw, 274px); margin: 0;
  display: flex; flex-direction: column; align-items: center; text-align: center;
}
.cuvee-slide__img { margin: 0 0 18px; width: 100%; }
.cuvee-slide__img img { max-height: 300px; width: auto; margin: 0 auto; display: block; object-fit: contain; }
/* Capsules = objets ronds : plus petites que les bouteilles dans le marquee */
body.gamme-capsules .produit-related .cuvees-carousel > li { flex-basis: clamp(180px, 18vw, 210px); }
body.gamme-capsules .produit-related .cuvee-slide__img img { max-height: 190px; }
.cuvee-slide__title { font-size: clamp(24px, 2.4vw, 30px); font-weight: 300; line-height: 1.12; margin: 0 0 10px; overflow-wrap: break-word; word-break: normal; hyphens: none; }
.cuvee-slide__title a { text-decoration: none; }
.cuvees-section .cuvee-slide__more {
  display: inline-block;
  width: fit-content;
  margin: 13px auto 0;
  padding: 7px 14px 8px;
  border: 1px solid rgba(84, 93, 92, 0.32);
  border-radius: 999px;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-ink);
  text-decoration: none;
  transition: opacity .25s ease, transform .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.cuvees-section .cuvee-slide__more:hover,
.cuvees-section .cuvee-slide__more:focus-visible {
  background: var(--wp--preset--color--ink-dark);
  border-color: var(--wp--preset--color--ink-dark);
  color: var(--wp--preset--color--white);
}
.cuvee-slide__note { font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--grey); margin: 0; max-width: 32ch; white-space: pre-line; }
.cuvees-section__actions { margin-top: clamp(28px, 4vh, 46px); }
.cuvees-section__actions .wp-block-button__link {
  min-width: 190px;
}

/* fleches de navigation manuelle du carrousel */
.cuvees-carousel-wrap { position: relative; overflow: hidden; }
/* fondu crème aux bords : les cartes partielles se fondent au lieu d'être coupées net */
.cuvees-carousel-wrap::before,
.cuvees-carousel-wrap::after {
  content: ""; position: absolute; top: 0; bottom: 0; z-index: 2;
  width: clamp(28px, 5vw, 80px); pointer-events: none;
}
.cuvees-carousel-wrap::before { left: 0; background: linear-gradient(90deg, var(--wp--preset--color--cream), rgba(249, 248, 244, 0)); }
.cuvees-carousel-wrap::after { right: 0; background: linear-gradient(270deg, var(--wp--preset--color--cream), rgba(249, 248, 244, 0)); }
.cuvees-nav {
  position: absolute; top: 38%; transform: translateY(-50%); z-index: 5;
  width: 48px; height: 48px; border-radius: 50%; padding: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.92); border: 1px solid var(--wp--preset--color--border);
  color: var(--wp--preset--color--ink); cursor: pointer;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.10);
  transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.cuvees-nav:hover { background: var(--wp--preset--color--ink-dark); color: var(--wp--preset--color--white); }
.cuvees-nav:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 2px; }
.cuvees-nav--prev { left: clamp(2px, 1vw, 14px); }
.cuvees-nav--next { right: clamp(2px, 1vw, 14px); }
@media (max-width: 600px) { .cuvees-nav { width: 40px; height: 40px; top: 36%; } }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* ===== Section actualités : grille bento (home) =====
   1 grande carte (2x2) + 1 large (2x1) + 2 petites (1x1). Chaque carte =
   image plein cadre + scrim + texte blanc posé en bas (robuste : la cellule
   est toujours remplie quelle que soit la longueur du titre/extrait). */
.article-bento {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 232px;
  gap: 18px;
}
.articles-section__lede {
  max-width: 60ch;
  margin: -4px auto 38px;
  color: var(--wp--preset--color--ink);
  font-size: 18px;
  line-height: 1.58;
}
.article-bento > li {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: var(--img-radius);
  box-shadow: var(--img-shadow);
  isolation: isolate;
  background: var(--wp--preset--color--ink-dark);
}
.article-bento > li:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.article-bento > li:nth-child(2) { grid-column: span 2; grid-row: span 1; }
.article-bento > li:nth-child(3) { grid-column: span 1; grid-row: span 1; }
.article-bento > li:nth-child(4) { grid-column: span 1; grid-row: span 1; }

.article-bento .card__img { margin: 0; position: absolute; inset: 0; z-index: 0; }
.article-bento .card__img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.article-bento > li:hover .card__img img { transform: scale(1.05); }

.article-bento > li::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(to top,
    rgba(8, 10, 12, 0.90) 0%, rgba(8, 10, 12, 0.48) 38%, rgba(8, 10, 12, 0.04) 72%);
}

.article-bento .card__body {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 26px 26px 24px;
  gap: 10px;
}
.article-bento .card__meta {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
  align-items: baseline; gap: 0;
}
.article-bento .card__author::before { content: "·"; margin: 0 0.5em; color: var(--wp--preset--color--gold); }
.article-bento .card__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 500; line-height: 1.15;
  font-size: 22px;
	text-wrap: balance;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: none;
}
.article-bento .card__title a { color: #fff; text-decoration: none; }
.article-bento .card__title a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.article-bento .card__title a:hover { color: #e8d5b3; }
.article-bento .card__excerpt {
  margin: 0; color: rgba(255, 255, 255, 0.86);
  font-size: 15px; line-height: 1.55;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.article-bento > li:nth-child(1) .card__title { font-size: clamp(26px, 2.4vw, 34px); }
.article-bento > li:nth-child(2) .card__title { font-size: 25px; }
.article-bento > li:not(:nth-child(1)) .card__excerpt { display: none; }

@media (max-width: 1024px) {
  .article-bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 210px; }
  .article-bento > li:nth-child(1) { grid-column: span 2; grid-row: span 2; }
  .article-bento > li:nth-child(2) { grid-column: span 2; grid-row: span 1; }
  .article-bento > li:nth-child(3),
  .article-bento > li:nth-child(4) { grid-column: span 1; grid-row: span 1; }
}
@media (max-width: 600px) {
  .article-bento { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .article-bento > li { grid-column: auto; grid-row: auto; }
  .article-bento > li .card__excerpt { display: -webkit-box; }
}

/* Section galerie ("Notre maison de champagne") — marquee auto sens inverse
   des cuvées (piloté par cuvees-carousel.js). Fallback sans JS = scroll natif. */
.galerie-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 24px !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 8px clamp(16px, 4vw, 60px) 16px;
  margin-bottom: 40px;
}
.galerie-row::-webkit-scrollbar { display: none; }
/* Mode marquee (classe posée par le JS) : le wrap clippe, le track glisse. */
.galerie-row.is-marquee {
  width: max-content;
  overflow: visible;
  scroll-snap-type: none;
  padding: 0;
  margin: 0;
}
.galerie-marquee-wrap {
  position: relative;
  overflow: hidden;
  padding-block: 30px;          /* respiration pour l'ombre douce des cartes */
  margin-bottom: 34px;
}
.galerie-marquee-wrap::before,
.galerie-marquee-wrap::after {
  content: "";
  position: absolute; top: 0; bottom: 0;
  width: clamp(40px, 8vw, 130px);
  z-index: 2; pointer-events: none;
}
.galerie-marquee-wrap::before { left: 0;  background: linear-gradient(to right, var(--wp--preset--color--cream), transparent); }
.galerie-marquee-wrap::after  { right: 0; background: linear-gradient(to left,  var(--wp--preset--color--cream), transparent); }
.galerie-slide {
  flex: 0 0 clamp(260px, 30vw, 360px);
  scroll-snap-align: center;
  margin: 0;
  border-radius: var(--img-radius);
  box-shadow: var(--img-shadow);
  overflow: hidden;
}
.galerie-slide img {
  width: 100%;
  height: clamp(360px, 40vw, 480px);
  object-fit: cover;
  display: block;
}
.galerie-intro {
  max-width: 680px;
  margin: 0 auto 18px;
  color: var(--wp--preset--color--ink);
}
.galerie-more { margin: 0 auto; }
.galerie-more a, .link-more a {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 16px;
  font-weight: 300;
  color: var(--gold-ink);
  text-decoration: none;
  letter-spacing: 1px;
}
.galerie-more a:hover, .link-more a:hover { text-decoration: underline; }
.link-more { margin-top: 8px; }

/* Bandeau pratique home : les infos de contact sortent du seul footer sans
   casser le calme de la page. */
.home-practical-section {
  position: relative;
}
.home-practical {
  align-items: stretch;
  gap: 20px !important;
  margin: 0 auto;
}
.home-practical .wp-block-column {
  padding: clamp(24px, 3vw, 34px);
  background: rgba(255, 255, 255, 0.48);
  border: 1px solid rgba(84, 93, 92, 0.16);
  border-radius: 8px;
}
.home-practical__kicker {
  margin: 0 0 12px;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-ink);
}
.home-practical__title {
  margin: 0 0 10px;
  font-size: clamp(24px, 2.2vw, 30px);
  line-height: 1.16;
  font-weight: 400;
}
.home-practical__title a {
  color: inherit;
  text-decoration: none;
}
.home-practical__title a:hover,
.home-practical__title a:focus-visible {
  color: var(--gold-ink);
}
.home-practical__text {
  margin: 0;
  font-size: 17px;
  line-height: 1.52;
  color: var(--wp--preset--color--ink);
}

/* Bandeau pratique transverse : fin de page, avant footer. */
.site-practical-cta {
  background: var(--wp--preset--color--cream);
  padding: clamp(36px, 5vh, 58px) clamp(20px, 4vw, 48px) clamp(30px, 4vh, 48px);
}
.site-practical-cta__inner {
  max-width: 1120px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  padding: clamp(24px, 3vw, 34px) clamp(22px, 3vw, 34px);
  border-top: 1px solid rgba(84, 93, 92, 0.16);
  border-bottom: 1px solid rgba(84, 93, 92, 0.16);
}
.site-practical-cta__kicker {
  margin: 0 0 10px;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-ink);
}
.site-practical-cta__title {
  margin: 0 0 10px;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.12;
  font-weight: 400;
}
.site-practical-cta__text {
  margin: 0;
  max-width: 58ch;
  color: var(--wp--preset--color--ink);
  font-size: 18px;
  line-height: 1.56;
}
.site-practical-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
}
.site-practical-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  min-width: 172px;
  padding: 0.85rem 1.35rem;
  border: 1px solid var(--wp--preset--color--ink-dark);
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.site-practical-cta__button--primary {
  background: var(--wp--preset--color--ink-dark);
  color: var(--wp--preset--color--white);
}
.site-practical-cta__button--primary:hover,
.site-practical-cta__button--primary:focus-visible {
  background: var(--wp--preset--color--gold);
  border-color: var(--wp--preset--color--gold);
  color: var(--wp--preset--color--ink-dark);
}
.site-practical-cta__button--secondary {
  background: transparent;
  color: var(--wp--preset--color--ink-dark);
}
.site-practical-cta__button--secondary:hover,
.site-practical-cta__button--secondary:focus-visible {
  background: var(--wp--preset--color--ink-dark);
  color: var(--wp--preset--color--white);
}
@media (max-width: 760px) {
  .site-practical-cta__inner {
    grid-template-columns: 1fr;
    padding-inline: 0;
  }
  .site-practical-cta__actions {
    justify-content: stretch;
  }
  .site-practical-cta__button {
    width: 100%;
  }
}

/* Avis clients unifies Google + TripAdvisor. */
.fourrier-reviews {
  max-width: 1180px;
  margin: clamp(48px, 7vw, 86px) auto;
  padding: 0 clamp(18px, 4vw, 46px);
}
.fourrier-reviews__shell {
  display: grid;
  grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
  gap: clamp(18px, 3vw, 34px);
  align-items: center;
}
.fourrier-reviews__summary {
  text-align: center;
}
.fourrier-reviews__summary-title {
  margin: 0 0 10px;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 18px;
  line-height: 1.1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ink-dark);
}
.fourrier-review-card__stars,
.fourrier-reviews__summary .fourrier-review-card__stars {
  position: relative;
  display: inline-block;
  color: #f6ae00;
  font-size: 20px;
  line-height: 1;
  letter-spacing: 2px;
  width: max-content;
}
.fourrier-review-card__stars-base {
  color: rgba(246, 174, 0, 0.26);
}
.fourrier-review-card__stars-fill {
  position: absolute;
  inset: 0 auto 0 0;
  overflow: hidden;
  color: #f6ae00;
  white-space: nowrap;
}
.fourrier-reviews__summary .fourrier-review-card__stars {
  margin-bottom: 10px;
  font-size: 31px;
}
.fourrier-reviews__summary-score {
  margin: 0;
  color: var(--wp--preset--color--ink-dark);
  font-size: 15px;
  line-height: 1.35;
}
.fourrier-reviews__summary-score span {
  display: block;
  color: var(--wp--preset--color--ink);
}
.fourrier-reviews__platforms {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
}
.fourrier-platform {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.fourrier-platform img {
  display: block;
  width: auto;
  min-width: 82px;
  height: 24px;
  max-width: 112px;
  max-height: 26px;
  object-fit: contain;
}
.fourrier-platform > span {
  display: inline-grid;
  min-width: 22px;
  height: 22px;
  place-items: center;
  padding: 0 6px;
  border-radius: 50%;
  background: rgba(84, 93, 92, 0.1);
  color: var(--wp--preset--color--ink-dark);
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 11px;
  letter-spacing: 0;
}
.fourrier-reviews__body {
  min-width: 0;
  position: relative;
}
.fourrier-reviews__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 10px;
}
.fourrier-reviews__label {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-ink);
}
.fourrier-reviews__viewport {
  position: relative;
}
.fourrier-reviews__arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(84, 93, 92, 0.16);
  border-radius: 50%;
  background: #fff;
  color: var(--wp--preset--color--ink-dark);
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(31, 42, 48, 0.08);
  transform: translateY(-50%);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}
.fourrier-reviews__arrow--prev {
  left: -21px;
}
.fourrier-reviews__arrow--next {
  right: -21px;
}
.fourrier-reviews__arrow:hover,
.fourrier-reviews__arrow:focus-visible {
  background: var(--wp--preset--color--ink-dark);
  border-color: var(--wp--preset--color--ink-dark);
  color: var(--wp--preset--color--white);
}
.fourrier-reviews__arrow:disabled {
  cursor: default;
  opacity: .35;
}
.fourrier-reviews__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(250px, 30%);
  gap: 14px;
  align-items: start;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 2px 2px 12px;
  scroll-snap-type: inline mandatory;
  scrollbar-width: none;
}
.fourrier-reviews__track::-webkit-scrollbar {
  display: none;
}
.fourrier-review {
  height: auto;
  scroll-snap-align: start;
}
.fourrier-review-card {
  display: flex;
  box-sizing: border-box;
  min-height: 230px;
  height: 230px;
  flex-direction: column;
  gap: 10px;
  padding: 18px 18px 16px;
  border-radius: 8px;
  background: #f1f1f1;
  color: inherit;
  text-decoration: none;
  transition: transform .2s ease, background-color .2s ease;
}
.fourrier-review-card:hover,
.fourrier-review-card:focus-visible {
  transform: translateY(-2px);
  background: #fff;
}
.fourrier-review-card__top {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 24px;
  gap: 10px;
  align-items: center;
}
.fourrier-review-card__avatar {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: #768a93;
  color: #fff;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 13px;
  letter-spacing: 0;
}
.fourrier-review-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.fourrier-review-card__person {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  font-family: var(--wp--preset--font-family--body);
}
.fourrier-review-card__person strong {
  overflow: hidden;
  color: #111;
  font-size: 16px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fourrier-review-card__person span {
  color: #626765;
  font-size: 13px;
  line-height: 1.2;
}
.fourrier-review-card__source {
  display: inline-grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 9px;
  letter-spacing: 0;
}
.fourrier-review-card__source img {
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}
.fourrier-review-card .fourrier-review-card__stars {
  font-size: 17px;
}
.fourrier-review-card__text {
  min-height: 78px;
  margin: 0;
  color: #111;
  font-family: var(--wp--preset--font-family--body);
  font-size: 16px;
  line-height: 1.35;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.fourrier-review-card__more {
  margin-top: auto;
  color: #626765;
  font-size: 14px;
  line-height: 1.2;
}
.fourrier-review-card:hover .fourrier-review-card__more,
.fourrier-review-card:focus-visible .fourrier-review-card__more {
  color: var(--gold-ink);
}
.fourrier-reviews-empty {
  max-width: 820px;
  margin: 40px auto;
  color: var(--wp--preset--color--ink);
  text-align: center;
}
@media (max-width: 920px) {
  .fourrier-reviews__shell {
    grid-template-columns: 1fr;
  }
  .fourrier-reviews__summary {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px 18px;
    align-items: center;
    text-align: left;
  }
  .fourrier-reviews__summary .fourrier-review-card__stars {
    justify-content: flex-start;
    margin: 0;
    font-size: 24px;
  }
  .fourrier-reviews__platforms {
    align-items: flex-start;
    margin: 0;
  }
}
@media (max-width: 640px) {
  .fourrier-reviews {
    margin: 46px auto;
    padding-inline: 14px;
  }
  .fourrier-reviews__summary {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .fourrier-reviews__header {
    grid-template-columns: 1fr auto;
  }
  .fourrier-reviews__title {
    font-size: 27px;
  }
  .fourrier-reviews__track {
    grid-auto-columns: minmax(250px, 82%);
  }
  .fourrier-reviews__arrow--prev {
    left: -8px;
  }
  .fourrier-reviews__arrow--next {
    right: -8px;
  }
}

/* ===== Footer global ===== */
.site-footer { text-align: center; color: var(--wp--preset--color--white); }
.site-footer .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  padding-top: clamp(120px, calc(100vw * 0.0826 + 60px), 240px);
}
/* bord papier déchiré crème (silhouettes d'arbres) en haut du footer */
.site-footer::after {
  content: "";
  position: absolute;
  top: -1px; left: 0; right: 0;
  height: clamp(60px, calc(100vw * 0.0826), 180px); /* ratio header-shape 216/2613 */
  background: var(--wp--preset--color--cream);
  z-index: 1;
  transform: scaleY(-1);
  -webkit-mask: url(../../assets/img/header-shape.svg) top center / 100% 100% no-repeat;
  mask: url(../../assets/img/header-shape.svg) top center / 100% 100% no-repeat;
}
.site-footer__logo { margin: 0 auto 48px; }
.site-footer__logo img { width: 300px; height: auto; }
.site-footer__cols { gap: 64px !important; margin-bottom: 40px; }
.site-footer__cols .wp-block-column { flex-basis: auto !important; flex-grow: 0; }
.site-footer__cols h2 {
  font-family: var(--wp--preset--font-family--display);
  font-size: 26px; font-weight: 500; line-height: 1.2;
  color: var(--wp--preset--color--white) !important; text-transform: none; letter-spacing: normal;
  margin: 0 0 14px;
}
.site-footer__cols p {
  font-family: var(--wp--preset--font-family--display);
  font-size: 20px; font-weight: 400; line-height: 1.4;
  color: var(--wp--preset--color--white); margin: 0 0 6px;
}
.site-footer__cols a { color: var(--wp--preset--color--white); text-decoration: none; }
.site-footer__cols a:hover { color: var(--wp--preset--color--gold); }
.site-footer__social { display: flex; gap: 10px; justify-content: center; margin: 8px 0 28px; }
.site-footer__social a { color: var(--wp--preset--color--white); display: inline-flex; align-items: center; justify-content: center; padding: 11px; border-radius: 50%; transition: color .2s ease, background-color .2s ease; }
.site-footer__social a:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 2px; }
.site-footer__social a:hover { color: var(--wp--preset--color--gold); }
.site-footer__copy {
  font-family: var(--wp--preset--font-family--display);
  font-size: 20px; font-weight: 400;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}
@media (max-width: 767px) {
  .site-footer__cols { flex-direction: column; gap: 32px !important; }
}

/* Contrôles de slider (cuvées + galerie) — amélioration progressive */
.slider-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin: 8px auto 0;
}
.slider-nav__pager {
  font-family: var(--wp--preset--font-family--display);
  font-size: 20px;
  font-weight: 400;
  color: var(--wp--preset--color--ink);
  min-width: 56px;
  text-align: center;
}
.slider-nav__btn {
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
  color: var(--wp--preset--color--ink);
  padding: 4px 8px;
  transition: color .2s ease, opacity .2s ease;
}
.slider-nav__btn:hover { color: var(--wp--preset--color--gold); }
.slider-nav__btn:disabled { opacity: .3; cursor: default; }

/* Apparition au scroll (ajoutée par reveal.js uniquement) */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s cubic-bezier(0.16, 1, 0.3, 1); will-change: opacity, transform; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1 !important; transform: none !important; } }

/* Eyebrows (kickers décoratifs) — paragraphes, hors hiérarchie Hn.
   Reproduit l'ancien rendu h6 (Alata 14px or, ls10) à l'identique. */
.eyebrow {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 14px;
  font-weight: 100;
  letter-spacing: 10px;
  line-height: 1.3;
  text-transform: uppercase;
  color: var(--gold-ink);
  margin: 0 0 12px;
}

/* Sélecteur de langue (FR / EN), haut-droite du header — logo reste centré */
.site-lang { position: absolute; top: 24px; right: 40px; z-index: 101; }
.site-lang__list { display: flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
.site-lang__list li { display: flex; align-items: center; }
.site-lang__list li + li::before { content: "/"; color: rgba(255, 255, 255, 0.45); margin: 0 9px; }
.site-lang__list a {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px; font-weight: 400; letter-spacing: 2px; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65); text-decoration: none; transition: color 0.2s ease;
}
.site-lang__list a:hover { color: var(--wp--preset--color--gold); }
.site-lang__list .current-lang a, .site-lang__list .current-lang > a { color: var(--wp--preset--color--white); }
@media (max-width: 900px) {
  .site-lang { position: static; margin-top: 10px; display: flex; justify-content: center; }
  body.admin-bar .site-header { top: 0; } /* header relatif en mobile : pas d'offset (la marge html de la barre WP suffit) */
}

/* ===== Pages de contenu simples (légales, etc.) ===== */
.legal-page { max-width: 860px; }
.legal-page h2 { margin: 40px 0 12px; font-size: 30px; font-weight: 500; }
.legal-page p { max-width: 70ch; line-height: 1.65; }
.legal-page a { color: var(--gold-ink); }
.legal-page a:hover { text-decoration: underline; }

/* ===== Plan du site automatique ===== */
.fourrier-sitemap {
  width: min(100%, 980px);
  margin: 0 auto;
}
.fourrier-sitemap__intro {
  margin: 0 0 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(30, 39, 43, 0.1);
}
.fourrier-sitemap__kicker {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-ink);
  margin: 0 0 10px;
}
.fourrier-sitemap__intro h2 {
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.05;
  margin: 0 0 12px;
}
.fourrier-sitemap__intro p {
  color: var(--wp--preset--color--ink-soft, #4f5653);
  font-size: 18px;
  line-height: 1.6;
  margin: 0;
}
.fourrier-sitemap__section {
  border-bottom: 1px solid rgba(30, 39, 43, 0.12);
}
.fourrier-sitemap__summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 0;
}
.fourrier-sitemap__summary::-webkit-details-marker { display: none; }
.fourrier-sitemap__summary::after {
  content: "+";
  width: 34px;
  height: 34px;
  border: 1px solid rgba(30, 39, 43, 0.24);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  color: var(--gold-ink);
  font-family: var(--wp--preset--font-family--eyebrow);
}
.fourrier-sitemap__section[open] .fourrier-sitemap__summary::after {
  content: "\2212";
}
.fourrier-sitemap__summary:hover .fourrier-sitemap__section-title,
.fourrier-sitemap__summary:focus-visible .fourrier-sitemap__section-title {
  color: var(--gold-ink);
}
.fourrier-sitemap__summary:focus-visible {
  outline: 2px solid rgba(185, 141, 88, 0.7);
  outline-offset: 6px;
}
.fourrier-sitemap__section-title {
  display: block;
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(25px, 2.7vw, 34px);
  line-height: 1.12;
  transition: color 0.2s ease;
}
.fourrier-sitemap__section-intro {
  display: block;
  margin-top: 6px;
  color: var(--wp--preset--color--ink-soft, #4f5653);
  font-size: 16px;
  line-height: 1.45;
}
.fourrier-sitemap__count {
  margin-left: auto;
  color: var(--gold-ink);
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.fourrier-sitemap__body {
  padding: 0 0 28px;
}
.fourrier-sitemap__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.fourrier-sitemap__item .fourrier-sitemap__list {
  margin: 10px 0 0 22px;
  padding-left: 18px;
  border-left: 1px solid rgba(185, 141, 88, 0.22);
}
.fourrier-sitemap__link {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 16px;
  border: 1px solid rgba(30, 39, 43, 0.1);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.62);
  color: var(--wp--preset--color--ink);
  text-decoration: none;
  transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.fourrier-sitemap__link:hover,
.fourrier-sitemap__link:focus-visible {
  border-color: rgba(185, 141, 88, 0.56);
  background: rgba(255, 255, 255, 0.9);
  transform: translateY(-1px);
}
.fourrier-sitemap__link-title {
  font-size: 18px;
  line-height: 1.25;
}
.fourrier-sitemap__link-meta {
  flex: none;
  color: var(--gold-ink);
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 11px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
@media (max-width: 700px) {
  .fourrier-sitemap__summary {
    align-items: flex-start;
    gap: 12px;
  }
  .fourrier-sitemap__count {
    display: none;
  }
  .fourrier-sitemap__link {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
  .fourrier-sitemap__item .fourrier-sitemap__list {
    margin-left: 10px;
    padding-left: 12px;
  }
}

/* ===== Avertissement age legal ===== */
html.age-gate-is-open,
html.age-gate-is-open body {
  overflow: hidden;
}
.age-gate[hidden] {
  display: none !important;
}
.age-gate {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(22, 29, 32, 0.84);
  backdrop-filter: blur(7px);
}
.age-gate__panel {
  width: min(100%, 520px);
  padding: clamp(28px, 5vw, 44px);
  border-radius: 8px;
  border: 1px solid rgba(185, 141, 88, 0.32);
  background: var(--wp--preset--color--cream, #f8f4ec);
  color: var(--wp--preset--color--ink);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
  text-align: center;
}
.age-gate__kicker {
  margin: 0 0 12px;
  color: var(--gold-ink);
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.age-gate__title {
  margin: 0 0 14px;
  font-size: clamp(36px, 6vw, 56px);
  line-height: 1;
}
.age-gate__text {
  margin: 0 auto 26px;
  max-width: 42ch;
  color: var(--wp--preset--color--ink-soft, #4f5653);
  font-size: 17px;
  line-height: 1.55;
}
.age-gate__actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}
.age-gate__button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border-radius: 4px;
  border: 1px solid var(--wp--preset--color--ink);
  cursor: pointer;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
}
.age-gate__button--primary {
  background: var(--wp--preset--color--ink);
  color: #fff;
}
.age-gate__button--secondary {
  background: transparent;
  color: var(--wp--preset--color--ink);
}
.age-gate__button:focus-visible {
  outline: 2px solid var(--gold-ink);
  outline-offset: 3px;
}
@media (max-width: 520px) {
  .age-gate__button {
    width: 100%;
  }
}

/* ===== Footer : barre du bas (copyright à gauche / menu légal à droite) ===== */
.site-footer__bottom {
  width: 100%;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  gap: 16px;
}
.site-footer__copy { font-size: 14px !important; color: rgba(255, 255, 255, 0.72); margin: 0; }
.site-footer__credits { margin: 0; }
.site-footer__credit {
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px !important;
  line-height: 1.45;
  margin: 5px 0 0;
  max-width: 680px;
}
.site-footer__credit a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.55);
  text-underline-offset: 3px;
}
.site-footer__credit a:hover { color: var(--wp--preset--color--gold); }
.site-footer__legal { margin: 0; }
/* spécificité élevée : le bloc Navigation WP fixe la couleur du lien
   via .wp-block-navigation-item__content, qu'il faut battre. */
.site-footer .site-footer__legal a,
.site-footer__legal .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px; letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.72); text-decoration: none; transition: color .2s ease;
}
.site-footer .site-footer__legal a:hover,
.site-footer__legal .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--gold); }
@media (max-width: 700px) {
  .site-footer__bottom { justify-content: center; text-align: center; }
  .site-footer__legal ul { justify-content: center; }
}

/* Titre de page de contenu : taille mesurée (le h1 thème à 80px est trop fort ici) */

/* ===== Bouton « remonter en haut » (coin bas-droite, apparaît au scroll) ===== */
.scroll-top {
  position: fixed;
  right: 0; bottom: 0;
  z-index: 200;
  width: 58px; height: 58px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; cursor: pointer;
  background: var(--wp--preset--color--cream);
  color: var(--wp--preset--color--ink);
  border-radius: 4px 0 0 0;
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.12);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .3s ease, transform .3s ease, background-color .2s ease, color .2s ease;
}
.scroll-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.scroll-top:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--cream); }
.scroll-top svg { display: block; }
@media (prefers-reduced-motion: reduce) {
  .scroll-top { transition: opacity .2s ease, background-color .2s ease, color .2s ease; transform: none; }
}

/* ===== Reveal d'arrivée (au CHARGEMENT, pas au scroll) — CSS pur, gated .js-anim ===== */
@keyframes page-enter {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: none; }
}
.js-anim .home-hero .wp-block-heading,
.js-anim .page-hero h1 {
  animation: page-enter 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.js-anim .home-hero h1 { animation-delay: 0.15s; }
.js-anim .home-hero h2 { animation-delay: 0.32s; }
.js-anim .page-hero h1 { animation-delay: 0.20s; }
.js-anim .home-hero .home-hero__lede { animation: page-enter 0.9s cubic-bezier(0.16, 1, 0.3, 1) both; animation-delay: 0.46s; }
.js-anim .home-hero .wp-block-buttons { animation: page-enter 0.9s cubic-bezier(0.16, 1, 0.3, 1) both; animation-delay: 0.6s; }
@media (prefers-reduced-motion: reduce) {
  .js-anim .home-hero .wp-block-heading,
  .js-anim .home-hero .home-hero__lede,
  .js-anim .home-hero .wp-block-buttons,
  .js-anim .page-hero h1 { animation: none; }
}

/* Accroche + bouton du hero home (sous le sous-titre) */
.home-hero__lede {
  max-width: 48ch;
  margin: 1.5rem auto 0;
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.6;
  color: #fff;
  opacity: 0.94;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.4);
}
.home-hero .wp-block-buttons { margin-top: 2.2rem; }
.home-hero__actions { gap: 14px !important; }
.home-hero__cta .wp-block-button__link {
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.82);
  background: transparent;
  color: #fff;
  min-width: 194px;
  padding: 1rem 2rem;
  border-radius: 0;
  font-family: var(--wp--preset--font-family--display);
  font-size: 1.02rem;
  letter-spacing: 0.03em;
  transition: background-color 0.45s cubic-bezier(0.16, 1, 0.3, 1), color 0.45s;
}
.home-hero__cta--primary .wp-block-button__link {
  background: rgba(255, 255, 255, 0.96);
  color: var(--wp--preset--color--ink-dark);
  border-color: rgba(255, 255, 255, 0.96);
}
.home-hero__cta .wp-block-button__link:hover,
.home-hero__cta .wp-block-button__link:focus-visible {
  background: #fff;
  color: var(--wp--preset--color--ink-dark);
}
.home-hero__cta--primary .wp-block-button__link:hover,
.home-hero__cta--primary .wp-block-button__link:focus-visible {
  background: var(--wp--preset--color--gold);
  border-color: var(--wp--preset--color--gold);
  color: var(--wp--preset--color--ink-dark);
}

/* Fil d'Ariane (fiches produits) */
.fil-ariane { padding: 22px 20px 0; }
.fil-ariane__nav { text-align: center; font-size: 0.86rem; color: var(--wp--preset--color--ink-soft, #6b6b63); }
.fil-ariane__nav a { color: var(--gold-ink); text-decoration: none; }
.fil-ariane__nav a:hover { text-decoration: underline; }
.fil-ariane__nav .separator { margin: 0 8px; opacity: 0.45; }
.fil-ariane__nav .current { color: var(--wp--preset--color--ink-soft, #6b6b63); }

/* Cuvées sœurs en bas de fiche (marquee réutilisé, sans note) */
.produit-related__head { font-size: clamp(28px, 3vw, 40px); font-weight: 400; margin: 0 0 44px; }
.produit-related .wp-block-buttons { margin-top: 40px; display: flex; justify-content: center; }
.produit-related .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--wp--preset--color--ink);
  border: 1px solid currentColor;
}
.produit-related .wp-block-button.is-style-outline .wp-block-button__link:hover,
.produit-related .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  background: var(--wp--preset--color--ink-dark);
  color: var(--wp--preset--color--white);
}

/* ===== Page Contact ===== */
.page-prose {
  box-sizing: border-box;
  padding-inline: clamp(20px, 5vw, 48px);
}
.contact-intro { max-width: 760px; margin: 0 auto 56px; font-size: 21px; line-height: 1.55; color: var(--wp--preset--color--ink); }
.contact-cols { align-items: flex-start; }
.contact-info h2, .contact-page h2 { font-size: clamp(28px, 3vw, 34px); font-weight: 500; margin: 0 0 24px; }
.contact-info__block { margin: 0 0 22px; line-height: 1.5; color: var(--wp--preset--color--ink); }
.contact-info__block .eyebrow { display: block; margin-bottom: 4px; }
.contact-info__block a { color: var(--gold-ink); text-decoration: none; }
.contact-info__block a:hover { text-decoration: underline; }

/* Formulaire */
.contact-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contact-form__row { display: flex; gap: 32px; margin-bottom: 40px; }
.contact-form__row .contact-field { flex: 1; margin-bottom: 0; }
.contact-field { display: flex; flex-direction: column; margin: 0 0 40px; }
.contact-field label {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--wp--preset--color--ink); margin-bottom: 10px;
}
.contact-field label span { color: var(--gold-ink); }
.contact-field input, .contact-field textarea, .contact-field select {
  font-family: var(--wp--preset--font-family--display);
  font-size: 18px; color: var(--wp--preset--color--ink);
  background: #fff; border: 1px solid var(--wp--preset--color--border);
  border-radius: 2px; padding: 12px 14px; width: 100%;
  box-sizing: border-box;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.contact-field textarea { resize: vertical; min-height: 150px; }
.contact-field select { appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23545D5C' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px;
}
.contact-field input:focus, .contact-field textarea:focus, .contact-field select:focus {
  outline: none; border-color: var(--wp--preset--color--gold);
  box-shadow: 0 0 0 3px rgba(185, 141, 88, 0.15);
}
.contact-form__submit {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 13px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--wp--preset--color--white); background: var(--wp--preset--color--ink-dark);
  border: 0; border-radius: 2px; padding: 15px 38px; margin-top: 8px;
  cursor: pointer; transition: background-color .25s ease, color .25s ease;
}
.contact-form__submit:hover { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--ink-dark); }
.contact-form__msg { padding: 14px 18px; border-radius: 2px; margin-bottom: 24px; font-size: 17px; }
.contact-form__msg.is-ok { background: rgba(84, 93, 92, 0.10); color: var(--wp--preset--color--ink); border: 1px solid rgba(185, 141, 88, 0.45); }
.contact-form__msg.is-err { background: rgba(160, 60, 50, 0.10); color: #8a2f27; }

/* Bloc "Nous trouver" : image locale + lien Google Maps au clic (zéro chargement tiers, RGPD-clean) */
.contact-map {
  position: relative; display: block; margin-top: 32px;
  aspect-ratio: 16 / 11; width: 100%;
  border-radius: 3px; overflow: hidden;
  text-decoration: none; color: #fff;
}
.contact-map__bg {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.contact-map:hover .contact-map__bg,
.contact-map:focus-visible .contact-map__bg { transform: scale(1.04); }
.contact-map__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(36, 46, 53, 0.30) 0%, rgba(36, 46, 53, 0.68) 100%);
}
.contact-map__body {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 5px; text-align: center; padding: 24px;
}
.contact-map__pin { color: var(--wp--preset--color--gold); margin-bottom: 4px; }
.contact-map__place {
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(22px, 2.4vw, 28px); font-weight: 500; line-height: 1.1;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.4);
}
.contact-map__addr { font-size: 15px; opacity: 0.94; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45); }
.contact-map__cta {
  margin-top: 12px;
  font-family: var(--wp--preset--font-family--eyebrow); font-size: 12px;
  letter-spacing: 1.5px; text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.72); padding: 9px 20px;
  transition: background-color 0.4s ease, color 0.4s ease;
}
.contact-map:hover .contact-map__cta,
.contact-map:focus-visible .contact-map__cta { background: #fff; color: var(--wp--preset--color--ink-dark); }
@media (prefers-reduced-motion: reduce) {
  .contact-map__bg, .contact-map:hover .contact-map__bg { transition: none; transform: none; }
}
@media (max-width: 781px) {
  .contact-cols { flex-direction: column; }
  .contact-form__row { flex-direction: column; gap: 0; margin-bottom: 0; }
  .contact-form__row .contact-field { margin-bottom: 28px; }
}

/* Photos de contenu (photo « Notre histoire » de la home, images dans le corps
   des articles et des pages) : même rayon + ombre douce. Packshots exclus. */
.home-histoire__img img,
.article-body .wp-block-image img,
.page-prose .wp-block-image img {
  border-radius: var(--img-radius);
  box-shadow: var(--img-shadow);
}
.home-histoire__img {
  max-width: min(100%, 560px);
  margin-inline: auto;
}
.home-histoire__img img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 781px) {
  .home-histoire__img {
    max-width: min(100%, 480px);
    margin-inline: auto;
  }
}

/* ===== Blog / Actualités (listing) ===== */
.blog-grid { gap: 44px 28px; }
/* position:relative pour que le lien du titre couvre toute la carte (congruent
   avec le bento) : cliquer n'importe où sur la carte mène à l'article. */
.blog-grid > li { margin: 0; position: relative; }
.blog-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
/* Rayon + ombre portés par la figure (pour clipper le zoom au survol sans
   couper l'ombre) ; l'image ne porte que la transition. */
.blog-card__img { border-radius: var(--img-radius); box-shadow: var(--img-shadow); overflow: hidden; display: block; margin: 0; }
.blog-card__img img { width: 100%; display: block; transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
/* Hover congruent avec le bento de la home : zoom image + titre or. Couvre le
   listing /blog/ ET le bloc « Vous aimerez aussi » (mêmes classes blog-card). */
.blog-grid > li:hover .blog-card__img img { transform: scale(1.05); }
/* Ordre carte : image -> titre (fort) -> méta discrète (date · auteur) -> extrait */
.blog-card__meta {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold-ink);
  margin: 0 0 14px;
  align-items: baseline;
  gap: 0;
}
.blog-card__author::before { content: "\00b7"; margin: 0 0.5em; }
.blog-card__author:empty { display: none; }
.blog-grid .event-date { display: block; margin: 18px 0 8px; color: var(--gold-ink); }
.article-body--event .event-date { display: block; text-align: center; margin: 0 0 26px; color: var(--gold-ink); }
.event-registration { justify-content: center; margin-top: 34px; }

/* ===== Fiche produit ===== */
/* Hero image de vigne (comme collection/categorie) avec le titre produit en H1
   dedans, puis bouteille a gauche + contenu a droite. */
.produit-fiche__cols { align-items: flex-start; gap: clamp(32px, 4vw, 70px); }
.produit-fiche__media { text-align: center; position: sticky; top: 30px; align-self: flex-start; }
.produit-fiche__img img { max-height: 560px; width: auto; margin: 0 auto; display: block; object-fit: contain; }
/* la bouteille grandit en entrant, sans masquer le contenu si le reveal ne se déclenche pas */
.js-anim .produit-fiche__img { opacity: 1; transform: scale(0.96); transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1); will-change: transform; }
.js-anim .produit-fiche__media.is-visible .produit-fiche__img { transform: none; }
@media (prefers-reduced-motion: reduce) { .js-anim .produit-fiche__img { opacity: 1 !important; transform: none !important; } }
.produit-fiche__cepage { display: block; margin: 0 0 18px; color: var(--gold-ink); }
.produit-fiche__cepage:empty { display: none; }
.produit-fiche__lede { font-size: 18px; line-height: 1.6; color: var(--wp--preset--color--ink); margin: 0 0 28px; white-space: pre-line; }
.produit-fiche__cta .wp-block-button__link {
  background: var(--wp--preset--color--ink-dark); color: var(--wp--preset--color--white);
  border: 0; border-radius: 2px; padding: 15px 38px;
  font-family: var(--wp--preset--font-family--eyebrow); font-size: 13px; letter-spacing: 2px; text-transform: uppercase;
  transition: background-color .25s ease, color .25s ease;
}
.produit-fiche__cta .wp-block-button__link:hover { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--ink-dark); }
.produit-fiche__body { margin-top: 44px; }
.produit-fiche__body h2 { font-size: clamp(20px, 2.2vw, 26px); font-weight: 500; margin: 40px 0 4px; padding-bottom: 10px; border-bottom: 1px solid var(--wp--preset--color--border); }
.produit-fiche__body > h2:first-child { margin-top: 0; }
.produit-fiche__body ul { padding-left: 0; list-style: none; margin: 0; }
.produit-fiche__body li { padding: 7px 0; line-height: 1.55; color: var(--wp--preset--color--ink); }
.produit-fiche__body li strong { color: var(--wp--preset--color--ink-dark); }
body.gamme-capsules .produit-fiche__cols { gap: clamp(40px, 5vw, 84px); align-items: center; }
body.gamme-capsules .produit-fiche__media { top: 48px; }
body.gamme-capsules .produit-fiche__img img { max-height: 470px; max-width: min(100%, 470px); }
body.gamme-capsules .produit-fiche__info { max-width: 650px; }
body.gamme-capsules .produit-fiche__lede {
  font-size: clamp(18px, 1.55vw, 21px);
  line-height: 1.62;
  color: var(--wp--preset--color--ink-dark);
  margin-bottom: 24px;
  text-wrap: pretty;
}
body.gamme-capsules .produit-fiche__body { margin-top: 38px; max-width: 62ch; }
body.gamme-capsules .produit-fiche__body .reveal {
  opacity: 1 !important;
  transform: none !important;
}
body.gamme-capsules .produit-fiche__body h2 {
  font-size: clamp(24px, 2.4vw, 31px);
  line-height: 1.18;
  color: var(--wp--preset--color--ink-dark);
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  text-wrap: balance;
}
body.gamme-capsules .produit-fiche__body p {
  font-size: 18px;
  line-height: 1.68;
  color: var(--wp--preset--color--ink);
  margin: 0 0 18px;
  text-wrap: pretty;
}
body.gamme-capsules .produit-fiche__body p:last-child {
  padding-top: 12px;
  color: var(--wp--preset--color--ink-dark);
}
body.gamme-capsules .produit-fiche__cta .wp-block-button__link { padding-inline: 34px; }
@media (max-width: 781px) {
  .produit-fiche__cols { flex-direction: column; }
  .produit-fiche__media { position: static; margin-bottom: 24px; }
  .produit-fiche__img img { max-height: 360px; }
  body.gamme-capsules .produit-fiche__img img { max-height: 340px; }
  body.gamme-capsules .produit-fiche__info { max-width: none; padding-inline: 20px; box-sizing: border-box; }
  body.gamme-capsules .produit-fiche__body { max-width: none; }
}

/* ===== Grille produits (catégorie + collection) ===== */
/* flex centre (au lieu de grid 4 col) : les dernieres lignes incompletes se centrent
   au lieu de coller a gauche (ex gamme ratafias = 5 produits, 4 + 1 centre). */
.produit-grid { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 50px 32px; }
.produit-grid > li { flex: 0 1 calc(25% - 24px); margin: 0; text-align: center; }
.produit-card__img { margin: 0; overflow: hidden; }
.produit-card__img img { max-height: 260px; width: auto; margin: 0 auto; display: block; object-fit: contain; transition: transform .5s cubic-bezier(0.16, 1, 0.3, 1); }
.produit-card__img a:hover img { transform: scale(1.05); }
.produit-card__title { font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; line-height: 1.25; margin: 20px 0 6px; overflow-wrap: break-word; word-break: normal; hyphens: none; }
.produit-card__title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.produit-card__title a:hover { color: var(--gold-ink); }
/* gamme gardée dans le DOM du catalogue pour le filtre JS, mais jamais affichée (redondante) */
.produit-card__gamme { display: none; }
/* description produit (SEO + CRO), tronquée à 3 lignes proprement */
.produit-card__desc {
  max-width: 36ch; margin: 10px auto 0;
  font-size: 15.5px; line-height: 1.6; color: var(--wp--preset--color--ink);
  text-wrap: pretty;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
/* CTA "Découvrir" */
.produit-card__more {
  display: inline-block; margin: 14px 0 0;
  font-family: var(--wp--preset--font-family--eyebrow); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--gold-ink); text-decoration: none;
  border-bottom: 1px solid rgba(185, 141, 88, 0.4); padding-bottom: 3px;
  transition: border-color .25s ease, color .25s ease;
}
.produit-card__more:hover { border-color: var(--gold-ink); color: var(--wp--preset--color--ink-dark); }

/* Bloc d'intro éditorial des pages collection (texte SEO complet, avant la grille) */
.collection-intro {
  padding: clamp(18px, 2.5vh, 36px) 20px clamp(14px, 2.5vh, 30px);
  text-align: center;
}
/* Filet doré : signature commune à tout chapô éditorial sous le hero
   (collection, contact, événements). Notre histoire / Mentions légales
   n'ont pas de chapô centré, donc pas de filet. */
.collection-intro::before,
.contact-intro::before,
.page-intro::before {
  content: ""; display: block; width: 52px; height: 2px;
  background: var(--wp--preset--color--gold); margin: 0 auto 30px;
}
.collection-intro__text {
  max-width: 92ch; margin: 0 auto;
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(1.1rem, 1.4vw, 1.28rem); line-height: 1.65;
  color: var(--wp--preset--color--ink);
  text-wrap: pretty;
}
.collection-intro__text p { margin: 0 0 1em; }
.collection-intro__text p:last-child { margin: 0; }
.collection-intro__text a { color: var(--gold-ink); text-decoration: none; border-bottom: 1px solid rgba(185, 141, 88, 0.35); }
.collection-intro__text a:hover { border-color: var(--gold-ink); }
@media (max-width: 1024px) { .produit-grid > li { flex-basis: calc(33.333% - 22px); } }
@media (max-width: 600px)  { .produit-grid { gap: 36px 24px; } .produit-grid > li { flex-basis: calc(50% - 12px); } }

/* Barre de filtres de la collection */
.produit-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 50px; }
.produit-filter__btn {
  font-family: var(--wp--preset--font-family--eyebrow); font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--wp--preset--color--ink); background: none; border: 1px solid var(--wp--preset--color--border);
  border-radius: 2px; padding: 11px 22px; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.produit-filter__btn:hover { border-color: var(--wp--preset--color--gold); color: var(--gold-ink); }
.produit-filter__btn.is-active { background: var(--wp--preset--color--ink-dark); color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--ink-dark); }
.blog-card__title { font-family: var(--wp--preset--font-family--display); font-size: clamp(23px, 2.4vw, 28px); font-weight: 500; line-height: 1.2; margin: 18px 0 10px; }
.blog-card__title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.blog-card__title a:hover { color: var(--gold-ink); }
.blog-grid .wp-block-post-excerpt { color: var(--wp--preset--color--ink); line-height: 1.55; margin: 0; }
.blog-grid .wp-block-post-excerpt__more-link {
  display: inline-block; margin-top: 10px; color: var(--gold-ink); text-decoration: none;
  font-family: var(--wp--preset--font-family--eyebrow); font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
}
.blog-grid .wp-block-post-excerpt__more-link:hover { text-decoration: underline; }

/* ===== Article (single) ===== */
/* Méta de l'article (auteur, date, temps de lecture), centrée sous le H1 dans
   le hero, même esprit que le fil d'Ariane au-dessus. */
.page-hero__meta {
  margin-top: 18px;
  gap: 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.85);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}
.page-hero__meta p { margin: 0; }
.page-hero__meta-author { color: #e8d5b3; font-weight: 600; }
.page-hero__meta-date::before,
.page-hero__meta-reading::before { content: "\00b7"; margin: 0 0.6em; color: rgba(255, 255, 255, 0.5); }
.article-body .wp-block-heading { font-family: var(--wp--preset--font-family--display); }
/* Hiérarchie propre à la lecture longue (corps d'article, 20px) : le H1 du
   hero (34-66px) reste toujours le plus grand ; ici on recalibre H2/H3 pour
   qu'ils restent nettement distincts entre eux ET du corps de texte, à toute
   largeur d'écran (vérifié 375/768/1440 : H1 > H2 > H3 > corps 20px partout). */
.article-body h2 { font-size: clamp(27px, 2.6vw, 34px); margin: 44px 0 16px; }
.article-body h3 { font-size: clamp(22px, 1.8vw, 25px); margin: 32px 0 12px; }

/* ===== Bloc auteur (fin d'article) ===== */
.author-box {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 56px;
  padding: 26px 30px;
  background: var(--wp--preset--color--cream);
  border-radius: var(--img-radius);
  box-shadow: var(--img-shadow);
}
.author-box__media { flex: none; }
.author-box__avatar {
  width: 84px; height: 84px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  box-shadow: 0 2px 10px -4px rgba(40, 30, 22, 0.35);
}
.author-box__body { display: flex; flex-direction: column; }
.author-box__eyebrow { font-size: 11.5px; letter-spacing: 0.14em; margin-bottom: 4px; }
.author-box__name {
  font-family: var(--wp--preset--font-family--display);
  font-size: 1.5rem; line-height: 1.2;
  color: var(--wp--preset--color--ink);
}
.author-box__bio {
  margin: 8px 0 0;
  color: var(--wp--preset--color--ink-soft, #4a4a44);
  line-height: 1.6;
}
@media (max-width: 600px) {
  .author-box { flex-direction: column; text-align: center; align-items: center; gap: 16px; }
}

/* ===== « Vous aimerez aussi » (fin d'article) ===== */
.related-articles__title { font-family: var(--wp--preset--font-family--display); }
.related-query .blog-grid { gap: 40px 28px; }

/* ===== Commentaires ===== */
.wp-block-comments { margin-top: 24px; padding-top: 40px; border-top: 1px solid var(--wp--preset--color--border); }
.wp-block-comments-title { font-size: clamp(24px, 2.5vw, 30px); font-weight: 500; margin: 0 0 28px; }
.wp-block-comment-template, .comment-list { list-style: none; margin: 0 0 40px; padding: 0; }
.wp-block-comment-template ol { list-style: none; margin: 16px 0 0; padding: 0 0 0 28px; } /* réponses imbriquées */
.comment-card {
  padding: 22px 26px; margin: 0 0 18px;
  background: rgba(84, 93, 92, 0.05);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 4px;
}
.comment-card__head { align-items: baseline; gap: 6px 14px; margin-bottom: 10px; }
.comment-card__author, .comment-card__author a {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600; font-size: 18px; color: var(--wp--preset--color--ink); text-decoration: none;
}
.comment-card__date, .comment-card__date a {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
  color: var(--wp--preset--color--grey); text-decoration: none;
}
.comment-card__body { margin: 0; }
.comment-card__body p { margin: 0; line-height: 1.55; color: var(--wp--preset--color--ink); }
.comment-card__reply { margin-top: 14px; }
.comment-card__reply a {
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--gold-ink); text-decoration: none;
}
.comment-card__reply a:hover { text-decoration: underline; }

/* ===== Pages de texte (legales : mentions, confidentialite, plan du site) =====
   Largeur de lecture confortable (~70ch) sur les elements texte enfants directs du
   contenu. Ne touche PAS les layouts riches (colonnes Contact, sections Histoire),
   qui ne sont pas des p / titres / listes en enfant direct. */
.page-prose > :is(p, h2, h3, h4, h5, ul, ol, blockquote) { max-width: 72ch; margin-inline: auto; }

/* ===== Page Notre histoire (zigzag éditorial + animation grow des images) ===== */
.histoire-section { padding-block: clamp(48px, 7vh, 92px); }
.histoire-section + .histoire-section { padding-top: 0; }
.histoire-row { align-items: center; }
.histoire-row.wp-block-columns { gap: clamp(36px, 4.5vw, 78px); }
.histoire-text .eyebrow { display: block; margin-bottom: 14px; }
.histoire-text h2 { font-size: clamp(30px, 3.3vw, 46px); font-weight: 400; line-height: 1.12; margin: 0 0 22px; }
.histoire-text p { font-size: 18px; line-height: 1.66; color: var(--wp--preset--color--ink); margin: 0 0 18px; }
.histoire-text p:last-child { margin-bottom: 0; }
.histoire-figure .wp-block-image { overflow: hidden; border-radius: var(--img-radius); box-shadow: var(--img-shadow); margin: 0; }
.histoire-figure img { display: block; width: 100%; height: auto; }

/* La figure ne prend PAS le fade-up générique : son image grandit (grow + scale),
   en glissant légèrement depuis son côté, façon Elementor mais plus douce. */
/* État initial posé via .js-anim (classe ajoutée dans le <head>, AVANT le 1er
   paint → zéro flash), animé vers l'état final quand la figure entre dans le
   viewport. La 1re image, souvent déjà visible sur grand écran, s'anime au
   chargement (la figure est toujours observée, jamais considérée « déjà vue »). */
.js-anim .histoire-figure img {
  transform: scale(1.16) translateX(30px); opacity: 0;
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.9s ease;
  will-change: transform, opacity;
}
.js-anim .histoire-section--imgleft .histoire-figure img { transform: scale(1.16) translateX(-30px); }
.js-anim .histoire-figure.is-visible img { transform: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .js-anim .histoire-figure img { transform: none !important; opacity: 1 !important; }
}

@media (max-width: 781px) {
  .histoire-section { padding-block: 40px; }
  .histoire-section .histoire-figure { order: -1; margin-bottom: 24px; } /* image en tête sur mobile, partout */
  .js-anim .histoire-figure img { transform: none !important; opacity: 1 !important; }
  .histoire-text h2 { font-size: clamp(26px, 7vw, 34px); }
}
.comment-form { display: flex; flex-direction: column; gap: 18px; }
.comment-form label {
  font-family: var(--wp--preset--font-family--eyebrow); font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--wp--preset--color--ink); display: block; margin-bottom: 8px;
}
.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea {
  font-family: var(--wp--preset--font-family--display); font-size: 17px; color: var(--wp--preset--color--ink);
  background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: 2px;
  padding: 12px 14px; width: 100%; box-sizing: border-box;
}
.comment-form input:focus, .comment-form textarea:focus {
  outline: none; border-color: var(--wp--preset--color--gold); box-shadow: 0 0 0 3px rgba(185, 141, 88, 0.15);
}
.comment-form .form-submit .submit {
  font-family: var(--wp--preset--font-family--eyebrow); font-size: 13px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--wp--preset--color--white); background: var(--wp--preset--color--ink-dark);
  border: 0; border-radius: 2px; padding: 15px 38px; cursor: pointer; transition: background-color .25s ease, color .25s ease;
}
.comment-form .form-submit .submit:hover { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--ink-dark); }

@media (max-width: 781px) {
  .blog-grid { gap: 32px; }
}

/* Chapô SEO sous le hero (catalogue + catégories) */
.page-intro {
  padding: 48px 20px 8px;
  text-align: center;
}
.page-intro__text,
.page-intro .wp-block-term-description,
.page-intro .wp-block-post-content {
  max-width: 68ch;
  margin: 0 auto;
  color: var(--wp--preset--color--ink-soft, #4a4a44);
  font-size: clamp(1.02rem, 1.15vw, 1.15rem);
  line-height: 1.7;
}
.page-intro__text p,
.page-intro .wp-block-term-description p { margin: 0; }
@media (max-width: 781px) {
  .page-intro { padding: 32px 18px 4px; }
}

/* ===== Articles de fond SEO : encadré TL;DR + tableau comparatif + FAQ =====
   Communs aux articles éditoriaux (article-body), pattern pyramide inversée. */
.article-intro {
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(1.15rem, 1.6vw, 1.3rem);
  line-height: 1.6;
  color: var(--wp--preset--color--ink);
  text-wrap: pretty;
  margin: 0 0 28px;
}
.article-tldr {
  background: var(--wp--preset--color--cream);
  border: 1px solid rgba(185, 141, 88, 0.34);
  border-radius: 4px;
  padding: 22px 28px;
  margin: 0 0 40px;
}
.article-tldr__label {
  display: block;
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-ink);
  margin-bottom: 10px;
}
.article-tldr ul { margin: 0; padding-left: 1.2em; }
.article-tldr li { margin-bottom: 6px; line-height: 1.55; }
.article-tldr li:last-child { margin-bottom: 0; }

.article-body .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.96rem;
}
.article-body .wp-block-table th,
.article-body .wp-block-table td {
  border: 1px solid rgba(0, 0, 0, 0.1);
  padding: 12px 16px;
  text-align: left;
  vertical-align: top;
}
.article-body .wp-block-table thead th {
  background: var(--wp--preset--color--cream);
  font-family: var(--wp--preset--font-family--eyebrow);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gold-ink);
}

.article-faq { margin-top: 12px; }
.article-faq__item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  padding: 18px 0;
}
.article-faq__item summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.article-faq__item summary::-webkit-details-marker { display: none; }
.article-faq__item summary::before { content: "+"; flex: none; color: var(--gold-ink); font-weight: 600; }
.article-faq__item[open] summary::before { content: "\2212"; }
.article-faq__item summary h3 { margin: 0; } /* taille : cascade depuis .article-body h3 */
.article-faq__item p { margin: 12px 0 0; color: var(--wp--preset--color--ink-soft, #4a4a44); }

.article-body .link-produit {
  color: var(--gold-ink);
  text-decoration: none;
  border-bottom: 1px solid rgba(185, 141, 88, 0.35);
}
.article-body .link-produit:hover { border-color: var(--gold-ink); }
