/* ============ TOKENS ============ */
:root{
  --paper:#FBF5F1; --paper-2:#FFFFFF; --card:#FEFAF7;
  --ink:#201217; --muted:#7A626A; --faint:#9C868C;
  --line:#EADDD6; --line-strong:#DFCBC1;
  --accent:#D6402A;        /* orange sanguine */
  --accent-ink:#B22E1D;
  --plum:#5A1E2D;          /* bordeaux profond */
  --gold:#A9843F;
  --glass-liquid:#E15436;
  --shadow:0 1px 2px rgba(40,18,23,.05), 0 18px 40px -22px rgba(40,18,23,.30);
  --font-display:"Fraunces", Georgia, "Times New Roman", serif;
  --font-sans:"Hanken Grotesk", system-ui, -apple-system, sans-serif;
  --maxw:1180px;
  --step--1:.82rem; --step-0:1.06rem; --step-1:1.3rem;
  --step-2:1.72rem; --step-3:2.4rem;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#180C10; --paper-2:#1F1015; --card:#221319;
    --ink:#F3E5DD; --muted:#B99AA1; --faint:#8C6E76;
    --line:#37232B; --line-strong:#4A3039;
    --accent:#F1663F; --accent-ink:#F1663F;
    --plum:#D98FA4; --gold:#D7B778;
    --glass-liquid:#F2673E;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 26px 50px -26px rgba(0,0,0,.7);
  }
}
:root[data-theme="light"]{
  --paper:#FBF5F1; --paper-2:#FFFFFF; --card:#FEFAF7;
  --ink:#201217; --muted:#7A626A; --faint:#9C868C;
  --line:#EADDD6; --line-strong:#DFCBC1;
  --accent:#D6402A; --accent-ink:#B22E1D; --plum:#5A1E2D; --gold:#A9843F;
  --glass-liquid:#E15436;
  --shadow:0 1px 2px rgba(40,18,23,.05), 0 18px 40px -22px rgba(40,18,23,.30);
}
:root[data-theme="dark"]{
  --paper:#180C10; --paper-2:#1F1015; --card:#221319;
  --ink:#F3E5DD; --muted:#B99AA1; --faint:#8C6E76;
  --line:#37232B; --line-strong:#4A3039;
  --accent:#F1663F; --accent-ink:#F1663F; --plum:#D98FA4; --gold:#D7B778;
  --glass-liquid:#F2673E;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 26px 50px -26px rgba(0,0,0,.7);
}

/* ============ BASE ============ */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-sans); font-size:var(--step-0); line-height:1.6;
  -webkit-font-smoothing:antialiased; letter-spacing:.005em;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-display); font-weight:360; margin:0; line-height:1.02; text-wrap:balance; letter-spacing:-.01em}
p{margin:0}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2.5px solid var(--accent); outline-offset:3px; border-radius:3px}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 clamp(1.2rem,4vw,2.6rem)}
.eyebrow{font-size:var(--step--1); letter-spacing:.22em; text-transform:uppercase; font-weight:600; color:var(--accent)}
.muted{color:var(--muted)}

/* ============ TOP RIBBON ============ */
.ribbon{
  background:var(--plum); color:#F6E9E4; text-align:center;
  font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  padding:.5rem 1rem;
}
:root[data-theme="dark"] .ribbon, :root:not([data-theme="light"]) .ribbon{color:#F6E9E4}
.ribbon b{color:var(--gold);font-weight:700}

/* ============ NAV ============ */
header.nav{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--paper) 86%, transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line)}
.nav-in{display:flex; align-items:center; gap:1.5rem; height:72px}
.brand{display:flex; align-items:baseline; gap:.55rem; margin-right:auto}
.mono{font-family:var(--font-display); font-weight:900; font-size:1.85rem; line-height:1; letter-spacing:-.03em}
.mono .p{color:var(--accent)}
.brand .wordmark{font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; font-weight:600; color:var(--muted)}
nav.links{display:flex; gap:1.7rem}
nav.links a{font-size:.86rem; font-weight:500; letter-spacing:.04em; color:var(--ink); opacity:.82; padding:.3rem 0; position:relative}
nav.links a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1.5px; background:var(--accent); transition:right .28s ease}
nav.links a:hover{opacity:1}
nav.links a:hover::after{right:0}
.nav-tools{display:flex; align-items:center; gap:.5rem}
.icon-btn{width:40px;height:40px; display:grid;place-items:center; border:1px solid var(--line-strong); border-radius:999px; background:transparent; color:var(--ink); cursor:pointer; transition:background .2s,border-color .2s}
.icon-btn:hover{background:var(--card); border-color:var(--accent)}
.icon-btn svg{width:18px;height:18px}
.cart-count{position:absolute; margin:-22px 0 0 16px; background:var(--accent); color:#fff; font-size:.62rem; font-weight:700; min-width:16px;height:16px; border-radius:999px; display:grid;place-items:center; padding:0 3px}
@media(max-width:860px){ nav.links{display:none} }

/* ============ BUTTONS ============ */
.btn{display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-sans); font-weight:600; font-size:.92rem; letter-spacing:.02em; padding:.85rem 1.5rem; border-radius:999px; cursor:pointer; border:1.5px solid transparent; transition:transform .15s ease, background .2s, color .2s, border-color .2s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent); color:#fff}
.btn-primary:hover{background:var(--accent-ink)}
.btn-ghost{border-color:var(--line-strong); color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent)}

/* ============ HERO ============ */
.hero{position:relative; padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem); overflow:hidden}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center}
.hero-copy .eyebrow{margin-bottom:1.3rem; display:inline-block}
.hero h1{font-size:clamp(3rem,8.5vw,6.6rem); font-weight:360; letter-spacing:-.025em}
.hero h1 em{font-style:italic; color:var(--accent)}
.hero-lede{font-size:clamp(1.05rem,1.7vw,1.28rem); color:var(--muted); max-width:34ch; margin:1.5rem 0 2.1rem; line-height:1.55}
.hero-cta{display:flex; gap:.8rem; flex-wrap:wrap}
.hero-meta{display:flex; gap:1.8rem; margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--line)}
.hero-meta .n{font-family:var(--font-display); font-weight:900; font-size:1.9rem; line-height:1; color:var(--ink)}
.hero-meta .l{font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); margin-top:.35rem}
.hero-visual{position:relative; display:grid; place-items:center; min-height:360px}
.glow{position:absolute; width:100%; max-width:100%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, color-mix(in srgb,var(--accent) 40%, transparent) 0%, transparent 62%); filter:blur(8px); z-index:0; animation:pulse 7s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.75} 50%{transform:scale(1.08);opacity:1}}

/* Coupe glass SVG wrapper */
.coupe{position:relative; z-index:1; width:min(360px,80%); filter:drop-shadow(0 24px 30px rgba(90,30,45,.28))}
.bubble{animation:rise 3.4s ease-in infinite}
.bubble:nth-child(2){animation-delay:.9s}
.bubble:nth-child(3){animation-delay:1.7s}
.bubble:nth-child(4){animation-delay:2.4s}
@keyframes rise{0%{transform:translateY(0);opacity:0} 15%{opacity:.9} 80%{opacity:.7} 100%{transform:translateY(-46px);opacity:0}}
.tag-float{position:absolute; z-index:2; background:var(--paper-2); border:1px solid var(--line-strong); border-radius:14px; padding:.7rem .95rem; box-shadow:var(--shadow); font-size:.8rem}
.tag-float.t1{top:8%; right:-2%; animation:float 5s ease-in-out infinite}
.tag-float.t2{bottom:10%; left:-4%; animation:float 6s ease-in-out infinite .6s}
.tag-float .k{font-family:var(--font-display); font-weight:900; color:var(--accent); font-size:1.05rem}
@keyframes float{0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)}}
@media(max-width:820px){ .hero-grid{grid-template-columns:1fr} .hero-visual{order:-1; min-height:300px} }

/* ============ SECTION HEADERS ============ */
.sec{padding:clamp(3rem,7vw,6rem) 0}
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:2.6rem}
.sec-head h2{font-size:clamp(2rem,4.5vw,3.2rem)}
.sec-head .idx{font-size:var(--step--1); letter-spacing:.2em; text-transform:uppercase; color:var(--faint); font-weight:600; margin-bottom:.7rem}
.link-more{font-weight:600; font-size:.9rem; color:var(--accent); white-space:nowrap; border-bottom:1.5px solid transparent; padding-bottom:2px; transition:border-color .2s}
.link-more:hover{border-color:var(--accent)}

/* ============ COCKTAIL CARDS ============ */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem}
@media(max-width:820px){.card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.card-grid{grid-template-columns:1fr}}
.ccard{background:var(--card); border:1px solid var(--line); border-radius:20px; overflow:hidden; transition:transform .22s ease, box-shadow .22s ease, border-color .22s; display:flex; flex-direction:column}
.ccard:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--line-strong)}
.ccard .thumb{aspect-ratio:4/3; position:relative; display:grid; place-items:center; overflow:hidden}
.ccard .thumb svg{width:56%; filter:drop-shadow(0 8px 12px rgba(90,30,45,.25))}
.ccard .cat{position:absolute; top:.8rem; left:.8rem; background:color-mix(in srgb,var(--paper) 82%, transparent); backdrop-filter:blur(6px); color:var(--ink); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; padding:.32rem .6rem; border-radius:999px; border:1px solid var(--line)}
.ccard .body{padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.5rem; flex:1}
.ccard h3{font-size:1.42rem}
.ccard .desc{font-size:.92rem; color:var(--muted); line-height:1.5; flex:1}
.ccard .meta{display:flex; gap:1rem; font-size:.76rem; color:var(--faint); letter-spacing:.03em; margin-top:.4rem; align-items:center}
.ccard .meta .dot{width:3px;height:3px;border-radius:50%;background:var(--faint)}

/* thumb backgrounds — mixology hues */
.bg-sanguine{background:linear-gradient(150deg,#F4C4A0,#E8734B)}
.bg-mint{background:linear-gradient(150deg,#CDE7CE,#7FB88A)}
.bg-berry{background:linear-gradient(150deg,#E7B7C9,#B25C86)}
.bg-citrus{background:linear-gradient(150deg,#F6E19A,#E9B44C)}
.bg-plum{background:linear-gradient(150deg,#D9B8CE,#8E4E77)}
.bg-noir{background:linear-gradient(150deg,#C9B7BD,#6E4550)}

/* ============ CONFESSION BAND ============ */
.confession{background:var(--plum); color:#F7EBE6; border-radius:28px; padding:clamp(2.5rem,6vw,5rem); text-align:center; position:relative; overflow:hidden}
:root[data-theme="dark"] .confession, :root:not([data-theme="light"]) .confession{background:#2A1119}
.confession .qmark{font-family:var(--font-display); font-weight:900; font-size:9rem; line-height:.6; color:var(--gold); opacity:.5; height:.5em}
.confession blockquote{font-family:var(--font-display); font-style:italic; font-weight:360; font-size:clamp(1.7rem,4.2vw,3rem); line-height:1.15; max-width:20ch; margin:1rem auto 1.4rem; text-wrap:balance}
.confession .attr{font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:600}

/* ============ BOUTIQUE ============ */
.shop-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem}
@media(max-width:900px){.shop-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.shop-grid{grid-template-columns:1fr 1fr}}
.pcard{display:flex; flex-direction:column; gap:.7rem}
.pcard .pimg{aspect-ratio:1; border-radius:18px; border:1px solid var(--line); display:grid; place-items:center; position:relative; overflow:hidden; transition:border-color .2s}
.pcard .pimg svg{width:52%}
.pcard:hover .pimg{border-color:var(--accent)}
.pcard .add{position:absolute; bottom:.7rem; right:.7rem; width:38px;height:38px; border-radius:999px; background:var(--ink); color:var(--paper); border:none; display:grid;place-items:center; cursor:pointer; opacity:0; transform:translateY(6px); transition:.2s}
.pcard:hover .add{opacity:1; transform:none}
.pcard .add:hover{background:var(--accent); color:#fff}
.pcard h3{font-family:var(--font-sans); font-weight:600; font-size:.98rem; line-height:1.3}
.pcard .price{font-family:var(--font-display); font-weight:900; font-size:1.05rem}
.pcard .ptag{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); font-weight:600}

/* ============ NEWSLETTER ============ */
.news{border:1px solid var(--line-strong); border-radius:28px; padding:clamp(2.2rem,5vw,3.6rem); background:var(--card); display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:center}
@media(max-width:760px){.news{grid-template-columns:1fr}}
.news h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.news p{color:var(--muted); margin-top:.8rem; max-width:38ch}
.news form{display:flex; gap:.6rem; flex-wrap:wrap}
.news input{flex:1; min-width:180px; padding:.9rem 1.1rem; border-radius:999px; border:1.5px solid var(--line-strong); background:var(--paper-2); color:var(--ink); font-family:inherit; font-size:.95rem}
.news input:focus{outline:none; border-color:var(--accent)}
.news .fine{font-size:.74rem; color:var(--faint); margin-top:.8rem}

/* ============ FOOTER ============ */
footer{border-top:1px solid var(--line); margin-top:clamp(3rem,7vw,6rem); padding:clamp(2.5rem,5vw,4rem) 0 2.5rem}
.foot-grid{display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; align-items:flex-start}
.foot-brand .mono{font-size:2.4rem}
.foot-brand p{color:var(--muted); font-size:.9rem; margin-top:.6rem; max-width:26ch}
.socials{display:flex; gap:.6rem; margin-top:1.2rem}
.socials a{width:42px;height:42px;border:1px solid var(--line-strong); border-radius:999px; display:grid;place-items:center; transition:.2s}
.socials a:hover{background:var(--accent); border-color:var(--accent); color:#fff}
.socials svg{width:19px;height:19px}
.foot-col h4{font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); font-weight:700; margin-bottom:1rem}
.foot-col a{display:block; color:var(--ink); opacity:.8; font-size:.92rem; padding:.28rem 0; transition:.15s}
.foot-col a:hover{opacity:1; color:var(--accent)}
.foot-base{margin-top:2.5rem; padding-top:1.6rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.8rem; color:var(--faint)}

.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1; transform:none}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important}
  .reveal{opacity:1; transform:none}
}

/* ============ ADAPTATIONS VRAIES IMAGES (thème WP) ============ */
.ccard .thumb img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.ccard .thumb .thumb-fallback{position:absolute; inset:0; display:grid; place-items:center}
.pcard .pimg img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:inherit}
.pcard .pimg .thumb-fallback{position:absolute; inset:0; display:grid; place-items:center}
.ccard .thumb .thumb-fallback svg, .pcard .pimg .thumb-fallback svg{width:52%}
.price ins{text-decoration:none}
.price del{opacity:.5; font-weight:400; font-size:.85em; margin-right:.35rem}
.ccard a.card-link{color:inherit; display:flex; flex-direction:column; height:100%}

/* Bandeau site de test */
.stg-ribbon{background:#3a1620; color:#F6E9E4; text-align:center; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; padding:.45rem 1rem}
.stg-ribbon b{color:var(--gold)}

/* Barre admin WP : garder le sticky nav sous elle */
body.admin-bar header.nav{top:32px}
@media(max-width:782px){ body.admin-bar header.nav{top:46px} }

/* Étiquette flottante cliquable (recette de la semaine) */
a.tag-float{color:inherit; text-decoration:none; transition:transform .15s ease, box-shadow .2s}
a.tag-float:hover{transform:translateY(-4px); box-shadow:0 14px 30px -14px rgba(90,30,45,.5)}

/* ============ CONTENU D'ARTICLE ============ */
.fp-content{font-size:1.08rem; line-height:1.75}
.fp-content > *{margin-bottom:1.3rem}
.fp-content h2{font-size:1.9rem; margin:2.2rem 0 1rem}
.fp-content h3{font-size:1.45rem; margin:1.8rem 0 .8rem}
.fp-content a{color:var(--accent); text-decoration:underline; text-underline-offset:3px}
.fp-content img{border-radius:14px; height:auto}
.fp-content ul,.fp-content ol{padding-left:1.4rem}
.fp-content li{margin-bottom:.5rem}
.fp-content blockquote{border-left:3px solid var(--accent); padding-left:1.2rem; font-family:var(--font-display); font-style:italic; font-size:1.3rem; color:var(--muted)}
.fp-content figure{margin:1.5rem 0}
.pagination .page-numbers{display:inline-grid; place-items:center; min-width:42px; height:42px; padding:0 .6rem; border:1px solid var(--line-strong); border-radius:999px; margin:0 .2rem; font-weight:600; font-size:.9rem}
.pagination .page-numbers.current{background:var(--accent); color:#fff; border-color:var(--accent)}
.pagination a.page-numbers:hover{border-color:var(--accent); color:var(--accent)}

/* ============================================================
   WOOCOMMERCE — habillage « Cocktail Éditorial »
   ============================================================ */
.fp-shop .woocommerce-products-header,
.woocommerce-page:not(.woocommerce-cart):not(.woocommerce-checkout) .page-title{margin-bottom:2rem}
.woocommerce-products-header__title,
.fp-shop .product_title,
.woocommerce .page-title{font-family:var(--font-display); font-weight:360; font-size:clamp(2rem,4.5vw,3rem); line-height:1.05}
.term-description,.woocommerce-products-header p{color:var(--muted)}

/* Barre tri + décompte */
.woocommerce-result-count{color:var(--faint); font-size:.85rem}
.woocommerce-ordering select,
.woocommerce .select2-selection,
.fp-shop select{border:1.5px solid var(--line-strong); border-radius:999px; padding:.5rem 1rem; background:var(--card); color:var(--ink); font-family:inherit; font-size:.88rem}

/* Grille de produits */
.woocommerce ul.products[class],
.woocommerce-page ul.products[class]{display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; margin:0 0 2rem; padding:0}
@media(max-width:900px){ .woocommerce ul.products[class],.woocommerce-page ul.products[class]{grid-template-columns:1fr 1fr} }
@media(max-width:520px){ .woocommerce ul.products[class],.woocommerce-page ul.products[class]{grid-template-columns:1fr 1fr; gap:1rem} }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{width:auto; margin:0; float:none; text-align:left; display:flex; flex-direction:column; gap:.55rem}
.woocommerce ul.products li.product a img{border-radius:18px; border:1px solid var(--line); margin:0 0 .4rem; transition:border-color .2s}
.woocommerce ul.products li.product a:hover img{border-color:var(--accent)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--font-sans); font-weight:600; font-size:.98rem; line-height:1.3; padding:0; color:var(--ink)}
.woocommerce ul.products li.product .price{color:var(--ink); font-family:var(--font-display); font-weight:900; font-size:1.05rem}
.woocommerce ul.products li.product .price del{opacity:.5; font-weight:400; font-size:.85em; margin-right:.35rem}
.woocommerce ul.products li.product .price ins{text-decoration:none}
.woocommerce ul.products li.product .star-rating{margin:.1rem 0; color:var(--gold)}

/* Badge « Promo » */
.woocommerce span.onsale{background:var(--accent); color:#fff; border-radius:999px; min-height:0; min-width:0; line-height:1; padding:.4rem .7rem; font-size:.72rem; font-weight:700; letter-spacing:.04em; top:.7rem; left:.7rem; margin:0}

/* Boutons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button, .wc-block-components-button{
	background:var(--accent) !important; color:#fff !important; border:0 !important;
	border-radius:999px !important; font-family:var(--font-sans) !important; font-weight:600 !important;
	letter-spacing:.02em; padding:.8rem 1.5rem !important; font-size:.92rem !important;
	text-transform:none !important; transition:background .2s, transform .15s !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .single_add_to_cart_button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover{background:var(--accent-ink) !important; transform:translateY(-1px)}
.woocommerce a.button.added, .woocommerce .added_to_cart{margin-top:.4rem}
.woocommerce a.button.wc-backward, .woocommerce .button.wc-forward{display:inline-block}

/* Fiche produit */
.woocommerce div.product{display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:start}
@media(max-width:820px){ .woocommerce div.product{grid-template-columns:1fr} }
.woocommerce div.product .woocommerce-product-gallery{margin:0; width:100% !important; float:none}
.woocommerce div.product .woocommerce-product-gallery img{border-radius:20px}
.woocommerce div.product .summary{margin:0 !important; width:100% !important; float:none}
.woocommerce div.product .product_title{font-family:var(--font-display); font-weight:360; font-size:clamp(2rem,4vw,3rem); line-height:1.05; margin-bottom:.6rem}
.woocommerce div.product p.price, .woocommerce div.product span.price{color:var(--accent); font-family:var(--font-display); font-weight:900; font-size:1.8rem}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--muted); line-height:1.65; margin:1rem 0}
.woocommerce .quantity .qty{border:1.5px solid var(--line-strong); border-radius:999px; padding:.6rem; background:var(--card); color:var(--ink); width:4.5rem}
.woocommerce div.product form.cart{display:flex; gap:.7rem; align-items:center; flex-wrap:wrap; margin:1.4rem 0}
.woocommerce div.product .product_meta{font-size:.85rem; color:var(--faint); margin-top:1.2rem}
.woocommerce div.product .product_meta a{color:var(--accent)}

/* Onglets */
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0; margin:2.5rem 0 0}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-color:var(--line)}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:transparent; border:0; border-radius:0; padding:0 1.2rem 0 0}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--accent)}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-family:var(--font-sans); font-weight:600; color:var(--muted)}

/* Produits liés */
.woocommerce .related.products > h2, .woocommerce .up-sells > h2, .woocommerce .cross-sells > h2{font-family:var(--font-display); font-weight:360; font-size:2rem; margin:3rem 0 1.5rem}

/* Panier */
.woocommerce table.shop_table{border:1px solid var(--line); border-radius:16px; border-collapse:separate}
.woocommerce table.shop_table th{font-family:var(--font-sans); font-weight:600; color:var(--ink)}
.woocommerce table.shop_table td{border-top:1px solid var(--line); color:var(--ink)}
.woocommerce .cart_totals h2, .woocommerce-checkout h3{font-family:var(--font-display); font-weight:360}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{font-size:1rem !important; padding:1rem 1.5rem !important; text-align:center}
.woocommerce a.remove{color:var(--accent) !important; border-color:var(--accent)}
.woocommerce .coupon .input-text{border:1.5px solid var(--line-strong); border-radius:999px; padding:.7rem 1rem; background:var(--card); color:var(--ink)}

/* Messages / notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error{border-top-color:var(--accent); background:var(--card); border-radius:12px; color:var(--ink)}
.woocommerce-message::before, .woocommerce-info::before{color:var(--accent)}

/* Fil d'Ariane */
.woocommerce-breadcrumb{color:var(--faint); font-size:.82rem; margin-bottom:1.5rem}
.woocommerce-breadcrumb a{color:var(--muted)}

/* Neutraliser les pseudo-éléments clearfix de WooCommerce (sinon 1re case de grille vide) */
.woocommerce ul.products[class]::before,
.woocommerce ul.products[class]::after,
.woocommerce-page ul.products[class]::before,
.woocommerce-page ul.products[class]::after{content:none !important; display:none !important}

/* ============ BANDEAU TÉMOINS (COOKIES) ============ */
.fp-cookies{position:fixed; left:0; right:0; bottom:0; z-index:200; background:var(--paper-2); border-top:1px solid var(--line-strong); box-shadow:0 -12px 34px -20px rgba(40,18,23,.45); padding:1rem clamp(1rem,4vw,2rem); animation:fp-cookies-up .4s cubic-bezier(.2,.7,.2,1)}
@keyframes fp-cookies-up{from{transform:translateY(100%)} to{transform:none}}
.fp-cookies-in{max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap}
.fp-cookies p{font-size:.9rem; color:var(--muted); flex:1; min-width:250px; line-height:1.5; margin:0}
.fp-cookies p a{color:var(--accent); text-decoration:underline; text-underline-offset:2px}
.fp-cookies-btns{display:flex; gap:.6rem; flex-shrink:0}
.fp-cookies .btn{padding:.62rem 1.3rem; font-size:.88rem}
@media (prefers-reduced-motion:reduce){ .fp-cookies{animation:none} }
@media(max-width:560px){ .fp-cookies-btns{width:100%} .fp-cookies-btns .btn{flex:1} }

/* ============ CONTENU COLLÉ (Google Docs, etc.) ============ */
/* Corrige les puces désalignées (marge du <p> dans les <li>), uniformise la
   police, et force une couleur héritée (sinon texte noir = invisible en sombre). */
.fp-content li > p{ margin: 0 !important; font-size: inherit !important; line-height: 1.6 !important; }
.fp-content li{ white-space: normal !important; }
.fp-content p, .fp-content li, .fp-content span, .fp-content div{ font-family: var(--font-sans) !important; color: inherit !important; }
.fp-content [style*="background-color: #ffffff"], .fp-content [style*="background-color:#ffffff"]{ background: transparent !important; }

/* Monogramme discret sur le visuel de secours (dernier recours) */
.thumb-fallback .tf-mono{position:absolute; top:.7rem; left:.85rem; font-family:var(--font-display); font-weight:900; font-size:1.5rem; line-height:1; color:#fff; opacity:.55}

/* ============================================================
   MENU MOBILE
   ============================================================ */
.nav-burger{display:none}
.nav-in{flex-wrap:nowrap}
.nav-tools{flex-shrink:0}
.brand{min-width:0}
@media(max-width:860px){
  nav.links{display:none}
  .nav-burger{display:grid}
  .brand .wordmark{display:none}
}
.fp-mobile{position:fixed; inset:0; z-index:300; background:var(--paper); display:flex; flex-direction:column; padding:1rem clamp(1.3rem,6vw,2rem) 2rem; animation:fp-mob-in .26s cubic-bezier(.2,.7,.2,1)}
.fp-mobile[hidden]{display:none}
@keyframes fp-mob-in{from{opacity:0; transform:translateY(-10px)} to{opacity:1; transform:none}}
.fp-mobile-top{display:flex; align-items:center; justify-content:space-between; padding-bottom:1rem; border-bottom:1px solid var(--line)}
.fp-mobile-top .mono{font-family:var(--font-display); font-weight:900; font-size:1.9rem; line-height:1; color:var(--ink); text-decoration:none}
.fp-mobile-top .mono .p{color:var(--accent)}
.fp-mobile-nav{display:flex; flex-direction:column; flex:1; justify-content:center; gap:.1rem}
.fp-mobile-nav a{font-family:var(--font-display); font-weight:360; font-size:clamp(1.9rem,8.5vw,2.9rem); line-height:1.15; color:var(--ink); text-decoration:none; padding:.5rem 0; border-bottom:1px solid var(--line); transition:color .15s, transform .12s}
.fp-mobile-nav a:active{color:var(--accent); transform:scale(.98)}
.fp-mobile-nav a:last-child{color:var(--accent)}
.fp-mobile-foot{padding-top:1.4rem; border-top:1px solid var(--line)}
.fp-mobile-socials{display:flex; gap:.7rem}
.fp-mobile-socials a{width:50px; height:50px; border:1px solid var(--line-strong); border-radius:999px; display:grid; place-items:center; color:var(--ink); transition:.2s}
.fp-mobile-socials a:active{background:var(--accent); border-color:var(--accent); color:#fff}
.fp-mobile-socials svg{width:21px; height:21px}
body.fp-menu-open{overflow:hidden}

/* Sécurité anti-débordement horizontal sur mobile (héros) */
.hero-visual{max-width:100%}
@media(max-width:820px){
  .hero-visual{overflow:visible}
  .tag-float.t1{right:2%}
  .tag-float.t2{left:2%}
  .coupe{width:min(300px,70%)}
}

/* Polish mobile : statistiques du héros + respirations */
@media(max-width:560px){
  .hero-meta{gap:1.1rem 1.4rem; flex-wrap:wrap}
  .hero-meta .n{font-size:1.55rem}
  .hero-cta .btn{flex:1 1 auto; justify-content:center}
}

/* ============================================================
   VISUELS HTML ANIMÉS (articles bien-être / jokes) — [fp_viz]
   ============================================================ */
.viz{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;display:grid;place-items:center;margin:0 0 1.8rem;box-shadow:var(--shadow)}
.viz .lab{position:absolute;top:.9rem;left:1.1rem;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;z-index:8;color:#fff;opacity:.9}
.viz .cap{position:absolute;bottom:.9rem;right:1.1rem;font-family:var(--font-display);font-weight:900;font-size:1.05rem;color:#fff;z-index:8;opacity:.95}
.v-detox{background:radial-gradient(120% 120% at 70% 20%,#43202c,#160a0f)}
.v-detox .moon{position:relative;overflow:hidden;width:78px;height:78px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#ffd9a8,#F1663F);box-shadow:0 0 40px 6px #f1663f66;animation:fpv-glow 4s ease-in-out infinite}
.v-detox .moon::after{content:"";position:absolute;width:78px;height:78px;border-radius:50%;transform:translate(22px,-14px);background:#160a0f}
.v-detox .star{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;animation:fpv-twinkle 3s ease-in-out infinite}
.v-detox .s1{top:26%;left:20%}.v-detox .s2{top:60%;left:30%;animation-delay:.8s}.v-detox .s3{top:70%;left:70%;animation-delay:1.5s}.v-detox .s4{top:35%;left:78%;animation-delay:2.1s}
.v-detox .zzz{position:absolute;bottom:22%;left:22%;font-family:var(--font-display);font-weight:900;color:#fff;opacity:.5;font-size:1.4rem;animation:fpv-floaty 4s ease-in-out infinite}
@keyframes fpv-glow{0%,100%{box-shadow:0 0 30px 4px #f1663f55;transform:scale(1)}50%{box-shadow:0 0 55px 10px #f1663f88;transform:scale(1.05)}}
@keyframes fpv-twinkle{0%,100%{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}
@keyframes fpv-floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.v-sun{background:linear-gradient(180deg,#F7C9A0 0%,#E8734B 60%,#D6402A 100%)}
.v-sun .rays{position:absolute;width:220px;height:220px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#fff4 0deg 8deg,transparent 8deg 22deg);animation:fpv-spin 22s linear infinite;top:38%}
.v-sun .sun{position:relative;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff,#FBD9B8);box-shadow:0 0 50px 10px #ffffff88;animation:fpv-risesun 5s ease-in-out infinite}
@keyframes fpv-spin{to{transform:rotate(360deg)}}
@keyframes fpv-risesun{0%,100%{transform:translateY(14px)}50%{transform:translateY(-6px)}}
.v-nap{background:linear-gradient(160deg,#3a2140,#1a0f1e)}
.v-nap .pillow{width:150px;height:52px;border-radius:26px;background:linear-gradient(180deg,#d9b8ce,#8E4E77);position:absolute;bottom:16%;box-shadow:0 10px 24px rgba(0,0,0,.35)}
.v-nap .z{position:absolute;font-family:var(--font-display);font-weight:900;color:#fff;opacity:0;animation:fpv-znap 4s ease-in infinite}
.v-nap .z1{left:44%;bottom:42%;font-size:1.3rem}.v-nap .z2{left:52%;bottom:42%;font-size:1.8rem;animation-delay:1.2s}.v-nap .z3{left:60%;bottom:42%;font-size:2.4rem;animation-delay:2.4s}
@keyframes fpv-znap{0%{opacity:0;transform:translateY(0) rotate(0)}20%{opacity:.9}100%{opacity:0;transform:translateY(-70px) rotate(12deg)}}
.v-breath{background:radial-gradient(120% 120% at 50% 50%,#2a3b34,#141c19)}
.v-breath .ring{position:absolute;border-radius:50%;border:2px solid #a9d6b8;opacity:.5}
.v-breath .r1{width:70px;height:70px;animation:fpv-breathe 8s ease-in-out infinite}
.v-breath .r2{width:130px;height:130px;animation:fpv-breathe 8s ease-in-out infinite;border-color:#7fb88a}
.v-breath .r3{width:190px;height:190px;animation:fpv-breathe 8s ease-in-out infinite;border-color:#5c9e6e}
.v-breath .dot{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle,#eafff0,#a9d6b8);z-index:2;animation:fpv-breathe 8s ease-in-out infinite}
.v-breath .txt{position:absolute;bottom:16%;font-family:var(--font-display);font-style:italic;color:#eafff0;font-size:1.1rem;animation:fpv-swap 8s ease-in-out infinite}
@keyframes fpv-breathe{0%,100%{transform:scale(.75)}45%,55%{transform:scale(1.15)}}
@keyframes fpv-swap{0%,45%{opacity:.9}50%,100%{opacity:.4}}
.v-love{background:radial-gradient(120% 120% at 50% 30%,#f2c4c9,#b25c86)}
.v-love svg{width:96px;height:96px;filter:drop-shadow(0 6px 16px rgba(120,30,60,.4));animation:fpv-beat 1.6s ease-in-out infinite;z-index:2}
.v-love .spark{position:absolute;color:#fff;font-size:1.1rem;animation:fpv-twinkle 2.4s ease-in-out infinite}
.v-love .k1{top:24%;left:26%}.v-love .k2{top:64%;left:70%;animation-delay:.7s}.v-love .k3{top:30%;left:74%;animation-delay:1.3s}.v-love .k4{bottom:20%;left:32%;animation-delay:1.9s}
@keyframes fpv-beat{0%,100%{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1)}45%{transform:scale(1.12)}}
/* helpers contenu bien-être */
.fp-content .aside{color:var(--muted);font-style:italic}
.fp-content .kicker{font-family:var(--font-display);font-style:italic;font-size:1.3rem;color:var(--accent);margin:1.4rem 0 0}
.badge18{display:inline-block;background:var(--plum);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.1em;padding:.2rem .45rem;border-radius:6px;vertical-align:middle;margin-left:.35rem}
@media(prefers-reduced-motion:reduce){.viz *{animation:none !important}}

/* ============ SECTION JOKES & FARCES 18+ ============ */
.fp-18-notice{display:flex;gap:.9rem;align-items:center;background:var(--plum);color:#F7EBE6;border-radius:16px;padding:1rem 1.3rem;margin:0 0 2rem;font-size:.95rem}
:root[data-theme="dark"] .fp-18-notice,:root:not([data-theme="light"]) .fp-18-notice{background:#2A1119}
.fp-18-notice .big{font-family:var(--font-display);font-weight:900;font-size:1.8rem;color:var(--gold);line-height:1;flex-shrink:0}
.fp-jokes{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin:1.5rem 0}
@media(max-width:620px){.fp-jokes{grid-template-columns:1fr}}
.joke{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.3rem 1.4rem;position:relative;display:flex;flex-direction:column;gap:.5rem;transition:transform .2s,border-color .2s,box-shadow .2s}
.joke:hover{transform:translateY(-4px);border-color:var(--line-strong);box-shadow:var(--shadow)}
.joke .jtag{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:.5rem}
.joke .jtag .b18{background:var(--plum);color:#fff;padding:.12rem .4rem;border-radius:5px;font-size:.58rem}
.joke p{margin:0;font-size:1.02rem;line-height:1.5;color:var(--ink)}
.joke .pun{font-family:var(--font-display);font-style:italic;font-size:1.12rem;color:var(--accent)}

/* Articles similaires (bas d'article) */
.fp-related{margin-top:clamp(2.5rem,6vw,4rem);padding-top:2.2rem;border-top:1px solid var(--line)}
.fp-related .sec-head{margin-bottom:1.6rem}
.fp-related .ccard h3{font-size:1.25rem}
/* Message d'infolettre */
.fp-news-msg{padding:.75rem 1rem;border-radius:12px;font-size:.92rem;margin:0 0 1rem;line-height:1.4}
.fp-news-msg.ok{background:color-mix(in srgb,#8FA98C 20%,transparent);border:1px solid #8FA98C;color:var(--ink)}
.fp-news-msg.err{background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid var(--accent);color:var(--ink)}

/* ============ MENU DÉROULANT « Les Cocktails » ============ */
.nav-drop{position:relative;display:flex;align-items:center}
.nav-drop-toggle{display:inline-flex;align-items:center;gap:.28rem}
.nav-drop-toggle svg{width:12px;height:12px;opacity:.7;transition:transform .2s}
.nav-drop:hover .nav-drop-toggle svg,.nav-drop:focus-within .nav-drop-toggle svg{transform:rotate(180deg)}
.nav-drop::after{content:"";position:absolute;top:100%;left:0;right:0;height:.6rem}
.nav-drop-panel{position:absolute;top:100%;left:-.6rem;margin-top:.5rem;background:var(--paper-2);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);padding:.5rem;min-width:220px;display:grid;gap:.05rem;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:60}
.nav-drop:hover .nav-drop-panel,.nav-drop:focus-within .nav-drop-panel{opacity:1;visibility:visible;transform:none}
.nav-drop-panel a{display:block;padding:.5rem .7rem;border-radius:9px;font-size:.86rem;font-weight:500;color:var(--ink);opacity:.85;white-space:nowrap}
.nav-drop-panel a::after{display:none !important}
.nav-drop-panel a:hover{background:var(--card);color:var(--accent);opacity:1}
/* mobile : sous-catégories en pastilles */
.fp-mobile-sub{display:flex;flex-wrap:wrap;gap:.45rem;margin:-.1rem 0 1.1rem}
.fp-mobile-sub a{font-family:var(--font-sans);font-weight:500;font-size:.82rem;padding:.38rem .8rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);text-decoration:none;line-height:1}
.fp-mobile-sub a:active{background:var(--accent);border-color:var(--accent);color:#fff}

/* ============ PARTAGE D'ARTICLE ============ */
.fp-share{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:2.2rem 0 0;padding-top:1.6rem;border-top:1px solid var(--line)}
.fp-share-label{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--faint);margin-right:.3rem}
.fp-sh{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;transition:transform .15s,background .2s,border-color .2s,color .2s}
.fp-sh:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px)}
.fp-sh svg{width:18px;height:18px}
.fp-copied{font-size:.82rem;color:#8FA98C;font-weight:600;margin-left:.3rem}

/* ============ PLACEHOLDER MARQUE « Fp » (aucune photo) ============ */
.tf-fp{font-family:var(--font-display);font-weight:900;font-size:clamp(2.6rem,7vw,4rem);line-height:1;letter-spacing:-.03em;color:#fff;opacity:.95}
.tf-fp .p{opacity:.72}
