/* Carrinho compartilhado (SITE-2026-013) — home, PDP e catálogo */
.buy-modal { position: fixed; inset: 0; z-index: 900; display: none; align-items: flex-start; justify-content: center; padding: 1.2rem; overflow-y: auto; -webkit-overflow-scrolling: touch;
  background: rgba(13,27,42,.6); backdrop-filter: blur(3px); }
.buy-modal.open { display: flex; }
.buy-box { background: #fff; border-radius: 18px; width: 100%; max-width: 420px; padding: 1.9rem 1.7rem 1.7rem; position: relative; margin: auto; max-height: calc(100vh - 2.4rem); max-height: calc(100dvh - 2.4rem); overflow-y: auto;
  box-shadow: 0 30px 70px rgba(0,0,0,.35); animation: ubvBuyIn .2s ease; }
@keyframes ubvBuyIn { from { opacity: 0; transform: translateY(14px) } to { opacity: 1; transform: none } }
.buy-close { position: absolute; top: .9rem; right: 1rem; background: none; border: none; font-size: 1.3rem; color: #8A96A6; cursor: pointer; line-height: 1; }
.buy-close:hover { color: #CC1A22; }
.buy-modal .buy-eyebrow { font-family: 'Oswald', sans-serif; font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #CC1A22; }
.buy-modal .buy-title { font-family: 'Oswald', sans-serif; font-size: 1.45rem; font-weight: 700; text-transform: uppercase; letter-spacing: -.01em; line-height: 1.05; margin: .35rem 0 .5rem; color: #0D1B2A; }
.buy-label { font-size: .82rem; font-weight: 600; color: #445566; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .6rem; }
.buy-pay { width: 100%; padding: 1rem; border: none; border-radius: 10px; background: #25D366; color: #fff; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 1rem; letter-spacing: .02em; text-transform: uppercase; cursor: pointer; transition: filter .15s; display: flex; align-items: center; justify-content: center; gap: .5rem; }
.buy-pay:hover:not(:disabled) { filter: brightness(1.06); }
.buy-pay:disabled { background: #E5E0D6; color: #8A96A6; cursor: not-allowed; }
.buy-pay.guia { background: #0D1B2A; color: #fff; }
.buy-pay.guia:hover { filter: brightness(1.15); }
.buy-cep { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.buy-cep input { flex: 0 0 auto; width: 150px; border: 2px solid #E5E0D6; border-radius: 10px; padding: .7rem .9rem; font-family: inherit; font-size: 1rem; color: #0D1B2A; outline: none; letter-spacing: .04em; }
.buy-cep input:focus { border-color: #CC1A22; }
.buy-cep input.faltou { border-color: #CC1A22; background: #fff5f5; }
.dado-inp { width: 100%; border: 2px solid #E5E0D6; border-radius: 10px; padding: .62rem .8rem; font-family: inherit; font-size: .95rem; color: #0D1B2A; outline: none; margin-top: .5rem; box-sizing: border-box; }
.dado-inp:focus { border-color: #CC1A22; }
.dado-inp.faltou { border-color: #CC1A22; background: #fff5f5; }
.buy-cep-status { font-size: .82rem; color: #445566; }
.buy-cep-status.erro { color: #CC1A22; }
.buy-resumo { display: none; border-top: 1px solid #E5E0D6; padding-top: .9rem; margin-bottom: 1.1rem; }
.buy-resumo.show { display: block; }
.buy-resumo > div { display: flex; justify-content: space-between; font-size: .92rem; color: #445566; margin-bottom: .35rem; }
.buy-resumo .buy-total { font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 1.15rem; color: #0D1B2A; border-top: 1px dashed #E5E0D6; padding-top: .5rem; margin-top: .5rem; }
.buy-err { color: #CC1A22; font-size: .85rem; margin-top: .7rem; text-align: center; display: none; }
.buy-err.show { display: block; }
.buy-note { font-size: .76rem; color: #8A96A6; text-align: center; margin-top: .9rem; line-height: 1.5; }
.buy-note b { color: #445566; }

.float-cart {
  position: fixed; bottom: 6rem; right: 1.5rem; width: 58px; height: 58px; border-radius: 50%;
  background: #0D1B2A; color: #fff; border: 2px solid rgba(255,255,255,.85); cursor: pointer;
  display: flex; align-items: center; justify-content: center; z-index: 200;
  box-shadow: 0 8px 26px rgba(0,0,0,.45); transition: transform .2s;
}
.float-cart:hover { transform: scale(1.1); }
.cart-badge {
  position: absolute; top: -4px; right: -4px; min-width: 22px; height: 22px; padding: 0 5px;
  background: #CC1A22; color: #fff; border-radius: 11px; font-family: 'Oswald', sans-serif;
  font-weight: 700; font-size: .72rem; display: flex; align-items: center; justify-content: center;
  border: 2px solid #F7F4EF;
}
.float-cart.empty { display: none; }
.cart-box { max-width: 440px; }
.cart-empty { text-align: center; color: #445566; padding: 1.5rem 0 .5rem; font-size: 1rem; }
.cart-empty span { font-size: .85rem; color: #8A96A6; }
.cart-items { max-height: 40vh; overflow-y: auto; margin-bottom: 1rem; }
.cart-item { display: flex; align-items: center; gap: .8rem; padding: .7rem 0; border-bottom: 1px solid #F7F4EF; }
.cart-item img { width: 48px; height: 60px; object-fit: cover; border-radius: 7px; flex: 0 0 auto; background: #E5E0D6; }
.cart-item-info { flex: 1; min-width: 0; }
.cart-item-name { font-family: 'Oswald', sans-serif; font-weight: 600; font-size: .9rem; color: #0D1B2A; text-transform: uppercase; letter-spacing: .02em; line-height: 1.15; }
.cart-item-sub { font-size: .78rem; color: #445566; margin-top: .12rem; }
.cart-item-price { font-family: 'Oswald', sans-serif; font-weight: 700; color: #0D1B2A; font-size: .95rem; white-space: nowrap; }
.cart-item-rm { flex: 0 0 auto; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: #8A96A6; font-size: 1.15rem; line-height: 1; padding: 0; }
.cart-item-rm:hover { color: #CC1A22; }
.cart-foot { display: none; }
.cart-foot.show { display: block; }

.fg-bar {
  margin: 0 0 .85rem; padding: .75rem .9rem;
  border: 1.5px solid #e3e7ee; border-radius: 12px;
  background: #fbfcfe; display: none;
}
.fg-bar.show { display: block; }
.fg-msg {
  font-size: .87rem; line-height: 1.35; color: #45516b;
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
}
.fg-msg b { color: #0d1b2a; }
.fg-ico { flex-shrink: 0; width: 18px; height: 18px; }
.fg-track {
  margin-top: .55rem; height: 7px; border-radius: 99px;
  background: #e7ebf2; overflow: hidden;
}
.fg-fill {
  height: 100%; width: 0; border-radius: 99px;
  background: linear-gradient(90deg, #cc1a22, #e8552c);
  transition: width .35s ease;
}
.fg-bar.ganhou { border-color: #1f9d55; background: #f2fbf5; }
.fg-bar.ganhou .fg-msg { color: #14663a; }
.fg-bar.ganhou .fg-msg b { color: #14663a; }
.fg-bar.ganhou .fg-fill { background: #1f9d55; width: 100%; }
.fg-free { color: #1f9d55; font-weight: 800; }
.fg-free s { color: #98a2b5; font-weight: 500; margin-right: .35rem; }
.fg-nota {
  font-size: .78rem; color: #7d879b; line-height: 1.45;
  margin: .5rem 0 0; text-align: center;
}
.fg-add-polo {
  display: inline-flex; margin-left: auto; padding: .35rem .7rem;
  border-radius: 8px; background: #0D1B2A; color: #fff;
  font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  text-decoration: none; white-space: nowrap;
}
.fg-add-polo:hover { filter: brightness(1.15); }

.nav-cart, .tb-cart {
  margin-left: auto; position: relative; width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center;
  color: #fff; transition: background .2s; flex: 0 0 auto;
}
.nav-cart:hover, .tb-cart:hover { background: #CC1A22; }
.nav-cart .badge, .tb-cart .badge {
  position: absolute; top: -3px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px;
  border-radius: 10px; background: #CC1A22; color: #fff; font-size: .68rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center; border: 2px solid #0D1B2A;
}
.nav-cart.empty .badge, .tb-cart.empty .badge { display: none; }

.avulso-banner {
  background: #0D1B2A; color: #fff; text-align: center;
  padding: .85rem 1.2rem; font-size: .92rem; line-height: 1.45;
}
.avulso-banner b { color: #E4D3AC; }

@media (max-width: 480px) { .float-cart { bottom: 5.5rem; } }
