/* Mini-cart (mini-cart.js, audit E1): a drawer on the right on a computer, a sheet from the bottom on a phone. */
.mini-cart { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(420px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 0; border: 0; border-radius: 22px 0 0 22px; background: #fffcfb; color: var(--ink, #282326); box-shadow: -20px 0 60px #65364930; overflow: hidden; }
.mini-cart[open] { display: flex; flex-direction: column; animation: mini-cart-in .32s cubic-bezier(.22, 1, .36, 1); }
.mini-cart::backdrop { background: #2a1c2240; }
@keyframes mini-cart-in { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes mini-cart-up { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
/* fechando: desliza para fora (para a direita no computador, para baixo no celular) e o fundo clareia junto */
.mini-cart.is-closing { animation: mini-cart-out .3s cubic-bezier(.55, 0, .75, .3) forwards; }
.mini-cart.is-closing::backdrop { animation: mini-cart-fade .3s ease forwards; }
@keyframes mini-cart-out { to { transform: translateX(60px); opacity: 0; } }
@keyframes mini-cart-down { to { transform: translateY(100%); } }
@keyframes mini-cart-fade { to { background: transparent; } }
.mini-cart-body { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.mini-cart-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px 14px; border-bottom: 1px solid var(--line, #eadde1); }
.mini-cart-check { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 15px; font-weight: 650; color: #1f6b47; }
.mini-cart-check .icon { width: 24px; height: 24px; padding: 4px; border-radius: 50%; background: #e3f2ea; }
.mini-cart-close { flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--line, #eadde1); border-radius: 50%; background: #fff; color: inherit; font-size: 22px; line-height: 1; cursor: pointer; }
.mini-cart-scroll { flex: 1; min-height: 0; overflow: auto; padding: 16px 20px; }
.mini-cart-item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--line, #eadde1); }
.mini-cart-item img { width: 96px; height: 96px; object-fit: contain; border-radius: 14px; background: #fbf0f1; }
.mini-cart-item h3 { margin: 0 0 6px; font: 500 20px/1.2 'Playfair Display', Georgia, serif; }
.mini-cart-colors { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 3px; font-size: 12px; color: var(--muted, #71656c); }
.mini-cart-colors li { display: flex; align-items: center; gap: 6px; }
.mini-cart-colors i { width: 12px; height: 12px; flex-shrink: 0; border-radius: 50%; background: var(--chip); border: 1px solid #38232630; }
.mini-cart-colors strong { color: var(--ink, #282326); font-weight: 500; }
.mini-cart-item p { margin: 0; font-size: 13px; }
.mini-cart-item p span { color: var(--muted, #71656c); }
.mini-cart-total { margin: 14px 0 4px; }
.mini-cart-total div { display: flex; justify-content: space-between; gap: 12px; margin: 6px 0; font-size: 14px; }
.mini-cart-total dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.mini-cart-pix dt, .mini-cart-pix dd { color: #1f6b47; }
.mini-cart .free-ship { margin: 12px 0 4px; padding: 12px 14px; border: 1px solid #25664c24; border-radius: 12px; background: #f1f8f4; font-size: 12px; line-height: 1.45; color: #25463a; }
.mini-cart .free-ship p { margin: 0 0 8px; }
.mini-cart .free-ship strong { font-weight: 650; }
.mini-cart .free-ship-track { display: block; height: 6px; border-radius: 99px; background: #25664c1f; overflow: hidden; }
.mini-cart .free-ship-track i { display: block; height: 100%; width: calc(var(--free-ship) * 100%); border-radius: inherit; background: #2f7d5c; }
.mini-cart-kit h3 { margin: 18px 0 8px; font-size: 12px; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; color: var(--muted, #71656c); }
.mini-cart-kit ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mini-cart-kit li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px 10px 8px 8px; border: 1px solid var(--line, #eadde1); border-radius: 14px; background: #fff; }
.mini-cart-kit img { width: 56px; height: 56px; object-fit: contain; }
.mini-cart-kit strong { display: block; font-size: 14px; font-weight: 600; }
.mini-cart-kit small { font-size: 13px; color: var(--muted, #71656c); }
.mini-cart-add { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 1px solid var(--rose, #b64c68); border-radius: 999px; background: #fff; color: var(--rose, #b64c68); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.mini-cart-add .icon { width: 16px; height: 16px; }
/* adicionar pelo kit: o carrinho corre por dentro do botão (a trilha recorta só ele) e, quando volta, o selo com quantas
   peças daquela estão no carrinho aparece ou troca de número — nunca cortado pela borda */
.mini-cart-add { position: relative; padding: 0; overflow: visible; }
.mini-cart-add-track { display: inline-flex; align-items: center; gap: 6px; min-height: 42px; padding: 0 14px; border-radius: inherit; overflow: hidden; }
.mini-cart-add-cart { display: inline-grid; place-items: center; }
.mini-cart-add-count { position: absolute; top: -9px; right: -7px; z-index: 1; display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; overflow: hidden; border: 2px solid #fff; border-radius: 999px; background: var(--rose, #b64c68); color: #fff; font-size: 12px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; box-shadow: 0 3px 8px #b64c6840; }
.mini-cart-add-count span { display: block; }
.mini-cart-add.is-adding { background: #fdf1f4; }
.mini-cart-add.is-adding .mini-cart-add-cart { animation: kit-cart-run .9s cubic-bezier(.65, 0, .35, 1); }
.mini-cart-add.is-adding .mini-cart-add-label { animation: kit-label-fade .9s ease; }
.mini-cart-add-count.is-new { animation: kit-count-in .5s cubic-bezier(.34, 1.56, .64, 1); }
.mini-cart-add-count.is-bump { animation: kit-count-bump .5s cubic-bezier(.34, 1.56, .64, 1); }
.mini-cart-add-count:is(.is-new, .is-bump) span { animation: kit-count-roll .4s cubic-bezier(.22, 1, .36, 1); }
@keyframes kit-cart-run { 0% { transform: none; } 45% { transform: translateX(110px); opacity: 1; } 46% { transform: translateX(110px); opacity: 0; } 54% { transform: translateX(-40px); opacity: 0; } 55% { transform: translateX(-40px); opacity: 1; } 100% { transform: none; } }
@keyframes kit-label-fade { 15%, 70% { opacity: 0; } }
@keyframes kit-count-in { from { transform: scale(0); opacity: 0; } }
@keyframes kit-count-bump { 40% { transform: scale(1.3); } }
@keyframes kit-count-roll { from { transform: translateY(80%); opacity: 0; } }
.mini-cart-add:hover { background: #fdf1f4; }
.mini-cart-actions { display: grid; gap: 8px; padding: 14px 20px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line, #eadde1); background: #fffcfb; }
.mini-cart-actions .primary { display: flex; justify-content: center; align-items: center; gap: 10px; min-height: 50px; text-decoration: none; }
.mini-cart-actions .primary .icon { width: 18px; height: 18px; }
.mini-cart-continue { min-height: 46px; border: 1px solid var(--line, #eadde1); border-radius: 999px; background: #fff; color: inherit; font: inherit; font-size: 14px; cursor: pointer; }
.mini-cart :is(a, button):focus-visible { outline: 2px solid var(--rose, #b64c68); outline-offset: 3px; }
@media (max-width: 600px) {
  .mini-cart { inset: auto 0 0 0; width: 100vw; height: auto; max-height: 88dvh; border-radius: 22px 22px 0 0; }
  .mini-cart[open] { animation-name: mini-cart-up; }
  .mini-cart.is-closing { animation: mini-cart-down .32s cubic-bezier(.55, 0, .75, .3) forwards; }
  .mini-cart-scroll { padding: 14px 16px; }
  .mini-cart-head, .mini-cart-actions { padding-left: 16px; padding-right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .mini-cart[open], .mini-cart.is-closing, .mini-cart.is-closing::backdrop, .mini-cart-add.is-adding *, .mini-cart-add-count, .mini-cart-add-count span { animation: none; } }
/* A barra do frete grátis sobe quando entra mais uma peça (free-shipping.js, riseBar): a caixa acende e um brilho corre pela barra. */
.free-ship-track i { position: relative; overflow: hidden; }
.free-ship.is-rising { animation: free-ship-glow 1.3s ease .15s; }
.free-ship.is-rising .free-ship-track i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, #ffffffa6, transparent); transform: translateX(-100%); animation: free-ship-shine 1.1s ease .45s; }
.free-ship.is-rising.is-reached strong { display: inline-block; animation: free-ship-pop .6s cubic-bezier(.34, 1.56, .64, 1) 1s; }
@keyframes free-ship-glow { 35% { border-color: #2f7d5c66; box-shadow: 0 0 0 4px #2f7d5c1f; } }
@keyframes free-ship-shine { to { transform: translateX(100%); } }
@keyframes free-ship-pop { 50% { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .free-ship.is-rising, .free-ship.is-rising .free-ship-track i::after, .free-ship.is-rising.is-reached strong { animation: none; } }
