/* =========================================================================
   DOMAINE FLORENCE PELLETIER — Design System 2026 (code-first)
   Registre : éditorial, sobre, chaleureux — « biodynamie / tables étoilées »
   ========================================================================= */

/* ---- Fonts ---- */
@font-face{
  font-family:"Rufina";
  src:url(../fonts/Rufina_W01_Regular.woff2) format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Consuela";
  src:url(../fonts/Consuela_Script.woff) format("woff");
  font-weight:400;font-style:normal;font-display:swap;
}
/* Roboto chargé via Google Fonts (functions.php) */

/* ---- Tokens ---- */
:root{
  --ink:#171717;
  --ink-soft:#262626;
  --taupe:#8C8579;
  --taupe-dark:#6f695f;
  --cream:#FAF8F5;
  --paper:#F9F9F9;
  --white:#fff;
  --line:rgba(23,23,23,.12);
  --line-soft:rgba(23,23,23,.07);

  --font-display:"Rufina",Georgia,"Times New Roman",serif;
  --font-body:"Roboto","Helvetica Neue",Arial,sans-serif;
  --font-script:"Consuela","Brush Script MT",cursive;

  --step--1:clamp(.78rem,.74rem + .2vw,.86rem);
  --step-0:1rem;
  --step-1:1.25rem;
  --step-2:1.563rem;
  --step-3:1.953rem;
  --step-4:clamp(2.1rem,1.7rem + 2vw,2.441rem);
  --step-5:clamp(2.6rem,2rem + 3vw,3.052rem);
  --step-6:clamp(3rem,2.2rem + 4.5vw,4.2rem);

  --container:1120px;
  --gutter:32px;
  --section-y:clamp(56px,7vw,100px);
  --radius:3px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---- Reset / base ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink-soft);
  font-family:var(--font-body);font-size:var(--step-0);line-height:1.7;
  font-weight:300;letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;color:var(--ink);line-height:1.08;letter-spacing:-.01em;margin:0 0 .4em}
h1{font-size:var(--step-6)}
h2{font-size:var(--step-5)}
h3{font-size:var(--step-3)}
h4{font-size:var(--step-2)}
p{margin:0 0 1.2em}

/* ---- Helpers ---- */
.wrap{max-width:var(--container);margin-inline:auto;padding-inline:24px}
.wrap--wide{max-width:1320px}
.section{padding-block:var(--section-y)}
.eyebrow{
  font-family:var(--font-body);font-weight:500;font-size:.72rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--taupe);
  display:inline-flex;align-items:center;gap:.7em;margin:0 0 1.1rem;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--taupe);display:inline-block}
.script{font-family:var(--font-script);color:var(--taupe-dark);font-size:1.6em;line-height:1}
.lede{font-size:var(--step-1);line-height:1.6;font-weight:300;color:var(--ink-soft)}
.muted{color:var(--taupe-dark)}
.center{text-align:center}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* ---- Buttons ---- */
.btn{
  --b:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  padding:15px 30px;border-radius:var(--radius);border:1px solid var(--b);
  background:var(--b);color:var(--cream);cursor:pointer;
  font-family:var(--font-body);font-weight:500;font-size:.74rem;
  letter-spacing:.18em;text-transform:uppercase;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.btn:hover{--b:var(--taupe);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);transform:translateY(-2px)}
.btn--sm{padding:11px 20px;font-size:.68rem}

/* link with sliding underline */
.ul{position:relative;display:inline-block}
.ul::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.ul:hover::after{transform:scaleX(1);transform-origin:left}

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,248,245,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}
.site-header__bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px}
.brand{display:flex;align-items:center;gap:14px}
.brand img{height:46px;width:auto}
.brand__txt{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.02em;color:var(--ink);line-height:1.1}
.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:400}
.header-actions{display:flex;align-items:center;gap:20px}
.cart-link{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}
.cart-count{background:var(--ink);color:var(--cream);border-radius:999px;min-width:20px;height:20px;display:inline-grid;place-items:center;font-size:.66rem;padding:0 6px}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
.nav-toggle span{width:26px;height:1.5px;background:var(--ink);display:block;transition:.3s var(--ease)}

/* =========================================================================
   HERO (Accueil)
   ========================================================================= */
.hero{position:relative;min-height:clamp(560px,82vh,820px);display:flex;align-items:flex-end;color:var(--cream);overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:slowzoom 18s var(--ease) forwards}
@keyframes slowzoom{to{transform:scale(1)}}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,23,23,.15) 0%,rgba(23,23,23,.62) 100%)}
.hero__inner{position:relative;z-index:1;width:100%;padding-block:clamp(40px,6vw,76px)}
.hero .eyebrow{color:var(--cream)}
.hero .eyebrow::before{background:var(--cream)}
.hero h1{color:var(--cream);max-width:14ch;font-size:var(--step-6)}
.hero__sub{max-width:46ch;font-size:var(--step-1);font-weight:300;color:rgba(250,248,245,.9)}
.hero__cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:26px}
.hero .btn--ghost{color:var(--cream);border-color:rgba(250,248,245,.6)}
.hero .btn--ghost:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}

/* reveal on load */
.reveal{opacity:0;transform:translateY(22px);animation:fadeup .9s var(--ease) forwards}
.reveal[data-d="1"]{animation-delay:.12s}
.reveal[data-d="2"]{animation-delay:.24s}
.reveal[data-d="3"]{animation-delay:.36s}
.reveal[data-d="4"]{animation-delay:.48s}
@keyframes fadeup{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.reveal{animation:none;opacity:1;transform:none}.hero__bg img{animation:none;transform:none}}

/* =========================================================================
   INTRO / VALEURS
   ========================================================================= */
.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,90px);align-items:center}
.intro__media{position:relative}
.intro__media img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%}
.intro__media .stamp{position:absolute;bottom:-26px;right:-18px;width:120px;height:120px;background:var(--cream);border-radius:50%;display:grid;place-items:center;box-shadow:0 18px 40px rgba(23,23,23,.14)}
.intro__media .stamp img{width:64px;height:auto;border-radius:0;aspect-ratio:auto}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter);margin-top:clamp(40px,5vw,72px)}
.value{padding-top:24px;border-top:1px solid var(--line)}
.value h4{font-size:var(--step-1);margin-bottom:.3em}
.value p{font-size:.95rem;color:var(--taupe-dark);margin:0}
.value .num{font-family:var(--font-display);color:var(--taupe);font-size:.9rem;letter-spacing:.05em}

/* =========================================================================
   PRODUITS — grille & cartes
   ========================================================================= */
.products-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:46px;flex-wrap:wrap}
ul.products,.products-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter) clamp(20px,3vw,46px)}
@media(max-width:900px){ul.products,.products-grid,.values,.intro{grid-template-columns:1fr 1fr}}
@media(max-width:620px){ul.products,.products-grid,.values{grid-template-columns:1fr 1fr;gap:24px}.intro{grid-template-columns:1fr}}

li.product,.card{position:relative;text-align:center}
.card__media{
  background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius);
  aspect-ratio:3/4;object-fit:contain;width:100%;padding:22px;margin:0 auto 18px;
  transition:transform .55s var(--ease),box-shadow .55s var(--ease);
}
li.product .woocommerce-loop-product__title,.card__title{
  font-family:var(--font-display);font-size:var(--step-1)!important;color:var(--ink);
  padding:0!important;margin:.1em 0 .15em!important;font-weight:400;
}
.card__cat,li.product .fp-cat{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);display:block;margin-bottom:.3em}
li.product .price,.card__price{color:var(--ink-soft)!important;font-family:var(--font-display)!important;font-size:1.15rem!important}
li.product .price ins{text-decoration:none}
li.product .button,li.product .added_to_cart{
  margin-top:14px!important;display:inline-flex!important;
  padding:11px 20px!important;border-radius:var(--radius)!important;background:var(--ink)!important;color:var(--cream)!important;
  font-size:.68rem!important;letter-spacing:.18em!important;text-transform:uppercase!important;font-weight:500!important;
  border:1px solid var(--ink)!important;transition:background .35s var(--ease)!important;
}
li.product .button:hover{background:var(--taupe)!important;border-color:var(--taupe)!important}

/* =========================================================================
   FICHE PRODUIT
   ========================================================================= */
.single-product div.product{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:start}
@media(max-width:820px){.single-product div.product{grid-template-columns:1fr}}
.single-product .woocommerce-product-gallery{margin:0}
.single-product .woocommerce-product-gallery img{background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius);padding:34px}
.single-product div.product .product_title{font-size:var(--step-5);margin-bottom:.1em}
.single-product .price{font-family:var(--font-display)!important;font-size:var(--step-2)!important;color:var(--ink)!important;margin-bottom:1rem}
.single-product .woocommerce-product-details__short-description{font-size:1.02rem;color:var(--ink-soft);max-width:46ch}
.single-product .cart{margin-top:1.6rem;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.single-product .quantity input{height:50px;width:74px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);text-align:center;font-family:var(--font-body)}
.single-product .single_add_to_cart_button{
  height:50px;padding:0 34px!important;background:var(--ink)!important;color:var(--cream)!important;border-radius:var(--radius)!important;
  border:0!important;font-size:.74rem!important;letter-spacing:.18em!important;text-transform:uppercase!important;font-weight:500!important;
  transition:background .35s var(--ease)!important;
}
.single-product .single_add_to_cart_button:hover{background:var(--taupe)!important}
.single-product .product_meta{margin-top:1.6rem;font-size:.82rem;color:var(--taupe-dark);border-top:1px solid var(--line);padding-top:1.2rem}
.single-product .product_meta>span{display:block;margin-bottom:.3em}
.woocommerce-tabs{margin-top:clamp(40px,5vw,72px);grid-column:1/-1}
.woocommerce-tabs ul.tabs{list-style:none;display:flex;gap:28px;padding:0;border-bottom:1px solid var(--line)}
.woocommerce-tabs ul.tabs li{padding-bottom:12px}
.woocommerce-tabs ul.tabs a{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe-dark)}
.woocommerce-tabs ul.tabs li.active a{color:var(--ink)}

/* =========================================================================
   PAGE éditoriale (À Propos / Œnotourisme / Contact / Nos vins)
   ========================================================================= */
.page-hero{padding-block:clamp(50px,7vw,96px) clamp(30px,4vw,52px);text-align:center;max-width:760px;margin-inline:auto}
.page-hero h1{font-size:var(--step-6)}
.prose{max-width:680px;margin-inline:auto}
.prose h2{margin-top:1.6em}
.prose p{font-size:1.05rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,80px);align-items:center}
.split img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%}
@media(max-width:820px){.split{grid-template-columns:1fr}}
.band{background:var(--ink);color:var(--cream)}
.band h2,.band h3{color:var(--cream)}
.band .eyebrow{color:var(--taupe)}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px)}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}
.contact-info p{margin:.2em 0}
.contact-info .label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);margin-top:1.3em;margin-bottom:.2em}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{background:var(--ink);color:rgba(250,248,245,.78);padding-block:clamp(48px,6vw,80px) 30px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr;gap:32px}}
.site-footer h4{color:var(--cream);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-family:var(--font-body);font-weight:500;margin-bottom:1.1em}
.site-footer a{color:rgba(250,248,245,.78)}
.site-footer a:hover{color:var(--cream)}
.site-footer .brand__txt{color:var(--cream)}
.footer-script{font-family:var(--font-script);font-size:2rem;color:var(--taupe);line-height:1}
.footer-legal{margin-top:46px;padding-top:22px;border-top:1px solid rgba(250,248,245,.16);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.76rem;color:rgba(250,248,245,.55)}
.abv{font-size:.72rem;color:rgba(250,248,245,.5);margin-top:10px}

/* =========================================================================
   WooCommerce notices, breadcrumb, cart/checkout light polish
   ========================================================================= */
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top:2px solid var(--taupe);background:var(--white);border-radius:var(--radius);padding:1em 1.4em;list-style:none;box-shadow:0 8px 24px rgba(23,23,23,.05)}
.woocommerce-breadcrumb{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--taupe-dark);margin-bottom:28px}
.woocommerce-result-count{color:var(--taupe-dark);font-size:.85rem}
.woocommerce-ordering select{border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;background:var(--white);font-family:var(--font-body)}
table.cart img{width:72px;border:1px solid var(--line-soft);border-radius:var(--radius)}
.cart-collaterals .cart_totals,.woocommerce-checkout #order_review{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);padding:24px}

/* age gate */
.fp-age{position:fixed;inset:0;z-index:999;background:rgba(23,23,23,.92);display:flex;align-items:center;justify-content:center;color:var(--cream);text-align:center;padding:24px}
.fp-age__box{max-width:440px}
.fp-age h2{color:var(--cream)}
.fp-age .btn--ghost{color:var(--cream);border-color:rgba(250,248,245,.6)}
.fp-age.hidden{display:none}

@media(max-width:860px){
  .nav,.header-actions .cart-link span.lbl{display:none}
  .nav-toggle{display:flex}
  .nav.open{display:flex;position:absolute;top:84px;left:0;right:0;flex-direction:column;background:var(--cream);padding:24px;gap:18px;border-bottom:1px solid var(--line)}
}

/* =========================================================================
   GRAIN — texture papier subtile (atmosphère / profondeur)
   ========================================================================= */
body::after{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.025;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.site-header,.fp-age{z-index:60}

/* =========================================================================
   REVEAL au scroll (data-io)
   ========================================================================= */
/* L'effet ne s'applique QUE si JS actif (.js) → sans JS, contenu visible */

.js [data-io]{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js [data-io].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js [data-io]{opacity:1;transform:none;transition:none}}

/* =========================================================================
   NEUTRALISER le layout natif WooCommerce (float + clearfix) qui surcouche
   notre grille — sinon cellule fantôme + colonnes désalignées.
   ========================================================================= */
.woocommerce ul.products,.woocommerce-page ul.products{
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;margin:0!important;
}
.woocommerce ul.products::before,.woocommerce ul.products::after{content:none!important;display:none!important}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{
  float:none!important;clear:none!important;width:auto!important;margin:0!important;
}
.woocommerce ul.products li.product::before,.woocommerce ul.products li.product::after{content:normal}
@media(max-width:900px){.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:1fr 1fr!important}}
@media(max-width:620px){.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:1fr 1fr!important}}
/* Fiche produit : neutraliser les floats images/summary natifs */
.woocommerce div.product{display:grid!important}
.woocommerce div.product .woocommerce-product-gallery,.woocommerce div.product .summary{float:none!important;width:auto!important;margin:0!important}

/* =========================================================================
   PRODUITS — cartes éditoriales (double cadre + bouteille en lévitation)
   ========================================================================= */
ul.products,.products-grid{gap:clamp(40px,4vw,60px) clamp(22px,3vw,40px)}
li.product,.card{padding-bottom:6px;text-align:left}
/* Carte = image plein cadre (éditorial), cadrée dans un ratio portrait */
li.product a{position:relative;display:block;color:inherit;text-decoration:none}
/* La vignette = SEUL conteneur clippé : le zoom et l'ombre d'élévation y restent contenus,
   le texte (catégorie / titre / prix) vit en-dehors et n'est jamais rogné. */
li.product .fp-thumb{
  display:block;position:relative;overflow:hidden;border-radius:var(--radius);
  margin-bottom:18px;background:#f4f1ec;
  box-shadow:0 0 0 1px var(--line-soft);
  transition:box-shadow .5s var(--ease);
}
.card__media,li.product .fp-thumb img,li.product .fp-thumb .wp-post-image{
  display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;
  background:#f4f1ec;border:0;border-radius:inherit;margin:0;padding:0;
  transition:transform 1.1s var(--ease);
}
/* Hover/focus : l'ombre est portée par .fp-thumb (overflow:hidden ne rogne PAS sa propre ombre) ;
   l'image zoome, contenue dans le cadre arrondi. */
li.product:hover .fp-thumb,li.product a:focus-visible .fp-thumb{
  box-shadow:0 0 0 1px var(--line-soft),0 24px 48px -22px rgba(23,23,23,.3);
}
li.product:hover .fp-thumb img{transform:scale(1.045)}
/* Tactile : pas de zoom « collé » après un tap */
@media (hover:none){li.product:hover .fp-thumb img{transform:none}}
/* Placeholder « visuel à venir » — remplit la vignette */
li.product .fp-thumb img[src^="data:image/svg"]{object-fit:cover}
li.product .fp-cat,.card__cat{margin-top:2px;color:var(--taupe);font-size:.64rem;letter-spacing:.24em}
li.product .woocommerce-loop-product__title,.card__title{margin:.18em 0 .05em!important}
.fp-loop-teaser{
  max-width:34ch;margin:.15em 0 .5em;color:var(--taupe-dark);
  font-size:.86rem;line-height:1.55;font-weight:300;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
/* Pastilles d'aide au choix (type · cépage · millésime) */
.fp-pills{display:flex;flex-wrap:wrap;gap:6px;margin:.45em 0 .15em}
.fp-pill{
  font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--taupe-dark);
  background:rgba(140,133,121,.1);border:1px solid var(--line-soft);border-radius:999px;
  padding:4px 10px;line-height:1.4;white-space:nowrap;
}
li.product .price,.card__price{font-size:1.18rem!important;letter-spacing:.01em;display:block;margin-top:.5em!important}
li.product .price bdi{font-family:var(--font-display)}
/* Bouton « ajouter au panier » — pleine largeur, contour qui se remplit (premium, lisible) */
li.product .button,li.product .added_to_cart{
  display:block!important;width:100%!important;text-align:center;margin-top:16px!important;white-space:nowrap;
  padding:13px 18px!important;background:transparent!important;color:var(--ink)!important;
  border:1px solid var(--line)!important;border-radius:var(--radius)!important;
  font-size:.7rem!important;letter-spacing:.18em!important;text-transform:uppercase!important;font-weight:500!important;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)!important;
}
li.product .button:hover{background:var(--ink)!important;color:var(--cream)!important;border-color:var(--ink)!important}
li.product .added_to_cart{margin-top:8px!important;border-color:var(--taupe)!important;color:var(--taupe-dark)!important}

/* =========================================================================
   BOUTIQUE — pagination (redesign + respiration)
   ========================================================================= */
.woocommerce nav.woocommerce-pagination,.woocommerce-pagination{
  margin-top:clamp(48px,6vw,84px);padding-top:clamp(28px,3vw,40px);
  border-top:1px solid var(--line-soft);display:flex;justify-content:center;clear:both;text-align:center;
}
.woocommerce nav.woocommerce-pagination ul,.woocommerce-pagination ul.page-numbers{
  list-style:none;display:inline-flex;gap:8px;margin:0!important;padding:0!important;border:0!important;align-items:center;
}
.woocommerce nav.woocommerce-pagination ul li,.woocommerce-pagination ul li{margin:0!important;border:0!important;display:flex}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-pagination .page-numbers{
  box-sizing:border-box;display:grid;place-items:center;min-width:44px;height:44px;padding:0 14px!important;
  border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--white);
  font-family:var(--font-body);font-size:.82rem;font-weight:400;letter-spacing:.04em;line-height:1;margin:0;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce-pagination .page-numbers.current{background:var(--ink)!important;color:var(--cream)!important;border-color:var(--ink)!important}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce-pagination a.page-numbers:hover{border-color:var(--ink);background:var(--cream)}
.woocommerce nav.woocommerce-pagination ul li .dots,
.woocommerce-pagination .page-numbers.dots{border-color:transparent!important;background:transparent!important;min-width:24px}

/* =========================================================================
   BOUTIQUE — en-tête éditorial de l'archive
   ========================================================================= */
.woocommerce-products-header{max-width:760px;margin:0 auto clamp(34px,5vw,58px);text-align:center}
.woocommerce-products-header__title.page-title{font-family:var(--font-display);font-size:var(--step-6);color:var(--ink);margin:0 0 .25em}
.term-description,.woocommerce-products-header .term-description{color:var(--taupe-dark);font-size:var(--step-1);font-weight:300}
.woocommerce-result-count,.woocommerce-ordering{margin-bottom:26px}

/* =========================================================================
   FICHE PRODUIT — résumé (méta cépage)
   ========================================================================= */
.fp-single-meta{
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);
  margin:.1rem 0 1rem;font-weight:500;
}
/* Galerie sticky immersive (desktop) */
.single-product .woocommerce-product-gallery{position:static;top:auto;margin:0}
@media(max-width:820px){.single-product .woocommerce-product-gallery{position:static}}
.single-product .woocommerce-product-gallery img{
  padding:0;border:0;border-radius:var(--radius);box-shadow:0 0 0 1px var(--line-soft);
  width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;background:#f4f1ec;
}
.single-product .fp-ph img{object-fit:cover;background:#F4F1EC;padding:0}
.single-product .woocommerce-product-gallery__trigger{display:none}

/* Réassurance sous l'image (équilibre les colonnes — item 18) */
.fp-assur{list-style:none;margin:22px 0 0;padding:22px 0 0;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:16px}
.fp-assur li{display:flex;align-items:flex-start;gap:14px}
.fp-assur__ic{flex:0 0 auto;width:22px;height:22px;color:var(--taupe);margin-top:1px}
.fp-assur__ic svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.fp-assur__t{display:flex;flex-direction:column;line-height:1.4}
.fp-assur__k{font-family:var(--font-body);font-weight:500;font-size:.82rem;color:var(--ink);letter-spacing:.02em}
.fp-assur__v{font-size:.78rem;color:var(--taupe-dark)}

/* Résumé produit élevé */
.single-product div.product{gap:clamp(40px,5vw,86px)}
.single-product .summary{padding-top:clamp(8px,2vw,28px)}
.single-product div.product .product_title{font-size:var(--step-6);line-height:1.04;margin:.05em 0 .25em}
.single-product .summary .price{margin:.2rem 0 1.4rem}
.single-product .woocommerce-product-details__short-description{
  font-family:var(--font-display);font-size:var(--step-2);line-height:1.45;color:var(--ink);
  font-weight:400;max-width:34ch;margin-bottom:.4rem;
}
.single-product .summary>.cart{margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.single-product .abv{margin-top:1.8rem!important;padding-top:1.2rem;border-top:1px solid var(--line-soft)}

/* Section « à découvrir également » — éditoriale */
.related.products{grid-column:1/-1;margin-top:clamp(56px,7vw,96px);border-top:1px solid var(--line);padding-top:clamp(40px,5vw,64px)}
.related.products>h2{font-size:var(--step-4);margin-bottom:clamp(28px,3vw,42px);position:relative;padding-top:1.4rem}
.related.products>h2::before{content:"La cave";position:absolute;top:0;left:0;font-family:var(--font-body);font-weight:500;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--taupe)}

/* =========================================================================
   FICHE PRODUIT — bloc éditorial (récit / dégustation / technique / accords)
   ========================================================================= */
.fp-story{grid-column:1/-1;margin-top:clamp(48px,6vw,86px);border-top:1px solid var(--line);padding-top:clamp(40px,5vw,68px)}
.fp-story .eyebrow{margin-bottom:1rem}
.fp-story__block{margin-bottom:clamp(40px,5vw,64px)}
.fp-story__recit{text-align:center;max-width:62ch;margin-inline:auto}
.fp-story__lede{font-family:var(--font-display);font-size:var(--step-2);line-height:1.5;color:var(--ink);font-weight:400}
.fp-story__recit .eyebrow{justify-content:center}

.fp-degust__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(22px,3vw,46px)}
@media(max-width:760px){.fp-degust__grid{grid-template-columns:1fr;gap:24px}}
.fp-degust__c{border-top:2px solid var(--ink);padding-top:18px}
.fp-degust__k{font-family:var(--font-display);font-size:var(--step-1);color:var(--ink);display:block;margin-bottom:.4em}
.fp-degust__c p{margin:0;color:var(--ink-soft);font-size:.96rem;line-height:1.65}

.fp-story__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:start}
@media(max-width:760px){.fp-story__cols{grid-template-columns:1fr;gap:36px}}
.fp-facts{border-top:1px solid var(--line)}
.fp-fact{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.fp-fact__l{color:var(--taupe);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;flex:0 0 auto}
.fp-fact__v{color:var(--ink-soft);text-align:right;font-size:.96rem}
.fp-accords__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.fp-accords__list li{
  font-family:var(--font-display);font-size:var(--step-1);color:var(--ink);
  padding:14px 0;border-bottom:1px solid var(--line-soft);position:relative;padding-left:28px;
}
.fp-accords__list li::before{content:"—";position:absolute;left:0;color:var(--taupe)}
.fp-accords__note{margin-top:1rem;font-style:italic;color:var(--taupe-dark);font-size:.86rem}

/* =========================================================================
   NOS VINS — page éditoriale (gammes + cuvées)
   ========================================================================= */
.range{padding-block:clamp(40px,5vw,72px);border-top:1px solid var(--line)}
.range:first-of-type{border-top:0}
.range__head{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,60px);align-items:baseline;margin-bottom:clamp(28px,3vw,44px)}
@media(max-width:760px){.range__head{grid-template-columns:1fr;gap:12px}}
.range__idx{font-family:var(--font-display);font-size:var(--step-2);color:var(--taupe)}
.range__title{font-size:var(--step-4);margin:0}
.range__intro{color:var(--ink-soft);font-size:1.04rem;font-weight:300;margin:0}
.range__wines{display:grid;grid-template-columns:repeat(2,1fr);gap:4px clamp(28px,4vw,60px)}
@media(max-width:760px){.range__wines{grid-template-columns:1fr}}
.cuvee{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:16px 0;border-bottom:1px solid var(--line-soft);transition:padding-left .4s var(--ease)}
.cuvee:hover{padding-left:10px}
.cuvee__name{font-family:var(--font-display);font-size:var(--step-1);color:var(--ink)}
.cuvee__desc{display:block;color:var(--taupe-dark);font-size:.84rem;font-weight:300;margin-top:.15em;letter-spacing:.005em}
.cuvee__price{color:var(--taupe);font-size:.92rem;white-space:nowrap;font-family:var(--font-display)}
.cuvee__link{display:flex;justify-content:space-between;align-items:baseline;gap:18px;width:100%}
.cuvee__link:hover .cuvee__name{color:var(--taupe-dark)}

/* =========================================================================
   PRINT — rendu PDF propre (pas d'age-gate, contenu révélé)
   ========================================================================= */
@media print{
  .fp-age{display:none!important}
  [data-io]{opacity:1!important;transform:none!important}
  body::after{display:none}
  .site-header{position:static}
}

.footer-links{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px 26px;font-size:.78rem;letter-spacing:.02em}
.footer-links a{color:rgba(250,248,245,.7);text-decoration:none;transition:color .2s}
.footer-links a:hover{color:#FAF8F5}

/* ============================================================
   ACCUEIL — sections enrichies (premium éditorial, DA maison)
   ============================================================ */

/* Bandeau confiance */
.trust{border-block:1px solid var(--line);background:var(--cream)}
.trust__row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.trust__row li{padding:26px 28px;display:flex;flex-direction:column;gap:5px;border-left:1px solid var(--line-soft)}
.trust__row li:first-child{border-left:none}
.trust__k{font-family:var(--font-display);font-size:1.05rem;color:var(--ink)}
.trust__v{font-size:var(--step--1);color:var(--taupe-dark);line-height:1.45}
@media(max-width:860px){.trust__row{grid-template-columns:repeat(2,1fr)}.trust__row li:nth-child(odd){border-left:none}.trust__row li:nth-child(n+3){border-top:1px solid var(--line-soft)}}
@media(max-width:480px){.trust__row{grid-template-columns:1fr}.trust__row li{border-left:none;border-top:1px solid var(--line-soft)}.trust__row li:first-child{border-top:none}}

/* Aperçu des 4 gammes */
.gammes{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:clamp(34px,4vw,56px)}
.gamme{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;position:relative;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.gamme:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(23,23,23,.4);border-color:var(--line)}
/* Vignette illustrative (un vin par gamme) + badge numéro */
.gamme__img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#f4f1ec}
.gamme__img img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .8s var(--ease)}
.gamme:hover .gamme__img img{transform:scale(1.06)}
.gamme__badge{position:absolute;left:14px;bottom:14px;z-index:1;font-family:var(--font-display);font-size:.9rem;letter-spacing:.04em;color:var(--ink);background:var(--cream);border-radius:999px;width:34px;height:34px;display:grid;place-items:center;box-shadow:0 6px 16px -6px rgba(23,23,23,.4)}
.gamme__body{display:flex;flex-direction:column;gap:7px;padding:22px 24px 24px;flex:1}
.gamme__n{font-family:var(--font-display);font-size:1.1rem;color:var(--taupe);letter-spacing:.04em}
.gamme__t{font-family:var(--font-display);font-size:var(--step-2);line-height:1.1;margin:.1rem 0 0}
.gamme__s{font-size:var(--step--1);letter-spacing:.16em;text-transform:uppercase;color:var(--taupe-dark)}
.gamme__d{font-size:.92rem;line-height:1.6;color:var(--ink-soft);margin:.4rem 0 auto}
.gamme__lnk{margin-top:18px;font-size:var(--step--1);letter-spacing:.06em;color:var(--ink);opacity:.55;transition:opacity .3s,letter-spacing .3s}
.gamme:hover .gamme__lnk{opacity:1;letter-spacing:.1em}
@media(max-width:980px){.gammes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.gammes{grid-template-columns:1fr}}

/* Feature — tables étoilées */
.feature{position:relative;isolation:isolate;background:var(--ink);color:var(--cream);overflow:hidden}
.feature__bg{position:absolute;inset:0;z-index:-2}
.feature__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) brightness(.42)}
.feature::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,rgba(23,23,23,.92) 0%,rgba(23,23,23,.7) 42%,rgba(23,23,23,.25) 100%)}
.feature__inner{padding-block:clamp(72px,9vw,128px);display:flex}
.feature__card{max-width:52ch}
.feature__card .eyebrow{color:var(--taupe)}
.feature__card .eyebrow::before{background:var(--taupe)}
.feature__card h2{color:var(--cream)}
.feature__card .lede{color:rgba(250,248,245,.9)}
.feature__card .muted{color:rgba(250,248,245,.62)}
.feature__card .btn{margin-top:20px}

/* Newsletter */
.newsletter{background:var(--cream)}
.newsletter__form{display:flex;gap:12px;max-width:480px;margin:26px auto 0;flex-wrap:wrap;justify-content:center}
.newsletter__form input{flex:1 1 240px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);font-family:var(--font-body);font-size:1rem;color:var(--ink)}
.newsletter__form input:focus{outline:none;border-color:var(--taupe)}
.newsletter__legal{font-size:.74rem;color:var(--taupe-dark);margin-top:16px;max-width:46ch;margin-inline:auto}
.newsletter__legal a{color:var(--ink-soft)}

/* ============================================================
   PASSE TASTE — polish premium (feedback, focus, cascade)
   Upgrades ciblés, non destructifs, dans la DA.
   ============================================================ */

/* Transitions + feedback tactile sur les boutons */
.btn{transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .22s var(--ease)}
.btn:active{transform:translateY(0) scale(.985)}

/* Focus visible accessible (clavier) — accent taupe, jamais de glow */
:focus-visible{outline:2px solid var(--taupe);outline-offset:3px;border-radius:1px}
.gamme:focus-visible,.cuvee:focus-visible,.product a:focus-visible{outline:2px solid var(--taupe);outline-offset:4px}

/* Ombre teintée (chaude) sur les cartes gammes — plus de noir pur */
.gamme:hover{box-shadow:0 24px 50px -28px rgba(111,105,95,.55)}

/* Reveals étagés — cascade subtile (le contenu reste révélé par le filet JS) */
.js .gammes .gamme,.js .values .value,.js ul.products .product{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .gammes .gamme:nth-child(2),.js .values .value:nth-child(2),.js ul.products .product:nth-child(2){transition-delay:.07s}
.js .gammes .gamme:nth-child(3),.js .values .value:nth-child(3),.js ul.products .product:nth-child(3){transition-delay:.14s}
.js .gammes .gamme:nth-child(4),.js ul.products .product:nth-child(4){transition-delay:.21s}
.js ul.products .product:nth-child(5){transition-delay:.28s}
.js ul.products .product:nth-child(6){transition-delay:.35s}

/* 404 — alignement boutons */
.fp-404__cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:10px}

/* ============================================================
   CONTRASTE BOUTONS — système accessible (passe globale)
   Règle : aucun CTA ne doit être sombre sur fond sombre.
   - .btn (plein) = encre sur clair (défaut)
   - .btn--light = crème sur sombre (variante explicite)
   - filets contextuels : tout .btn / .btn--ghost dans une section
     sombre (.band, .feature, .hero, .fp-age) devient lisible.
   ============================================================ */
.btn--light{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.btn--light:hover{background:transparent;color:var(--cream);border-color:var(--cream)}

/* Plein .btn sur fond sombre → inversé crème (lisible) */
.band .btn:not(.btn--ghost):not(.btn--light),
.feature .btn:not(.btn--ghost):not(.btn--light),
.band--photo .btn:not(.btn--ghost):not(.btn--light){
  background:var(--cream);color:var(--ink);border-color:var(--cream);
}
.band .btn:not(.btn--ghost):not(.btn--light):hover,
.feature .btn:not(.btn--ghost):not(.btn--light):hover,
.band--photo .btn:not(.btn--ghost):not(.btn--light):hover{
  background:transparent;color:var(--cream);border-color:var(--cream);
}
/* Ghost sur fond sombre → contour crème lisible */
.band .btn--ghost,.feature .btn--ghost,.band--photo .btn--ghost{
  color:var(--cream);border-color:rgba(250,248,245,.6);background:transparent;
}
.band .btn--ghost:hover,.feature .btn--ghost:hover,.band--photo .btn--ghost:hover{
  background:var(--cream);color:var(--ink);border-color:var(--cream);
}

/* ============================================================
   AVANTAGES (bandeau confiance) — icônes line-art
   ============================================================ */
.trust__row li{gap:0}
.trust__ic{width:26px;height:26px;color:var(--taupe);margin-bottom:13px;display:block}
.trust__ic svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.trust__k{margin-bottom:4px}

/* ============================================================
   ŒNOTOURISME (accueil) — band avec photo lisible + overlay
   ============================================================ */
.band--photo{position:relative;isolation:isolate;overflow:hidden;background:var(--ink)}
.band--photo .band__bg{position:absolute;inset:0;z-index:-2}
.band--photo .band__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.08) brightness(.68)}
.band--photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(23,23,23,.40) 0%,rgba(23,23,23,.55) 55%,rgba(23,23,23,.68) 100%)}

/* ============================================================
   FORMULAIRES — champs, multi-step, réservation, notices
   ============================================================ */
.fp-form{max-width:560px}
.fp-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.fp-field label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe-dark);font-weight:500}
.fp-opt{text-transform:none;letter-spacing:0;color:var(--taupe);font-weight:400;font-size:.82em}
.fp-field input,.fp-field textarea,.fp-form select{
  width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--white);font-family:var(--font-body);font-size:1rem;color:var(--ink);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.fp-field input:focus,.fp-field textarea:focus{outline:none;border-color:var(--taupe);box-shadow:0 0 0 3px rgba(140,133,121,.15)}
.fp-field textarea{resize:vertical;min-height:120px}

/* indicateur d'étapes */
.fp-steps{list-style:none;display:flex;gap:10px;margin:0 0 28px;padding:0}
.fp-steps li{flex:1;display:flex;align-items:center;gap:10px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--taupe);padding-bottom:12px;border-bottom:2px solid var(--line-soft);transition:color .3s var(--ease),border-color .3s var(--ease)}
.fp-steps li i{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;border:1px solid var(--line);font-style:normal;font-size:.78rem;color:var(--taupe-dark);flex:0 0 auto;transition:.3s var(--ease)}
.fp-steps li.is-active{color:var(--ink);border-color:var(--ink)}
.fp-steps li.is-active i{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.fp-steps li.is-done i{background:var(--taupe);color:var(--cream);border-color:var(--taupe)}
@media(max-width:520px){.fp-steps li span,.fp-steps li{font-size:0}.fp-steps li i{font-size:.78rem}}

.fp-step{display:none}
.fp-step.is-active{display:block;animation:fpfade .4s var(--ease)}
@keyframes fpfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fp-nav{display:flex;justify-content:space-between;gap:14px;margin-top:24px;align-items:center}
.fp-nav--end{justify-content:flex-end}

/* récapitulatif (étape finale) */
.fp-review__t{font-family:var(--font-display);font-size:var(--step-1);color:var(--ink);margin-bottom:.5em}
.fp-review{margin:0 0 10px;border-top:1px solid var(--line)}
.fp-review div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.fp-review dt{color:var(--taupe);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;flex:0 0 auto}
.fp-review dd{margin:0;text-align:right;color:var(--ink-soft);font-size:.95rem}

/* réservation de visite — carte */
.fp-booking{max-width:760px;margin-inline:auto;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius);padding:clamp(28px,4vw,52px);box-shadow:0 30px 60px -42px rgba(23,23,23,.4)}
.fp-booking__head{text-align:center;margin-bottom:28px}
.fp-form--card{max-width:none}
.fp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
@media(max-width:600px){.fp-grid2{grid-template-columns:1fr}}

/* notices */
.fp-note{border-radius:var(--radius);padding:14px 18px;margin-bottom:22px;font-size:.92rem;border:1px solid;text-align:left}
.fp-note--ok{background:rgba(140,133,121,.12);border-color:var(--taupe);color:var(--ink)}
.fp-note--err{background:#fbf1ec;border-color:#b9543a;color:#8a3a26}

/* ---- Vente par caisse de 6 (prix bouteille + caisse) ---- */
.fp-price{display:flex;flex-direction:column;gap:.12rem;line-height:1.3}
.fp-price__unit{font-weight:500}
.fp-price__per{color:var(--taupe);font-size:.78em;font-weight:400;letter-spacing:.01em}
.fp-price__case{color:var(--taupe-dark);font-size:.82rem;letter-spacing:.01em}
.fp-price__case strong{color:var(--ink);font-weight:600}
.woocommerce ul.products li.product .fp-price{align-items:flex-start}
.fp-case-note{display:block;width:100%;font-size:.8rem;color:var(--taupe-dark);letter-spacing:.02em;margin:0 0 .6rem;padding-bottom:.5rem;border-bottom:1px solid var(--line-soft)}
.single-product form.cart .fp-case-note{order:-1}


/* === Cartes boutique : hauteur egale + prix/bouton alignes (fix 04/06/2026) === */
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{display:flex!important;flex-direction:column;height:100%}
.woocommerce ul.products li.product>a.woocommerce-LoopProduct-link{display:flex!important;flex-direction:column;flex:1 1 auto}
.woocommerce ul.products li.product>a.woocommerce-LoopProduct-link>.price{margin-top:auto!important}

/* ============================================================
   PANIER & CHECKOUT (blocs WooCommerce) — finition DA (04/06/2026)
   Le thème laisse les blocs Gutenberg Woo quasi non stylés :
   - le paiement express est désactivé (cf filtre Stripe) mais le
     conteneur vide laissait 2 "barres grises" + un séparateur "Ou" ;
   - le bouton "Valider la commande" s'affichait sans style (lien faible).
   ============================================================ */
/* Masque la zone paiement express vide + le séparateur "Ou" du panier */
.wc-block-cart__payment-options,
.wc-block-components-express-payment,
.wc-block-components-express-payment-continue-rule{display:none!important}

/* CTA principaux des blocs (panier "Valider la commande" + checkout "Commander") → style .btn */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;padding:16px 30px;height:auto;min-height:0;
  border:1px solid var(--ink);border-radius:var(--radius);
  background:var(--ink);color:var(--cream);cursor:pointer;
  font-family:var(--font-body);font-weight:500;font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;line-height:1.2;
  transition:background .3s var(--ease),color .3s var(--ease),transform .22s var(--ease);
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover{background:var(--taupe);color:var(--cream);transform:translateY(-2px)}
.wc-block-cart__submit-button:active,
.wc-block-components-checkout-place-order-button:active{transform:translateY(0) scale(.985)}
.wc-block-cart__submit-button .wc-block-components-button__text,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text{color:inherit}

/* Titre des totaux en serif + filets sobres */
.wc-block-cart__totals-title{font-family:var(--font-display);color:var(--ink);font-weight:400}
.wc-block-cart__sidebar .wc-block-components-totals-wrapper{border-color:var(--line)}
.wc-block-components-totals-item__label{color:var(--taupe-dark)}

/* Champ "Ajouter un code promo" + panneaux : focus cohérent */
.wc-block-components-panel__button:focus-visible{outline:2px solid var(--taupe);outline-offset:3px}

/* ============================================================
   PAGINATION BOUTIQUE — redesign DA (04/06/2026)
   Le markup .woocommerce-pagination n'était pas stylé (défaut Woo).
   ============================================================ */
.woocommerce nav.woocommerce-pagination{margin-top:clamp(44px,5vw,68px);padding-top:34px;border-top:1px solid var(--line);text-align:center}
.woocommerce nav.woocommerce-pagination ul{display:inline-flex;gap:8px;border:0!important;margin:0;padding:0;flex-wrap:wrap;justify-content:center}
.woocommerce nav.woocommerce-pagination ul li{border:0!important;margin:0;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul li span.page-numbers{
  display:grid;place-items:center;min-width:44px;height:44px;padding:0 14px;
  border:1px solid var(--line);border-radius:var(--radius);background:transparent;
  font-family:var(--font-body);font-size:.8rem;font-weight:500;letter-spacing:.04em;
  color:var(--ink);line-height:1;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .22s var(--ease);
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover{background:var(--cream);border-color:var(--taupe);transform:translateY(-2px)}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce nav.woocommerce-pagination ul li a.prev{text-transform:uppercase;font-size:.72rem;letter-spacing:.12em}
/* respiration bas de grille produits */
.woocommerce ul.products{margin-bottom:0}

/* ============================================================
   FICHE PRODUIT — passe TASTE (04/06/2026 soir)
   Problèmes corrigés : image trop "vide" (premier plan), hiérarchie
   prix faible, dégustation étirée à 2 items, vides verticaux.
   ============================================================ */
/* Image : cadrage remonté → bouteilles mises en valeur, moins de premier plan vide */
.single-product .woocommerce-product-gallery img{object-position:center 30%}

/* Hiérarchie prix : prix bouteille affirmé (serif) + prix caisse net et lisible */
.single-product .summary .price{margin:.4rem 0 1.5rem}
.single-product .fp-price{gap:.4rem}
.single-product .fp-price__unit{font-family:var(--font-display);font-size:var(--step-3);color:var(--ink);font-weight:400;line-height:1.05}
.single-product .fp-price__unit .woocommerce-Price-amount{font-size:inherit}
.single-product .fp-price__per{font-family:var(--font-body);font-size:.8rem;color:var(--taupe);letter-spacing:.03em}
.single-product .fp-price__case{display:inline-flex;align-items:baseline;gap:.45ch;font-size:.88rem;color:var(--taupe-dark);letter-spacing:.01em}
.single-product .fp-price__case strong{font-size:1.02rem;color:var(--ink);font-weight:600}

/* Dégustation : colonnes intentionnelles (ne s'étirent plus sur toute la largeur) */
.fp-degust__grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));max-width:980px;justify-content:start}
.fp-degust__c{max-width:36ch}

/* Resserrer les vides verticaux entre blocs éditoriaux de la fiche */
.fp-story__cols{margin-top:clamp(30px,4vw,48px)}
.fp-degust{margin-top:clamp(30px,4vw,48px)}

/* Photos produit réelles → format carré : cadrage serré sur les bouteilles,
   colonne image moins haute (réduit le vide). Le placeholder de marque reste en 4/5. */
.single-product .woocommerce-product-gallery__image:not(.fp-ph) img{aspect-ratio:1/1;object-position:center 38%}
/* Colonne résumé (courte) centrée verticalement face à l'image */
.single-product div.product{align-items:center}
@media(max-width:820px){.single-product div.product{align-items:stretch}}

/* ============================================================
   FICHE PRODUIT — sélecteur de quantité « caisse » (stepper − / +)
   ============================================================ */
.single-product .quantity.fp-qty{display:inline-flex;align-items:stretch;height:52px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--white);padding:0}
.single-product .quantity.fp-qty input.qty{height:auto;width:58px;margin:0;border:0;border-inline:1px solid var(--line);border-radius:0;background:transparent;text-align:center;font-family:var(--font-body);font-size:1.02rem;color:var(--ink);-moz-appearance:textfield;appearance:textfield}
.single-product .quantity.fp-qty input.qty::-webkit-outer-spin-button,
.single-product .quantity.fp-qty input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.fp-qty__btn{border:0;background:transparent;width:48px;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--ink);display:grid;place-items:center;transition:background .25s var(--ease),color .25s var(--ease)}
.fp-qty__btn:hover{background:var(--ink);color:var(--cream)}
.fp-qty__btn:disabled{opacity:.32;cursor:not-allowed}
.fp-qty__btn:focus-visible{outline:2px solid var(--taupe);outline-offset:-2px}
.fp-qty__hint{flex:0 0 100%;order:5;font-size:.78rem;color:var(--taupe-dark);letter-spacing:.02em;margin-top:.5rem}

/* ============================================================
   FICHE PRODUIT — correctif galerie sticky + alignement (05/06/2026)
   Bug : WooCommerce core impose
     .woocommerce div.product div.woocommerce-product-gallery{position:relative}
   (spécificité 0,3,2) → battait notre règle sticky (0,2,0). Le sticky
   ne s'appliquait jamais : l'élément restait 'relative' et 'top:104px'
   le décalait de 104px vers le bas (= le « padding » fantôme au-dessus
   de l'image). On reprend la main en spécificité 0,4,2 + align-self.
   ============================================================ */
.single-product.woocommerce div.product{align-items:start}
@media(max-width:820px){.single-product.woocommerce div.product{align-items:stretch}}
/* CORRECTIF 20/08/2026 - le sticky est RETIRE.
   div.product est une grille 1fr 1fr qui contient aussi .fp-story et
   .related.products en grid-column:1/-1. La galerie collee a top:96px
   ne s arretait pas au bas de sa rangee : elle descendait sur ~1500px et
   passait PAR-DESSUS le recit (debut de chaque ligne masque), la fiche
   technique, le titre A decouvrir egalement et la 1re carte produit.
   C est le chevauchement signale par la cliente le 05/08.
   Le sticky n avait de toute facon aucun benefice : la colonne de droite
   (590px) est PLUS COURTE que la galerie (685px). */
.single-product.woocommerce div.product div.woocommerce-product-gallery{
  position:static;top:auto;align-self:start;margin:0;
}

/* ============================================================
   TYPOGRAPHIE FR — veuves & orphelines (05/06/2026)
   Interdit le mot seul en fin de ligne. text-wrap:balance équilibre
   les titres/accroches (≤ qq lignes) ; text-wrap:pretty empêche
   l'orpheline en dernière ligne des paragraphes. Dégradation propre
   sur navigateurs anciens (= normal).
   ============================================================ */
h1,h2,h3,h4,h5,
.product_title,.range__title,.gamme__t,.gamme__s,.gamme__d,
.lede,.hero__sub,.fp-story__lede,
.woocommerce-product-details__short-description,
.feature__card h2,.band h2{
  text-wrap:balance;
}
p,.range__intro,.cuvee__desc,.newsletter__legal,
.value p,.trust__v,.fp-degust__c p{
  text-wrap:pretty;
}

/* ============================================================
   NOS VINS — index éditorial premium (05/06/2026)
   Hero photo plein cadre + gammes en zig-zag (image sticky + liste
   cuvées), lignes cuvées raffinées (prix unitaire, flèche au survol).
   Scopé .page-hero--photo / .range--feature → prime sur .range/.cuvee.
   ============================================================ */
.page-hero--photo{
  max-width:none;margin:0;text-align:center;
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--ink);color:var(--cream);
  padding-block:clamp(96px,15vw,184px);
}
.page-hero--photo .page-hero__bg{position:absolute;inset:0;z-index:-2}
.page-hero--photo .page-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 58%;filter:grayscale(.08) brightness(.82)}
.page-hero--photo::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 78% 72% at 50% 50%,rgba(23,23,23,.52) 0%,rgba(23,23,23,.20) 68%,rgba(23,23,23,0) 100%),linear-gradient(180deg,rgba(23,23,23,.30) 0%,rgba(23,23,23,.46) 60%,rgba(23,23,23,.62) 100%)}
.page-hero--photo h1{color:var(--cream)}
.page-hero--photo .eyebrow{color:var(--cream);justify-content:center}
.page-hero--photo .eyebrow::before{background:rgba(250,248,245,.7)}
.page-hero--photo .lede{color:rgba(250,248,245,.92);margin-inline:auto;max-width:56ch}

/* Gamme en feature (zig-zag) */
.range--feature{
  display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(30px,5vw,76px);
  align-items:start;padding-block:clamp(46px,7vw,96px);border-top:1px solid var(--line);
}
.range--feature:first-of-type{border-top:0;padding-top:clamp(20px,3vw,40px)}
.range--feature.range--alt{grid-template-columns:1.18fr .82fr}
.range--feature.range--alt .range__media{order:2}

.range__media{
  position:sticky;top:96px;align-self:start;
  overflow:hidden;border-radius:var(--radius);background:#f4f1ec;box-shadow:0 0 0 1px var(--line-soft);
}
.range__media img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;transition:transform 1.1s var(--ease)}
.range--feature:hover .range__media img{transform:scale(1.04)}
@media(hover:none){.range--feature:hover .range__media img{transform:none}}
.range__num{
  position:absolute;left:clamp(14px,2vw,22px);top:clamp(10px,1.5vw,16px);
  font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.4rem);line-height:1;
  color:var(--cream);opacity:.94;text-shadow:0 2px 24px rgba(0,0,0,.45);
}

.range__content{min-width:0}
.range--feature .range__head{display:block;margin:0 0 clamp(18px,2.5vw,28px)}
.range--feature .range__head .eyebrow{color:var(--taupe);margin-bottom:.6rem}
.range--feature .range__title{font-size:var(--step-4);margin:.2rem 0 .7rem}
.range--feature .range__intro{color:var(--ink-soft);font-size:1.02rem;font-weight:300;max-width:48ch;margin:0}

/* Liste cuvées raffinée */
.range--feature .range__wines{display:block;list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.range--feature .cuvee{display:block;border-bottom:1px solid var(--line-soft)}
.range--feature .cuvee__link{
  display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:6px 18px;
  padding:15px 0;width:100%;text-decoration:none;color:inherit;transition:padding-left .4s var(--ease);
}
.range--feature .cuvee__link:hover{padding-left:10px}
.range--feature .cuvee__main{min-width:0;display:flex;flex-direction:column;gap:.12em}
.range--feature .cuvee__name{font-family:var(--font-display);font-size:var(--step-1);color:var(--ink);transition:color .3s var(--ease)}
.range--feature .cuvee__link:hover .cuvee__name{color:var(--taupe-dark)}
.range--feature .cuvee__desc{color:var(--taupe-dark);font-size:.83rem;font-weight:300;letter-spacing:.005em}
.range--feature .cuvee__price{font-family:var(--font-display);color:var(--taupe);font-size:.98rem;white-space:nowrap}
.range--feature .cuvee__arrow{color:var(--taupe);font-size:1rem;justify-self:end;opacity:0;transform:translateX(-6px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.range--feature .cuvee__link:hover .cuvee__arrow{opacity:1;transform:translateX(0)}

/* CTA bas de page */
.nosvins__cta{margin-top:clamp(48px,6vw,80px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--line)}
.nosvins__cta-note{color:var(--taupe-dark);font-size:.9rem;margin:0 0 1.1rem}

@media(max-width:820px){
  .range--feature,.range--feature.range--alt{grid-template-columns:1fr;gap:clamp(20px,5vw,28px)}
  .range--feature.range--alt .range__media{order:0}
  .range__media{position:static}
  .range__media img{aspect-ratio:16/10}
}

/* ============================================================
   NOS VINS — survol cuvée : photo produit dans la colonne média
   (fallback : image de gamme si la cuvée n'a pas de photo)
   ============================================================ */
.range__img-hover{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;opacity:0;pointer-events:none;
  transition:opacity .5s var(--ease);
}
.range__media.is-hovering .range__img-hover{opacity:1}
/* fige le léger zoom de gamme quand on prévisualise une cuvée */
.range--feature:hover .range__media.is-hovering .range__img-base{transform:none}
@media(hover:none){.range__img-hover{display:none}}

/* ============================================================
   CRÉDIT 56K STUDIO — mention agence discrète (footer)
   ============================================================ */
.footer-credit{margin-top:22px;display:flex;justify-content:center}
.footer-credit a{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(250,248,245,.38);text-decoration:none;
  transition:color .3s var(--ease);
}
.footer-credit a:hover{color:rgba(250,248,245,.82)}
.footer-credit__logo{height:12px;width:auto;display:block;transform:translateY(-1px)}
@media(max-width:760px){.footer-credit{margin-top:18px}}

/* ============================================================
   Textes Florence — récit éditorial (Accueil/À-propos/Nos vins)
   Ajout 2026-07-22. Réutilise les tokens du thème.
   ============================================================ */
.fp-manifest{max-width:64ch;margin-inline:auto;text-align:center}
.fp-manifest p{font-size:1.075rem;line-height:1.95;margin:0 0 1.7em;color:var(--ink-soft)}
.fp-manifest .fp-lead{font-size:1.28rem;line-height:1.75;font-weight:300;color:var(--ink)}
.fp-manifest-sec{padding-block:clamp(40px,5vw,72px)}
.fp-manifest .fp-pull{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.7rem,1.2rem + 2vw,2.35rem);line-height:1.3;color:var(--ink);
  max-width:24ch;margin:2.2em auto;letter-spacing:-.01em;text-wrap:balance;
}
.fp-manifest .fp-pull::before,.fp-manifest .fp-pull::after{content:"";display:block;width:44px;height:1px;background:var(--taupe);margin:1em auto}
.fp-signature-k{display:block;font-family:var(--font-body);font-weight:500;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--taupe);margin:2.4em 0 .1em}
.fp-signature{font-family:var(--font-script);font-size:clamp(2.4rem,1.5rem + 3.5vw,3.4rem);color:var(--taupe-dark);line-height:1;margin:0}
.fp-figure{margin:0}
.fp-figure img{width:100%;height:clamp(320px,46vw,560px);object-fit:cover;display:block}
.fp-narrative{max-width:66ch;margin-inline:auto}
.fp-narrative p{font-size:1.04rem;line-height:1.9;margin:0 0 1.5em;color:var(--ink-soft)}
.fp-emph{font-family:var(--font-display);font-style:italic;font-size:1.2rem;color:var(--ink)}
.fp-band-prose{max-width:62ch;margin-inline:auto;text-align:center}
.fp-band-prose p{color:rgba(250,248,245,.86);line-height:1.9;margin:0 0 1.4em}

/* ============================================================
   Accueil — manifeste v2 : rythme resserré + alternance texte/image
   Ajout 2026-07-22 (retour Dylan : accueil trop vide / mur de mots).
   ============================================================ */
.fp-manifest{max-width:60ch}
.fp-manifest-sec{padding-block:clamp(26px,3.4vw,50px)}
.fp-manifest p{margin:0 0 1.05em;line-height:1.8;font-size:1.05rem}
.fp-manifest .fp-lead{font-size:1.2rem;line-height:1.68;margin-bottom:1.05em}
.fp-manifest--intro .fp-pull{margin:1.25em auto .1em}
.fp-manifest--outro{max-width:52ch}
.fp-manifest--outro p{font-size:1.12rem}
.fp-signature{margin-top:0}
.fp-manifest-split{padding-block:clamp(18px,2.6vw,38px)}
.fp-manifest-split .split{align-items:center;gap:clamp(30px,4.5vw,68px)}
.fp-manifest-split .prose p{font-size:1.05rem;line-height:1.85;margin:0 0 1.05em}
.fp-manifest-split img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%}
/* pull-quote générique (utilisé hors .fp-manifest, ex. dans un split) */
.fp-pull{font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.45rem,1.1rem + 1.4vw,1.95rem);line-height:1.32;color:var(--ink);
  letter-spacing:-.01em;text-wrap:balance}
.fp-pull--left{max-width:22ch;margin:.55em 0 0;text-align:left}
.fp-pull--left::before{content:"";display:block;width:44px;height:1px;background:var(--taupe);margin:0 0 .7em}


/* ============================================================
   BOUTIQUE — débordement horizontal en mobile (correctif)
   `1fr` vaut `minmax(auto,1fr)` : la largeur min-content des
   visuels (375px) élargissait les colonnes → la grille mesurait
   404px dans un conteneur de 327px, d'où un scroll latéral
   parasite sur /boutique/ à 375px. `minmax(0,1fr)` + `min-width:0`
   autorisent les cartes à se réduire ; rien ne change au-dessus.
   ============================================================ */
ul.products,.products-grid,
.woocommerce ul.products,.woocommerce-page ul.products{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:900px){
  ul.products,.products-grid,
  .woocommerce ul.products,.woocommerce-page ul.products{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
ul.products>li,.products-grid>*,
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{
  min-width:0;
}
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2{overflow-wrap:anywhere}

/* =========================================================================
   BOUTIQUE — libellé du bouton d'ajout sur très petits écrans (max 380px)
   « Ajouter la caisse » + letter-spacing .18em débordait de 7px dans la
   carte (2 colonnes = 151px utiles) : le texte était rogné. On resserre
   l'approche et les marges internes UNIQUEMENT sous 380px — le rendu
   au-dessus de cette largeur reste strictement inchangé.
   ========================================================================= */
@media (max-width:380px){
  li.product .button,li.product .added_to_cart{
    padding:13px 10px!important;letter-spacing:.1em!important;
  }
}


/* ---------------------------------------------------------------
   CARTE DE SITUATION — page Contact (demande cliente 05/08/2026)
   Fond de plan désaturé pour tenir la palette crème/taupe ;
   la couleur revient à l'approche, comme une carte qu'on déplie.
   --------------------------------------------------------------- */
.fp-map{margin-top:2.2em}
.fp-map iframe{
  display:block;width:100%;aspect-ratio:16/10;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--cream);
  filter:grayscale(1) sepia(.16) contrast(.94) brightness(1.03);
  transition:filter .7s var(--ease);
}
.fp-map:hover iframe,.fp-map:focus-within iframe{filter:grayscale(.3) sepia(.05) contrast(.98)}
.fp-map__cap{margin:.75em 0 0;font-size:var(--step--1);color:var(--taupe);line-height:1.6}
@media (prefers-reduced-motion:reduce){.fp-map iframe{transition:none}}


/* ---------------------------------------------------------------
   FICHE PRODUIT — débordement horizontal en mobile (retour cliente 05/08 :
   « vérifier que les fiches techniques ne chevauchent plus les textes »).
   Les enfants d'une grille valent min-width:auto : l'image de zoom
   WooCommerce (1600 px) élargissait la colonne à 484 px dans un écran de
   390 px, décalant tout le contenu vers la droite. Mesuré : 508 → 390 px.
   --------------------------------------------------------------- */
.single-product div.product > *{min-width:0}
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery__image,
.single-product .summary{min-width:0;max-width:100%}
.single-product .woocommerce-product-gallery{overflow:hidden}

/* ============================================================
   PASSE VISUELLE 20/08/2026 - prose longue : rendre le bord gauche
   .fp-manifest / .fp-band-prose / .fp-narrative portent text-align:center,
   herite par TOUS leurs paragraphes. Ce centrage convenait a une accroche
   de 2-3 lignes ; les textes integres pour la cliente en font 5 a 7
   (accueil 7 puis 5, a-propos 7 puis 4, nos-vins 6 puis 4). Sans bord
   gauche, l oeil doit rechercher le debut de chaque ligne a chaque retour.
   Le bloc reste centre dans la page (max-width + margin-inline:auto) :
   la composition symetrique de la DA est conservee. Seuls les paragraphes
   courants passent a gauche ; eyebrows, titres et citations restent centres.
   ============================================================ */
.fp-manifest p,
.fp-band-prose p,
.fp-narrative p{text-align:left}
.fp-manifest .fp-pull,
.fp-manifest .eyebrow,
.fp-band-prose .eyebrow,
.fp-narrative .eyebrow{text-align:center}

/* Recit de cuvee (fiche produit) - meme correction.
   Mesure sur les 17 fiches : 14 recits font 4 lignes ou plus en desktop
   (8 pour Preslix) et les 17 en mobile, jusqu a 14 lignes centrees.
   Le centrage visait une accroche de 2-3 lignes. On aligne a gauche
   partout : la coherence d une fiche a l autre prime sur le cas isole
   des 3 recits courts. Le bloc reste centre, l eyebrow LE RECIT aussi. */
.fp-story__recit p,
.fp-story__lede,
.fp-story__lede p{text-align:left}

/* ============ Sommaire d ancres — page À propos ============ */
.fp-toc{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--cream);padding:clamp(14px,2.2vw,22px) 0}
.fp-toc__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center}
.fp-toc__list li{display:flex;align-items:center}
.fp-toc__list li::after{content:"\00B7";color:var(--taupe);margin:0 clamp(8px,1.1vw,14px);opacity:.55}
.fp-toc__list li:last-child::after{content:none}
.fp-toc__list a{font-size:.71rem;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe-dark);font-weight:400;text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px;white-space:nowrap;transition:color .25s var(--ease),border-color .25s var(--ease)}
.fp-toc__list a:hover,.fp-toc__list a:focus-visible{color:var(--ink);border-bottom-color:var(--ink)}
/* offset des ancres sous le header sticky */
#la-biodynamie,#la-vigne-cosmique,#l-art-de-la-lyre,#le-temps-des-vendanges,#l-alchimie-de-la-vinification,#les-vignerons{scroll-margin-top:clamp(72px,10vh,104px)}
@media(max-width:1100px){
  .fp-toc__list a{font-size:.64rem;letter-spacing:.11em}
  .fp-toc__list li::after{margin:0 clamp(6px,1vw,10px)}
}
@media(max-width:640px){
  .fp-toc{padding:12px 0}
  /* sur plusieurs lignes le separateur reste orphelin en bout de ligne : espacement a la place */
  .fp-toc__list{column-gap:clamp(14px,4.5vw,24px);row-gap:.55em}
  .fp-toc__list li::after{content:none}
  .fp-toc__list a{font-size:.64rem;letter-spacing:.12em}
}

/* ============================================================
   Vigneron Indépendant — badge de la page Contact
   (demande cliente du 05/08 : « RAJOUTER le logo des vignerons indépendants »)
   ============================================================ */
.fp-vi{
  margin-top:2.2em;padding-top:1.6em;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:clamp(14px,2.4vw,22px);
}
.fp-vi__logo{
  flex:0 0 auto;width:88px;height:auto;display:block;
  border-radius:calc(var(--radius) * .5);
}
.fp-vi__cap{
  margin:0;font-size:var(--step--1);color:var(--taupe);line-height:1.6;max-width:34ch;
}
.fp-vi__cap strong{color:var(--ink);font-weight:500}
@media (max-width:560px){
  .fp-vi{gap:14px}
  .fp-vi__logo{width:70px}
}

/* ============================================================
   REVUE CLIENTE 23/09/2026 — signature « Pierre & Florence Pelletier »
   Demande de Florence : la recentrer et l'agrandir.
   Cause du décentrage : la passe du 20/08 a posé `.fp-manifest p{text-align:left}`
   pour donner un bord gauche aux longs paragraphes. La signature étant un <p>
   dans `.fp-manifest`, elle a été alignée à gauche par effet de bord, sous son
   sur-titre resté centré (un <span>). On la sort explicitement de cette règle.
   ============================================================ */
.fp-manifest p.fp-signature,
.fp-manifest--outro p.fp-signature,
.fp-narrative p.fp-signature,
.fp-signature{text-align:center}
.fp-signature-k{text-align:center}
/* La taille doit être portée par un sélecteur AU MOINS aussi spécifique que
   `.fp-manifest--outro p` (1,12rem) et `.fp-narrative p` (1,04rem), sinon elle
   perd la cascade : mesuré le 23/09, la signature sortait à 17,9 px sur l'accueil
   et 16,6 px sur À propos, au lieu des ~67 px voulus. C'est la cause réelle du
   « signature trop petite » remonté par Florence. */
.fp-manifest p.fp-signature,
.fp-manifest--outro p.fp-signature,
.fp-narrative p.fp-signature,
.fp-signature{
  /* Plancher abaissé après mesure à 390 px : à 48 px la signature cassait en
     « Pierre & » / « Florence Pelletier ». La pente en vw tient désormais sur
     une seule ligne du mobile au desktop, tout en restant nettement plus
     grande qu'avant (17,9 px mesurés avant correction). */
  font-size:clamp(1.85rem,.8rem + 5vw,4.2rem);
  line-height:1.05;
}
/* Réglages de composition de la signature agrandie (mesurés au rendu, 23/09) :
   - à 67 px, « Pierre & Florence Pelletier » demande ~500 px : le bloc outro
     était limité à 52ch (462 px) et cassait la signature en deux lignes ;
   - les hampes de la Consuela montent très haut : .1em sous le sur-titre ne
     suffisait plus, le P de « Pierre » venait mordre « VIGNERONS À COIFFY ». */
.fp-manifest--outro{max-width:40rem}
.fp-signature-k{margin-bottom:.55em}
.fp-manifest p.fp-signature,
.fp-manifest--outro p.fp-signature,
.fp-narrative p.fp-signature{line-height:1.15}
