/* ============================================================
   CV2 Fase B — estados de stock no cesto / drawer / checkout.
   Estilos das notas por linha (ultima unidade / baixo stock /
   ajuste / esgotado). Neutro; funciona no drawer e no checkout.
   ============================================================ */
.cv2-stock-note {
  font-family: "Raleway", "Inter", sans-serif;
  font-size: 12.5px;
  line-height: 1.35;
  margin-top: 7px;
  padding: 7px 10px;
  border-radius: 8px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 8px;
  row-gap: 2px;
}
.cv2-stock-note > i { margin: 0; grid-column: 1; grid-row: 1; }
.cv2-stock-note__main { font-weight: 700; grid-column: 2; grid-row: 1; }
.cv2-stock-note__sub { font-size: 11.5px; font-weight: 400; opacity: .85; grid-column: 2; grid-row: 2; }

.cv2-stock-note--warn { background: #fff4e8; color: #b3541e; border: 1px solid #ffd9b0; }
.cv2-stock-note--warn i { color: #e07b1e; }

.cv2-stock-note--err { background: #fdecec; color: #b3261e; border: 1px solid #f5c2c0; flex-direction: row; align-items: center; gap: 8px; flex-wrap: wrap; }

.cv2-stock-badge {
  display: inline-block;
  background: #b3261e; color: #fff;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  padding: 2px 8px; border-radius: 5px;
}

/* Esgotado: imagem esbatida + controls inertes */
.cv2-line-soldout .shopcart-drawer__thumb img,
.cv2-line-soldout td img,
.cv2-line-soldout img.pvx-thumb { filter: grayscale(1); opacity: .45; }
.cv2-line-soldout .shopcart-drawer__qty-select,
.cv2-line-soldout .stock_shopcart,
.cv2-line-soldout .stock_shopcart_element,
.cv2-line-soldout select,
.cv2-line-soldout .dx-step-plus,
.cv2-line-soldout .dx-step-minus { pointer-events: none !important; opacity: .5 !important; }

.cv2-stock-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.cv2-stock-actions button {
  font-family: "Raleway", "Inter", sans-serif;
  font-size: 12px; font-weight: 600;
  border-radius: 8px; padding: 8px 12px; cursor: pointer;
  border: 1px solid #d9c9d2; background: #fff; color: #7a1f3d;
  display: inline-flex; align-items: center; gap: 6px;
}
.cv2-stock-actions button:hover { background: #faf3f6; }
.cv2-stock-actions .cv2-stock-remove { color: #8a3b3b; border-color: #e6c4c4; }

.cv2-disabled { pointer-events: none !important; opacity: .4 !important; cursor: not-allowed !important; }
.cv2-stock-notified { color: #2e7d32; font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; }

/* ---- B3: bloqueio de checkout/express + banner ---- */
.cv2-block-banner {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin: 10px 0; padding: 11px 14px; border-radius: 10px;
  background: #fff4e8; border: 1px solid #ffcf9e; color: #9a4a12;
  font-family: "Raleway", "Inter", sans-serif; font-size: 13px; font-weight: 600;
}
.cv2-block-banner i { color: #e07b1e; }
.cv2-block-banner span { flex: 1 1 auto; }
.cv2-block-cta {
  border: 0; border-radius: 8px; padding: 8px 14px; cursor: pointer;
  background: #9f0049; color: #fff; font-weight: 700; font-size: 12.5px;
  font-family: "Raleway", "Inter", sans-serif;
}
.cv2-block-cta:hover { background: #82003c; }

body.cv2-cart-blocked .cv2-express__btn,
body.cv2-cart-blocked .cv2-express__slot,
body.cv2-cart-blocked #shopcart_submit,
body.cv2-cart-blocked .checkout-modern__confirm {
  pointer-events: none !important; opacity: .45 !important; filter: grayscale(.3);
}

/* ---- B3: badge discreto no sumario compacto ---- */
.cv2-compact-badge {
  display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 4px;
  font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
  vertical-align: middle; font-family: "Raleway", "Inter", sans-serif;
}
.cv2-compact-badge.is-soldout { background: #b3261e; color: #fff; }
.cv2-compact-badge.is-adjust { background: #fff0dc; color: #9a4a12; border: 1px solid #ffcf9e; }
.cv2-compact-soldout { opacity: .9; }
.cv2-compact-soldout img { filter: grayscale(1); opacity: .5; }
