/* FloraCrochet : carte « petit compagnon » au-dessus du bouton d'achat. */
.flora-bb-page .fu-card { display: none; }
.p-buy form.cart .fu-card {
  display: flex; align-items: center; gap: 12px; width: 100%; box-sizing: border-box;
  margin: 0 0 12px; padding: 10px 12px; border: 1px solid #e8e6e2; background: #fff; cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.fu-card:hover { border-color: #b9b2a6; }
.fu-card:has(.fu-check:checked) { border-color: #000; box-shadow: inset 0 0 0 1px #000; }
.fu-check { position: absolute; opacity: 0; pointer-events: none; }
.fu-img { position: relative; flex: 0 0 56px; height: 56px; background: #f6f5f3; }
.fu-img > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fu-zoom, .fu-mag { display: none; }

/* Ordinateur : la photo s'agrandit au survol de la vignette */
@media (hover: hover) and (pointer: fine) {
  .fu-img { cursor: zoom-in; }
  .fu-zoom {
    position: absolute; left: -8px; bottom: calc(100% + 12px); z-index: 60; width: 260px; height: 260px;
    background: #fff; border: 1px solid #e8e6e2; box-shadow: 0 12px 32px rgba(0, 0, 0, .16);
    opacity: 0; transform: translateY(6px); pointer-events: none; transition: opacity .18s, transform .18s; display: block;
  }
  .fu-zoom img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .fu-img:hover .fu-zoom { opacity: 1; transform: none; }
}

/* Telephone : petite loupe qui invite a toucher la photo */
@media (hover: none) {
  .fu-mag {
    display: block; position: absolute; right: -5px; bottom: -5px; width: 20px; height: 20px; border-radius: 50%;
    background: #fff; border: 1px solid #e8e6e2;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5'/%3E%3C/svg%3E");
    background-size: 12px; background-position: center; background-repeat: no-repeat;
  }
}

/* Fenetre plein ecran (mobile) */
.fu-viewer {
  position: fixed; inset: 0; z-index: 9999; background: rgba(20, 16, 14, .62);
  display: flex; align-items: center; justify-content: center; padding: 16px; animation: fu-in .18s ease-out;
}
.fu-viewer-in { position: relative; width: min(88vw, 420px); background: #fff; padding: 10px 10px 12px; box-shadow: 0 16px 40px rgba(0, 0, 0, .25); }
.fu-viewer-in img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.fu-viewer-in p { margin: 10px 2px 0; font-weight: 600; font-size: 15px; text-align: center; }
.fu-viewer-x {
  position: absolute; top: -14px; right: -14px; width: 40px; height: 40px; border-radius: 50%; border: 0;
  background: #000; color: #fff; font-size: 24px; line-height: 40px; padding: 0; cursor: pointer;
}
html.fu-lock, html.fu-lock body { overflow: hidden; }
@keyframes fu-in { from { opacity: 0; } to { opacity: 1; } }
.fu-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.fu-t { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #626879; }
.fu-n { font-size: 14px; font-weight: 600; }
.fu-p { font-size: 14px; white-space: nowrap; }
.fu-box {
  flex: 0 0 20px; height: 20px; border: 1.5px solid #000; position: relative;
}
.fu-check:checked ~ .fu-box { background: #000; }
.fu-check:checked ~ .fu-box::after {
  content: ''; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.fu-check:focus-visible ~ .fu-box { outline: 2px solid #4a638d; outline-offset: 2px; }
