 /* =============== BF QUICKVIEW (minimal, clean) =============== */

#bf-qv-overlay{
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(2px);
}
#bf-qv-overlay[hidden]{ display:none !important; }
body.bf-qv-open{ overflow:hidden; }

#bf-qv-overlay .bf-qv-modal{
  position: relative;
  width: min(420px, calc(100vw - 28px)) !important;
  max-height: calc(100vh - 32px);
  overflow: auto;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  padding: 16px !important;
  transition: opacity .12s ease, transform .12s ease;
}

#bf-qv-overlay.is-loading .bf-qv-modal{
  opacity: 0;
  transform: transform: translateY(8px) scale(.98);
  pointer-events: none;
}

/* Spinner (single definition) */
#bf-qv-overlay::after{
  content:"";
  display:none;

  position:absolute;
  inset:0;
  margin:auto;

  width:56px;
  height:56px;
  border-radius:999px;

  border:6px solid rgba(255,255,255,.60);
  border-top-color: var(--global-palette1, #9d0b02);
  border-right-color: var(--global-palette1, #9d0b02);

  box-shadow: 0 14px 35px rgba(0,0,0,.40);
  animation: bfqvspin .75s linear infinite;
  z-index:2;
  pointer-events:none;
}
#bf-qv-overlay.is-loading::after{ display:block; }
@keyframes bfqvspin{ to{ transform: rotate(360deg); } }

/* ======= Layout (final effective) ======= */

/* single column always (final) */
#bf-qv-overlay .bf-qv-top{
  display: grid;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  align-items: start;
}

#bf-qv-overlay .bf-qv-media{
  position: relative;
  margin: -16px -16px 0 -16px;  /* match modal padding (16px) */
}

/* Sale badge */
#bf-qv-overlay .bf-qv-badge{
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 8px 12px;
  border-radius: 5px;
  background: var(--global-palette1, #9d0b02);
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
}

/* image: final (full width + 7:5 + contain) */
#bf-qv-overlay .bf-qv-media-inner{
  width: 100% !important;
  margin: 0 auto !important;

  aspect-ratio: 3 / 2 !important;
  background: #000 !important;
  border-radius: 8px 8px 0px 0px; /* match modal corners on top */
  overflow: hidden;
}

#bf-qv-overlay .bf-qv-img{
  display:block;
  width:100%;
  height:auto;
}

/* enforce contain within the aspect-ratio box */
#bf-qv-overlay .bf-qv-media-inner img{
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block;
}

/* ======= Typography / head ======= */

#bf-qv-overlay .bf-qv-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

#bf-qv-overlay .bf-qv-title{
  font-size: 20px !important;
  line-height: 1.2 !important;
  margin: 10px 0 6px 0 !important;
  font-weight: 700 !important;
}

#bf-qv-overlay .bf-qv-head .bf-qv-title{
  font-size: 22px;
  margin: 8px 0 0 0 !important;
}

/* QV price readability + final sizing */
#bf-qv-overlay .bf-qv-price{
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 8px 0 0 0 !important;
  white-space: nowrap;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}

#bf-qv-overlay .bf-qv-price del{
  font-size: 13px !important;
  color: rgba(0,0,0,.45) !important;
  font-weight: 500;
}

#bf-qv-overlay .bf-qv-price ins{
  font-size: 18px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}

/* Ingredients line under title */
#bf-qv-overlay .bf-qv-short{
  font-size: 13.5px !important;
  line-height: 1.35 !important;
  color: rgba(0,0,0,.72) !important;
  margin: 0 0 8px 0 !important;
  margin-top: 14px;
}

/* ======= Meta / additives ======= */

#bf-qv-overlay .bf-qv-meta{
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

/* remove the "Allergene:" label entirely (final) */
#bf-qv-overlay .bf-qv-meta-label{
  display: none !important;
}

/* meta row becomes 1 column so icons don't start after an empty label column */
#bf-qv-overlay .bf-qv-meta-row{
  display: grid;
  grid-template-columns: 1fr !important;
  gap: 12px;
  align-items: start;
}

#bf-qv-overlay .bf-qv-meta-pills{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}

#bf-qv-overlay .bf-qv-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 8px 15px;
  border-radius: 25px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.14);
  text-decoration: none;
  color: #222;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}
#bf-qv-overlay .bf-qv-pill:hover{
  border-color: var(--global-palette1, #9d0b02);
  color: var(--global-palette1, #9d0b02);
}

/* Additives plugin output (make it sit nicer) */
#bf-qv-overlay .bf-qv-meta-additives{
  display: flex !important;
  justify-content: flex-start !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* QV: kill plugin spacing between allergen icons */
#bf-qv-overlay .bf-qv-meta-additives .bf_additives_output_shortcode .additive_item{
  margin: 0 !important;
  padding: 0 !important;
}

#bf-qv-overlay .bf-qv-meta-additives .bf_additives_output_shortcode{
  display:flex !important;
  align-items:center !important;
  gap: 10px !important; /* pick your value */
  padding:0 !important;
  margin:0 !important;
  justify-content: flex-end !important;
  width: auto !important;
  border: 0 !important;
  box-shadow: none !important;
}

#bf-qv-overlay .bf-qv-meta-additives .additive_item{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:0 !important;
}

#bf-qv-overlay .bf-qv-meta-additives .additive_item img{
  width:30px !important;
  height:30px !important;
  object-fit:contain !important;
  display:block !important;
}

/* ======= CTA visibility inside modal (final) ======= */

#bf-qv-overlay .bf-qv-cta{
  display: block !important; /* undo shrink-to-fit */
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap{
  display:flex;
  align-items:center;
  gap:0px;
  width: 100% !important;
  margin: 10px 0 0 0 !important;
  justify-content: flex-end !important;
}

#bf-qv-overlay .bf-archive-add-to-cart{
  max-width: 150px;
}

/* ======= Bottom description / accordion (final) ======= */

#bf-qv-overlay .bf-qv-bottom{
  margin-top: 14px;
  padding-top: 0;
  border-top: 0;
}

#bf-qv-overlay .bf-qv-acc{
  border-top: 1px solid rgba(0,0,0,.12);
  padding-top: 10px;
}

#bf-qv-overlay .bf-qv-acc-head{
  display: flex;
  align-items: center;
  justify-content: flex-start;

  width: 100%;
  padding: 10px 0;

  font-size: 15px;
  font-weight: 500;
  color: #222;
  cursor: pointer;

  text-align: left;
  list-style: none;
}

/* remove default marker */
#bf-qv-overlay .bf-qv-acc-head::-webkit-details-marker{ display:none; }
#bf-qv-overlay .bf-qv-acc-head::marker{ content:""; }

/* arrow */
#bf-qv-overlay .bf-qv-acc-head::after{
  content:"";
  width: 8px;
  height: 8px;
  margin-left: auto !important;
  margin-right: 2px !important;
  color: var(--global-palette-btn-bg, #9d0b02);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg); /* closed = down */
  transition: transform .18s ease;
  opacity: .7;
}

#bf-qv-overlay details[open] > .bf-qv-acc-head::after{
  transform: rotate(-135deg); /* open = up */
}

/* description text: FORCE left align even if inline style says center */
#bf-qv-overlay .bf-qv-acc-body,
#bf-qv-overlay .bf-qv-acc-body p{
  text-align: left !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: rgba(0,0,0,.78) !important;
}

#bf-qv-overlay .bf-qv-acc-body{
  padding: 6px 0 0;
  line-height: 1.45;
}

#bf-qv-overlay .bf-qv-acc-body p{
  margin: 0 0 10px 0 !important;
}
#bf-qv-overlay .bf-qv-acc-body p:last-child{
  margin-bottom: 0 !important;
}

/* ======= Scoped separator normalization (final effective) ======= */

#bf-qv-overlay .bf-qv-info{
  --bf-qv-sep: 2px solid rgba(0,0,0,.10);
}

/* remove any dotted/blue-ish separators coming from plugin/theme inside additives */
#bf-qv-overlay .bf-qv-meta-additives,
#bf-qv-overlay .bf_additives_output_shortcode{
  border: 0 !important;
  box-shadow: none !important;
}

/* ======= Close button (final) ======= */

#bf-qv-overlay .bf-qv-close{
  display: inline-flex !important;
  position: absolute;
  top: 9px;
  right: 2px;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent !important;
  color: #c91e14 !important;

  cursor: pointer;
  z-index: 50; /* ensure above full-bleed image */
}

#bf-qv-overlay .bf-qv-close-icon{
  width: 20px;
  height: 20px;
}

#bf-qv-overlay .bf-qv-close-icon line{
  stroke: currentColor;
  stroke-width: 2.8;
  stroke-linecap: round;
}

/* optional: subtle hover */
#bf-qv-overlay .bf-qv-close:hover{
  opacity: .85;
}

#bf-qv-overlay .bf-qv-acc-body{ overflow: hidden; }

#bf-qv-overlay .bf-qv-media-inner{
  position: relative;
}

#bf-qv-overlay .bf-qv-diet-badges{
  position: absolute;
  right: 14px;   /* align vibe with your X */
  bottom: 14px;
  display: flex;
  gap: 6px;
  z-index: 5;
  pointer-events: none;
}

#bf-qv-overlay .bf-qv-diet-badge{
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.35));
}

#bf-qv-overlay .bf-qv-diet-badges img{
  width: 44px !important;
  height: 44px !important;
  max-width: 44px !important;
  max-height: 44px !important;
  object-fit: contain !important;
}

/* QV PRICE: right aligned, but allow 2nd line for MwSt */
#bf-qv-overlay .bf-qv-price{
  display: flex !important;
  justify-content: flex-end !important;
  align-items: baseline !important;
  gap: 2px !important;

  flex-wrap: wrap !important;      /* <-- MUST be wrap */
  white-space: normal !important;  /* <-- allow line breaks */
  text-align: right !important;
}

/* Keep the actual price bits on one line */
#bf-qv-overlay .bf-qv-price del,
#bf-qv-overlay .bf-qv-price ins,
#bf-qv-overlay .bf-qv-price .amount{
  white-space: nowrap !important;
}

/* MwSt note goes FULL width under the price */
#bf-qv-overlay .bf-qv-price .bf-tax-note{
  flex: 0 0 100% !important;
  width: 100% !important;
  display: block !important;
  text-align: right !important;
  margin-top: 2px !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  opacity: .75 !important;
}

/* Optional: don't let the injected <br> create spacing */
#bf-qv-overlay .bf-qv-price br{
  display: none !important;
}

.bf-qv-media-inner{ position: relative; }

.bf-qv-badge--sale{
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 5;

  padding: 6px 10px;
  border-radius: 999px !important;

  background: #fdfaf7 !important;
  color: #222 !important;
  font-weight: 800;
  font-size: 14px !important;
  line-height: 1;

  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}

/* =========================================================
   QUICKVIEW CTA – self-contained archive row styling
   ========================================================= */

#bf-qv-overlay .bf-qv-cta{
  display: block !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap{
  width: 100% !important;
  margin: 10px 0 0 0 !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: flex-end !important;
  gap: 0 !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-minus,
#bf-qv-overlay .bf-qv-cta .bf-archive-qty-input,
#bf-qv-overlay .bf-qv-cta .bf-archive-plus{
  height: 36px !important;
  box-sizing: border-box !important;
  background: #fff !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-minus,
#bf-qv-overlay .bf-qv-cta .bf-archive-plus{
  width: 32px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(0,0,0,.14) !important;
  color: var(--global-palette-btn-bg, #9d0b02) !important;
  font-size: 0 !important;
  cursor: pointer !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-minus{
  border-radius: 999px 0 0 999px !important;
  border-right: none !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-plus{
  border-radius: 0 25px 25px 0 !important;
  border-left: none !important;
  margin-right: 8px !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-minus::before,
#bf-qv-overlay .bf-qv-cta .bf-archive-plus::before{
  font-size: 20px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  display: block !important;
  color: inherit !important;
  transform: translateY(-1px) !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-minus::before{
  content: "−";
}

#bf-qv-overlay .bf-qv-cta .bf-archive-plus::before{
  content: "+";
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-input{
  width: 40px !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  color: var(--global-palette3, #222) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-align: center !important;
  background: #fff !important;
  box-shadow:
    inset 0 1px 0 rgba(0,0,0,.14),
    inset 0 -1px 0 rgba(0,0,0,.14) !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  -webkit-appearance: none !important;
  outline: none !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-input::-webkit-inner-spin-button,
#bf-qv-overlay .bf-qv-cta .bf-archive-qty-input::-webkit-outer-spin-button{
  -webkit-appearance: none !important;
  margin: 0 !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-add-to-cart{
  flex: 1 1 auto !important;
  max-width: 150px !important;
  height: 36px !important;
  position: relative !important;
  display: block !important;
  padding: 0 !important;
  line-height: 1 !important;
  font-size: 0 !important;
  border-radius: 25px !important;
  border: none !important;
  background: var(--global-palette-btn-bg, #9d0b02) !important;
  color: var(--global-palette-btn, #222222) !important;
  text-decoration: none !important;
  box-shadow: 0 3px 7px rgba(0,0,0,0.12) !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-add-to-cart::before{
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 22px !important;
  height: 22px !important;
  transform: translate(-50%, -50%) !important;
  background-image: url("../img/shopping-cart_24.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: 20px 20px !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-add-to-cart:hover{
  background: var(--global-palette-btn-bg-hover, var(--global-palette-btn-bg, #222222)) !important;
  color: var(--global-palette-btn-hover, var(--global-palette-btn, #ffffff)) !important;
  box-shadow: 0 4px 10px rgba(0,0,0,0.18) !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-add-to-cart:active{
  transform: translateY(1px) !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap:has(.bf-archive-minus:hover, .bf-archive-qty-input:hover, .bf-archive-plus:hover) .bf-archive-minus,
#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap:has(.bf-archive-minus:hover, .bf-archive-qty-input:hover, .bf-archive-plus:hover) .bf-archive-plus{
  border-color: #9d0b02 !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap:has(.bf-archive-minus:hover, .bf-archive-qty-input:hover, .bf-archive-plus:hover) .bf-archive-qty-input{
  box-shadow:
    inset 0 1px 0 #9d0b02,
    inset 0 -1px 0 #9d0b02 !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap:has(.bf-archive-qty-input:focus) .bf-archive-minus,
#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap:has(.bf-archive-qty-input:focus) .bf-archive-plus{
  border-color: #9d0b02 !important;
}

#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap:has(.bf-archive-qty-input:focus) .bf-archive-qty-input,
#bf-qv-overlay .bf-qv-cta .bf-archive-qty-wrap:has(.bf-archive-qty-input:focus-visible) .bf-archive-qty-input{
  box-shadow:
    inset 0 1px 0 #9d0b02,
    inset 0 -1px 0 #9d0b02 !important;
}