/* ==========================================================================
   Distillerie de Lyon â€” complÃ©ments WordPress / WooCommerce
   ========================================================================== */

/* Barre d'admin WordPress : le header collant passe dessous */
.admin-bar .header { top: 32px; }
@media (max-width: 782px) { .admin-bar .header { top: 46px; } }

/* ---------- Pages classiques ---------- */
.wp-page { padding: clamp(48px, 9vh, 100px) 0 clamp(60px, 10vh, 120px); min-height: 50vh; }
.wp-page__title { margin: 14px 0 clamp(28px, 5vh, 48px); }
.wp-page__content { font-size: 17px; line-height: 1.65; color: var(--ink); }
.wp-page__content > * + * { margin-top: 1em; }
.wp-page__content a { color: var(--red); }

/* ---------- Fiche produit : visuel aux couleurs de la bouteille ---------- */

.buy__title { font-size: clamp(38px, min(3.9vw, 6.6vh), 56px); line-height: .98; }
.buy__script { color: var(--pdark, var(--red)); font-size: clamp(22px, 2vw, 28px); line-height: 1.25; rotate: -2deg; margin: 12px 0 16px; }
.buy__lead p { margin: 0; }
.price__value .woocommerce-Price-amount { font-family: var(--f-display); }
.price__value del { opacity: .5; font-size: .6em; margin-right: 10px; }
.price__value ins { text-decoration: none; }
.price__todo { font-family: var(--f-body); font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: .06em; color: var(--pdark, var(--navy)); }
.purchase__soon { padding: 16px 22px; border: 2px dashed var(--navy); border-radius: 18px; font-weight: 700; margin: 20px 0; }
.purchase.cart { margin: 0; }

/* Autres bouteilles de la gamme */
.buddy .h2 { margin-bottom: clamp(28px, 5vh, 48px); }
.others { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 28px; }
.other {
  position: relative; display: grid; justify-items: center; gap: 4px; padding: 26px 20px 24px; border-radius: 28px;
  background: var(--obg); color: var(--navy); text-decoration: none; border: 3px solid var(--navy); box-shadow: 6px 6px 0 var(--navy); overflow: hidden;
  transition: translate .3s var(--ease), box-shadow .3s var(--ease);
}
.other:hover { translate: -3px -3px; box-shadow: 9px 9px 0 var(--navy); }

/* ---------- WooCommerce : panier, commande, compte ---------- */
.woocommerce, .woocommerce-page { font-family: var(--f-body); color: var(--navy); }
.woocommerce main p:not(.overline--light):not(.script), .woocommerce-page .entry-content p { color: var(--ink); }
.wp-page .woocommerce a { color: var(--navy); }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.wc-block-components-button:not(.is-link), .wp-block-button__link {
  background: var(--red) !important; color: #fff !important; border-radius: 999px !important; border: 0 !important;
  font-family: var(--f-body) !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .03em;
  box-shadow: 4px 4px 0 var(--navy); 
}
.wc-block-components-totals-item__label, .wc-block-cart-items__header { font-family: var(--f-body); }
.wc-block-components-title, .wc-block-cart__totals-title, .wc-block-components-checkout-step__title {
  font-family: var(--f-display) !important; font-weight: 400 !important; color: var(--navy);
}
.woocommerce-message, .woocommerce-info, .woocommerce-error {
       margin: 0 0 24px; list-style: none;
}
.woocommerce-message .button { margin-left: 12px; }
.buy .woocommerce-notices-wrapper:empty { display: none; }

/* ---------- Page Â« Nos spiritueux Â» ---------- */
.shoplist { padding: clamp(48px, 9vh, 100px) 0 clamp(72px, 12vh, 130px); }
.shoplist__head { display: flex; flex-direction: column; align-items: flex-start; margin-bottom: clamp(32px, 6vh, 56px); }
.shoplist__title { margin: 14px 0 0; }
.shoplist__title .line { display: block; }
.shoplist__head .lead { margin-top: clamp(14px, 2.4vh, 22px); }

.sp {
  display: flex; flex-direction: column; overflow: hidden;
  border: 3px solid var(--navy); border-radius: var(--radius); background: var(--paper); box-shadow: 6px 6px 0 var(--navy);
}

.shoplist__note { margin-top: clamp(32px, 6vh, 56px); font-size: 13px; opacity: .7; }
.shoplist .woocommerce-message .button { box-shadow: none; padding: 8px 16px !important; }

/* ---------- Titres proportionnels Ã  la fenÃªtre (ordinateur) ----------
   Taille = le plus petit de (largeur, hauteur) de la fenÃªtre, sans plafond :
   les titres grandissent et rÃ©trÃ©cissent avec l'Ã©cran. CalÃ©s pour donner
   la taille actuelle sur un MacBook Pro 14" (1512 Ã— 861).
   La largeur utile suit aussi la fenÃªtre pour que les titres aient la place. */
@media (min-width: 1025px) {
  .ddl-wp .container,
  .ddl-wp .header__inner,
  .ddl-wp .hero__inner    { max-width: max(calc(var(--container) + 2 * var(--gutter)), 95.24vw); }
  .ddl-wp .hero__visual   { max-width: min(39.7vw, 64vh); }
  .ddl-wp .hero__script   { font-size: max(28px, min(3.8vw, 6.2vh)); }
  .ddl-wp .hero__lead     { font-size: max(16px, min(1.32vw, 2.3vh)); max-width: 37vw; }
  .ddl-wp .hero__title    { font-size: max(44px, min(5.82vw, 10.2vh)); }
  .ddl-wp .h2             { font-size: max(34px, min(5.2vw, 9vh)); }
  .ddl-wp .h2--md         { font-size: max(30px, min(4vw, 7vh)); }

  .ddl-wp .banner__bold   { font-size: max(32px, 3.57vw); }
  .ddl-wp .buy__title     { font-size: max(38px, min(3.7vw, 6.5vh)); }

  .ddl-wp .step__title    { font-size: max(22px, min(1.85vw, 3.25vh)); }

}

/* Boutons : plus discrets, sans flÃ¨che, sur tout le site */
.ddl-wp .btn { padding: clamp(11px, 1vw, 14px) clamp(18px, 1.6vw, 24px); font-size: clamp(12px, .85vw, 13px); }
.ddl-wp .btn--outline { padding: clamp(9px, .87vw, 12px) clamp(16px, 1.47vw, 22px); }

.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.wc-block-components-button:not(.is-link), .wp-block-button__link { padding: 12px 22px !important; font-size: 13px !important; }

/* Hero : logo en filigrane trÃ¨s lÃ©ger */
.ddl-wp .hero__watermark { opacity: .035; }

/* ---------- Le savoir-faire ---------- */

/* ---------- FenÃªtre Â« AjoutÃ© au panier Â» ---------- */
.cart-toast {
  position: fixed; z-index: 120; right: clamp(16px, 2.4vw, 32px); top: calc(var(--header-h, 98px) + 12px);
  width: min(380px, calc(100vw - 32px)); padding: 20px 22px 22px; border-radius: 24px;
  background: var(--paper); color: var(--navy); border: 3px solid var(--navy); 
  opacity: 0; visibility: hidden; translate: 0 -12px; rotate: 1.5deg;
  transition: opacity .3s var(--ease), translate .45s var(--ease-back), rotate .45s var(--ease-back), visibility 0s .3s;
}
.admin-bar .cart-toast { top: calc(var(--header-h, 98px) + 44px); }
.cart-toast.is-open { opacity: 1; visibility: visible; translate: 0 0; rotate: 0deg; transition: opacity .3s var(--ease), translate .45s var(--ease-back), rotate .45s var(--ease-back); }
.cart-toast__close { position: absolute; right: 12px; top: 10px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: none; color: var(--navy); font-size: 24px; line-height: 1; cursor: pointer; }
.cart-toast__close:hover { background: var(--sand); }
.cart-toast__head { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.cart-toast__check { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--red); color: #fff; font-size: 13px; letter-spacing: 0; }
.cart-toast__item { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 16px; margin: 16px 0 10px; }
.cart-toast__visual { position: relative; display: block; height: 92px; border-radius: 16px; background: var(--tbg); border: 2px solid var(--navy); overflow: hidden; }
.cart-toast__visual span { position: absolute; left: 50%; top: 50%; width: 64px; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; background: var(--thalo); }
.cart-toast__visual img { position: absolute; left: 50%; bottom: 6px; height: 80px; width: auto; max-width: none; translate: -50% 0; }
.cart-toast.is-open .cart-toast__visual img { animation: toast-drop .6s var(--ease-back); }
@keyframes toast-drop { from { translate: -50% -30px; opacity: 0; } }
.cart-toast__info b { display: block; font-family: var(--f-display); font-weight: 400; font-size: 20px; line-height: 1.05; }
.cart-toast__info small { display: block; margin-top: 6px; font-weight: 600; font-size: 14px; }
.cart-toast__count { font-size: 13px; opacity: .7; }
.cart-toast__actions { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-top: 16px; }
.cart-toast__actions .btn { justify-content: center; }
.cart-toast .btn--outline { background: none; cursor: pointer; font-family: var(--f-body); }
.cart-toast .btn--outline:hover { background: var(--navy); color: var(--paper); }
/* Tout ce qui se clique affiche la main */
.btn, button:not(:disabled), [type="submit"]:not(:disabled), summary, label:has(> input[type="checkbox"]), label:has(> input[type="radio"]) { cursor: pointer; }
[name="add-to-cart"].is-loading { opacity: .7; cursor: progress; }
@media (max-width: 767px) {
  .cart-toast { left: 16px; right: 16px; width: auto; top: auto; bottom: 16px; translate: 0 16px; }
  .admin-bar .cart-toast { top: auto; }
}

/* Message WooCommerce (si le JS n'a pas pu s'en charger) : mÃªme style */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  border: 3px solid var(--navy); border-radius: 20px; background: var(--paper); box-shadow: 6px 6px 0 var(--yellow);
  color: var(--navy); font-weight: 600; padding: 14px 18px 14px 20px; outline: 0;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button { order: 2; margin: 0 !important; text-decoration: none; }

/* ==========================================================================
   Retouches DA (retours cliente, oct. 2026) â€” maquette Â« Variante sans contours Â»
   Â· contour fin (2 px #0f2764) au lieu des gros contours, plus d'ombres dÃ©calÃ©es
   Â· le jaune est rÃ©servÃ© au Pastis (pastilles, numÃ©rosâ€¦ en rouge, textes en crÃ¨me)
   ========================================================================== */
:root { --line: #0f2764; }

/* Boutons : plus d'ombre dÃ©calÃ©e */
.btn--primary,
.btn--inverse,
.btn--primary:hover,
.btn--inverse:hover,
.btn:active,
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.wc-block-components-button:not(.is-link),
.wp-block-button__link { box-shadow: none !important; }
.btn:active { transform: translate(1px, 1px); }

/* Cartes : contour fin, sans ombre */
.switch,
.label,
.other,
.sp,
.fp-stage,
.fp-tip,
.fp-place,
.fp-buddy__card,
.cart-toast,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border: 2px solid var(--line) !important; box-shadow: none !important;
}
.other:hover,
.fp-tip:hover,
.sp:hover { box-shadow: none; }

.tip:hover { box-shadow: none; }

/* Le jaune rÃ©servÃ© au Pastis */
.pastille { background: var(--red); color: var(--paper); }
.cart__count { background: var(--red); color: #fff; }
.hero__script,
.craft__todo,
.banner__script,
.banner__star,
.footer__script,
.footer__heading { color: var(--paper); }
.footer__col a:hover { color: var(--paper); opacity: .75; }
.hero__ring circle { stroke: var(--red); }

.cart-toast { box-shadow: none; }
/* â€¦ sauf sur la fiche du Pastis */
.ddl-wp.is-pastis .fp-stage .pastille { background: var(--yellow); color: var(--navy); }

/* Pictos du savoir-faire (style trait de la charte) sur disque crÃ¨me */

/* ==========================================================================
   Accueil VF (maquette Figma Â« Accueil VF Â») â€” calÃ©e sur 1512 Ã— 861
   ========================================================================== */
:root { --f-script2: "Pacifico", cursive; }

/* Boutons de l'accueil : taille et flÃ¨che de la maquette */
.home.ddl-wp .btn { padding: clamp(14px, 1.2vw, 18px) clamp(22px, 2vw, 30px); font-size: clamp(13px, 1vw, 15px); }
.home.ddl-wp .btn--outline { padding: clamp(12px, 1.05vw, 16px) clamp(20px, 1.9vw, 28px); }

/* Hero */
.home .hero .overline::before { display: none; }
.home.ddl-wp .hero__watermark { opacity: .06; }
.home .hero__sun { position: absolute; right: 1.6%; top: calc(var(--header-h, 96px) * 0 + 18px); width: clamp(220px, 25.6vw, 387px); opacity: .1; pointer-events: none; }
@media (min-width: 1025px) { .home.ddl-wp .hero__title { font-size: max(44px, min(6.08vw, 10.68vh)); } }
.home .hero__script { font-family: var(--f-script2); color: var(--yellow); font-size: clamp(26px, min(2.38vw, 4.2vh), 36px); rotate: -4deg; line-height: 1.5; margin: clamp(18px, 3.6vh, 34px) 0 2px; }
.home .hero__lead { margin-top: 0; }
.hero__visual--photo { aspect-ratio: 1; }
.hero__visual--photo .hero__ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 60s linear infinite; }
.hero__visual--photo .hero__ring circle { stroke: var(--red); }
.hero__photo { position: absolute; inset: 5%; border-radius: 50%; overflow: hidden; }
.hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; }
.hero__star { position: absolute; z-index: 3; aspect-ratio: 1; pointer-events: none; animation: float 6s ease-in-out infinite; }
.hero__star--a { width: 11%; left: 12.7%; top: 2%; rotate: 10deg; }
.hero__star--b { width: 10%; left: 79.8%; top: 72.3%; rotate: 10deg; animation-delay: -3s; }
.hero__visual--photo .hero__pastille { left: 70%; right: auto; top: -3.3%; width: 23.3%; height: auto; aspect-ratio: 1; rotate: -10deg; font-size: clamp(16px, min(1.6vw, 2.8vh), 24px); }

/* Le nouveau chapitre */
.home .story__script { font-family: var(--f-script2); rotate: 3deg; line-height: 1.5; }

/* Savoir-faire : la recette en 3 temps */
.recette { position: relative; background: var(--navy); color: var(--paper); padding: clamp(64px, 11.6vh, 100px) 0; overflow: hidden; }
.recette .container { max-width: none; padding: 0 clamp(20px, 5.3vw, 80px); }
.recette__title { margin: 12px 0 0; font-size: max(34px, min(4.23vw, 7.43vh)); line-height: .98; }
.recette__title .line { display: block; }
.recette .craft__todo { margin-top: 8px; }
.recette__steps { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(16px, 6.6vw, 100px); margin-top: clamp(32px, 5.8vh, 50px); }
.recette__path { position: absolute;  width: 100%;  pointer-events: none; overflow: visible; }
.recette__path path { fill: none; stroke: var(--yellow); stroke-width: 3; stroke-dasharray: 8 10; vector-effect: non-scaling-stroke; }
.recette__step { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.recette__step--2 { margin-top: clamp(30px, 8.1vh, 70px); }
.recette__medal { position: relative; width: min(100%, clamp(220px, 22.5vw, 340px)); aspect-ratio: 1; }
.recette__medal::before { content: ""; position: absolute; inset: 3.5%; border-radius: 50%; border: 2.5px dashed var(--red); }
.recette__disc { position: absolute; inset: 8.8%; border-radius: 50%; background: var(--paper); display: grid; place-items: center; }
.recette__step--2 .recette__disc { background: var(--sand); }
.recette__disc img { width: 86%; height: 86%; transition: transform .6s var(--ease-back); }
.recette__step:hover .recette__disc img { transform: rotate(-5deg) scale(1.05); }
.recette__num { position: absolute; left: 3.5%; top: 5.3%; width: 24.7%; aspect-ratio: 1; border-radius: 50%; background: var(--red); color: var(--paper); display: grid; place-items: center; font-family: var(--f-display); font-size: clamp(22px, 2.1vw, 32px); }
.recette__star { position: absolute; left: 79%; top: 70.6%; width: 18.8%; aspect-ratio: 1; rotate: 10deg; }
.recette__name { font-family: var(--f-display); font-weight: 400; font-size: clamp(20px, 1.72vw, 26px); margin-top: clamp(12px, 2.4vh, 22px); }
.recette__text { font-size: 15px; line-height: 1.55; opacity: .9; max-width: 300px; margin-top: 12px; }

/* Bandeau et bloc pro */
.home .banner__script { font-family: var(--f-script2); color: var(--sand); }
.home .pro__box { background: var(--sand); }

@media (max-width: 1024px) {
  .recette__steps { grid-template-columns: minmax(0, 1fr); row-gap: 48px; max-width: 420px; margin-inline: auto; }
  .recette__step--2 { margin-top: 0; }
  .recette__path { display: none; }
}
.home .hero__watermark { left: -74px; top: 240px; width: 900px; }
@media (min-width: 1025px) { .home .hero__visual--photo { max-width: min(600px, 70vh); translate: 2% 0; } }
.recette__path { inset: 0 0 auto 0; height: auto; aspect-ratio: 1352 / 410; }
.home .banner__star { display: none; }

/* ==========================================================================
   Accueil VF â€” retours du rdv (oct. 2026)
   Â· ombres portÃ©es de retour sur la gamme et le bloc pro (styles d'origine)
   Â· carte de la phrase droite, typo manuscrite Pacifico partout
   Â· Lyoncello : bouteille floutÃ©e, Â« Arrive prochainement Â»
   ========================================================================== */
.gphrase { rotate: 0deg; font-family: var(--f-script2); font-size: clamp(18px, min(1.72vw, 3vh), 26px); line-height: 1.35; }
.gside__tip, .footer__script { font-family: var(--f-script2); }
.gside__tip { font-size: clamp(15px, 1.25vw, 19px); line-height: 1.35; }

/* BientÃ´t disponible */
.gitem.is-soon .gphoto,
.fp-buy.is-soon .stage__bottle { filter: blur(7px) saturate(.85); opacity: .85; }

.gcard__btn--soon { background: var(--paper); color: var(--dark); border: 2px dashed var(--dark); box-shadow: none !important; cursor: default; }

/* Savoir-faire : pictos en couleur sur disques rouges (Ã©tapes 1 et 3) */
.recette__step--1 .recette__disc, .recette__step--3 .recette__disc { background: var(--red); }

/* ==========================================================================
   Fiche produit â€” couleur de la bouteille (maquette Â« Fiche produit v3 â€” Menthe Â»)
   --acc : couleur de la bouteille Â· --acc-light : version claire Â· --acc-ink : texte posÃ© dessus
   (valeurs : Produits â†’ la bouteille â†’ Fiche Distillerie â†’ Couleurs)
   ========================================================================== */
.page-product .cart__count { background: var(--acc); color: var(--acc-ink); }
.page-product .damier { background-image: conic-gradient(var(--acc) 25%, transparent 0 50%, var(--acc) 0 75%, transparent 0); }
.ddl-wp.page-product .btn--primary { background: var(--acc); color: var(--acc-ink); }
.ddl-wp.page-product .fp-stage .pastille, .ddl-wp.is-pastis .fp-stage .pastille { background: var(--acc-light); color: var(--navy); }
.page-product .fp-stk--star { color: var(--acc); }
.page-product .fp-buy .buy__script { color: var(--acc); font-family: var(--f-script2); line-height: 1.45; rotate: -2deg; }
.page-product .fp-bars__track i { background: var(--acc); }
.page-product .fp-aroma { border: 2px solid var(--line); }
.page-product .fp-tip__big { color: var(--acc); }
.page-product .fp-tip__big--icon { color: var(--navy); }
.page-product .fp-tip__big svg { color: var(--acc); }
.ddl-wp.page-product .fp-tip { border: 0 !important; box-shadow: 8px 8px 0 var(--acc-light) !important; }
.ddl-wp .fp-buy .thumb.is-active { border-color: var(--navy); }
.page-product .fp-buddy__ring { color: var(--acc); }
.page-product .fp-buddy__price { background: var(--acc); color: var(--acc-ink); }

/* PrÃ©sentation : nez / bouche / finale sous le titre */
.fp-notes--inline { display: flex; flex-wrap: wrap; gap: 6px 26px; margin: 0 0 clamp(14px, 2.4vh, 22px); font-size: 14px; }
.fp-notes--inline dt { color: var(--acc, var(--red)); }

/* Points de vente : titre centrÃ©, lieux qui dÃ©filent */
.fp-places { text-align: center; }
.fp-places__head { display: flex; flex-direction: column; align-items: center; }
.fp-places__head .h2 .line { white-space: normal; }
.fp-places__lead { margin: clamp(10px, 2vh, 18px) 0 clamp(24px, 4vh, 36px); font-size: clamp(15px, 1.15vw, 17px); color: var(--ink); }
.fp-marquee {  padding: 6px 0 12px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.fp-marquee__track { display: flex; gap: 14px; width: max-content; margin: 0; padding: 0; list-style: none; animation: fp-defile calc(var(--n, 8) * 4.5s) linear infinite; }
.fp-marquee:hover .fp-marquee__track { animation-play-state: paused; }
@keyframes fp-defile { to { transform: translateX(calc(-50% - 7px)); } }
@media (prefers-reduced-motion: reduce) { .fp-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; } .fp-marquee__track > [aria-hidden="true"] { display: none; } }
.fp-place { list-style: none; text-align: left; flex: none; width: clamp(280px, 23.8vw, 360px); }
.ddl-wp .fp-place { display: block; padding: 0; border: 0 !important; box-shadow: none !important; background: none; border-radius: 0; }
.fp-place__in { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; height: 100%; padding: 16px 20px; border-radius: 18px; background: var(--paper); border: 2px solid var(--line); color: var(--navy); text-decoration: none; transition: translate .3s var(--ease), box-shadow .3s var(--ease); }
a.fp-place__in:hover { translate: 0 -3px; box-shadow: 0 6px 0 var(--acc-light, var(--sand)); }
.fp-place__dot { background: var(--red); }
.fp-places__more { display: flex; justify-content: center; margin-top: clamp(20px, 3.4vh, 30px); }
.ddl-wp.page-product .fp-places .btn--primary { box-shadow: 4px 4px 0 var(--navy) !important; }

/* Page Â« OÃ¹ nous trouver Â» */
.lieux__intro {  margin-bottom: clamp(28px, 5vh, 44px); }

.lieux__grid .fp-place { width: auto; }

.ddl-wp .fp-place__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--red); }
.ddl-wp .fp-place b { display: block; font-family: var(--f-display); font-weight: 400; font-size: clamp(15px, 1.15vw, 18px); line-height: 1.1; }
.ddl-wp .fp-place small { display: block; font-size: 12px; opacity: .7; margin-top: 3px; }
.ddl-wp .fp-place__kind { padding: 4px 10px; border-radius: 99px; background: var(--sand); font-weight: 700; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.fp-marquee { overflow: clip; contain: paint; max-width: 100vw; }
.ddl-wp .fp-notes--inline { display: flex; flex-wrap: wrap; gap: 6px 26px; margin: 4px 0 clamp(16px, 2.6vh, 24px); }
.ddl-wp .fp-notes--inline div { display: flex; gap: 8px; }
.fp-marquee .fp-place { width: auto; min-width: clamp(280px, 22vw, 340px); }
.ddl-wp .fp-marquee .fp-place b { white-space: nowrap; }
.fp-marquee .fp-place__in { gap: 14px 18px; }

/* Typo manuscrite unique : Pacifico (ses lettres montent plus haut que Kaushan) */
.script { line-height: 1.45; }

/* Les points (pastilles des titres, points de vente, rÃ©assurance) restent rouges sur toutes les fiches */
.page-product .overline::before, .ddl-wp .fp-place__dot, .fp-reassure li::before { background: var(--red); }

/* Fiche produit : photos de la galerie affichÃ©es tout de suite, sans le dÃ©cor de la bouteille */
.fp-stage .stage__slide, .fp-stage .stage__slide.is-active { transition: opacity .2s ease, visibility 0s; }
.fp-stage .stage__photo, .fp-stage .stage__slide.is-active .stage__photo { scale: 1; transition: none; }
.fp-stage .stage__slide:has(.stage__photo) { z-index: 5; }
.fp-stage.is-photo .fp-stage__ring,
.fp-stage.is-photo .fp-stage__disc,
.fp-stage.is-photo .fp-stage__monument,
.fp-stage.is-photo .stage__watermark,
.fp-stage.is-photo .fp-stk,
.fp-stage.is-photo .stage__pastille { opacity: 0; visibility: hidden; transition: opacity .15s; }

/* Savoir-faire : le chemin pointillÃ© reste alignÃ© sur les mÃ©daillons quelle que soit la taille d'Ã©cran
   (tout est proportionnel Ã  la largeur du bloc, plafonnÃ©e Ã  celle de la maquette : 1352 px) */
@media (min-width: 1025px) {
  .recette__steps { max-width: 1352px; margin-inline: auto; column-gap: 7.4%; }
  .recette__medal { width: 88.8%; }
  .recette__step--2 { margin-top: 18.3%; }
  .recette .container > .overline, .recette .container > .recette__title, .recette .container > .craft__todo { max-width: 1352px; margin-inline: auto; }
  .recette .container > .overline { display: flex; }
}
/* Bandeau : mot barrÃ© (Â« ~~Marseille~~ Â» dans le champ) */
.banner__bold .barre {  text-decoration-thickness: .13em; text-decoration-color: var(--navy); text-decoration-skip-ink: none; }

/* ==========================================================================
   Fiche produit : le bloc d'achat (header compris) tient dans la hauteur de l'Ã©cran (100svh)
   ========================================================================== */
@media (min-width: 1025px) {
  .ddl-wp .fp-buy { --hh: var(--header-h, 90px); min-height: calc(100svh - var(--hh)); display: flex; align-items: center; padding: clamp(14px, 3.4vh, 44px) 0 clamp(14px, 3.8vh, 48px); }
  .ddl-wp .fp-buy > .container { width: 100%; }
  .ddl-wp .fp-buy .buy__grid { align-items: center; }
  /* le visuel prend la place qui reste en hauteur */
  .ddl-wp .fp-buy .gallery { position: static; width: min(100%, calc((100svh - var(--hh) - 7.2vh) * 540 / 520)); justify-self: start; }
  .ddl-wp .fp-buy .gallery.has-thumbs { width: min(100%, calc((100svh - var(--hh) - 7.2vh - 16px) / (520 / 540 + 0.161))); }
  .ddl-wp .fp-buy .thumbs { margin-top: 12px; gap: 12px; }
  /* colonne texte : espacements proportionnels Ã  la hauteur */
  .ddl-wp .fp-buy .crumbs { margin-bottom: clamp(8px, 1.7vh, 22px); }
  .ddl-wp .fp-buy .buy__title { font-size: max(32px, min(3.7vw, 6.2vh)); margin-top: 6px; }
  .ddl-wp .fp-buy .buy__script { font-size: clamp(20px, min(2.1vw, 3.6vh), 32px); margin: 0 0 clamp(8px, 1.6vh, 18px); }
  .ddl-wp .fp-buy .buy__lead { font-size: clamp(14px, min(1.1vw, 1.95vh), 17px); line-height: 1.55; }
  .ddl-wp .fp-buy .chips { margin: clamp(10px, 1.8vh, 22px) 0; }
  .ddl-wp .fp-buy .buy__sep { margin: clamp(10px, 2vh, 26px) 0 clamp(8px, 1.5vh, 18px); }
  .ddl-wp .fp-buy .price { margin-bottom: clamp(8px, 1.5vh, 18px); }
  .ddl-wp .fp-buy .price__value { font-size: clamp(30px, min(3.3vw, 5.4vh), 50px); }
  .ddl-wp .fp-buy .qty button { height: clamp(40px, 5.6vh, 50px); }
  .ddl-wp .fp-buy .purchase .btn.fp-add { padding-top: clamp(10px, 1.6vh, 16px); padding-bottom: clamp(10px, 1.6vh, 16px); }
  .ddl-wp .fp-buy .fp-reassure { margin-top: clamp(8px, 1.5vh, 16px); font-size: clamp(12px, 1.6vh, 14px); }
}
@media (min-width: 1025px) and (max-height: 780px) {
  .ddl-wp .fp-buy .crumbs { margin-bottom: 6px; font-size: 12px; }
  .ddl-wp .fp-buy .buy__title { font-size: max(28px, min(3.4vw, 5.8vh)); }
  .ddl-wp .fp-buy .buy__script { font-size: clamp(18px, 3.2vh, 26px); }
  .ddl-wp .fp-buy .buy__lead { font-size: 13px;  }
  .ddl-wp .fp-buy .chips li { padding: 6px 12px; font-size: 12px; }
  .ddl-wp .fp-buy .price__value { font-size: clamp(26px, 4.8vh, 40px); }
  .ddl-wp .fp-buy .fp-reassure { font-size: 12px; gap: 4px 18px; }

  .ddl-wp .fp-buy { padding: 12px 0 14px; }
  .ddl-wp .fp-buy .chips { margin: 8px 0; }
  .ddl-wp .fp-buy .buy__sep { margin: 8px 0 6px; }
  .ddl-wp .fp-buy .price { margin-bottom: 6px; }
  .ddl-wp .fp-buy .buy__script { margin-bottom: 6px; }
  .ddl-wp .fp-buy .fp-reassure { margin-top: 6px; }

  .ddl-wp .fp-buy .buy__lead { line-height: 1.4; }
  .ddl-wp .fp-buy .qty button { height: 40px; }
}
@media (min-width: 1025px) and (max-height: 740px) {
  .ddl-wp .fp-buy .crumbs { display: none; }
}
/* Â« Marseille Â» barrÃ© Ã  la main (trait jaune de travers) */
.banner__bold .barre { position: relative; display: inline-block; text-decoration: none; }
.banner__bold .barre::after {
  content: ""; position: absolute; left: -7%; right: -7%; top: 27%; height: .6em; pointer-events: none;
  background: url("../img/barre-feutre.svg") center / 100% 100% no-repeat; rotate: -7deg;
}

/* Bouteille Â« Arrive prochainement Â» : toute la fiche est floutÃ©e, une carte au centre */
.is-soon-page main > *:not(.soon-overlay) { filter: blur(12px); pointer-events: none; user-select: none; }
.is-soon-page .stickybar { display: none; }
.is-soon-page main { overflow: hidden; }
.soon-overlay { position: fixed; inset: var(--header-h, 90px) 0 0; z-index: 30; display: grid; place-items: center; padding: 24px; background: rgba(251, 247, 239, .35); }
.soon-card { position: relative; width: min(520px, 100%); padding: clamp(32px, 5vh, 48px) clamp(24px, 3vw, 44px); border-radius: 28px; background: var(--paper); border: 2px solid var(--line); box-shadow: 10px 10px 0 var(--acc, var(--red)); text-align: center; display: flex; flex-direction: column; align-items: center; }
.soon-card__pastille { position: absolute; right: -30px; top: -38px; width: 128px; height: 128px; font-size: 13px; line-height: 1.05; rotate: 10deg; }
.soon-card__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(30px, min(3vw, 5.4vh), 44px); line-height: 1; margin-top: 12px; }
.soon-card__script { color: var(--acc, var(--red)); font-size: clamp(22px, 2vw, 30px); rotate: -2deg; margin: 10px 0 14px; }
.soon-card__text { font-size: 15px; line-height: 1.6; color: var(--ink); margin-bottom: 22px; max-width: 400px; }
@media (max-width: 600px) { .soon-card__pastille { right: -6px; top: -40px; width: 96px; height: 96px; font-size: 13px; } }

/* Carrousel : bouteille Â« Arrive prochainement Â» floutÃ©e, carte lisible au centre */

.gitem.is-soon .gphoto, .gmonu.is-soon, .glogo.is-soon, .gpanel--soon > :not(.gsoon-card) { filter: blur(9px); }
.gpanel--soon > :not(.gsoon-card) { pointer-events: none; user-select: none; }
.gsoon-card {
  position: absolute; z-index: 6; left: 50%; top: 46%; translate: -50% -50%; width: min(420px, calc(100vw - 40px));
  padding: clamp(22px, 3.6vh, 34px) clamp(22px, 2.4vw, 34px); border-radius: 28px; text-align: center;
  background: var(--paper); border: 3px solid #0f2764; box-shadow: 8px 8px 0 var(--cshadow, var(--red));
  opacity: 0; scale: .94; transition: opacity .5s var(--ease), scale .5s var(--ease);
}
.gpanel.is-active .gsoon-card { opacity: 1; scale: 1; }
.gsoon-card__kicker { display: inline-block; padding: 6px 14px; border-radius: 99px; background: var(--red); color: #fff; font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.gsoon-card__name { font-family: var(--f-display); font-size: clamp(26px, min(2.4vw, 4.4vh), 36px); line-height: 1.05; color: #0f2764; margin-top: 14px; }
.gsoon-card__script { color: var(--name, var(--red)); font-size: clamp(20px, min(1.8vw, 3.2vh), 28px); rotate: -2deg; margin: 6px 0 10px; }
.gsoon-card__text { font-size: 14px; line-height: 1.55; color: var(--ink); }

/* ==========================================================================
   Page Â« OÃ¹ nous trouver Â»
   ========================================================================== */
.lieux { padding: clamp(48px, 9vh, 100px) 0 clamp(64px, 11vh, 120px); background: var(--paper); }
.lieux__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; margin-bottom: clamp(24px, 4vh, 40px); }
.lieux__title { margin-top: 14px; }
.lieux__intro { max-width: 560px; margin-top: 14px; font-size: clamp(15px, 1.15vw, 17px); line-height: 1.6; color: var(--ink); }
.lieux__intro p { margin: 0; }
.lieux__count { display: flex; align-items: center; gap: 14px; margin: 0; }
.lieux__count b { font-family: var(--f-display); font-weight: 400; font-size: clamp(48px, 4.6vw, 72px); line-height: 1; color: var(--red); }
.lieux__count span { font-weight: 600; font-size: 14px; line-height: 1.35; color: var(--navy); }
.lieux__filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: clamp(24px, 4vh, 36px); }
.lieux__filter { padding: 9px 18px; border-radius: 99px; border: 2px solid var(--navy); background: none; color: var(--navy); font: 600 13px var(--f-body); cursor: pointer; transition: background .2s, color .2s; }
.lieux__filter:hover { background: var(--sand); }
.lieux__filter.is-active { background: var(--navy); color: var(--paper); }

.lieux__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(18px, 2vw, 28px); }
.lieu[hidden] { display: none; }
.lieu__in {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; height: 100%; min-height: 220px;
  padding: 22px 24px 20px; border-radius: 24px; background: var(--paper); color: var(--navy); text-decoration: none;
  border: 3px solid #0f2764; box-shadow: 6px 6px 0 #0f2764; transition: translate .3s var(--ease), box-shadow .3s var(--ease);
}
a.lieu__in:hover { translate: -3px -3px; box-shadow: 9px 9px 0 #0f2764; }
.lieu__top { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.lieu__type { padding: 5px 12px; border-radius: 99px; background: var(--sand); font-weight: 700; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.lieu__num { font-family: var(--f-display); font-size: 15px; opacity: .25; }
.lieu__name { font-family: var(--f-display); font-weight: 400; font-size: clamp(22px, 1.7vw, 28px); line-height: 1.05; margin-top: 20px; }
.lieu__where { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 14px; color: var(--ink); }
.lieu__where::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--red); }

/* Carte d'invitation (toujours en dernier) */
.lieu--invite .lieu__in { background: var(--navy); color: var(--paper); border-color: var(--navy); box-shadow: 6px 6px 0 var(--red); }
.lieu--invite .lieu__type { background: var(--red); color: #fff; }
.lieu__name--big { font-size: clamp(26px, 2.1vw, 34px); }
.lieu__script { color: var(--paper); font-size: clamp(18px, 1.5vw, 22px); rotate: -2deg; margin-top: 6px; opacity: .9; }

.lieu__btn { margin-top: auto; }
.ddl-wp .lieu--invite .lieu__btn {  background: var(--red); color: #fff; }

@media (max-width: 600px) {
  .lieux__head { align-items: flex-start; }
  .lieu__in { min-height: 0; }
}
/* Cartes des lieux : infos pratiques, bouteilles, boutons */
.lieu__in { gap: 0; }
h2.lieu__name { margin-bottom: 0; }
p.lieu__where { margin: 10px 0 0; }
.lieu__infos { list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1.5px dashed rgba(35, 48, 93, .25); width: 100%; display: grid; gap: 6px; font-size: 13px; color: var(--ink); }
.lieu__infos b { display: inline-block;  font-weight: 600; color: var(--navy); }
.lieu__infos a { color: inherit; }

.lieu__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 18px; }
.lieu__act { padding: 8px 14px; border-radius: 99px; border: 2px solid var(--navy); color: var(--navy); text-decoration: none; font-weight: 700; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; transition: background .2s, color .2s; }
.lieu__act:hover { background: var(--navy); color: var(--paper); }
.lieu__act--main { background: var(--red); border-color: var(--red); color: #fff; }
.lieu__act--main:hover { background: var(--navy); border-color: var(--navy); }
.lieu__in:hover { translate: none; }
/* Carte d'invitation : plus compacte */
.lieu--invite .lieu__in { min-height: 0; justify-content: center; }
.ddl-wp .lieu--invite .lieu__btn { margin-top: 16px; }

/* ==========================================================================
   Page Contact (maquette Figma Â« Contact Â»)
   ========================================================================== */
.ct-hero { position: relative; overflow: hidden; background: var(--navy); color: var(--paper); padding: clamp(40px, 6vh, 72px) 0 clamp(48px, 7vh, 80px); }
.ct-hero__watermark { position: absolute; left: -6%; top: 50%; width: min(62vw, 900px); translate: 0 -46%; opacity: .05; pointer-events: none; }
.ct-hero__grid { position: relative; display: grid; grid-template-columns: 1fr minmax(0, 610px); gap: clamp(32px, 6vw, 96px); align-items: start; }
.ct-hero__overline::before { display: none; }
.ct-hero__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(38px, 4.3vw, 64px); line-height: .95; margin-top: 14px; }
.ct-hero__title > * { white-space: nowrap; }
.ct-hero__title > * { display: block; }
.ct-hero__script { color: var(--yellow); font-size: clamp(22px, 2vw, 30px); rotate: -4deg; margin: clamp(20px, 3vh, 36px) 0 clamp(20px, 3vh, 32px); }
.ct-hero__lead { font-size: clamp(15px, 1.15vw, 17px); line-height: 1.65; max-width: 560px; }
.ct-infos { list-style: none; margin: clamp(24px, 4vh, 40px) 0 0; padding: 0; display: grid; gap: 16px; }
.ct-infos li { display: flex; align-items: center; gap: 16px; font-weight: 600; font-size: 15px; }
.ct-infos small { display: block; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .7; margin-bottom: 2px; }
.ct-infos a { color: inherit; text-decoration: none; }
.ct-infos a:hover { text-decoration: underline; }
.ct-infos__dot { width: 40px; height: 40px; flex: none; border-radius: 50%; border: 2px solid var(--red); display: grid; place-items: center; }
.ct-infos__dot::after { content: ""; width: 14px; height: 14px; border-radius: 50%; background: var(--red); }

.ct-form { position: relative; background: var(--paper); color: var(--navy); border: 2px solid var(--navy); border-radius: var(--radius); padding: clamp(28px, 3vw, 40px); display: grid; gap: 16px; }
.ct-form__pastille.pastille { position: absolute; top: -28px; right: -24px; width: 110px; height: 110px; font-size: 17px; rotate: 14deg; }
.ct-form__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(26px, 2.2vw, 34px); line-height: 1; }
.ct-form__msg { padding: 12px 16px; border-radius: 12px; font-size: 14px; font-weight: 600; }
.ct-form__msg--ok { background: #dff1e6; color: #0b5c37; }
.ct-form__msg--ko { background: #fde3e4; color: #a10a12; }
.ct-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ct-choice { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ct-choice legend, .ct-field > span { font-size: 12px; font-weight: 700; margin-bottom: 8px; padding: 0; }
.ct-choice label { cursor: pointer; }
.ct-choice input { position: absolute; opacity: 0; pointer-events: none; }
.ct-choice span { display: inline-block; padding: 9px 16px; border: 2px solid var(--navy); border-radius: 999px; font-size: 12px; font-weight: 600; transition: background .2s, color .2s; }
.ct-choice input:checked + span { background: var(--navy); color: var(--paper); }
.ct-choice input:focus-visible + span { outline: 2px solid var(--red); outline-offset: 2px; }
.ct-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ct-field { display: grid; }
.ct-field input, .ct-field select, .ct-field textarea { width: 100%; font: 500 14px/1.4 var(--f-body); color: var(--ink); background: #fff; border: 1.5px solid #c9ccd8; border-radius: 14px; padding: 14px 16px; transition: border-color .2s; }
.ct-field textarea { resize: vertical; min-height: 110px; }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus { outline: 0; border-color: var(--navy); }
.ct-consent { display: flex; gap: 12px; align-items: flex-start; font-size: 12px; line-height: 1.5; color: var(--ink); cursor: pointer; }
.ct-consent input { width: 18px; height: 18px; flex: none; margin-top: 1px; accent-color: var(--navy); }
.ct-form__btn { width: 100%; justify-content: center; border: 0; cursor: pointer; font-family: var(--f-body); }

.ct-pro { background: var(--sand); padding: clamp(56px, 9vh, 100px) 0; }
.ct-pro__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex-wrap: wrap; }
.ct-pro__script { color: var(--red); font-size: clamp(20px, 1.8vw, 28px); rotate: -4deg; margin-top: 10px; }
.ct-pro__lead { max-width: 470px; font-size: 16px; line-height: 1.6; color: var(--ink); }
.ct-pro__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 28px); margin-top: clamp(32px, 5vh, 56px); }
.ct-card { background: var(--paper); border: 2px solid var(--navy); border-radius: var(--radius); padding: clamp(24px, 2.4vw, 34px); box-shadow: 6px 6px 0 var(--navy); }
.ct-card__star { width: 48px; height: 48px; color: var(--red); }
.ct-card__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(20px, 1.6vw, 24px); line-height: 1.05; margin: 18px 0 12px; }
.ct-card__text { font-size: 14px; line-height: 1.6; color: var(--ink); }
.ct-card__list { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 8px; font-size: 13px; font-weight: 600; }
.ct-card__list li { display: flex; gap: 10px; align-items: center; }
.ct-card__list li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--red); flex: none; }
.ct-pro__note { margin-top: 32px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .5; }

.ct-faq { background: var(--navy); padding: clamp(56px, 9vh, 100px) 0 clamp(64px, 10vh, 110px); }
.ct-faq__list { display: grid; gap: 14px; margin-top: clamp(28px, 4vh, 44px); }
.ct-q { background: var(--paper); color: var(--navy); border-radius: 18px; }
.ct-q summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px clamp(20px, 2vw, 30px); font-family: var(--f-display); font-size: clamp(15px, 1.2vw, 18px); line-height: 1.2; }
.ct-q summary::-webkit-details-marker { display: none; }
.ct-q summary i { position: relative; width: 32px; height: 32px; flex: none; border-radius: 50%; background: var(--sand); transition: background .25s; }
.ct-q summary i::before, .ct-q summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: currentColor; translate: -50% -50%; transition: rotate .25s; }
.ct-q summary i::after { rotate: 90deg; }
.ct-q[open] summary i { background: var(--red); color: var(--paper); }
.ct-q[open] summary i::after { rotate: 0deg; }
.ct-q p { padding: 0 clamp(20px, 2vw, 30px) 22px; font-size: 14px; line-height: 1.6; color: var(--ink); max-width: 900px; }

@media (max-width: 960px) {
  .ct-hero__grid { grid-template-columns: 1fr; }
  .ct-pro__cards { grid-template-columns: 1fr; }
  .ct-form__pastille.pastille { right: -8px; top: -36px; width: 92px; height: 92px; font-size: 14px; }
}
@media (max-width: 560px) {
  .ct-row { grid-template-columns: 1fr; }
}

/* Accueil â€” bloc Â« On trinque ensemble ? Â» (Figma Accueil VF Â· 07 â€” Professionnels) :
   carte de 1183 px centrÃ©e, 198 px d'air au-dessus et en dessous, un seul pont posÃ© sur la carte */
.home .pro { --pro-pad: clamp(96px, 13.1vw, 198px); padding: var(--pro-pad) 0; }
.home .pro .container { position: relative; }
.home .pro__box { max-width: 1183px; margin-inline: auto; grid-template-columns: minmax(0, 1fr) 39%; min-height: 0; height: clamp(400px, 30.4vw, 460px); }
.home .pro__illu { top: auto; bottom: 100%; right: max(calc(var(--gutter) + 32px), calc(50% - 559.5px)); position: absolute; width: clamp(220px, 22.8vw, 345px); height: auto; opacity: .13; translate: none; }
@media (max-width: 900px) { .home .pro__box { grid-template-columns: 1fr; height: auto; } }
@media (max-width: 760px) { .home .pro { --pro-pad: 64px; } }

/* Accueil â€” Â« Le nouveau chapitre Â» (Figma Accueil VF Â· 04) : photo 600Ã—700, texte Ã  77 px,
   titre 42 px sur 2 lignes, illustration Confluence posÃ©e en bas Ã  droite, collÃ©e au bord */
.home .story { padding: clamp(56px, 6.6vw, 100px) 0; }
.home .story__inner { max-width: none; width: min(1317px, calc(100% - 2 * var(--gutter))); padding-inline: 0; margin-inline: auto; grid-template-columns: minmax(0, 600px) minmax(0, 640px); gap: clamp(40px, 5.1vw, 77px); justify-content: space-between; align-items: center; }
.home .story__media { width: 100%; }
.home .story__pastille { right: -17px; top: -50px; rotate: 12deg; }
.home .story__content .h2 { font-size: clamp(30px, 2.78vw, 42px); line-height: 1; margin: 21px 0; }
.home .story__content .lead { font-size: clamp(15px, 1.19vw, 18px); line-height: 1.6; max-width: 560px; }
.home .story__script { margin: 16px 0 clamp(28px, 3.3vw, 50px); }
.home .story__illu { right: 0; bottom: 0; top: auto; width: clamp(240px, 30.7vw, 464px); translate: none; z-index: 0; }
.home .story__inner { position: relative; z-index: 1; }
@media (max-width: 1024px) { .home .story__inner { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .home .story__illu { width: 220px; } .home .story__pastille { right: -10px; top: -26px; } }

/* Accueil â€” Savoir-faire (Figma Accueil VF Â· 05) : section 944 px, titre 64 px, noms d'Ã©tapes 26 px serrÃ©s */
.home .recette { padding: clamp(56px, 6.6vw, 100px) 0 clamp(64px, 7.2vw, 109px); }
.home .recette__title { font-size: clamp(34px, 4.23vw, 64px); line-height: .98; margin-top: 12px; }
.home .recette__steps { margin-top: clamp(32px, 3.3vw, 50px); }
.home .recette__name { font-size: clamp(20px, 1.72vw, 26px); line-height: 1.1; margin-top: clamp(6px, .66vw, 10px); }
.home .recette__text { margin-top: 13px; }

/* Footer (Figma Accueil VF Â· 08) : phrase qui monte vers la droite, colonnes Ã  656 / 916 / 1176 px, pied de 520 px */
@media (min-width: 1101px) {
  .footer__top { grid-template-columns: minmax(0, 1fr) 260px 260px 220px; gap: 0; padding: 62px 0 0; min-height: 372px; }
}
.footer__script { rotate: -3deg; transform-origin: left center; margin: 14px 0 26px; line-height: 1.5; }
@media (min-width: 761px) { .footer__script { white-space: nowrap; } }
.footer__heading { margin-bottom: -5px; }
.footer__bottom { margin-top: 0; padding-bottom: 48px; }
.footer__illu { right: -4px; bottom: -40px; }

/* Fiche produit : visuel fixe (plus de bouteille qui flotte, d'anneau qui tourne ni d'Ã©toile qui bouge) */
.ddl-wp .fp-stage .stage__bottle, .ddl-wp .fp-stage__ring, .ddl-wp .fp-stage .fp-stk, .ddl-wp .fp-stage .stage__pastille { animation: none; transform: none; }

/* ==========================================================================
   Page Â« Nos spiritueux Â» v2 : cartes Ã  ombre franche, couleur de chaque bouteille
   ========================================================================== */
.sp2list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2vw, 32px); }
.sp2 { position: relative; display: flex; flex-direction: column; background: var(--paper); border: 3px solid #0f2764; border-radius: var(--radius); box-shadow: 6px 6px 0 #0f2764; overflow: hidden; transition: translate .3s var(--ease), box-shadow .3s var(--ease); }
.sp2:not(.sp2--soon):hover { translate: -3px -3px; box-shadow: 9px 9px 0 #0f2764; }
.sp2__visual { position: relative; display: block; aspect-ratio: 1 / 1.05; background: var(--obg); border-bottom: 3px solid #0f2764; overflow: hidden; }
.sp2__disc { position: absolute; left: 50%; top: 52%; width: 78%; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; background: var(--ohalo); }
/* monument dans le rond, comme sur la fiche produit (mÃªme proportion : 58 % pour un rond de 66 %) */
.sp2__monument { position: absolute; left: 50%; top: 52%; width: calc(78% * .88); translate: -50% -38%; pointer-events: none; }
.sp2__bottle { position: absolute; left: 50%; bottom: 6%; height: 86%; width: auto; max-width: none; translate: -50% 0; filter: drop-shadow(8px 8px 0 rgba(15, 39, 100, .25)); transition: translate .5s var(--ease), rotate .5s var(--ease); }
.sp2:not(.sp2--soon):hover .sp2__bottle { translate: -50% -8px; rotate: -3deg; }
.sp2__body { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(18px, 1.6vw, 24px); flex: 1; }
.sp2__name { font-family: var(--f-display); font-weight: 400; font-size: clamp(20px, 1.6vw, 24px); line-height: 1.05; }
.sp2__name a { text-decoration: none; color: var(--navy); }
.sp2__tagline { color: var(--oacc); font-size: clamp(17px, 1.3vw, 20px); rotate: -2deg; transform-origin: left; margin-top: 6px; }
.sp2__facts { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sp2__facts li { padding: 4px 10px; border-radius: 99px; background: var(--sand); color: var(--navy); font-size: 11px; font-weight: 600; }
.sp2__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; width: 100%; margin-top: auto; padding-top: 18px; }
.woocommerce main p.sp2__price, .sp2__price { font-family: var(--f-display); font-size: clamp(22px, 1.8vw, 28px); color: var(--navy); }
.sp2__more { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--navy); text-underline-offset: 4px; }
.sp2__form { margin: 14px 0 0; width: 100%; }
.sp2__form .btn { width: 100%; justify-content: center; border: 0; cursor: pointer; font-family: var(--f-body); }
/* Arrive prochainement : toute la carte floutÃ©e + petite carte centrÃ©e */
.sp2--soon > :not(.sp2__soon) { filter: blur(8px); pointer-events: none; user-select: none; }
.sp2__soon { position: absolute; z-index: 3; left: 50%; top: 50%; translate: -50% -50%; width: 82%; padding: 22px 18px; text-align: center; background: var(--paper); border: 3px solid #0f2764; border-radius: 22px; box-shadow: 6px 6px 0 #0f2764; display: flex; flex-direction: column; align-items: center; }
.sp2__soon .gsoon-card__kicker { font-size: 10px; padding: 5px 12px; }
.sp2__soon-name { font-family: var(--f-display); font-size: clamp(20px, 1.6vw, 24px); line-height: 1.05; color: var(--navy); margin-top: 12px; }
.sp2__soon-script { font-family: var(--f-script); color: var(--oacc); font-size: 18px; rotate: -2deg; margin-top: 4px; }
@media (max-width: 1100px) { .sp2list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sp2list {  } }

/* ==========================================================================
   Page Â« Notre histoire Â» (maquette Figma Â« Notre histoire Â» Â· 1512 px)
   ========================================================================== */
.hi-h2 { font-family: var(--f-display); font-weight: 400; font-size: clamp(34px, 4.23vw, 64px); line-height: 1; margin-top: 14px; color: var(--navy); }
.hi-h2 .line { display: block; }
.hi-h2--light { color: var(--paper); }

/* 01 â€” Hero */
.hi-hero { position: relative; overflow: hidden; background: var(--navy); color: var(--paper); padding: clamp(48px, 5.5vw, 83px) 0 clamp(56px, 5.5vw, 82px); }
.hi-hero__watermark { position: absolute; left: -200px; top: 120px; width: 900px; max-width: none; opacity: .05; pointer-events: none; }
.hi-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 688px) minmax(0, 520px); justify-content: space-between; align-items: center; gap: 48px; }
.hi-hero__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(40px, 4.5vw, 68px); line-height: .94; margin-top: 22px; }
.hi-hero__title > * { display: block; }
.hi-hero__script { color: var(--yellow); font-size: clamp(22px, 1.85vw, 28px); rotate: -2deg; transform-origin: left; margin-top: 18px; }
.hi-hero__lead { font-size: clamp(16px, 1.26vw, 19px); line-height: 1.6; opacity: .92; max-width: 600px; margin: 26px 0 34px; }
.hi-hero__visual { position: relative; width: 100%; aspect-ratio: 520 / 600; }
.hi-hero__frame { position: absolute; left: 0; top: 3.33%; width: 96.15%; height: 96.67%; border: 2.5px dashed var(--red); border-radius: 34px; }
.hi-hero__photo { position: absolute; right: 0; top: 0; width: 96.15%; height: 96.67%; object-fit: cover; border-radius: 28px; }
.hi-hero__pastille.pastille { position: absolute; right: -30px; top: -30px; width: clamp(100px, 9.3vw, 140px); height: auto; aspect-ratio: 1; rotate: 0deg; font-size: clamp(17px, 1.6vw, 24px); }
.hi-hero__star { position: absolute; left: -14px; top: 8%; width: 66px; height: 66px; rotate: -12deg; }

/* 02 â€” Sarah & Romain */
.hi-duo { background: var(--sand); padding: clamp(56px, 7.3vw, 110px) 0; }
.hi-duo__grid { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 600px); justify-content: center; align-items: center; gap: clamp(40px, 4.2vw, 64px); }
.hi-duo__photo { aspect-ratio: 560 / 620; border-radius: 28px; overflow: hidden; }
.hi-duo__photo img { width: 100%; height: 100%; object-fit: cover; }
.hi-duo .hi-h2 { margin-top: 16px; }
.hi-duo__lead { font-size: clamp(15px, 1.12vw, 17px); line-height: 1.65; color: var(--ink); margin-top: 32px; }
.hi-quote { display: flex; gap: 16px; margin: 32px 0 0; }
.hi-quote__mark { font-family: var(--f-display); font-size: 72px; line-height: .8; color: var(--red); flex: none; }
.hi-quote p { font-size: clamp(20px, 1.85vw, 28px); line-height: 1.3; color: var(--navy); }

/* 03 â€” Trois promesses */
.hi-prom { background: var(--navy); padding: clamp(56px, 7.3vw, 110px) 0; }
.hi-prom__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; align-items: start; margin-top: 52px; }
.hi-card { background: var(--paper); border-radius: 24px; padding: 34px; }
.hi-card__medal { display: grid; place-items: center; width: 120px; height: 120px; border-radius: 50%; background: var(--red); }
.hi-card__medal img { width: 87%; height: 87%; object-fit: contain; }
.hi-card__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(20px, 1.72vw, 26px); line-height: 1.05; color: var(--navy); margin-top: 32px; }
.hi-card__text { font-size: 16px; line-height: 1.6; color: var(--ink); margin-top: 14px; }

/* 04 â€” Lyon en toile de fond */
.hi-lyon { background: var(--paper); padding: clamp(56px, 7.3vw, 110px) 0; }
.hi-lyon__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.hi-lyon__script { color: var(--red); font-size: clamp(22px, 2.1vw, 32px); rotate: 4deg; margin-bottom: 4px; }
.hi-mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; height: clamp(320px, 37vw, 560px); margin-top: 44px; }
.hi-mosaic__col { display: flex; flex-direction: column; gap: 16px; min-height: 0; }
.hi-mosaic__tile { position: relative; display: block; flex: 1 1 0; min-height: 0; border-radius: 24px; overflow: hidden; }
.hi-mosaic__tile img { width: 100%; height: 100%; object-fit: cover; transition: scale .6s var(--ease); }
.hi-mosaic__tile--4 { flex-grow: 245; }
.hi-mosaic__tile--5 { flex-grow: 299; }
.hi-mosaic__ig { position: absolute; right: 14px; top: 14px; width: 38px; height: 38px; border-radius: 50%; background: var(--paper); color: var(--navy); display: grid; place-items: center; opacity: 0; translate: 0 -6px; transition: opacity .3s, translate .3s var(--ease); }
.hi-mosaic__ig svg { width: 20px; height: 20px; }
a.hi-mosaic__tile:hover img { scale: 1.05; }
a.hi-mosaic__tile:hover .hi-mosaic__ig, a.hi-mosaic__tile:focus-visible .hi-mosaic__ig { opacity: 1; translate: 0 0; }
.hi-lyon__side { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.hi-lyon__btn span { text-transform: none; letter-spacing: 0; font-weight: 600; }

/* 05 â€” Bandeau de fin */
.hi-end { background: var(--red); padding: clamp(48px, 6vw, 90px) 0; }
.hi-end__inner { display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.hi-end__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(32px, 3.7vw, 56px); line-height: 1; color: var(--paper); }
.hi-end .btn--inverse { box-shadow: 4px 4px 0 var(--navy); }

@media (max-width: 960px) {
  .hi-hero__grid, .hi-duo__grid { grid-template-columns: 1fr; }
  .hi-hero__visual { max-width: 480px; }
  .hi-prom__grid { grid-template-columns: 1fr; }
  .hi-mosaic { grid-template-columns: 1fr; height: auto; }
  .hi-mosaic__col { flex-direction: row; }
  .hi-mosaic__tile { flex: 1 1 0; aspect-ratio: 1; }
  .hi-mosaic__tile--1 { aspect-ratio: 4 / 3; }
  .hi-lyon__side { align-items: flex-start; }
}
@media (max-width: 560px) {
  .hi-hero__pastille.pastille { right: -8px; }
  .hi-hero__star { width: 48px; height: 48px; left: -8px; }
  .hi-card { padding: 26px; }
  .hi-card__medal { width: 96px; height: 96px; }
  .hi-hero .btn, .hi-end .btn { width: 100%; justify-content: center; }
}

/* Notre histoire â€” Â« Sarah et Romain. Â» sur une seule ligne */
@media (min-width: 961px) {
  .hi-duo .hi-h2 { font-size: clamp(30px, 3.8vw, 58px); }
  .hi-duo .hi-h2 .line { white-space: nowrap; }
}

/* ==========================================================================
   Retouches mobile (vÃ©rification 375 px)
   ========================================================================== */
/* surtitres sur 2 lignes : la pastille reste alignÃ©e sur la 1re ligne */
.overline { align-items: flex-start; }
.overline::before { margin-top: .2em; }
.ct-hero__overline::before, .ct-hero .overline::before { margin-top: 0; }
/* petits textes un peu plus lisibles */
.gcard__tags li, .ddl-wp .fp-place__kind, .ct-infos small, .sp2__soon .gsoon-card__kicker { font-size: 11px; }
/* lignes d'infos des lieux : libellÃ© Ã  gauche, valeur alignÃ©e */
.lieu__infos li { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 8px; }
.lieu__infos b { min-width: 0; }
/* panier vide */
.wc-block-cart__empty-cart__title { font-family: var(--f-display); font-weight: 400; color: var(--navy); }
.wp-block-woocommerce-empty-cart-block .wp-block-button__link { display: inline-flex; padding: 16px 28px; border-radius: 999px; background: var(--red); color: #fff; font-weight: 700; font-size: 14px; letter-spacing: .03em; text-transform: uppercase; text-decoration: none; box-shadow: 4px 4px 0 var(--navy); }
@media (max-width: 760px) {
  /* titres : le texte suit la largeur au lieu de couper Ã  des endroits fixes */
  .recette__title .line { display: inline; }
  .recette__title .line:not(:last-child)::after { content: " "; }
  .hi-hero__title { font-size: clamp(32px, 9.4vw, 40px); }
  .hi-hero__star { left: 4px; }
  /* pastilles : le texte tient dans le rond */
  .ct-form__pastille.pastille { width: 100px; height: 100px; font-size: 13px; right: -6px; top: -40px; }
  .soon-card__pastille { width: 112px; height: 112px; font-size: 11px; right: -4px; top: -48px; }
  /* liens du footer : zone de clic plus grande */
  .footer__col { gap: 0; }
  .footer__col a { padding: 6px 0; }
  .footer__heading { margin-bottom: 4px; }
  /* points du carrousel : zone de clic Ã©largie sans changer le dessin */
  .gdots__dot { position: relative; }
  .gdots__dot::before { content: ""; position: absolute; inset: -12px -5px; }
  /* Nos spiritueux : visuel moins haut */
  .sp2__more { padding: 8px 0; }
}

/* Fiche produit â€” Â« Et son acolyte Â» : mÃªme largeur que la carte Â« On trinque ensemble ? Â» de l'accueil */
.ddl-wp .fp-buddy__card { max-width: 1183px; margin-inline: auto; }

/* Notre histoire â€” lion au trait, passÃ© en blanc sur le rond rouge */
.hi-card__medal img[src*="illu-lion-trait-creme"] { width: 74%; height: 74%; }

/* Carrousel des bouteilles â€” mobile : pas de monument, logo plus grand, bouteille au-dessus de la carte, carte compacte */
@media (max-width: 767px) {
  .gamme__logos { height: min(140px, 17vh); }
  .gcard { gap: 10px; padding: 14px 18px 16px; }
  .gcard__phrase { font-size: clamp(16px, 4.6vw, 19px); }
  .gcard__meta { margin-top: 0; }
  .gcard__btn { padding: 12px 16px; }
}
/* petits tÃ©lÃ©phones (Ã©cran court) : logo un peu moins grand pour ne pas toucher le rond */
@media (max-width: 767px) and (max-height: 760px) { .gamme__logos { height: 96px; } }

/* ==========================================================================
   Fiche produit â€” mobile (maquette Â« Fiche produit Â· Mobile 390 Â»)
   ========================================================================== */
.crumbs--top { display: none; }
.gallery > .stage__dots { display: none; }
@media (max-width: 760px) {
  .ddl-wp .fp-buy .crumbs.crumbs--top { display: flex; flex-wrap: wrap; gap: 6px;  }

  .ddl-wp .buy__info > .crumbs { display: none; }
  /* points sous la photo Ã  la place des vignettes */
  .ddl-wp .gallery .thumbs { display: none; }
  .ddl-wp .gallery > .stage__dots { display: flex; justify-content: center;  position: static; translate: none;  }
  .ddl-wp .gallery > .stage__dots i {     cursor: pointer; transition: width .3s var(--ease), background .3s; }

  .ddl-wp .gallery > .stage__dots i::before { content: ""; display: block;   } /* zone de clic */
  /* Â« Et son acolyte Â» : la bouteille en haut de la carte */
  .ddl-wp .fp-buddy__visual { order: -1; max-width: 260px; }
}

/* ==========================================================================
   Page Contact â€” mobile
   ========================================================================== */
.ct-pro__swipe { display: none; margin-top: 14px; font-size: 12px; font-weight: 600; color: var(--navy); opacity: .6; }
@media (max-width: 760px) {
  /* haut de page plus compact */
  .ct-hero { padding: 28px 0 40px; }
  .ct-hero__grid { gap: 40px; }
  .ct-hero__title { font-size: clamp(34px, 10vw, 40px); }
  .ct-hero__script { font-size: 21px; margin: 14px 0 16px; }
  .ct-hero__lead { font-size: 15px; line-height: 1.6; }
  .ct-infos { margin-top: 22px; gap: 10px; }
  .ct-infos li { padding: 10px 12px; border-radius: 16px; background: rgba(251, 247, 239, .07); font-size: 14px; }
  .ct-infos__dot { width: 32px; height: 32px; }
  .ct-infos__dot::after { width: 11px; height: 11px; }
  /* formulaire : champs en 16 px pour que l'iPhone ne zoome pas */
  .ct-form { padding: 26px 18px 22px; border-radius: 22px; gap: 14px; }
  .ct-field input, .ct-field select, .ct-field textarea { font-size: 16px; padding: 13px 14px; }
  .ct-choice { gap: 6px; }
  .ct-choice span { padding: 8px 13px; }
  /* Â« Vous Ãªtes pro ? Â» : les 3 cartes dÃ©filent Ã  l'horizontale */
  .ct-pro { padding: 48px 0 52px; }
  .ct-pro__head { gap: 14px; }
  .ct-pro__lead { font-size: 15px; }
  .ct-pro__cards { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin: 26px calc(-1 * var(--gutter)) 0; padding: 0 var(--gutter) 10px; scroll-padding-inline: var(--gutter); }
  .ct-pro__cards::-webkit-scrollbar { display: none; }
  .ct-card { flex: 0 0 82%; scroll-snap-align: start; padding: 22px 20px; box-shadow: 5px 5px 0 var(--navy); }
  .ct-card__star { width: 38px; height: 38px; }
  .ct-card__title { margin: 12px 0 8px; }
  .ct-pro__note { margin-top: 18px; }
  .ct-pro__swipe { display: block; }
  /* FAQ */
  .ct-faq { padding: 48px 0 56px; }
  .ct-q summary { padding: 18px 16px; font-size: 15px; }
  .ct-q p { padding: 0 16px 18px; }

/* ==========================================================================
   Mobile Ã©purÃ© â€” fiche produit et Nos spiritueux
   ========================================================================== */

  /* bouteille seule sur son rond de couleur, avec la pastille */
  .ddl-wp .fp-stage .stage__watermark,
  .ddl-wp .fp-stage .fp-stk,
  .ddl-wp .fp-stage__ring { display: none; }
  /* bloc d'achat : titre, accroche, texte, prix, quantitÃ©, bouton */
  .ddl-wp .buy__info > .chips,
  .ddl-wp .buy__info > .fp-scale { display: none; }
  .ddl-wp .buy__info > .buy__sep { margin-top: 18px; }
}
@media (max-width: 560px) {
  /* cartes sobres : ni numÃ©ro, ni pastilles, ni Â« Voir la fiche Â» ; la carte entiÃ¨re mÃ¨ne Ã  la fiche */
  .sp2__facts, .sp2__more { display: none; }
  .sp2__name a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
  .sp2__form { position: relative; z-index: 2; }
}

/* ==========================================================================
   Fiche produit â€” mobile : prix et Â« Ajouter au panier Â» visibles dÃ¨s l'arrivÃ©e
   (photo pleine largeur, compteur + barre de progression, puis titre, prix, bouton)
   ========================================================================== */
.stage__count { display: none; }
@media (max-width: 760px) {
  .ddl-wp.page-product .fp-buy { padding-top: 10px; }
  .ddl-wp .fp-buy .buy__grid { row-gap: 0; }
  .ddl-wp .fp-buy .crumbs.crumbs--top { margin: 0 0 10px; font-size: 12px; }
  /* photo pleine largeur, moins haute */
  .ddl-wp .fp-stage { aspect-ratio: auto; height: min(46svh, 440px); min-height: 280px; margin-inline: calc(-1 * var(--gutter)); border: 0 !important; border-radius: 0; }
  .ddl-wp .fp-stage__disc { width: min(66vw, 38svh); }
  .ddl-wp .fp-stage .stage__pastille { width: 84px; height: 84px; font-size: 13px; right: 16px; top: 16px; }
  .stage__count { display: block; position: absolute; z-index: 8; left: 16px; bottom: 14px; padding: 6px 12px; border-radius: 99px; background: var(--paper); border: 1px solid rgba(35, 48, 93, .2); font-size: 12px; font-weight: 600; color: var(--navy); }
  .stage__count b { font-weight: 600; }
  .ddl-wp .fp-stage.is-photo .stage__count { display: block; }
  /* barre de progression sous la photo (Ã  la place des points) */
  .ddl-wp .gallery > .stage__dots { gap: 0; margin: 0; height: 3px; background: rgba(35, 48, 93, .14); }
  .ddl-wp .gallery > .stage__dots i { flex: 1; width: auto; height: 3px; border-radius: 0; background: transparent; }
  .ddl-wp .gallery > .stage__dots i.is-active { width: auto; background: var(--navy); }
  .ddl-wp .gallery > .stage__dots i::before { margin: -14px 0; height: 31px; }
  /* ordre : surtitre, titre, prix, bouton, rÃ©assurance, puis l'accroche et le texte */
  .ddl-wp .fp-buy .buy__info { display: flex; flex-direction: column;  }
  .ddl-wp .buy__info > .overline { order: 1; }
  .ddl-wp .buy__info > .buy__title { order: 2; font-size: clamp(30px, 8.6vw, 36px);  }

  .ddl-wp .buy__info > .purchase, .ddl-wp .buy__info > .purchase__soon { order: 4;  }
  .ddl-wp .buy__info > .fp-reassure { order: 5;  }
  .ddl-wp .buy__info > .buy__sep { order: 6; margin: 22px 0 0; }
  .ddl-wp .buy__info > .buy__script { order: 2;  font-size: 20px; }
  .ddl-wp .buy__info > .price { order: 3; }
  .ddl-wp .buy__info > .buy__lead { order: 8; margin-top: 10px; }
  .ddl-wp .buy__info .price__value { font-size: 30px; }

  .ddl-wp .buy__info > .buy__script { margin-bottom: 0; line-height: 1.3; }
  .ddl-wp .buy__info > .price { margin: 8px 0 0; }
  .ddl-wp .buy__info > .price .price__value { line-height: 1.1; }

}
@media (max-width: 760px) and (max-height: 720px) {
  .ddl-wp .fp-stage { height: 38svh; min-height: 240px; }
}
/* fiche produit mobile : un peu plus d'air entre les infos */
@media (max-width: 760px) {
  .ddl-wp .fp-buy .buy__info { padding-top: 22px; }
  .ddl-wp .buy__info > .buy__title { margin-top: 10px; }
  .ddl-wp .buy__info > .buy__script { margin-top: 14px; }
  .ddl-wp .buy__info > .price { margin-top: 22px; }
  .ddl-wp .buy__info > .purchase, .ddl-wp .buy__info > .purchase__soon { margin-top: 12px; }
  .ddl-wp .buy__info > .fp-reassure { margin-top: 20px; }
}

/* Nos spiritueux â€” mobile : 2 colonnes */
.sp2__form .btn .sp2__btn-short { display: none; }
.sp2__form .btn .sp2__btn-long { display: inline; }
@media (max-width: 560px) {
  /* une colonne, cartes sobres : vignette de couleur Ã  gauche, infos Ã  droite, sans contour ni ombre */
  .sp2list { grid-template-columns: minmax(0, 1fr);  }
  .sp2, .sp2:not(.sp2--soon):hover { display: grid; grid-template-columns: 108px minmax(0, 1fr); align-items: center; gap: 16px; padding: 12px; border: 0; border-radius: 22px; background: #fff;  translate: none; overflow: visible; }
  .sp2__visual { aspect-ratio: 108 / 132; border: 0; border-radius: 16px; }
  .sp2__disc { width: 86%; top: 54%; }
  .sp2__monument { width: calc(86% * .88); top: 54%; }
  .sp2__bottle { height: 88%; bottom: 6%; filter: drop-shadow(4px 4px 0 rgba(15, 39, 100, .2)); }
  .sp2:not(.sp2--soon):hover .sp2__bottle { translate: -50% 0; rotate: 0deg; }
  .sp2__body { padding: 4px 4px 4px 0; }
  .sp2__name { font-size: 17px; line-height: 1.1; }
  .sp2__tagline { font-size: 15px; margin-top: 4px; }
  .sp2__foot {   justify-content: space-between;   }
  .sp2__price { font-size: 18px; }
  .sp2__form { width: auto; margin: 12px 0 0; }
  .sp2__form .btn { width: 100%; padding: 10px 14px; font-size: 12px; box-shadow: none; }
  .sp2__form .btn .sp2__btn-long { display: inline; }
  .sp2__form .btn .sp2__btn-short { display: none; }
  /* bientÃ´t : vignette floutÃ©e et mention Â« Arrive prochainement Â» Ã  la place des infos */
  .sp2--soon .sp2__body { display: none; }
  .sp2--soon > .sp2__visual { filter: blur(6px); }
  .sp2__soon { position: static; translate: none; width: auto; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; align-items: flex-start; text-align: left; }
  .sp2__soon .gsoon-card__kicker { font-size: 10px; padding: 4px 10px; }
  .sp2__soon-name { font-size: 17px; margin-top: 10px; }
  .sp2__soon-script { font-size: 15px; }

/* Nos spiritueux mobile : les infos de la version ordinateur (type, contenance, degrÃ©, Â« Voir la fiche Â») */

  .sp2 .sp2__facts { display: flex; margin-top: 10px; gap: 4px; }
  .sp2 .sp2__facts li { font-size: 10.5px; padding: 3px 8px; }
  .sp2 .sp2__more {    position: relative; z-index: 2; }
  .sp2__foot { padding-top: 10px; }
  /* ombre franche, comme les autres cartes du site */
  .sp2, .sp2:not(.sp2--soon):hover { box-shadow: 5px 5px 0 #0f2764; }
  .sp2list { gap: 18px; }
  /* pas d'achat direct sur mobile : un bouton Â« Voir la fiche Â» Ã  la place */
  .sp2 .sp2__form { display: none; }
  .sp2__foot { flex-direction: column; align-items: flex-start; gap: 10px; }
  .sp2 .sp2__more { display: inline-flex; justify-content: center; padding: 10px 16px; border-radius: 999px; background: var(--red); color: #fff; font-size: 12px; text-decoration: none; letter-spacing: .04em; }
  .sp2:not(.sp2--soon):active { translate: 2px 2px; box-shadow: 3px 3px 0 #0f2764; }
}

/* Ordinateur et tablette : les Ã©lÃ©ments ajoutÃ©s pour le mobile restent cachÃ©s
   (product.css, chargÃ© aprÃ¨s ce fichier, rÃ©affichait le fil d'Ariane du haut) */
@media (min-width: 761px) {
  .ddl-wp .fp-buy .crumbs.crumbs--top,
  .ddl-wp .gallery > .stage__dots,
  .ddl-wp .fp-stage .stage__count { display: none; }
}

/* ==========================================================================
   Nos spiritueux â€” ordinateur : toute la page tient dans l'Ã©cran (100svh)
   La section prend la hauteur restante sous le header ; la zone bouteille se partage
   l'espace, le texte et le bouton restent entiers.
   ========================================================================== */
@media (min-width: 1025px) {
  .page-shop .shoplist { display: flex; height: clamp(620px, calc(100svh - var(--header-h, 90px)), 1000px); padding: clamp(20px, 4vh, 48px) 0 clamp(14px, 2.4vh, 26px); }
  .page-shop .shoplist > .container { display: flex; flex-direction: column; min-height: 0; }
  .page-shop .shoplist__head { flex: none; margin-bottom: clamp(14px, 3vh, 34px); }
  .page-shop .shoplist__title { margin-top: 8px; font-size: clamp(36px, min(4.2vw, 7.4vh), 64px); }
  .page-shop .sp2list { flex: 1 1 auto; min-height: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  /* toutes les cartes sur la mÃªme grille : zones image de mÃªme hauteur, zones texte de mÃªme hauteur */
  .page-shop .sp2list { grid-template-rows: minmax(0, 1fr) auto; row-gap: 0; }
  .page-shop .sp2 { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; min-height: 0; }
  .page-shop .sp2__visual { aspect-ratio: auto; min-height: 110px; container-type: size; }
  .page-shop .sp2__disc { width: min(78cqw, 86cqh); }
  .page-shop .sp2__monument { width: calc(min(78cqw, 86cqh) * .88); }
  .page-shop .sp2__bottle { height: 88%; bottom: 5%; }
  .page-shop .sp2__body { flex: none; padding: clamp(12px, 2vh, 22px) clamp(16px, 1.4vw, 22px) clamp(14px, 2.2vh, 22px); }
  .page-shop .sp2__name { font-size: clamp(18px, min(1.6vw, 2.8vh), 24px); }
  .page-shop .sp2__tagline { font-size: clamp(15px, min(1.3vw, 2.3vh), 20px); margin-top: 2px; }
  .page-shop .sp2__facts { margin-top: clamp(6px, 1.2vh, 12px); }
  .page-shop .sp2__foot { padding-top: clamp(8px, 1.6vh, 16px); }
  .page-shop .sp2__price { font-size: clamp(20px, min(1.7vw, 3vh), 28px); }
  .page-shop .sp2__form { margin-top: clamp(8px, 1.4vh, 14px); }
  .page-shop .sp2__form .btn { padding-block: clamp(10px, 1.6vh, 16px); }
  .page-shop .shoplist__note { flex: none; margin-top: clamp(12px, 2.2vh, 24px); }
}

/* ---------- Pages de texte (mentions lÃ©gales, CGV, confidentialitÃ©â€¦) ---------- */
.lg-hero { position: relative; overflow: hidden; background: var(--navy); color: var(--paper); padding: clamp(48px, 8vh, 96px) 0 clamp(48px, 7vh, 80px); }
.lg-hero__watermark { position: absolute; right: -8%; top: 50%; width: min(56vw, 760px); translate: 0 -50%; opacity: .05; pointer-events: none; }
.lg-hero .overline::before { margin-top: 0; }
.lg-hero__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(36px, 4.6vw, 68px); line-height: .95; margin-top: 16px; max-width: 900px; }
.lg-hero__lead { font-size: clamp(15px, 1.15vw, 17px); line-height: 1.65; max-width: 620px; margin-top: 20px; }
.lg-hero__date { display: inline-block; margin-top: 24px; padding: 8px 16px; border-radius: 999px; background: rgba(251, 247, 239, .1); font-size: 13px; font-weight: 600; }

.lg-body { padding: clamp(48px, 8vh, 96px) 0 clamp(64px, 10vh, 120px); }
.lg-body__grid { display: grid; grid-template-columns: 260px minmax(0, 780px); gap: clamp(32px, 6vw, 96px); align-items: start; }
.lg-body__grid--solo { grid-template-columns: minmax(0, 780px); }

.lg-toc { position: sticky; top: 110px; padding: 24px; border: 3px solid var(--navy); border-radius: 24px; background: #fff; box-shadow: 6px 6px 0 var(--navy); }
.lg-toc__title { font-family: var(--f-display); font-size: 18px; color: var(--navy); margin-bottom: 14px; }
.lg-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; display: grid; gap: 4px; }
.lg-toc li { counter-increment: toc; }
.lg-toc a { display: flex; gap: 10px; padding: 6px 0; font-size: 14px; line-height: 1.35; font-weight: 500; color: var(--navy); text-decoration: none; transition: color .2s; }
.lg-toc a::before { content: counter(toc, decimal-leading-zero); font-weight: 700; color: var(--red); flex: none; }
.lg-toc a:hover { color: var(--red); }

.lg-text { font-size: 16px; line-height: 1.7; color: var(--ink); counter-reset: part; }
.lg-text > * + * { margin-top: 1em; }
.lg-text h2 { counter-increment: part; display: flex; align-items: baseline; gap: 14px; margin: 2.4em 0 .8em; font-family: var(--f-display); font-weight: 400; font-size: clamp(22px, 2vw, 28px); line-height: 1.1; color: var(--navy); scroll-margin-top: 110px; }
.lg-text h2::before { content: counter(part, decimal-leading-zero); font-size: .7em; color: var(--red); }
.lg-text > h2:first-child { margin-top: 0; }
.lg-text h3 { margin: 1.6em 0 .5em; font-size: 17px; font-weight: 700; color: var(--navy); }
.lg-text ul, .lg-text ol { padding-left: 1.3em; }
.lg-text li + li { margin-top: .35em; }
.lg-text li::marker { color: var(--red); }
.lg-text a { color: var(--red); font-weight: 600; }
.lg-text strong { color: var(--navy); }
.lg-text mark { background: var(--yellow); color: var(--navy); padding: 0 6px; border-radius: 6px; font-weight: 600; }
.lg-text .lg-box { padding: 20px 24px; border-radius: 20px; background: var(--sand); }

/* ---------- Page introuvable (404) ---------- */
.nf { position: relative; overflow: hidden; background: var(--navy); color: var(--paper); padding: clamp(56px, 10vh, 120px) 0; min-height: min(72vh, 760px); display: flex; align-items: center; }
.nf__watermark { position: absolute; left: -6%; top: 50%; width: min(62vw, 900px); translate: 0 -46%; opacity: .05; pointer-events: none; }
.nf__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: clamp(32px, 6vw, 96px); align-items: center; }
.nf .overline::before { margin-top: 0; }
.nf__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(44px, 5.6vw, 88px); line-height: .92; margin-top: 16px; }
.nf__title .line { display: block; }
.nf__script { color: var(--yellow); font-size: clamp(22px, 2vw, 30px); rotate: -4deg; margin: clamp(20px, 3vh, 32px) 0; }
.nf__lead { font-size: clamp(15px, 1.15vw, 17px); line-height: 1.65; max-width: 500px; }
.nf__btns { display: flex; flex-wrap: wrap; gap: 16px; margin-top: clamp(28px, 4vh, 40px); }
.nf__visual { position: relative; display: grid; place-items: center; }
.nf__num { font-family: var(--f-display); font-size: clamp(120px, 17vw, 260px); line-height: 1; color: var(--red); text-shadow: 8px 8px 0 var(--ink); rotate: -6deg; }
.nf__lion { position: absolute; width: 46%; right: -2%; bottom: -14%; rotate: 8deg; }

@media (max-width: 900px) {
  .lg-body__grid { grid-template-columns: minmax(0, 1fr); }
  .lg-toc { position: static; }
  .nf__grid { grid-template-columns: minmax(0, 1fr); }
  .nf__visual { order: -1; justify-self: start; }
  .nf__num { font-size: clamp(96px, 30vw, 160px); }
  .nf__lion { width: 40%; right: -22%; bottom: -6%; }
}
@media (max-width: 560px) {
  .lg-toc { padding: 20px; }
  .lg-text { font-size: 15px; }
  .nf__btns .btn { width: 100%; justify-content: center; }
}

/* ==========================================================================
   Accueil mobile (< 768px) â€” retours nov. 2026
   Â· hero : photo plus grande, placÃ©e entre l'accroche et le bouton, sans pastille
   Â· gamme : le fond couvre tout l'Ã©cran, y compris derriÃ¨re la barre de Safari
   Â· bandeau : dÃ©filement sur sa propre couche (le texte disparaissait sur iPhone)
   ========================================================================== */
@media (max-width: 767px) {
  .home .hero__inner { gap: 0; align-content: center; }
  .home .hero__content { display: contents; }
  .home .hero__content > * { justify-self: start; }
  .home .hero__visual--photo { order: 1; justify-self: center; width: 100%; max-width: min(360px, 86vw, 37svh); margin: clamp(8px, 1.6svh, 20px) 0 0; }
  .home .hero__content .hero__btn { order: 2; justify-self: stretch; margin-top: clamp(20px, 3svh, 32px); }
  .home .hero__pastille { display: none; }

  .gamme__pin { height: 100lvh; }
  .gcard { bottom: calc(46px + 100lvh - 100svh); }

  .banner__track { will-change: transform; backface-visibility: hidden; animation-name: marquee-3d; }
  @keyframes marquee-3d { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
}

/* Carrousel des bouteilles : indication Â« Faites dÃ©filer Â», juste au-dessus du damier */
.gscroll {
  position: absolute; z-index: 6; left: 50%; bottom: 44px; translate: -50% 0;
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px 5px 14px; border-radius: 999px;
  background: var(--paper); border: 2px solid #0f2764; color: #0f2764; cursor: pointer; white-space: nowrap;
  font-family: inherit; font-weight: 700; font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
}
.gscroll__arrow { width: 14px; height: 14px; animation: gscroll-bounce 1.4s ease-in-out infinite; }
@keyframes gscroll-bounce { 50% { transform: translateY(3px); } }
@media (prefers-reduced-motion: reduce) { .gscroll__arrow { animation: none; } }
@media (max-height: 499px) { .gscroll { display: none; } }
/* mobile : la carte remonte pour laisser la place Ã  l'indication */
@media (max-width: 767px) {
  .gscroll { bottom: calc(36px + 100lvh - 100svh); }
  .gcard { bottom: calc(78px + 100lvh - 100svh); }
}