.vc-cart * { box-sizing: border-box; }
.vc-cart {
  /* Tokens herdados do tema Glozin (com fallback) */
  --c-dark: var(--gz-color-dark, #111111);
  --c-base: var(--gz-color-base, #444444);
  --c-muted: var(--gz-color-grey, #888888);
  --c-border: var(--gz-border-color, #ebebeb);
  --c-surface: var(--gz-color-light-grey, #f5f5f5);
  --c-accent: var(--gz-color-primary, #d0473e);
  --c-light: #ffffff;
  --r-pill: var(--gz-button-rounded, 30px);
  --r-card: 14px;   /* outer (concentric: > thumb 8px + respiro) */
  --r-thumb: 8px;   /* inner */
  --r-sm: 8px;
  --hd-ls: var(--gz-heading-letter-spacing, -0.034em);
  --shadow-card: 0 1px 2px rgba(17,17,17,0.04), 0 10px 28px -16px rgba(17,17,17,0.18);
  --ease: cubic-bezier(0.2, 0, 0, 1);
  font-family: var(--gz-body-font, 'Instrument Sans', Arial, sans-serif);
  color: var(--c-base);
  -webkit-font-smoothing: antialiased;
  max-width: 1140px; margin: 0 auto; padding: 8px 18px 120px;
  background: var(--c-light);
}
.vc-cart i { line-height: 1; }
.vc-cart img, .vc-cart .vc-item-img, .vc-cart .vc-curation-img { outline: 1px solid rgba(0,0,0,0.08); outline-offset: -1px; }

/* press feedback (sem transition:all) */
.vc-press { transition-property: scale, background-color, color; transition-duration: 160ms; transition-timing-function: ease-out; }
.vc-press:active { scale: 0.96; }

/* ---------- STAGGER DE ENTRADA ---------- */
@keyframes vcIn { to { opacity:1; transform:none; filter:blur(0); } }
.vc-cart > .vc-stepper,
.vc-cart > .vc-trust,
.vc-cart > .vc-sec,
.vc-cart > .vc-grid { opacity:0; transform:translateY(12px); filter:blur(4px); animation:vcIn 520ms var(--ease) forwards; }
.vc-cart > .vc-stepper { animation-delay:0ms; }
.vc-cart > .vc-trust   { animation-delay:90ms; }
.vc-cart > .vc-sec     { animation-delay:180ms; }
.vc-cart > .vc-grid    { animation-delay:270ms; }
@media (prefers-reduced-motion: reduce) {
  .vc-cart > * { opacity:1 !important; transform:none !important; filter:none !important; animation:none !important; }
}

/* ---------- STEPPER ---------- */
.vc-stepper { display:flex; align-items:center; justify-content:center; gap:10px; padding:18px; background:var(--c-surface); border-radius:var(--r-card); margin-bottom:20px; }
.vc-step { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--c-muted); }
.vc-step.active { color:var(--c-dark); font-weight:600; }
.vc-step-dot { width:22px; height:22px; border-radius:50%; background:var(--c-light); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--c-muted); box-shadow:inset 0 0 0 1px var(--c-border); }
.vc-step.active .vc-step-dot { background:var(--c-dark); color:var(--c-light); box-shadow:none; }
.vc-step-line { width:28px; height:1px; background:var(--c-border); }

/* ---------- TRUST BAR ---------- */
.vc-trust { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--c-border); border-radius:var(--r-card); overflow:hidden; margin-bottom:8px; }
.vc-trust-item { display:flex; flex-direction:column; align-items:center; gap:8px; padding:18px 10px; border-right:1px solid var(--c-border); text-align:center; }
.vc-trust-item:last-child { border-right:none; }
.vc-trust-item i { font-size:20px; color:var(--c-dark); }
.vc-trust-item span { font-size:12px; color:var(--c-muted); line-height:1.35; text-wrap:balance; }
.vc-stars { display:inline-flex; gap:2px; height:20px; align-items:center; }
.vc-stars i { font-size:14px !important; color:#f5a623 !important; }


/* ---------- WOOCOMMERCE NOTICES ---------- */
.vc-notices { margin:0 0 18px; }
.vc-notices:empty { display:none; }
.vc-notices .woocommerce-message,
.vc-notices .woocommerce-error,
.vc-notices .woocommerce-info { list-style:none; margin:0 0 10px; padding:14px 20px; border-radius:10px; font-size:14px; line-height:1.5; font-weight:500; }
.vc-notices .woocommerce-message { background:#4A854D; color:#fff; }
.vc-notices .woocommerce-error { background:#fdecea; color:#b3261e; }
.vc-notices .woocommerce-info { background:#eef4fb; color:#2b5c8a; }
.vc-notices .woocommerce-error li { margin:0; }
.vc-notices a { color:inherit; text-decoration:underline; }
.vc-notices .button, .vc-notices .wc-forward { float:right; background:transparent; border:0; padding:0; color:inherit; text-decoration:underline; font-weight:600; }

/* ---------- SECTION TITLE ---------- */
.vc-sec { padding:38px 0 10px; }
.vc-sec-title { font-family:inherit; font-weight:600; letter-spacing:var(--hd-ls); font-size:24px; color:var(--c-dark); margin:0 0 4px; text-wrap:balance; }
.vc-sec-sub { font-size:14px; color:var(--c-muted); text-wrap:pretty; }

/* ---------- LAYOUT GRID ---------- */
.vc-grid { display:grid; grid-template-columns:1fr; gap:24px; align-items:start; }

/* ---------- ITEM CARD ---------- */
.vc-item { border:1px solid var(--c-border); border-radius:var(--r-card); padding:20px; display:flex; gap:18px; margin-bottom:18px; box-shadow:var(--shadow-card); }
.vc-item-img { width:84px; height:84px; background:var(--c-surface); border-radius:var(--r-thumb); flex-shrink:0; }
.vc-item-info { flex:1; }
.vc-item-title { font-size:16px; font-weight:600; letter-spacing:var(--hd-ls); color:var(--c-dark); line-height:1.35; margin-bottom:5px; text-wrap:balance; }
.vc-item-opt { font-size:13px; color:var(--c-muted); }
.vc-item-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:16px; gap:12px; }
.vc-item-price { font-size:17px; font-weight:600; color:var(--c-dark); font-variant-numeric:tabular-nums; }
.vc-qty { display:flex; align-items:center; border:1px solid var(--c-border); border-radius:var(--r-pill); }
.vc-qty button { background:none; border:none; cursor:pointer; min-width:40px; min-height:40px; font-size:15px; color:var(--c-base); display:flex; align-items:center; justify-content:center; border-radius:var(--r-pill); }
.vc-qty span { padding:0 4px; font-size:15px; min-width:24px; text-align:center; color:var(--c-dark); font-variant-numeric:tabular-nums; }

/* ---------- CURATION / CROSS-SELL ---------- */
.vc-curation { border:1px solid var(--c-border); border-radius:var(--r-card); overflow:hidden; background:var(--c-light); margin-bottom:16px; box-shadow:var(--shadow-card); }
.vc-curation-head { padding:14px 18px; border-bottom:1px solid var(--c-border); background:var(--c-surface); display:flex; align-items:center; gap:10px; }
.vc-curation-head i { font-size:18px; color:var(--c-accent); }
.vc-curation-head span { font-size:14px; font-weight:600; letter-spacing:var(--hd-ls); color:var(--c-dark); }
.vc-curation-body { padding:18px; }
.vc-curation-row { display:flex; gap:14px; align-items:flex-start; }
.vc-curation-img { width:60px; height:60px; background:var(--c-surface); border-radius:var(--r-thumb); flex-shrink:0; }
.vc-curation-info { flex:1; }
.vc-curation-name { font-size:15px; font-weight:600; letter-spacing:var(--hd-ls); color:var(--c-dark); line-height:1.4; text-wrap:balance; }
.vc-curation-note { font-size:13px; color:var(--c-muted); margin-top:5px; line-height:1.5; text-wrap:pretty; }
.vc-curation-check { width:22px; height:22px; border-radius:6px; flex-shrink:0; margin-top:3px; display:flex; align-items:center; justify-content:center; background:var(--c-dark); }
.vc-curation-check i { font-size:13px; color:var(--c-light); }
.vc-curation-divider { border-top:1px solid var(--c-border); margin:18px 0; }
.vc-curation-price-row { display:flex; justify-content:space-between; align-items:baseline; }
.vc-curation-price-label { font-size:13px; color:var(--c-muted); }
.vc-curation-price-value { font-size:15px; font-weight:600; color:var(--c-dark); font-variant-numeric:tabular-nums; }
.vc-curation-savings { font-size:13px; color:var(--c-accent); margin-top:6px; text-align:right; }
.vc-curation-cta { margin-top:18px; padding:13px; box-shadow:inset 0 0 0 1px var(--c-dark); color:var(--c-dark); text-align:center; border-radius:var(--r-pill); font-size:14px; font-weight:600; cursor:pointer; }
.vc-curation-cta:hover { background:var(--c-dark); color:var(--c-light); }

/* ---------- SPECIALIST LINK ---------- */
.vc-specialist { display:flex; align-items:center; justify-content:center; gap:9px; font-size:14px; color:var(--c-muted); padding:16px; border:1px dashed var(--c-border); border-radius:var(--r-card); margin-bottom:16px; text-wrap:balance; }
.vc-specialist i { font-size:18px; color:var(--c-accent); }
.vc-specialist b { color:var(--c-dark); font-weight:600; }

/* ---------- COUPON ---------- */
.vc-coupon { display:flex; gap:10px; margin-bottom:8px; }
.vc-coupon input { flex:1; padding:14px 20px; border:1px solid var(--c-border); border-radius:var(--r-pill); font-size:14px; color:var(--c-base); background:var(--c-light); font-family:inherit; transition-property:border-color; transition-duration:160ms; }
.vc-coupon input:focus { outline:none; border-color:var(--c-dark); }
.vc-coupon input::placeholder { color:var(--gz-input-placeholder-color, rgba(17,17,17,0.6)); }
.vc-coupon button { padding:14px 26px; box-shadow:inset 0 0 0 1px var(--c-dark); border:none; border-radius:var(--r-pill); font-size:14px; font-weight:600; color:var(--c-dark); white-space:nowrap; background:var(--c-light); cursor:pointer; }
.vc-coupon button:hover { background:var(--c-dark); color:var(--c-light); }

/* ---------- SUMMARY ---------- */
.vc-summary { background:var(--c-surface); border-radius:var(--r-card); padding:24px; }
.vc-summary-title { font-family:inherit; font-weight:600; letter-spacing:var(--hd-ls); font-size:18px; color:var(--c-dark); margin:0 0 18px; }
.vc-summary-line { display:flex; justify-content:space-between; font-size:14px; color:var(--c-base); margin-bottom:12px; font-variant-numeric:tabular-nums; }
.vc-summary-line span:first-child { color:var(--c-muted); font-variant-numeric:normal; }
.vc-summary-divider { border-top:1px solid var(--c-border); margin:16px 0; }
.vc-summary-total-row { display:flex; justify-content:space-between; align-items:baseline; }
.vc-summary-total-label { font-size:15px; color:var(--c-dark); font-weight:600; }
.vc-summary-total-value { font-size:24px; color:var(--c-dark); font-weight:600; letter-spacing:var(--hd-ls); font-variant-numeric:tabular-nums; }
.vc-summary-total-sub { font-size:13px; color:var(--c-muted); text-align:right; margin-top:4px; font-variant-numeric:tabular-nums; }
.vc-summary-btn { display:none; }

/* ---------- GUARANTEE ---------- */
.vc-guarantee { display:flex; gap:12px; margin-top:20px; }
.vc-guarantee-item { flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; padding:14px 8px; background:var(--c-light); border-radius:var(--r-card); text-align:center; box-shadow:inset 0 0 0 1px var(--c-border); }
.vc-guarantee-item i { font-size:19px; color:var(--c-dark); }
.vc-guarantee-item span { font-size:12px; color:var(--c-muted); line-height:1.35; text-wrap:balance; }

/* ---------- PAYMENTS ---------- */
.vc-payments { display:flex; gap:8px; padding:24px 0 0; flex-wrap:wrap; }
.vc-payments img { width:100%; max-width:340px; height:auto; outline:none !important; border-radius:0 !important; }
.vc-pay-pill { font-size:12px; color:var(--c-muted); box-shadow:inset 0 0 0 1px var(--c-border); border-radius:var(--r-pill); padding:5px 14px; }

/* pula o stagger após reload de mutação (qty/cupom/frete/bump) */
.vc-cart.vc-no-anim > * { animation:none !important; opacity:1 !important; transform:none !important; filter:none !important; }

/* spinner central durante AJAX */
.vc-spinner { position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center; background:rgba(255,255,255,0.35); }
.vc-cart.vc-loading .vc-spinner { display:flex; }
.vc-spinner::after { content:''; width:44px; height:44px; border-radius:50%; border:3px solid var(--c-border); border-top-color:var(--c-dark); animation:vcSpin .7s linear infinite; }
@keyframes vcSpin { to { transform:rotate(360deg); } }

/* calcular frete por CEP */
.vc-shipcalc { margin-bottom:18px; }
.vc-shipcalc-label { font-size:13px; color:var(--c-muted); margin-bottom:9px; }
.vc-cart-addr { display:flex; align-items:center; gap:6px; margin-top:10px; font-size:12.5px; color:var(--c-base); }
.vc-cart-addr i { font-size:15px; color:var(--c-muted); }
.vc-cart-ship-list { margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.vc-cart-ship { display:flex; align-items:center; gap:10px; padding:11px 13px; border:1px solid var(--c-border); border-radius:12px; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.vc-cart-ship:hover { border-color:#c4c4c4; }
.vc-cart-ship.sel { border-color:transparent; box-shadow:inset 0 0 0 2px var(--c-dark); }
.vc-cart-ship-radio { flex:0 0 16px; width:16px; height:16px; border-radius:50%; box-shadow:inset 0 0 0 1.5px var(--c-border); position:relative; }
.vc-cart-ship.sel .vc-cart-ship-radio { box-shadow:inset 0 0 0 1.5px var(--c-dark); }
.vc-cart-ship.sel .vc-cart-ship-radio::after { content:''; position:absolute; inset:4px; border-radius:50%; background:var(--c-dark); }
.vc-cart-ship-name { flex:1; font-size:13px; color:var(--c-dark); line-height:1.35; }
.vc-cart-ship-price { font-size:13px; font-weight:600; color:var(--c-dark); white-space:nowrap; font-variant-numeric:tabular-nums; }
/* Modal de confirmação */
.vc-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(0,0,0,0.45); }
.vc-modal[hidden] { display:none; }
.vc-modal-box { background:#fff; border-radius:16px; max-width:380px; width:100%; padding:26px 24px 20px; box-shadow:0 20px 60px rgba(0,0,0,0.25); text-align:center; }
.vc-modal-icon { width:48px; height:48px; border-radius:50%; background:#fdecea; color:#b3261e; display:flex; align-items:center; justify-content:center; font-size:24px; margin:0 auto 14px; }
.vc-modal-title { font-size:17px; font-weight:600; color:var(--c-dark); margin-bottom:6px; }
.vc-modal-text { font-size:14px; color:var(--c-muted); line-height:1.5; margin-bottom:20px; }
.vc-modal-actions { display:flex; gap:10px; }
.vc-modal-actions button { flex:1; padding:13px; border-radius:var(--r-pill); font-size:14px; font-weight:600; cursor:pointer; border:1px solid var(--c-border); }
.vc-modal-cancel { background:#fff; color:var(--c-dark); }
.vc-modal-cancel:hover { background:var(--c-surface); color:var(--c-dark); }
.vc-modal-ok { background:#b3261e; border-color:#b3261e; color:#fff; }
.vc-modal-ok:hover { background:#8f1e18; }

/* order bump */
.vc-bump { border:1.5px solid var(--c-accent); border-radius:var(--r-card); overflow:hidden; margin-bottom:20px; box-shadow:var(--shadow-card); }
.vc-bump-head { display:flex; align-items:center; gap:9px; padding:13px 18px; background:var(--c-accent); color:#fff; font-size:13px; font-weight:600; letter-spacing:var(--hd-ls); }
.vc-bump-head i { font-size:17px; }
.vc-bump-body { display:flex; align-items:center; gap:14px; padding:16px 18px; }
.vc-bump-check { width:24px; height:24px; border-radius:6px; flex-shrink:0; box-shadow:inset 0 0 0 1.5px var(--c-border); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s; }
.vc-bump-check.on { background:var(--c-accent); box-shadow:none; }
.vc-bump-check.on::after { content:'\2713'; color:#fff; font-size:15px; line-height:1; }
.vc-bump-img { width:58px; height:58px; border-radius:var(--r-thumb); background:var(--c-surface); flex-shrink:0; }
.vc-bump-info { flex:1; }
.vc-bump-name { font-size:14px; font-weight:600; letter-spacing:var(--hd-ls); color:var(--c-dark); line-height:1.35; }
.vc-bump-price { font-size:14px; color:var(--c-dark); margin-top:4px; font-weight:600; font-variant-numeric:tabular-nums; }

/* ---------- BOTÃO CTA ---------- */
.vc-btn-primary { background:#4A854D; color:#fff; text-align:center; border-radius:var(--r-pill); font-weight:600; cursor:pointer; }
.vc-btn-primary:hover { background:#509E54; color:#fff; }

/* ---------- STICKY CTA (mobile) ---------- */
.vc-sticky { position:fixed; left:0; right:0; bottom:0; z-index:50; background:var(--c-light); padding:13px 18px; display:flex; align-items:center; justify-content:space-between; gap:14px; box-shadow:0 -1px 0 rgba(17,17,17,0.06), 0 -8px 24px -12px rgba(17,17,17,0.18); }
.vc-sticky-total { display:flex; flex-direction:column; }
.vc-sticky-total-label { font-size:11px; color:var(--c-muted); }
.vc-sticky-total-value { font-size:18px; font-weight:600; color:var(--c-dark); font-variant-numeric:tabular-nums; }
.vc-sticky-btn { flex:1; max-width:230px; padding:15px; font-size:15px; }

/* ============ DESKTOP ============ */
@media (min-width: 900px) {
  .vc-cart { padding:8px 18px 64px; }
  .vc-grid { grid-template-columns: 1fr 372px; gap:44px; }
  .vc-col-summary { position:sticky; top:24px; }
  .vc-summary-btn { display:block; margin-top:20px; padding:16px; font-size:15px; }
  .vc-sticky { display:none; }
  .vc-item-img { width:96px; height:96px; }
}
