.wcnvc-enabled {
  --wcnvc-font-family: inherit;
  --wcnvc-font-weight: 500;
  --wcnvc-font-size: 15px;
  --wcnvc-line-height: 1.5;

  --wcnvc-radius: 10px;
  --wcnvc-border-width: 1px;

  --wcnvc-padding-top: 14px;
  --wcnvc-padding-right: 16px;
  --wcnvc-padding-bottom: 14px;
  --wcnvc-padding-left: 16px;

  --wcnvc-icon-size: 18px;
  --wcnvc-icon-gap: 10px;

  --wcnvc-success-bg: #ecfdf3;
  --wcnvc-success-text: #067647;
  --wcnvc-success-border: #17b26a;

  --wcnvc-error-bg: #fef3f2;
  --wcnvc-error-text: #b42318;
  --wcnvc-error-border: #f04438;

  --wcnvc-info-bg: #eff8ff;
  --wcnvc-info-text: #175cd3;
  --wcnvc-info-border: #2e90fa;

  --wcnvc-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);

  --wcnvc-button-radius: 6px;
  --wcnvc-button-padding-y: 8px;
  --wcnvc-button-padding-x: 12px;

  --wcnvc-toast-width: 420px;
  --wcnvc-toast-offset-x: 24px;
  --wcnvc-toast-offset-y: 24px;
  --wcnvc-toast-gap: 12px;
  --wcnvc-toast-z-index: 999999;
}

/* remove qualquer transição do nativo para evitar flash visual */
.wcnvc-enabled .woocommerce-notices-wrapper,
.wcnvc-enabled .woocommerce-message,
.wcnvc-enabled .woocommerce-error,
.wcnvc-enabled .woocommerce-info,
.wcnvc-enabled .wc-block-components-notice-banner,
.wcnvc-enabled .woocommerce-NoticeGroup,
.wcnvc-enabled .woocommerce-NoticeGroup-checkout {
  transition: none !important;
  animation: none !important;
}

/* esconde notices nativas imediatamente quando toast está ativo */
.wcnvc-enabled.wcnvc-toast-active .woocommerce-notices-wrapper,
.wcnvc-enabled.wcnvc-toast-active .woocommerce-message,
.wcnvc-enabled.wcnvc-toast-active .woocommerce-error,
.wcnvc-enabled.wcnvc-toast-active .woocommerce-info,
.wcnvc-enabled.wcnvc-toast-active .wc-block-components-notice-banner,
.wcnvc-enabled.wcnvc-toast-active .woocommerce-NoticeGroup,
.wcnvc-enabled.wcnvc-toast-active .woocommerce-NoticeGroup-checkout,
.wcnvc-enabled.wcnvc-toast-active .woocommerce-notices-wrapper > *,
.wcnvc-enabled.wcnvc-toast-active [data-wcnvc-handled="1"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  min-height: 0 !important;
}

/* stack dos toasts */
#wcnvc-toast-stack {
  position: fixed;
  display: flex;
  flex-direction: column;
  gap: var(--wcnvc-toast-gap);
  width: min(var(--wcnvc-toast-width), calc(100vw - 24px));
  z-index: var(--wcnvc-toast-z-index);
  pointer-events: none;
  box-sizing: border-box;
}

#wcnvc-toast-stack.position-top-right {
  top: var(--wcnvc-toast-offset-y);
  right: var(--wcnvc-toast-offset-x);
}

#wcnvc-toast-stack.position-top-left {
  top: var(--wcnvc-toast-offset-y);
  left: var(--wcnvc-toast-offset-x);
}

#wcnvc-toast-stack.position-top-center {
  top: var(--wcnvc-toast-offset-y);
  left: 50%;
  transform: translateX(-50%);
}

#wcnvc-toast-stack.position-bottom-right {
  bottom: var(--wcnvc-toast-offset-y);
  right: var(--wcnvc-toast-offset-x);
}

#wcnvc-toast-stack.position-bottom-left {
  bottom: var(--wcnvc-toast-offset-y);
  left: var(--wcnvc-toast-offset-x);
}

/* toast */
.wcnvc-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: var(--wcnvc-icon-gap);
  width: 100%;
  padding: var(--wcnvc-padding-top) var(--wcnvc-padding-right)
    var(--wcnvc-padding-bottom) var(--wcnvc-padding-left);
  border-radius: var(--wcnvc-radius);
  border: var(--wcnvc-border-width) solid transparent;
  box-shadow: var(--wcnvc-shadow);
  font-family: var(--wcnvc-font-family);
  font-size: var(--wcnvc-font-size);
  line-height: var(--wcnvc-line-height);
  font-weight: var(--wcnvc-font-weight);
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  word-break: break-word;
  overflow-wrap: anywhere;
  transition:
    opacity 0.35s ease,
    transform 0.35s ease,
    visibility 0.35s ease;
  will-change: opacity, transform;
}

.wcnvc-toast.is-visible {
  opacity: 1;
  visibility: visible;
}

.wcnvc-toast.anim-slide-fade {
  transform: translateY(-18px);
}

.wcnvc-toast.anim-slide-fade.is-visible {
  transform: translateY(0);
}

.wcnvc-toast.anim-fade {
  transform: none;
}

.wcnvc-toast.anim-fade.is-visible {
  transform: none;
}

.wcnvc-toast.anim-scale-fade {
  transform: scale(0.94);
  transform-origin: top right;
}

.wcnvc-toast.anim-scale-fade.is-visible {
  transform: scale(1);
}

.wcnvc-toast.is-hiding {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px) scale(0.98);
}

.wcnvc-toast__icon {
  flex: 0 0 auto;
  font-size: var(--wcnvc-icon-size);
  line-height: 1;
  margin-top: 2px;
}

.wcnvc-toast__content {
  flex: 1 1 auto;
  min-width: 0;
}

.wcnvc-toast__content p:last-child {
  margin-bottom: 0;
}

.wcnvc-toast__content ul,
.wcnvc-toast__content ol {
  margin: 8px 0 0 18px;
  padding: 0;
}

.wcnvc-toast__content li {
  margin-bottom: 4px;
}

.wcnvc-toast__content li:last-child {
  margin-bottom: 0;
}

.wcnvc-toast__content a {
  color: inherit;
  text-decoration: underline;
}

.wcnvc-toast__close {
  flex: 0 0 auto;
  margin-left: 8px;
  background: transparent;
  border: 0;
  box-shadow: none;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  color: inherit;
  opacity: 0.7;
  padding: 0;
  min-width: auto;
  min-height: auto;
}

.wcnvc-toast__close:hover,
.wcnvc-toast__close:focus {
  opacity: 1;
  background: transparent;
  border: 0;
  box-shadow: none;
  outline: none;
}

.wcnvc-toast--success {
  background: var(--wcnvc-success-bg);
  color: var(--wcnvc-success-text);
  border-color: var(--wcnvc-success-border);
}

.wcnvc-toast--error {
  background: var(--wcnvc-error-bg);
  color: var(--wcnvc-error-text);
  border-color: var(--wcnvc-error-border);
}

.wcnvc-toast--info {
  background: var(--wcnvc-info-bg);
  color: var(--wcnvc-info-text);
  border-color: var(--wcnvc-info-border);
}

/* fallback visual só se toast estiver desligado */
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-message,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-error,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-info,
.wcnvc-enabled:not(.wcnvc-toast-active) .wc-block-components-notice-banner {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: var(--wcnvc-icon-gap);
  padding: var(--wcnvc-padding-top) var(--wcnvc-padding-right)
    var(--wcnvc-padding-bottom) var(--wcnvc-padding-left) !important;
  border-style: solid;
  border-width: var(--wcnvc-border-width) !important;
  border-radius: var(--wcnvc-radius) !important;
  box-shadow: var(--wcnvc-shadow);
  font-family: var(--wcnvc-font-family) !important;
  font-size: var(--wcnvc-font-size) !important;
  font-weight: var(--wcnvc-font-weight) !important;
  line-height: var(--wcnvc-line-height) !important;
  box-sizing: border-box;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-message {
  background: var(--wcnvc-success-bg) !important;
  color: var(--wcnvc-success-text) !important;
  border-color: var(--wcnvc-success-border) !important;
}

.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-error {
  background: var(--wcnvc-error-bg) !important;
  color: var(--wcnvc-error-text) !important;
  border-color: var(--wcnvc-error-border) !important;
}

.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-info {
  background: var(--wcnvc-info-bg) !important;
  color: var(--wcnvc-info-text) !important;
  border-color: var(--wcnvc-info-border) !important;
}

.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-message a,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-error a,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-info a,
.wcnvc-enabled:not(.wcnvc-toast-active) .wc-block-components-notice-banner a {
  color: inherit !important;
  text-decoration: underline;
}

.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-message .button,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-error .button,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-info .button,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-message a.button,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-error a.button,
.wcnvc-enabled:not(.wcnvc-toast-active) .woocommerce-info a.button,
.wcnvc-enabled:not(.wcnvc-toast-active) .wc-block-components-notice-banner .button,
.wcnvc-enabled:not(.wcnvc-toast-active) .wc-block-components-notice-banner a.button {
  border-radius: var(--wcnvc-button-radius) !important;
  padding: var(--wcnvc-button-padding-y) var(--wcnvc-button-padding-x) !important;
  line-height: 1.2 !important;
  min-height: auto !important;
  box-sizing: border-box;
}

@media (max-width: 767px) {
  #wcnvc-toast-stack {
    width: calc(100vw - 20px);
  }

  #wcnvc-toast-stack.position-top-left,
  #wcnvc-toast-stack.position-top-right,
  #wcnvc-toast-stack.position-bottom-left,
  #wcnvc-toast-stack.position-bottom-right {
    left: 10px;
    right: 10px;
    width: calc(100vw - 20px);
  }

  #wcnvc-toast-stack.position-top-center {
    width: calc(100vw - 20px);
    left: 50%;
    transform: translateX(-50%);
  }

  .wcnvc-toast {
    padding: 12px 14px;
  }
}