/* ==========================================================================
   BIG MOH'S — couche v2 reprise de yumisu — finition « salon de desserts » (chargée après yumi.css)
   Mobile d'abord. Un seul CTA sur l'accueil, produits détourés qui flottent sur des bulles bleu ciel,
   fonds en fondu (aucun bord franc entre sections), micro-animations sobres.
   ========================================================================== */
:root {
  --bv-cream: #fcf9f0;
  --bv-cream-2: #f6efe0;
  --bv-ink: #1e1714;
  --bv-ink-2: #6b574a;
  --bv-sky: #e0313f;
  --bv-sky-2: #f6d3cf;
  --bv-sky-3: #e8f2fc;
  --bv-blue: #c00717;
  --bv-blue-d: #9e0512;
  --bv-pink: #eeb8ae;
  --bv-shadow: 0 1px 2px rgba(30, 23, 20, 0.05), 0 12px 30px -18px rgba(30, 23, 20, 0.35);
  --bv-shadow-h: 0 2px 4px rgba(30, 23, 20, 0.05), 0 22px 40px -20px rgba(192, 7, 23, 0.55);
  --bv-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

body {
  background:
    radial-gradient(1200px 600px at 100% -10%, rgba(246, 211, 207, 0.55), transparent 60%),
    radial-gradient(900px 500px at -10% 40%, rgba(252, 232, 228, 0.35), transparent 60%),
    var(--bv-cream);
  background-attachment: fixed;
}

/* En-tête : translucide, sans filet ni CTA concurrent sur l'accueil */
.header { background: rgba(252, 249, 240, 0.82) !important; backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid rgba(224, 49, 63, 0.16) !important; box-shadow: none !important; }
body.page-home .header-order { display: none !important; }
.cart-btn { position: relative; }
.cart-count-badge { background: var(--bv-blue) !important; color: #fff !important; animation: bv-pop 0.35s var(--bv-ease); }

.bv-h2 {
  margin: 0;
  color: var(--bv-ink);
  font-family: "Poppins", system-ui, sans-serif;
  
  font-weight: 700;
  font-size: clamp(1.7rem, 6.6vw, 2.6rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}
.bv-h2 em, .bv-hero__title em { color: var(--bv-blue); font-style: italic; font-weight: 600; }

.bv-section { width: min(1180px, 100%); margin: 0 auto; padding: 2.2rem 16px; }
.bv-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.bv-link { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--bv-blue); font-weight: 700; font-size: 0.95rem; text-decoration: none; white-space: nowrap; }
.bv-link svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.25s var(--bv-ease); }
.bv-link:hover svg { transform: translateX(3px); }

/* ---------- Héros ---------- */
.bv-hero { position: relative; overflow: hidden; }
.bv-hero__inner {
  width: min(1180px, 100%); margin: 0 auto; padding: 1.4rem 16px 1.5rem;
  display: grid; gap: 0.5rem;
}
.bv-hero__text { position: relative; z-index: 2; }
.bv-status {
  display: inline-flex; align-items: center; gap: 0.5rem; margin: 0 0 1rem;
  padding: 0.42rem 0.85rem 0.42rem 0.7rem; border-radius: 999px;
  background: #fff; box-shadow: var(--bv-shadow); color: var(--bv-ink-2); font-size: 0.86rem; font-weight: 600;
}
.bv-status__dot { width: 9px; height: 9px; border-radius: 50%; background: #c9b8a8; }
.bv-status.is-open .bv-status__dot { background: #34b36b; box-shadow: 0 0 0 0 rgba(52, 179, 107, 0.5); animation: bv-pulse 2.2s infinite; }
.bv-hero__title {
  margin: 0 0 0.9rem; color: var(--bv-ink);
  font-family: "Poppins", system-ui, sans-serif; 
  font-weight: 750; font-size: clamp(2.45rem, 11.4vw, 4.6rem); line-height: 0.98; letter-spacing: -0.035em;
}
.bv-hero__title em { display: inline-block; text-decoration: underline wavy var(--bv-pink); text-decoration-thickness: 0.06em; text-underline-offset: 0.14em; }
.bv-hero__lead { max-width: 30ch; margin: 0 0 1.4rem; color: var(--bv-ink-2); font-size: 1.06rem; line-height: 1.5; }

.bv-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  min-height: 58px; padding: 0 2rem 0 2.2rem; border-radius: 999px;
  background: var(--bv-blue); color: #fff; font: 700 1.08rem/1 "DM Sans", system-ui, sans-serif; letter-spacing: 0.01em;
  text-decoration: none; box-shadow: 0 14px 28px -12px rgba(192, 7, 23, 0.75), inset 0 -2px 0 rgba(0, 0, 0, 0.12);
  transition: transform 0.25s var(--bv-ease), box-shadow 0.25s var(--bv-ease), background 0.2s;
}
.bv-cta svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.25s var(--bv-ease); }
.bv-cta:hover { background: var(--bv-blue-d); transform: translateY(-2px); box-shadow: 0 18px 34px -12px rgba(192, 7, 23, 0.85); color: #fff; }
.bv-cta:hover svg { transform: translateX(4px); }
.bv-cta:active { transform: translateY(0) scale(0.98); }

.bv-trust { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin: 1.1rem 0 0; padding: 0; list-style: none; color: var(--bv-ink-2); font-size: 0.84rem; font-weight: 600; }
.bv-trust li { display: inline-flex; align-items: center; gap: 0.35rem; }
.bv-trust svg { width: 16px; height: 16px; fill: none; stroke: var(--bv-sky); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.bv-hero__art { position: relative; height: 300px; margin-top: 0.3rem; }
.bv-bubble { position: absolute; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff 0, var(--bv-sky-3) 30%, var(--bv-sky-2) 100%); }
.bv-bubble--a { width: 230px; height: 230px; left: 50%; top: 40px; transform: translateX(-50%); }
.bv-bubble--b { width: 110px; height: 110px; left: 4%; top: 120px; background: radial-gradient(circle at 35% 30%, #fff 0, #fdeef2 40%, #f9d9e1 100%); }
.bv-bubble--c { width: 120px; height: 120px; right: 2%; top: 150px; }
.bv-pearl { position: absolute; width: 14px; height: 14px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #8a6f62, #1e1714); opacity: 0.85; animation: bv-float 5s ease-in-out infinite; }
.bv-pearl--1 { left: 20%; top: 30px; }
.bv-pearl--2 { right: 18%; top: 60px; width: 10px; height: 10px; animation-delay: -1.4s; }
.bv-pearl--3 { left: 46%; bottom: 8px; width: 11px; height: 11px; animation-delay: -2.6s; }
.bv-float { position: absolute; height: auto; filter: drop-shadow(0 18px 18px rgba(30, 23, 20, 0.18)); animation: bv-float 6s ease-in-out infinite; }
.bv-float--2 { width: 230px; left: 50%; top: 8px; margin-left: -115px; z-index: 2; }
.bv-float--1 { width: 150px; left: -4px; top: 92px; animation-delay: -2s; }
.bv-float--3 { width: 170px; right: -14px; top: 128px; animation-delay: -3.5s; z-index: 3; }

/* ---------- Catégories : bulles ---------- */
.bv-cats { padding-top: 1rem; }
.bv-cats .bv-h2 { margin-bottom: 1.1rem; }
.bv-cats__row {
  display: grid; grid-auto-flow: column; grid-auto-columns: 104px; gap: 10px;
  margin: 0 -16px; padding: 4px 16px 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.bv-cats__row::-webkit-scrollbar { display: none; }
.bv-cat { scroll-snap-align: start; display: grid; justify-items: center; gap: 0.15rem; text-align: center; text-decoration: none; color: var(--bv-ink); }
.bv-cat__disc {
  display: grid; place-items: center; width: 96px; height: 96px; margin-bottom: 0.35rem; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0, var(--bv-sky-3) 35%, var(--bv-sky-2) 100%);
  transition: transform 0.35s var(--bv-ease), box-shadow 0.35s var(--bv-ease);
}
.bv-cat__disc img { width: 118%; max-width: none; height: auto; margin-top: -14%; filter: drop-shadow(0 8px 8px rgba(30, 23, 20, 0.18)); transition: transform 0.35s var(--bv-ease); }
.bv-cat strong { font-size: 0.9rem; line-height: 1.15; }
.bv-cat small { color: var(--bv-blue); font-size: 0.78rem; font-weight: 700; }
.bv-cat:hover .bv-cat__disc { transform: translateY(-3px); box-shadow: var(--bv-shadow-h); }
.bv-cat:hover .bv-cat__disc img { transform: scale(1.06) rotate(-3deg); }

/* ---------- Cartes produit (accueil) ---------- */
.bv-best__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bv-card {
  position: relative; display: flex; flex-direction: column; padding: 0.7rem 0.8rem 0.8rem;
  border-radius: 24px; background: #fff; box-shadow: var(--bv-shadow);
  transition: transform 0.35s var(--bv-ease), box-shadow 0.35s var(--bv-ease);
}
.bv-card__link { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.bv-card__disc {
  display: grid; place-items: end center; aspect-ratio: 1; margin-bottom: 0.6rem; border-radius: 18px; overflow: visible;
  background: radial-gradient(70% 60% at 50% 62%, var(--bv-sky-2) 0, var(--bv-sky-3) 60%, rgba(253, 236, 233, 0.35) 100%);
}
.bv-card__disc img { width: 100%; height: auto; filter: drop-shadow(0 12px 12px rgba(30, 23, 20, 0.2)); transition: transform 0.45s var(--bv-ease); }
.bv-card__name { margin: 0 0 0.2rem; color: var(--bv-ink); font: 700 1.02rem/1.15 "Poppins", system-ui, sans-serif;  }
.bv-card__desc { display: none; margin: 0 0 0.6rem; color: var(--bv-ink-2); font-size: 0.86rem; line-height: 1.4; }
.bv-card__foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 0.4rem; }
.bv-price { color: var(--bv-ink); font: 750 1.12rem/1 "DM Sans", system-ui, sans-serif; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.bv-addform { margin: 0; }
.bv-add {
  position: relative; z-index: 2; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%;
  background: var(--bv-blue); color: #fff; cursor: pointer; box-shadow: 0 8px 16px -8px rgba(192, 7, 23, 0.8);
  transition: transform 0.25s var(--bv-ease), background 0.2s;
}
.bv-add svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; }
.bv-add:hover { background: var(--bv-blue-d); transform: scale(1.08); }
.bv-add:active { transform: scale(0.92); }
.bv-add.is-added { background: #34b36b; animation: bv-pop 0.4s var(--bv-ease); }
.bv-add.is-added svg { display: none; }
.bv-add.is-added::after { content: "✓"; font-weight: 800; font-size: 1.1rem; }
.bv-card:hover { transform: translateY(-4px); box-shadow: var(--bv-shadow-h); }
.bv-card:hover .bv-card__disc img { transform: translateY(-6px) rotate(-2deg) scale(1.03); }

/* ---------- Infos ---------- */
.bv-info { padding-bottom: 7rem; }
.bv-info__card { display: grid; gap: 1.4rem; padding: 1.4rem; border-radius: 28px; background: rgba(255, 255, 255, 0.78); box-shadow: var(--bv-shadow); }
.bv-info__addr { margin: 0.8rem 0 0.6rem; color: var(--bv-ink); font-size: 1.02rem; line-height: 1.45; }
.bv-info__modes { display: flex; gap: 0.4rem; margin: 0 0 0.9rem; }
.bv-info__modes span { padding: 0.3rem 0.7rem; border-radius: 999px; background: var(--bv-sky-3); color: var(--bv-blue-d); font-size: 0.8rem; font-weight: 700; }
.bv-hours { margin: 0; padding: 0; list-style: none; }
.bv-hours li { display: flex; justify-content: space-between; padding: 0.55rem 0; border-bottom: 1px dashed rgba(30, 23, 20, 0.12); color: var(--bv-ink-2); font-size: 0.94rem; }
.bv-hours li:last-child { border-bottom: 0; }
.bv-hours li span:first-child { color: var(--bv-ink); font-weight: 600; }

/* Barre collante de l'accueil */
.bm-sticky { background: linear-gradient(180deg, rgba(252, 249, 240, 0), rgba(252, 249, 240, 0.95) 40%) !important; border: 0 !important; box-shadow: none !important; }
.bm-sticky .bm-btn { background: var(--bv-blue); border-color: var(--bv-blue); border-radius: 999px; box-shadow: 0 14px 28px -12px rgba(192, 7, 23, 0.75); }

/* SEO / FAQ de l'accueil : discret, sur fond fondu */
body.page-home .seoext-home { opacity: 0.92; }

/* ---------- Carte (catalogue) ---------- */
body.page-catalog .sticky-nav { background: rgba(252, 249, 240, 0.86) !important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 0 !important; box-shadow: 0 10px 20px -18px rgba(30, 23, 20, 0.4) !important; }
body.page-catalog .category-link { border-radius: 999px !important; border: 1px solid rgba(224, 49, 63, 0.28) !important; background: #fff !important; color: var(--bv-ink) !important; font-weight: 600; transition: background 0.2s, color 0.2s; }
body.page-catalog .category-link.active, body.page-catalog .category-link[aria-current="true"], body.page-catalog .category-link:hover { background: var(--bv-blue) !important; border-color: var(--bv-blue) !important; color: #fff !important; }
body.page-catalog .category-summary { border-left: 0 !important; background: transparent !important; padding-left: 4px !important; }
body.page-catalog .category-summary-title {  letter-spacing: -0.02em; }
body.page-catalog .product-card {
  border: 0 !important; border-radius: 24px !important; background: #fff !important; box-shadow: var(--bv-shadow) !important;
  transition: transform 0.35s var(--bv-ease), box-shadow 0.35s var(--bv-ease);
}
body.page-catalog .product-card:hover { transform: translateY(-3px); box-shadow: var(--bv-shadow-h) !important; }
body.page-catalog .product-index { display: none !important; }
body.page-catalog .product-title { font-family: "Poppins", system-ui, sans-serif !important;  font-weight: 700 !important; font-size: 1.06rem !important; letter-spacing: -0.01em; }
body.page-catalog .product-price { color: var(--bv-ink) !important; font-weight: 750 !important; font-size: 1.12rem !important; font-variant-numeric: tabular-nums; }
body.page-catalog .product-media.has-cut {
  display: grid; place-items: center; overflow: visible !important; border: 0 !important; border-radius: 50% !important;
  background: radial-gradient(circle at 40% 35%, #fff 0, var(--bv-sky-3) 35%, var(--bv-sky-2) 100%) !important;
}
body.page-catalog .product-media.has-cut .product-img--cut { width: 112% !important; height: 112% !important; max-width: none; object-fit: contain !important; filter: drop-shadow(0 8px 8px rgba(30, 23, 20, 0.2)); transition: transform 0.4s var(--bv-ease); }
body.page-catalog .product-card:hover .product-img--cut { transform: translateY(-4px) rotate(-3deg) scale(1.04); }
body.page-catalog .product-actions .btn { border-radius: 999px !important; transition: transform 0.2s var(--bv-ease), background 0.2s; }
body.page-catalog .product-actions .btn:active { transform: scale(0.95); }
body.page-catalog .btn-action.is-added { background: #34b36b !important; border-color: #34b36b !important; animation: bv-pop 0.4s var(--bv-ease); }
body.page-catalog .btn-action.is-added .action-icon { display: none; }
body.page-catalog .btn-action.is-added .bv-lbl { font-size: 0; }
body.page-catalog .btn-action.is-added .bv-lbl::after { content: "✓ Ajouté"; font-size: 0.85rem; }

/* Panier flottant */
.bm-cartbar { box-shadow: 0 18px 40px -14px rgba(192, 7, 23, 0.7) !important; transition: transform 0.35s var(--bv-ease); }
.bm-cartbar[hidden] { display: none !important; }
.bm-cartbar.is-bump { animation: bv-bump 0.45s var(--bv-ease); }
.bm-cartbar__total { background: rgba(255, 255, 255, 0.18) !important; font-variant-numeric: tabular-nums; }

/* Image volante vers le panier */
.bv-ghost { position: fixed; z-index: 9999; pointer-events: none; object-fit: contain; transition: transform 0.6s cubic-bezier(0.5, -0.2, 0.7, 1), opacity 0.6s ease; }

/* ---------- Fiche produit : produit détouré sur bulle ---------- */
body.page-product .bv-pfig { position: relative; display: grid; place-items: center; margin: 0; padding: 1rem 0 0; background: none !important; border: 0 !important; box-shadow: none !important; aspect-ratio: auto !important; }
body.page-product .bv-pfig__disc { position: absolute; width: 78%; aspect-ratio: 1; top: 14%; border-radius: 50%; background: radial-gradient(circle at 38% 32%, #fff 0, var(--bv-sky-3) 35%, var(--bv-sky-2) 100%); }
body.page-product .bv-pfig__img { position: relative; width: min(92%, 440px) !important; height: auto !important; object-fit: contain !important; border-radius: 0 !important; filter: drop-shadow(0 18px 18px rgba(30, 23, 20, 0.2)); animation: bv-float 6s ease-in-out infinite; }
body.page-product .product-detail > .product-media, body.page-product .product-media { background: none !important; border: 0 !important; box-shadow: none !important; }
body.page-product .choice-card { border-radius: 18px !important; transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s; }
body.page-product .choice-card:active { transform: scale(0.98); }
body.page-product .choice-card:has(input:checked) { border-color: var(--bv-blue) !important; box-shadow: 0 0 0 2px rgba(192, 7, 23, 0.25) !important; background: var(--bv-sky-3) !important; }

/* ---------- Animations ---------- */
@keyframes bv-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@keyframes bv-pop { 0% { transform: scale(0.85); } 60% { transform: scale(1.12); } 100% { transform: scale(1); } }
@keyframes bv-bump { 0% { transform: translateX(-50%) scale(1); } 40% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes bv-pulse { 0% { box-shadow: 0 0 0 0 rgba(52, 179, 107, 0.5); } 70% { box-shadow: 0 0 0 8px rgba(52, 179, 107, 0); } 100% { box-shadow: 0 0 0 0 rgba(52, 179, 107, 0); } }

/* ---------- Tablette / desktop ---------- */
@media (min-width: 560px) {
  .bv-best__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .bv-card__desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (min-width: 900px) {
  .bv-section { padding: 3.6rem 24px; }
  .bv-hero__inner { grid-template-columns: 1.05fr 1fr; align-items: center; min-height: min(640px, calc(100vh - 110px)); padding: 2rem 24px 2.5rem; }
  .bv-hero__art { height: 520px; margin: 0; }
  .bv-bubble--a { width: 420px; height: 420px; top: 60px; }
  .bv-bubble--b { width: 170px; height: 170px; left: 2%; top: 250px; }
  .bv-bubble--c { width: 190px; height: 190px; right: 0; top: 300px; }
  .bv-float--2 { width: 400px; margin-left: -200px; top: 0; }
  .bv-float--1 { width: 250px; left: -10px; top: 200px; }
  .bv-float--3 { width: 270px; right: -30px; top: 240px; }
  .bv-hero__lead { font-size: 1.15rem; }
  .bv-cats__row { grid-auto-flow: row; grid-template-columns: repeat(8, minmax(0, 1fr)); grid-auto-columns: auto; margin: 0; padding: 4px 0 10px; overflow: visible; }
  .bv-cat__disc { width: 118px; height: 118px; }
  .bv-best__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .bv-card { padding: 1rem 1.1rem 1.1rem; border-radius: 28px; }
  .bv-card__name { font-size: 1.2rem; }
  .bv-info { padding-bottom: 4rem; }
  .bv-info__card { grid-template-columns: 1.2fr 1fr; padding: 2.2rem 2.4rem; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
  .bv-float, .bv-pearl, .bv-status__dot, body.page-product .bv-pfig__img { animation: none !important; }
  .bv-card, .bv-cat__disc, .bv-cta, .bv-add, body.page-catalog .product-card { transition: none !important; }
}

/* Les couches héritées passent h1-h3 en capitales : pas ici */
.bv-h2, .bv-hero__title, .bv-card__name, .bv-cat strong, body.page-catalog .product-title, body.page-catalog .category-summary-title,
body.page-product .product-title, body.page-catalog .catalog-header h1 { text-transform: none !important; }
@media (max-width: 899px) { .bv-hero__art { height: 260px; } .bv-float--2 { width: 200px; margin-left: -100px; } .bv-bubble--a { width: 200px; height: 200px; } }
body.page-product .product-media, body.page-product .product-media figure.bv-pfig { overflow: visible !important; aspect-ratio: auto !important; height: auto !important; max-height: none !important; }
body.page-product .bv-pfig { padding: 0.5rem 0 1.2rem !important; }
body.page-product .bv-pfig__disc { top: 12%; width: min(74%, 380px); }
