/* ══════════════════════════════════════════
   TOKENS
══════════════════════════════════════════ */
.bc-page {
  --bg:      #080808; --card:    #111111; --card-2: #181818;
  --fg:      #ffffff; --muted:   #888888; --dim:    #3d3d3d;
  --border:  rgba(255,255,255,.07); --border2: rgba(255,255,255,.14);
  --nav-bg:  rgba(8,8,8,.96);
  --shadow:  0 20px 60px rgba(0,0,0,.55);
  --r: 12px; --rg: 16px;
  --ease:   cubic-bezier(0.4,0,0.2,1);
  --spring: cubic-bezier(0.34,1.56,0.64,1);
  --font:   'Inter',-apple-system,system-ui,sans-serif;
}

/* ── BASE (escopado em .bc-page pra não vazar pro resto do site) ─── */
.bc-page, .bc-page *, .bc-page *::before, .bc-page *::after { box-sizing:border-box }
.bc-page { background:var(--bg); color:var(--fg); font-family:var(--font); overflow-x:hidden; margin:0; padding:0 }
.bc-page img  { max-width:100%; height:auto; display:block }
.bc-page a    { text-decoration:none; color:inherit }
.bc-page ::-webkit-scrollbar       { width:4px }
.bc-page ::-webkit-scrollbar-track { background:var(--bg) }
.bc-page ::-webkit-scrollbar-thumb { background:var(--dim); border-radius:4px }

/* Anel de foco padrão do navegador some depois de clique (ex: aba "Entrar"
   ficava com um traço branco preso em volta depois de clicar, porque o botão
   continua com foco e nenhum reset de outline existia pra ele) — troca por um
   anel discreto só quando o foco é por TECLADO (:focus-visible), pra não
   quebrar acessibilidade. Escopado em .bc-page pra não vazar pro resto do site. */
.bc-page button, .bc-page input, .bc-page textarea, .bc-page select, .bc-page a { outline:none }
.bc-page button:focus-visible,
.bc-page input:focus-visible,
.bc-page textarea:focus-visible,
.bc-page select:focus-visible,
.bc-page a:focus-visible {
  outline:2px solid rgba(255,255,255,.5); outline-offset:2px;
}

/* Zera qualquer largura/margem/padding que o TEMA ativo (carregado via
   wp_head() na mesma página) possa aplicar em seletores genéricos que a
   gente não tem como evitar usar — <body> e <main>. Sem isso, temas que
   "encaixotam" o conteúdo (padding responsivo no body, max-width no main,
   comum em themes baseados em blocos) deixam o site inteiro com sobra de
   espaço nas bordas, especialmente visível no mobile. */
body.bc-page {
  margin:0 !important; padding:0 !important;
  max-width:none !important; width:100% !important;
}
.bc-page main.bc-main {
  display:block !important;
  max-width:none !important; width:100% !important;
  margin:0 !important; padding:0 !important; float:none !important;
}
/* Mesmo tratamento pro <nav> e <footer> de fora do main — "nav"/"footer" e
   até ".nav"/".footer" também são nomes que um tema pode ter regra própria. */
.bc-page nav.nav {
  display:block !important; max-width:none !important; width:100% !important;
  margin:0 !important; float:none !important; position:sticky !important; top:0 !important;
}
.bc-page footer.footer {
  display:block !important; max-width:none !important; width:100% !important;
  margin:0 !important; float:none !important; position:static !important;
}

/* !important: o tema ativo do WordPress também carrega sua própria folha de
   estilos nesta página (via wp_head()) e frequentemente reaproveita o nome de
   classe genérico ".bc-container" com o seu próprio grid — sem isso, o alinhamento
   do cabeçalho pode ficar deslocado em relação ao logo/nav conforme o tema. */
.bc-page .bc-container,
.bc-page .bc-nav-wrap {
  max-width:1200px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:48px !important;
  padding-right:48px !important;
  box-sizing:border-box !important;
  text-align:left !important;
}

/* ── NOISE ─────────────────────────────── */
.bc-page .noise {
  position:fixed; top:-50%; left:-50%; width:200%; height:200%;
  pointer-events:none; z-index:9999; opacity:.022;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ══════════════════════════════════════════
   NAV
══════════════════════════════════════════ */
.bc-page .nav {
  position:sticky; top:0; z-index:500;
  background:var(--nav-bg);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
}
.bc-page .bc-nav-wrap {
  display:flex; align-items:center; gap:16px;
  padding-top:13px; padding-bottom:13px;
}

.bc-page .nav-logo     { flex-shrink:0; display:flex; align-items:center }
.bc-page .nav-logo-img { height:26px; width:auto; filter:brightness(0) invert(1) }
.bc-page .nav-logo-text{ font-size:12px; font-weight:800; letter-spacing:.2em; color:var(--fg) }

.bc-page .nav-pill-dot {
  width:7px; height:7px; border-radius:50%; flex-shrink:0;
  background:#fff; opacity:.9;
  box-shadow:0 0 7px rgba(255,255,255,.8), 0 0 14px rgba(255,255,255,.3);
  animation:bc-dot-pulse 2.2s ease-in-out infinite;
}
@keyframes bc-dot-pulse {
  0%,100% { opacity:.9; transform:scale(1) }
  50%      { opacity:.2; transform:scale(.5) }
}

.bc-page .nav-search-wrap {
  margin-left:auto; position:relative;
  flex:0 1 260px; min-width:120px;
}
.bc-page .nav-search-icon {
  position:absolute; left:11px; top:50%; transform:translateY(-50%);
  width:14px; height:14px; color:var(--muted); pointer-events:none;
}
.bc-page .nav-search-input {
  width:100%; padding:9px 12px 9px 34px;
  background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); color:var(--fg); font-family:var(--font);
  font-size:13px; outline:none;
  transition:border-color .2s, background .2s;
}
.bc-page .nav-search-input::placeholder { color:var(--dim) }
.bc-page .nav-search-input:focus { border-color:var(--border2); background:var(--card-2) }

/* ── POPUP DE RESULTADOS DA BUSCA ──────── */
.bc-page .nav-search-results {
  position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:600;
  background:var(--card); border:1px solid var(--border2); border-radius:var(--r);
  box-shadow:var(--shadow); overflow:hidden;
  opacity:0; transform:translateY(-6px); pointer-events:none;
  transition:opacity .18s var(--ease), transform .18s var(--ease);
  max-height:70vh; overflow-y:auto;
}
.bc-page .nav-search-results.active { opacity:1; transform:translateY(0); pointer-events:all }
.bc-page .nsr-item {
  display:flex; align-items:center; gap:12px; padding:12px 14px;
  border-bottom:1px solid var(--border); transition:background .15s;
}
.bc-page .nsr-item:last-child { border-bottom:none }
.bc-page .nsr-item:hover { background:var(--card-2) }
.bc-page .nsr-img {
  width:38px; height:38px; border-radius:8px; overflow:hidden; background:var(--card-2); flex-shrink:0;
}
.bc-page .nsr-img img { width:100%; height:100%; object-fit:cover }
.bc-page .nsr-info { min-width:0; display:flex; flex-direction:column; gap:4px }
.bc-page .nsr-name {
  display:block; font-size:12px; font-weight:600; color:var(--fg); line-height:1.3;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.bc-page .nsr-price { display:block; font-size:11px; color:var(--muted) }
.bc-page .nsr-empty { padding:22px 14px; text-align:center; font-size:12px; color:var(--muted) }

/* ── ENTRAR / MINHA CONTA (cabeçalho) ──── */
.bc-page .nav-account {
  display:flex; align-items:center; gap:7px; flex-shrink:0;
  padding:9px 16px; border-radius:var(--r);
  background:var(--card); border:1px solid var(--border); color:var(--fg);
  font-size:12px; font-weight:700; letter-spacing:.02em;
  transition:background .2s, border-color .2s;
}
.bc-page .nav-account:hover { border-color:var(--border2); background:var(--card-2) }
.bc-page .nav-account-icon { width:15px; height:15px; flex-shrink:0 }

/* ── CARRINHO (cabeçalho) ──────────────── */
.bc-page .nav-cart {
  display:flex; align-items:center; gap:8px; flex-shrink:0; position:relative;
  padding:9px 16px; border-radius:var(--r);
  background:var(--card); border:1px solid var(--border);
  font-size:12px; font-weight:700; letter-spacing:.03em; color:var(--fg);
  transition:border-color .2s, background .2s;
}
.bc-page .nav-cart:hover { border-color:var(--border2); background:var(--card-2) }
.bc-page .nav-cart-icon  { width:16px; height:16px; flex-shrink:0 }
.bc-page .nav-cart-count {
  min-width:16px; height:16px; padding:0 4px; border-radius:40px;
  background:#fff; color:#000; font-size:9px; font-weight:800;
  display:flex; align-items:center; justify-content:center;
}

/* ── SINO DE NOTIFICAÇÕES (cabeçalho) ──── */
.bc-page .bc-notif-wrap { position:relative; flex-shrink:0 }
.bc-page .bc-notif-btn {
  width:36px; height:36px; padding:0; display:inline-flex; align-items:center; justify-content:center;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  color:var(--fg); cursor:pointer; transition:background .2s, border-color .2s;
}
.bc-page .bc-notif-btn:hover { border-color:var(--border2); background:var(--card-2) }
.bc-page .bc-notif-btn svg { width:16px; height:16px }
.bc-page .bc-notif-count {
  position:absolute; top:-3px; right:-3px; min-width:16px; height:16px; padding:0 4px;
  border-radius:40px; background:#ff5c5c; color:#fff; font-size:9px; font-weight:800;
  display:flex; align-items:center; justify-content:center; border:1.5px solid var(--bg); line-height:1;
}

.bc-page .bc-notif-dropdown {
  display:none; position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%); width:320px;
  background:var(--card); border:1px solid var(--border2); border-radius:var(--rg);
  box-shadow:var(--shadow); padding:8px; z-index:200; max-height:420px; overflow-y:auto;
}
.bc-page .bc-notif-dropdown.open { display:block }
.bc-page .bc-notif-dropdown-head {
  display:flex; align-items:center; justify-content:space-between; gap:8px; padding:6px 8px 10px;
}
.bc-page .bc-notif-dropdown-title { font-size:12px; font-weight:800 }
.bc-page .bc-notif-mark-all {
  background:none; border:none; color:var(--muted); font-size:10.5px; cursor:pointer;
  font-family:var(--font); padding:0;
}
.bc-page .bc-notif-mark-all:hover { color:var(--fg); text-decoration:underline }
.bc-page .bc-notif-empty { font-size:12px; color:var(--muted); text-align:center; padding:20px 0 }

.bc-page .bc-notif-item {
  display:flex; gap:10px; padding:10px 8px; border-radius:8px; cursor:pointer;
  transition:background .15s; position:relative;
}
.bc-page .bc-notif-item:hover { background:var(--card-2) }
.bc-page .bc-notif-item-dot { width:7px; height:7px; border-radius:50%; background:#4a9eff; flex-shrink:0; margin-top:5px }
.bc-page .bc-notif-item.lida .bc-notif-item-dot { background:transparent }
.bc-page .bc-notif-item-title { font-size:12px; font-weight:700; color:var(--fg) }
.bc-page .bc-notif-item.lida .bc-notif-item-title { font-weight:500; color:var(--muted) }
.bc-page .bc-notif-item-msg  { font-size:11px; color:var(--muted); margin-top:2px }
.bc-page .bc-notif-item-time { font-size:9.5px; color:var(--dim); margin-top:4px }
.bc-page .bc-notif-item-del {
  background:none; border:none; color:var(--dim); cursor:pointer; padding:4px; border-radius:6px;
  flex-shrink:0; align-self:flex-start; opacity:0; transition:opacity .15s, color .15s, background .15s;
}
.bc-page .bc-notif-item:hover .bc-notif-item-del { opacity:1 }
.bc-page .bc-notif-item-del:hover { color:#ff5c5c; background:var(--card-2) }

@media (max-width:480px) {
  /* No mobile, centralizar embaixo do próprio botão (left:50%+translateX)
     podia empurrar o dropdown pra fora da tela quando o sino fica perto da
     borda direita do nav (causava scroll horizontal na página). position:fixed
     com left/right simétricos centraliza no VIEWPORT, não no botão — nunca
     vaza pra fora independente de onde o sino estiver. */
  .bc-page .bc-notif-dropdown {
    position:fixed; top:64px; left:12px; right:12px; transform:none; width:auto;
  }
}

/* ── AVISO DE NOVA VERSÃO (Minha Conta > Pedidos) ──── */
/* display:flex (não inline) pra sempre cair numa linha própria, embaixo do
   nome do produto — antes ficava espremido do lado do texto, disputando
   espaço com Data/Status/Total na mesma linha. SVG em vez de emoji (mesma
   lição de sempre neste projeto: emoji/ícone de fonte não renderiza igual
   em todo navegador/SO, SVG hardcoded é confiável). */
.bc-page .bc-order-update-flag {
  display:flex; align-items:center; gap:6px; width:fit-content; margin-top:8px;
  font-size:11px; font-weight:700; color:#4ade80; line-height:1.3;
  background:rgba(34,197,94,.12); border:1px solid rgba(34,197,94,.3);
  border-radius:8px; padding:6px 12px;
}
.bc-page .bc-order-update-flag svg { width:14px; height:14px; flex-shrink:0 }

/* ══════════════════════════════════════════
   SITE HEADER
══════════════════════════════════════════ */
/* Depois de 6 rodadas tentando "vencer" o CSS do tema em cima de nomes de
   classe genéricos (.site-header, .bc-container), a solução definitiva foi parar
   de brigar por especificidade e usar nomes 100% exclusivos do plugin, que
   nenhum tema WordPress reconhece ou estiliza por conta própria — elimina a
   colisão pela raiz em vez de tentar vencer ela no CSS. */
.bc-page .bc-hero {
  display:block; width:100%; box-sizing:border-box;
  margin:0; padding:40px 0 28px; border-bottom:1px solid var(--border);
  text-align:left;
}
/* (o espaçamento horizontal do hero vem do .bc-container reaproveitado
   direto no HTML — não duplicamos mais um .bc-hero-container paralelo, pra
   nunca mais divergir por engano de um valor pro outro) */
.bc-page .bc-hero-content {
  display:block; box-sizing:border-box;
  max-width:640px; width:100%;
  margin-left:0; margin-right:auto;
  text-align:left;
}
.bc-page .site-pill {
  display:inline-flex; align-items:center; gap:9px; max-width:100%;
  font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--border2);
  padding:6px 14px 6px 10px; border-radius:40px; margin-bottom:18px;
}
.bc-page .site-pill-text {
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%;
}
.bc-page .site-title {
  font-size:clamp(22px,3vw,42px); font-weight:800;
  letter-spacing:-.03em; line-height:1.15; margin-bottom:8px;
}
.bc-page .site-title em { font-style:normal; color:var(--muted) }
.bc-page .site-sub { font-size:clamp(13px,1.2vw,16px); color:var(--muted); line-height:1.65 }

/* ══════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════ */
/* Botões com preenchimento sólido simples — a técnica antiga (gradiente
   202%/background-position "deslizante" pra simular um wipe no hover) era a
   causa mais provável do "traçado" reportado várias vezes em cima de botões
   (Comprar, ícone de carrinho): em alguns navegadores/zoom, o corte do
   gradiente ampliado dentro do border-radius vazava uma linha da cor de
   baixo. Preenchimento sólido elimina essa classe de artefato de vez. */
.bc-page .btn {
  display:inline-flex; align-items:center; justify-content:center;
  gap:7px; border-radius:8px; font-weight:700; letter-spacing:.1em;
  border:1px solid transparent; white-space:nowrap;
  cursor:pointer; font-family:var(--font);
  transition:background-color .25s var(--ease), color .25s var(--ease),
             border-color .25s var(--ease), transform .15s;
  -webkit-tap-highlight-color:transparent;
}
.bc-page .btn:active  { transform:scale(.96) }
.bc-page .btn-sm      { padding:10px 18px; font-size:10px }
.bc-page .btn-md      { padding:13px 26px; font-size:11px }
.bc-page .btn-lg      { padding:15px 38px; font-size:12px }
.bc-page .btn-primary {
  background-color:#fff; color:#000; border-color:#fff;
}
.bc-page .btn-primary:hover { background-color:#e2e2e2; border-color:#e2e2e2 }
.bc-page .btn-ghost {
  background-color:transparent; color:var(--fg); border-color:var(--border2);
}
.bc-page .btn-ghost:hover { background-color:rgba(255,255,255,.1); border-color:var(--fg) }

/* ══════════════════════════════════════════
   FILTER BAR
══════════════════════════════════════════ */
.bc-page .s-products  { padding:0 0 80px }
.bc-page .filter-bar  { padding:18px 0 16px; border-bottom:1px solid var(--border); margin-bottom:28px }
.bc-page .filter-cats {
  display:flex; align-items:center; gap:7px;
  flex-wrap:nowrap; overflow-x:auto;
  -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.bc-page .filter-cats::-webkit-scrollbar { display:none }
.bc-page .filter-btn {
  flex-shrink:0; padding:7px 14px; border-radius:40px;
  font-size:11px; font-weight:600; letter-spacing:.07em;
  background:transparent; border:1px solid var(--border); color:var(--muted);
  cursor:pointer; font-family:var(--font);
  transition:background .2s, border-color .2s, color .2s, transform .15s;
  -webkit-tap-highlight-color:transparent;
}
.bc-page .filter-btn:hover  { border-color:var(--border2); color:var(--fg) }
.bc-page .filter-btn:active { transform:scale(.95) }
.bc-page .filter-btn.active { background:var(--fg); color:var(--bg); border-color:var(--fg) }

/* ══════════════════════════════════════════
   PRODUCT GRID — 4 colunas desktop
══════════════════════════════════════════ */
.bc-page .products-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px }

/* ── CARD ──────────────────────────────── */
.bc-page .pc {
  background:var(--card); border:1px solid var(--border);
  border-radius:var(--rg); overflow:visible; cursor:pointer; position:relative;
  transition:border-color .3s, transform .35s var(--ease), box-shadow .35s;
}
.bc-page .pc:hover {
  border-color:var(--border2); transform:translateY(-4px); box-shadow:var(--shadow);
}
.bc-page .pc-img-wrap {
  position:relative; width:100%; padding-bottom:62%;
  background:var(--card-2); overflow:hidden;
  border-radius:var(--rg) var(--rg) 0 0;
}
.bc-page .pc-img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center;
  transition:transform .55s var(--ease);
}
.bc-page .pc:hover .pc-img { transform:scale(1.04) }
.bc-page .pc-img-placeholder {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center; color:var(--dim);
}
.bc-page .pc-img-placeholder svg { width:36px; height:36px }

/* Selo de destaque — flutua ACIMA do card (poke pra fora da borda superior),
   igual estilo pill do .pc-cat, mas chamativo (fundo claro) e pulsando. Texto
   configurável por produto (_bc_featured_badge_text), estrela sempre fixa. */
.bc-page .pc-featured-tag {
  position:absolute; top:-13px; left:50%; z-index:3;
  transform:translateX(-50%);
  display:flex; align-items:center; gap:5px; white-space:nowrap;
  padding:5px 14px; border-radius:40px; font-size:10px; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase;
  background:var(--fg); color:var(--bg);
  border:1px solid var(--border2);
  box-shadow:0 4px 14px rgba(0,0,0,.4);
  animation:bc-featured-pulse 1.8s ease-in-out infinite;
}
.bc-page .pc-featured-tag-star { font-size:11px; line-height:1 }
@keyframes bc-featured-pulse {
  0%, 100% {
    transform:translateX(-50%) scale(1);
    box-shadow:0 4px 14px rgba(0,0,0,.4), 0 0 0 0 rgba(255,255,255,.35);
  }
  50% {
    transform:translateX(-50%) scale(1.07);
    box-shadow:0 4px 14px rgba(0,0,0,.4), 0 0 0 7px rgba(255,255,255,0);
  }
}
.bc-page .pc-cat {
  position:absolute; bottom:8px; right:8px; z-index:2;
  padding:3px 8px; border-radius:40px; font-size:8px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em;
  background:rgba(8,8,8,.72); color:var(--muted);
  backdrop-filter:blur(8px); border:1px solid var(--border2);
}

.bc-page .pc-body    { padding:14px 14px 13px }
.bc-page .pc-price-row { display:flex; align-items:flex-start; gap:6px; margin-bottom:11px }
.bc-page .pc-price   { font-size:11px; font-weight:600; color:var(--muted); margin-bottom:0 }
/* Preço em promoção no card usa o mesmo bloco empilhado (2 linhas) da página
   de produto, só que compacto pro tamanho do card. "A partir de" (from_price_block)
   reaproveita os MESMOS elementos (bc-price-compare-row + bc-price-now-big) no
   lugar do riscado+badge — garante altura idêntica às outras 2 variantes de preço
   do card sem precisar calcular/casar altura na mão. */
.bc-page .pc-price-row .bc-price-block       { margin:0; flex:1; min-width:0 }
.bc-page .pc-price-row .bc-price-compare-row { margin-bottom:2px; gap:5px }
/* .bc-price-block adicionado nos 4 seletores abaixo só pra ganhar em
   especificidade dos equivalentes genéricos da página de Produto (mesmo
   número de classes sem isso — o de baixo no arquivo vencia o empate mesmo
   dentro do card, deixando esses elementos com o tamanho da página de
   Produto em vez do tamanho compacto do card). */
.bc-page .pc-price-row .bc-price-block .bc-price-old        { font-size:10px }
.bc-page .pc-price-row .bc-price-block .bc-discount-badge   { font-size:9px; padding:1px 5px }
.bc-page .pc-price-row .bc-price-block .bc-price-now-big    { font-size:15px; font-weight:800 }
.bc-page .pc-price-row .bc-price-block .pc-price-from-label { font-size:10px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.05em }
/* Quando não tem desconto, a linha do riscado+badge é renderizada vazia
   (visibility:hidden) só pra reservar a mesma altura — assim todo card fica
   com a mesma altura e o botão "Comprar" cai sempre no mesmo lugar. Precisa do
   MESMO font-size da linha visível (10px, igual .bc-price-old) — sem isso, o
   "&nbsp;" herda o tamanho de fonte padrão da página (maior), reservando uma
   altura diferente da do card com desconto ao lado. */
.bc-page .pc-price-row .bc-price-block .bc-price-compare-row--empty { visibility:hidden; font-size:10px }
.bc-page .pc-price-row .bc-price-block .bc-price-now-big--empty     { visibility:hidden }
.bc-page .pc-delivery-icon {
  display:inline-flex; align-items:center; justify-content:center; margin-left:auto;
  width:28px; height:28px; border-radius:8px; background:#2f6fed; color:#fff; flex-shrink:0;
}
.bc-page .pc-delivery-icon svg { width:16px; height:16px }
.bc-page .pc-name    { font-size:13px; font-weight:700; letter-spacing:-.01em; line-height:1.25; margin-bottom:7px }

/* Linha de ações do card: "Comprar" ocupa o espaço, ícone de carrinho tem largura fixa —
   layout em flex explícito evita o corte/overflow que acontecia com botões soltos. */
.bc-page .pc-actions { display:flex; align-items:stretch; gap:6px; min-width:0 }
.bc-page .pc-actions > .btn { flex:1 1 auto; min-width:0 }
.bc-page .pc-actions > .btn-icon { flex:0 0 38px; width:38px; padding:0 }
.bc-page .pc-actions > .pc-actions-spacer { flex:0 0 38px; width:38px }
.bc-page .pc-actions > .pc-actions-delivery {
  flex:0 0 38px; width:38px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:8px; background:#2f6fed; color:#fff;
}
.bc-page .pc-actions > .pc-actions-delivery svg { width:16px; height:16px }

/* ── BOTÃO ÍCONE (carrinho) ────────────── */
.bc-page .btn-icon { position:relative; overflow:visible }
.bc-page .btn-icon-svg { width:15px; height:15px; flex-shrink:0; transition:opacity .15s }
.bc-page .btn-icon.is-added {
  background-color:#1f9d55; background-image:none; border-color:#1f9d55; color:#fff;
  animation:bc-pop .38s var(--spring);
}
@keyframes bc-pop {
  0%   { transform:scale(1) }
  45%  { transform:scale(1.18) }
  100% { transform:scale(1) }
}

/* Botão "Adicionar ao carrinho" com texto (página de Produto) usa o mesmo estado .is-added */
.bc-page .bc-single-cart.is-added {
  background-color:#1f9d55; background-image:none; border-color:#1f9d55; color:#fff;
}

/* ── PREÇO PROMOCIONAL ─────────────────── */
.bc-page .bc-price-old {
  font-size:11px; color:var(--dim); text-decoration:line-through; font-weight:600;
}
.bc-page .bc-discount-badge {
  font-size:10px; font-weight:800; color:#22c55e; background:rgba(34,197,94,.12);
  padding:2px 6px; border-radius:5px; letter-spacing:.02em;
}
.bc-page .bc-price-now { font-weight:800 }

/* Bloco de preço empilhado da página de Produto: riscado+badge numa linha,
   preço atual grande logo abaixo — evita a bagunça de tudo numa linha só. */
.bc-page .bc-price-block        { margin:14px 0 18px }
.bc-page .bc-price-compare-row  { display:flex; align-items:center; gap:8px; margin-bottom:6px }
.bc-page .bc-price-compare-row .bc-price-old  { font-size:15px }
.bc-page .bc-price-compare-row .bc-discount-badge { font-size:12px; padding:3px 8px }
.bc-page .bc-price-now-big      { font-size:34px; font-weight:900; letter-spacing:-.03em }
/* "A partir de: [preço]" (from_price_block) reaproveita os MESMOS elementos
   acima (bc-price-compare-row + bc-price-now-big) no lugar do riscado+badge —
   garante altura idêntica ao preço normal/promo, sem pular o layout entre os
   dois casos. */
.bc-page .bc-price-compare-row .pc-price-from-label { font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.08em }
/* Mais perto do valor do que o riscado+badge de desconto (que precisa de mais
   respiro por ter dois elementos lado a lado) — seletor composto (2 classes no
   mesmo elemento) pra ganhar do .bc-price-compare-row genérico acima sem
   depender de ordem no arquivo. */
.bc-page .bc-price-compare-row.bc-price-compare-row--from { margin-bottom:2px }

/* ── ENTREGA AUTOMÁTICA (página de Produto) ────── */
.bc-page .bc-delivery-badge {
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px 4px 8px; border-radius:40px;
  font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  background:rgba(47,111,237,.14); color:#5b8dff; border:1px solid rgba(91,141,255,.3);
}
.bc-page .bc-delivery-badge svg { width:11px; height:11px }

/* ── EMPTY ─────────────────────────────── */
.bc-page .empty-state {
  grid-column:1/-1; display:flex; flex-direction:column;
  align-items:center; padding:72px 20px; text-align:center;
}
.bc-page .empty-icon {
  width:60px; height:60px; border-radius:14px;
  background:var(--card); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--dim); margin-bottom:14px;
}
.bc-page .empty-icon svg { width:26px; height:26px }
.bc-page .empty-title    { font-size:15px; font-weight:700; margin-bottom:4px }
.bc-page .empty-sub      { font-size:13px; color:var(--muted) }

/* ══════════════════════════════════════════
   MODAL / PÁGINA DE PRODUTO
   Classes .modal-* originalmente eram usadas no overlay JS.
   Reaproveitadas aqui como conteúdo estático da página de Produto real.
══════════════════════════════════════════ */
.bc-page .modal-img-wrap {
  position:relative; width:100%; padding-bottom:62%;
  background:var(--card-2); overflow:hidden;
}
.bc-page .modal-img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center; display:block;
}

.bc-page .modal-body         { padding:22px 24px 28px }
.bc-page .modal-meta         { display:flex; gap:7px; margin-bottom:12px; flex-wrap:wrap }
.bc-page .modal-cat-tag,
.bc-page .modal-dest-tag     {
  display:inline-flex; align-items:center;
  padding:4px 10px; border-radius:40px;
  font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  border:1px solid var(--border2); color:var(--muted);
}
.bc-page .modal-dest-tag     { background:rgba(255,255,255,.07); color:#fff; border-color:rgba(255,255,255,.2) }
/* Selo de nota média — mesma estrela/cor âmar da seção Avaliações (#facc15),
   só reaproveitada em tamanho de pill. Link pra #avaliacoes, desce a página
   até a seção quando clicado. */
.bc-page .modal-rating-tag {
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px; border-radius:40px;
  border:1px solid var(--border2); background:rgba(250,204,21,.1);
  transition:border-color .2s, background .2s;
}
.bc-page .modal-rating-tag:hover { border-color:rgba(250,204,21,.4); background:rgba(250,204,21,.16) }
.bc-page .modal-rating-tag .star-rating {
  font-size:11px; width:5.4em; height:1em; line-height:1; margin:0 !important;
}
.bc-page .modal-rating-tag .star-rating::before { color:var(--dim) }
.bc-page .modal-rating-tag .star-rating span::before { color:#facc15 }
.bc-page .modal-rating-value { font-size:11px; font-weight:800; color:#fff }
.bc-page .modal-rating-count { font-size:10px; font-weight:600; color:var(--muted) }
.bc-page .modal-name         { font-size:20px; font-weight:800; letter-spacing:-.02em; line-height:1.2; margin-bottom:12px }
.bc-page .modal-desc         { font-size:14px; color:var(--muted); line-height:1.78; margin-bottom:22px; word-break:break-word }
.bc-page .modal-desc p       { margin-bottom:14px }
.bc-page .modal-price-single { font-size:32px; font-weight:900; letter-spacing:-.03em; margin-bottom:18px }
.bc-page .modal-price-from   { font-size:11px; color:var(--muted); font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:8px }
.bc-page .modal-tiers        { display:flex; flex-direction:column; gap:10px; margin-bottom:20px }
.bc-page .modal-tier {
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:14px 16px; background:var(--card-2);
  border:1px solid var(--border2); border-radius:var(--r);
  transition:border-color .2s;
}
.bc-page .modal-tier:hover   { border-color:rgba(255,255,255,.25) }
.bc-page .modal-tier-label   { font-size:12px; font-weight:700; margin-bottom:2px; color:var(--muted) }
.bc-page .modal-tier-price   { font-size:20px; font-weight:900; letter-spacing:-.02em }

/* ══════════════════════════════════════════
   QUANTIDADE (stepper) — reaproveitado no
   Carrinho e na página de Produto
══════════════════════════════════════════ */
.bc-page .bc-qty-stepper {
  display:inline-flex; align-items:center; gap:0;
  border:1px solid var(--border2); border-radius:var(--r); overflow:hidden;
  height:38px; margin:4px 0 14px;
}
.bc-page .bc-qty-btn {
  width:36px; height:100%; background:var(--card-2); border:none; color:var(--fg);
  font-size:16px; font-weight:700; cursor:pointer; font-family:var(--font);
  transition:background .2s;
}
.bc-page .bc-qty-btn:hover { background:var(--dim) }
.bc-page .bc-qty-input {
  width:44px; height:100%; border:none; border-left:1px solid var(--border2); border-right:1px solid var(--border2);
  background:var(--card); color:var(--fg); text-align:center; font-family:var(--font); font-size:13px; font-weight:700;
  -moz-appearance:textfield;
}
.bc-page .bc-qty-input::-webkit-outer-spin-button,
.bc-page .bc-qty-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0 }

/* ══════════════════════════════════════════
   PÁGINA DE PRODUTO — layout em 2 colunas
══════════════════════════════════════════ */
.bc-page .bc-single-container { padding-top:20px; padding-bottom:70px }

.bc-page .bc-breadcrumb {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:11px; color:var(--muted); margin-bottom:22px;
}
.bc-page .bc-breadcrumb a { color:var(--muted); transition:color .2s }
.bc-page .bc-breadcrumb a:hover { color:var(--fg) }
.bc-page .bc-breadcrumb-sep { color:var(--dim) }
.bc-page .bc-breadcrumb-current { color:var(--fg); font-weight:600 }

/* Galeria + buy box + descrição, tudo dentro de um único contêiner */
.bc-page .bc-product-container-box {
  background:var(--card); border:1px solid var(--border2); border-radius:var(--rg);
  padding:28px; margin-bottom:44px;
}

.bc-page .bc-product-hero {
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:32px;
}
.bc-page .bc-product-container-box .bc-product-description {
  margin:36px 0 0; padding-top:32px; border-top:1px solid var(--border); max-width:none;
}
.bc-page .bc-product-container-box .bc-product-related {
  margin-top:36px; padding-top:32px; border-top:1px solid var(--border);
}
.bc-page .bc-product-container-box .bc-product-reviews {
  margin-top:36px; padding-top:32px; border-top:1px solid var(--border); max-width:none;
}

.bc-page .bc-product-buybox {
  align-self:start;
}
.bc-page .bc-product-buybox .modal-name { margin-bottom:14px }

.bc-page .bc-buy-actions { display:flex; flex-direction:column; gap:10px; margin:6px 0 4px }
.bc-page .bc-buy-actions .btn { width:100%; gap:9px }
.bc-page .bc-single-cart .btn-icon-svg { width:16px; height:16px }

.bc-page .bc-payment-note {
  display:flex; align-items:center; gap:8px; margin-top:18px; padding-top:16px;
  border-top:1px solid var(--border); font-size:11px; color:var(--muted);
}
.bc-page .bc-payment-note svg { width:14px; height:14px; flex-shrink:0 }
.bc-page .bc-pay-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:6px; flex-shrink:0;
}
.bc-page .bc-pay-icon--card { background:var(--card-2); border:1px solid var(--border2); color:var(--muted) }
.bc-page .bc-pay-icon--pix  { background:#32BCAD }

.bc-page .bc-update-note {
  display:flex; align-items:center; gap:8px; margin-top:8px;
  font-size:11px; color:var(--muted);
}
.bc-page .bc-update-note svg { width:14px; height:14px; flex-shrink:0 }

.bc-page .bc-version-desc {
  margin:6px 0 0; font-size:12px; line-height:1.6; color:var(--muted);
}

.bc-page .bc-version-history-toggle { width:100%; margin-top:12px }

.bc-page .bc-version-history {
  display:flex; flex-direction:column; gap:12px; margin-top:12px;
  padding-top:12px; border-top:1px solid var(--border);
}
.bc-page .bc-version-history[hidden] { display:none }

.bc-page .bc-version-history-item {
  padding:10px 12px; border-radius:var(--r); background:var(--card-2);
  border:1px solid var(--border2);
}
.bc-page .bc-version-history-head {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:12px; font-weight:800;
}
.bc-page .bc-version-history-date {
  font-weight:600; color:var(--muted);
}
.bc-page .bc-version-history-desc {
  margin:4px 0 0; font-size:12px; line-height:1.6; color:var(--muted);
}

/* Esconde o link "Ver carrinho" que a WooCommerce injeta depois de um
   add-to-cart via AJAX (mantemos só a nossa animação no ícone). */
.bc-page .added_to_cart.wc-forward { display:none !important }

.bc-page .bc-section-title {
  font-size:16px; font-weight:800; letter-spacing:-.01em; margin-bottom:16px;
}

.bc-page .bc-product-description { margin-bottom:56px; max-width:820px }

.bc-page .bc-video-wrap {
  position:relative; width:100%; max-width:480px; padding-bottom:calc(480px * .5625);
  height:0; overflow:hidden; border-radius:var(--r); background:var(--card-2); margin-top:18px;
}
@media(max-width:600px) {
  .bc-page .bc-video-wrap { max-width:100%; padding-bottom:56.25% }
}
.bc-page .bc-video-wrap iframe,
.bc-page .bc-video-wrap embed,
.bc-page .bc-video-wrap object {
  position:absolute; inset:0; width:100%; height:100%; border:0;
}

.bc-page .bc-product-related { padding-top:32px; border-top:1px solid var(--border) }

/* ══════════════════════════════════════════
   AVALIAÇÕES — reskin do sistema NATIVO de
   reviews da WooCommerce (comments_template()),
   mesmo padrão já usado pra Minha Conta/Login:
   reaproveitar a marcação/lógica de verdade,
   só reskinar via CSS. Tudo escopado dentro de
   .bc-product-reviews. Vários resets levam
   !important + seletor combinado com o ID nativo
   (ex: "#respond.comment-respond") de propósito:
   ID sempre vence classe em especificidade, e o
   site ao vivo mostrou um box com traço branco
   feio ao redor de cada review e o card do
   formulário sem fundo nenhum — sinal de que
   alguma folha de estilo (WooCommerce core ou o
   tema) tem uma regra baseada em ID competindo,
   que só perde pra outra regra também baseada
   em ID (ou !important).
══════════════════════════════════════════ */
/* Título nativo ("X avaliações para “Produto”") escondido — usamos nosso
   próprio .bc-section-title + resumo de nota média acima, igual já fazemos
   em Minha Conta/Login. */
.bc-page .bc-product-reviews .woocommerce-Reviews-title { display:none }

/* Resumo "4.8 ★★★★★ (12)" ao lado do título — ver full-single-product.php.
   Gap pequeno de propósito: a quantidade precisa ficar colada perto das
   estrelas, não espalhada com respiro grande igual o resto da página. */
.bc-page .bc-reviews-summary {
  display:flex; align-items:center; gap:6px; margin:-6px 0 20px; flex-wrap:wrap;
}
.bc-page .bc-reviews-avg { font-size:22px; font-weight:900; letter-spacing:-.02em; line-height:1; margin-right:2px }
.bc-page .bc-reviews-summary .star-rating { margin:0 !important }
.bc-page .bc-reviews-count { font-size:12px; color:var(--muted) }

/* Reset universal — o site ao vivo mostrou um traço/contorno em volta de cada
   review que não vinha de nenhuma classe que a gente estivesse mirando (nem
   .comment_container nem .comment-text bateram o alvo certo à primeira tentativa),
   sinal de que é alguma regra do WooCommerce core/tema num elemento que a gente
   não tem 100% de certeza do nome exato. Zera QUALQUER borda/sombra em TODO
   descendente da lista de avaliações primeiro — depois disso, a única borda que
   sobra é a que a gente reconstrói de propósito logo abaixo. */
.bc-page .bc-product-reviews .commentlist,
.bc-page .bc-product-reviews .commentlist * {
  border:0 !important; box-shadow:none !important; outline:none !important;
}

.bc-page .bc-product-reviews .commentlist {
  list-style:none; margin:0 0 28px; padding:0;
  display:flex; flex-direction:column; gap:10px;
}
.bc-page .bc-product-reviews .commentlist li.review,
.bc-page .bc-product-reviews .commentlist li.comment { margin:0 !important; list-style:none }

/* Cartão de avaliação — fundo sólido, sem contorno, mesma linguagem visual dos
   outros cards do site (.modal-tier/.bc-cart-item). Avatar bem maior e
   centralizado dentro do card (era o problema reportado: pequeno e distante,
   parecia flutuar solto fora de qualquer caixa). */
.bc-page .bc-product-reviews .comment_container {
  display:flex; align-items:center; gap:16px;
  background:var(--card-2) !important; border-radius:var(--r) !important;
  padding:18px 20px !important; margin:0 !important;
}
.bc-page .bc-product-reviews .comment_container img.avatar {
  width:58px; height:58px; border-radius:50% !important; flex-shrink:0;
  background:var(--card) !important;
}
.bc-page .bc-product-reviews .comment-text { min-width:0; flex:1 }

/* Ordem pedida: estrelas em cima (com a data logo ao lado — catalogo.js move
   o <span> de data pra virar irmã de .star-rating, ver "AVALIAÇÕES: estrelas
   + data" no JS), nome numa linha própria embaixo, comentário por último. */
.bc-page .bc-product-reviews .star-rating {
  float:none !important; display:inline-block !important; vertical-align:middle;
  font-size:13px; width:5.4em; height:1em; line-height:1; margin:0 !important;
}
.bc-page .bc-product-reviews .star-rating::before { color:var(--dim) }
.bc-page .bc-product-reviews .star-rating span::before { color:#facc15 }

/* Data (movida pra cá via JS) — some enquanto ainda estiver dentro de .meta
   (site sem JS), some de vez de existir a versão "solta" com a classe nova. */
.bc-page .bc-product-reviews .bc-review-date-inline {
  display:inline-block; vertical-align:middle; font-size:11px; color:var(--dim); margin-left:9px;
}

.bc-page .bc-product-reviews .meta { display:block; font-size:13px; margin:7px 0 8px }
.bc-page .bc-product-reviews .woocommerce-review__author { font-weight:700; color:var(--fg); font-size:13.5px }
.bc-page .bc-product-reviews .meta .woocommerce-review__dash,
.bc-page .bc-product-reviews .meta .woocommerce-review__published-date { display:none }
.bc-page .bc-product-reviews .woocommerce-review__awaiting-approval {
  font-size:12px; color:var(--muted); font-style:italic;
}
.bc-page .bc-product-reviews .description p {
  font-size:13.5px; color:rgba(255,255,255,.82); line-height:1.68; margin:0;
}

.bc-page .bc-product-reviews .woocommerce-pagination { margin:0 0 24px }
.bc-page .bc-product-reviews .woocommerce-pagination ul {
  list-style:none; display:flex; gap:6px; margin:0; padding:0;
}
.bc-page .bc-product-reviews .woocommerce-pagination a,
.bc-page .bc-product-reviews .woocommerce-pagination span {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:30px; height:30px; padding:0 8px; border-radius:8px;
  font-size:12px; color:var(--muted); border:1px solid var(--border);
}
.bc-page .bc-product-reviews .woocommerce-pagination .current {
  background:var(--fg); color:var(--bg); border-color:var(--fg); font-weight:700;
}

.bc-page .bc-product-reviews .woocommerce-noreviews {
  font-size:13px; color:var(--muted); margin:0 0 24px;
}

/* Só as 5 primeiras avaliações ficam visíveis — o resto (marcado via JS com
   essa classe) só aparece depois de clicar "Ver mais". */
.bc-page .bc-product-reviews .commentlist li.bc-review-hidden { display:none }
.bc-page .bc-product-reviews .bc-reviews-more { margin:0 0 28px; width:100% }

/* Aviso que troca o formulário quando o visitante não comprou o produto
   (ver catalogo.js + class-bc-reviews.php — o bloqueio real é no servidor,
   isso aqui é só o que aparece na tela). */
.bc-page .bc-product-reviews .bc-review-locked {
  background:var(--card-2); border:1px solid var(--border2); border-radius:var(--r);
  padding:22px; text-align:center;
}
.bc-page .bc-product-reviews .bc-review-locked p {
  font-size:13px; color:var(--muted); margin:0 0 14px; line-height:1.6;
}
.bc-page .bc-product-reviews .bc-review-locked .btn { margin:0 auto }

/* ── FORMULÁRIO "Adicionar avaliação" ──── */
.bc-page .bc-product-reviews #review_form_wrapper { margin-top:8px }
/* "#respond.comment-respond" (ID + classe) de propósito — ver comentário no
   topo da seção: precisa empatar/vencer em especificidade qualquer regra
   baseada só no ID #respond que outra folha de estilo already carregada
   possa ter, senão o fundo do card não aparece (foi o que aconteceu ao vivo). */
.bc-page .bc-product-reviews #respond.comment-respond {
  background:var(--card-2) !important; border:1px solid var(--border2) !important;
  border-radius:var(--rg) !important; box-shadow:none !important;
  padding:26px !important; margin:0 !important;
}
.bc-page .bc-product-reviews .comment-reply-title {
  font-size:15px; font-weight:800; margin:0 0 18px; display:block;
}
.bc-page .bc-product-reviews .comment-notes { font-size:12px; color:var(--muted); margin:0 0 18px }
.bc-page .bc-product-reviews .comment-form-rating,
.bc-page .bc-product-reviews .comment-form-comment,
.bc-page .bc-product-reviews .comment-form-author,
.bc-page .bc-product-reviews .comment-form-email { margin:0 0 16px }
.bc-page .bc-product-reviews .comment-form-rating label,
.bc-page .bc-product-reviews .comment-form-comment label,
.bc-page .bc-product-reviews .comment-form-author label,
.bc-page .bc-product-reviews .comment-form-email label {
  display:block; font-size:12px; font-weight:600; color:var(--muted); margin-bottom:9px;
}
.bc-page .bc-product-reviews .required { color:#ff8080 }

/* Widget de estrelas clicáveis que o JS da própria WooCommerce (wc-single-product)
   monta em cima do <select name="rating">, escondendo o select original. Aumentamos
   o alvo de toque e só recolorimos (a WooCommerce já cuida de qual glifo mostrar
   via JS/CSS dela — content/font-family não são tocados aqui). */
.bc-page .bc-product-reviews p.stars { margin:0 }
.bc-page .bc-product-reviews p.stars a {
  color:var(--dim); font-size:22px; width:1.3em; transition:color .15s;
}
.bc-page .bc-product-reviews p.stars a:hover::before,
.bc-page .bc-product-reviews p.stars a:hover ~ a::before,
.bc-page .bc-product-reviews p.stars.selected a.active::before,
.bc-page .bc-product-reviews p.stars.selected a.active ~ a::before { color:#facc15 }

.bc-page .bc-product-reviews textarea#comment,
.bc-page .bc-product-reviews input#author,
.bc-page .bc-product-reviews input#email {
  width:100% !important; padding:13px 15px; background:var(--card) !important;
  border:1px solid var(--border) !important; border-radius:var(--r); color:var(--fg);
  font-family:var(--font); font-size:13px; outline:none; box-shadow:none !important;
  transition:border-color .2s; resize:vertical; appearance:none; -webkit-appearance:none;
}
.bc-page .bc-product-reviews textarea#comment { min-height:120px }
.bc-page .bc-product-reviews textarea#comment:focus,
.bc-page .bc-product-reviews input#author:focus,
.bc-page .bc-product-reviews input#email:focus { border-color:var(--border2) !important }

.bc-page .bc-product-reviews .form-submit { margin:6px 0 0 }
/* Mesmo visual de .btn.btn-primary.btn-lg (botões "Comprar" etc) — !important
   pra garantir que nenhum estilo padrão de <input type=submit>/tema sobreviva. */
.bc-page .bc-product-reviews .form-submit #submit {
  -webkit-appearance:none; appearance:none;
  display:inline-flex; align-items:center; justify-content:center;
  padding:15px 38px !important; border-radius:8px !important; font-weight:700 !important;
  font-size:12px !important; letter-spacing:.1em !important; text-transform:uppercase;
  background-color:#fff !important; color:#000 !important; border:1px solid #fff !important;
  box-shadow:none !important; cursor:pointer; font-family:var(--font) !important;
  transition:background-color .25s var(--ease), color .25s var(--ease);
}
.bc-page .bc-product-reviews .form-submit #submit:hover { background-color:#e2e2e2 !important }
.bc-page .bc-product-reviews .form-submit #submit:active { transform:scale(.96) }

@media(max-width:600px) {
  .bc-page .bc-product-reviews .comment_container { gap:12px; padding:14px !important }
  .bc-page .bc-product-reviews .comment_container img.avatar { width:44px; height:44px }
  .bc-page .bc-product-reviews #respond.comment-respond { padding:18px !important }
  .bc-page .bc-product-reviews .form-submit #submit { width:100%; padding:14px 20px !important }
  .bc-page .bc-product-reviews p.stars a { font-size:26px }
}

/* ── GALERIA / CARROSSEL ───────────────── */
.bc-page .bc-gallery-main {
  position:relative; border-radius:var(--rg); overflow:hidden;
  background:var(--card-2); border:1px solid var(--border);
}
.bc-page .bc-gallery-track {
  display:flex; width:100%; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.bc-page .bc-gallery-track::-webkit-scrollbar { display:none }
.bc-page .bc-gallery-slide {
  flex:0 0 100%; scroll-snap-align:start; position:relative;
  width:100%; padding-bottom:78%;
}
.bc-page .bc-gallery-slide img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center;
}
.bc-page .bc-gallery-arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.3);
  background:rgba(0,0,0,.75); backdrop-filter:blur(8px); color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.4);
  transition:background .2s, transform .15s, border-color .2s;
}
.bc-page .bc-gallery-arrow:hover { background:rgba(0,0,0,.95); border-color:#fff }
.bc-page .bc-gallery-arrow:active { transform:translateY(-50%) scale(.92) }
.bc-page .bc-gallery-arrow svg { width:18px; height:18px; display:block; flex-shrink:0 }
.bc-page .bc-gallery-prev { left:12px }
.bc-page .bc-gallery-next { right:12px }
.bc-page .bc-gallery-dots { display:flex; justify-content:center; gap:7px; margin-top:12px }
.bc-page .bc-gallery-dot {
  width:7px; height:7px; border-radius:50%; border:none; background:var(--dim); cursor:pointer;
  transition:background .2s, transform .2s; padding:0;
}
.bc-page .bc-gallery-dot.active { background:#fff; transform:scale(1.25) }

/* ══════════════════════════════════════════
   PÁGINA CARRINHO
══════════════════════════════════════════ */
.bc-page .bc-cart-container { padding-top:8px; padding-bottom:70px }
.bc-page .bc-cart-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:start }

.bc-page .bc-cart-items { display:flex; flex-direction:column; gap:12px }
.bc-page .bc-cart-item {
  display:grid; grid-template-columns:64px minmax(0,1fr) auto auto auto;
  align-items:center; gap:14px;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r);
  padding:12px 14px;
}
.bc-page .bc-cart-item-img {
  width:64px; height:64px; border-radius:10px; overflow:hidden; background:var(--card-2); flex-shrink:0;
}
.bc-page .bc-cart-item-img img { width:100%; height:100%; object-fit:cover }
.bc-page .bc-cart-item-info { min-width:0 }
.bc-page .bc-cart-item-name {
  display:block; font-size:13px; font-weight:700; line-height:1.3; margin-bottom:4px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.bc-page .bc-cart-item-price { font-size:11px; color:var(--muted) }
.bc-page .bc-cart-item .bc-qty-stepper { margin:0; height:32px }
.bc-page .bc-cart-item .bc-qty-btn { width:30px; font-size:14px }
.bc-page .bc-cart-item .bc-qty-input { width:36px; font-size:12px }
.bc-page .bc-cart-item-subtotal { font-size:13px; font-weight:800; white-space:nowrap }
.bc-page .bc-cart-item-remove {
  width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  color:var(--muted); border:1px solid var(--border); transition:color .2s, border-color .2s;
}
.bc-page .bc-cart-item-remove:hover { color:#ff5c5c; border-color:#ff5c5c }
.bc-page .bc-cart-item-remove svg { width:13px; height:13px }
.bc-page .bc-cart-update { margin-top:6px; align-self:flex-start }

.bc-page .bc-cart-summary {
  background:var(--card); border:1px solid var(--border2); border-radius:var(--rg);
  padding:22px 22px 24px; position:sticky; top:90px;
}
.bc-page .bc-cart-summary-title { font-size:14px; font-weight:800; margin-bottom:16px }
.bc-page .bc-cart-summary-row {
  display:flex; justify-content:space-between; font-size:13px; color:var(--muted);
  padding:8px 0; border-bottom:1px solid var(--border);
}
.bc-page .bc-cart-summary-total { color:var(--fg); font-weight:800; font-size:16px; border-bottom:none }

/* ══════════════════════════════════════════
   MINHA CONTA — reskin do login/cadastro/
   pedidos nativos do WooCommerce
══════════════════════════════════════════ */
.bc-page.bc-account .bc-account-container { max-width:900px; padding-bottom:70px }
.bc-page .bc-account-box {
  background:var(--card); border:1px solid var(--border2); border-radius:var(--rg);
  padding:28px; margin-top:32px;
}

/* Força o menu (nav de abas) e o conteúdo a sempre empilhar em bloco, mesmo
   que o tema ative um layout de 2 colunas (sidebar) pro WooCommerce por
   padrão — sem isso, o menu fica "preso" ao lado do conteúdo em vez de
   centralizado com o conteúdo abaixo. */
.bc-page .bc-account-box,
.bc-page .bc-account-box .woocommerce,
.bc-page .bc-account-box .woocommerce-account {
  display:block !important;
}
.bc-page .bc-account-box .woocommerce-MyAccount-navigation,
.bc-page .bc-account-box .woocommerce-MyAccount-content {
  display:block !important; width:100% !important; float:none !important;
  margin:0 !important; padding:0 !important;
}

.bc-page .bc-account-box .woocommerce-notices-wrapper,
.bc-page .bc-auth-box .woocommerce-notices-wrapper { margin-bottom:16px }
.bc-page .bc-account-box .woocommerce-error,
.bc-page .bc-account-box .woocommerce-message,
.bc-page .bc-account-box .woocommerce-info,
.bc-page .bc-auth-box .woocommerce-error,
.bc-page .bc-auth-box .woocommerce-message,
.bc-page .bc-auth-box .woocommerce-info {
  list-style:none; margin:0 0 16px; padding:13px 16px; border-radius:var(--r);
  font-size:13px; line-height:1.6; background:var(--card-2); border:1px solid var(--border2); color:var(--fg);
  display:flex; align-items:flex-start; gap:10px;
}
.bc-page .bc-account-box .woocommerce-error,
.bc-page .bc-auth-box .woocommerce-error {
  border-color:rgba(255,92,92,.4); background:rgba(255,92,92,.08); color:#ffb3b3;
}
.bc-page .bc-account-box .woocommerce-message,
.bc-page .bc-auth-box .woocommerce-message {
  border-color:rgba(34,197,94,.4); background:rgba(34,197,94,.08); color:#86efac;
}
/* O CSS nativo da WooCommerce desenha um ícone via ::before (fonte de ícones
   própria, "content:\e015"/"\e016") posicionado em position:absolute + um
   padding-left:3.5em reservado no elemento pra abrir espaço pra ele. Como a
   gente já zera esse padding pro nosso layout flex+gap, o ícone nativo cai
   sem espaço reservado e sobrepõe o começo do texto. */
.bc-page .bc-account-box .woocommerce-message::before,
.bc-page .bc-account-box .woocommerce-error::before,
.bc-page .bc-account-box .woocommerce-info::before,
.bc-page .bc-auth-box .woocommerce-message::before,
.bc-page .bc-auth-box .woocommerce-error::before,
.bc-page .bc-auth-box .woocommerce-info::before { content:none }
.bc-page .bc-account-box .woocommerce-error li,
.bc-page .bc-account-box .woocommerce-message li,
.bc-page .bc-auth-box .woocommerce-error li,
.bc-page .bc-auth-box .woocommerce-message li { list-style:none }
.bc-page .bc-account-box .woocommerce-error strong,
.bc-page .bc-auth-box .woocommerce-error strong { color:#ff8080 }

.bc-page .bc-account-box form .form-row { margin-bottom:14px }
.bc-page .bc-account-box label { display:block; font-size:12px; font-weight:600; color:var(--muted); margin-bottom:6px }
.bc-page .bc-account-box input[type="text"],
.bc-page .bc-account-box input[type="password"],
.bc-page .bc-account-box input[type="email"],
.bc-page .bc-account-box input[type="tel"],
.bc-page .bc-account-box select,
.bc-page .bc-account-box textarea {
  width:100%; padding:11px 14px; background:var(--card-2); border:1px solid var(--border);
  border-radius:var(--r); color:var(--fg); font-family:var(--font); font-size:13px; outline:none;
  transition:border-color .2s;
}
.bc-page .bc-account-box input:focus,
.bc-page .bc-account-box select:focus,
.bc-page .bc-account-box textarea:focus { border-color:var(--border2) }

.bc-page .bc-account-box .woocommerce-form__label-for-checkbox {
  display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); font-weight:500;
}
.bc-page .bc-account-box .woocommerce-form__input-checkbox { width:auto }

.bc-page .bc-account-box button[type="submit"],
.bc-page .bc-account-box input[type="submit"],
.bc-page .bc-account-box .woocommerce-Button,
.bc-page .bc-account-box .button {
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 26px; border-radius:8px; font-weight:700; font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; background:#fff; color:#000; border:1px solid #fff; cursor:pointer;
  font-family:var(--font); transition:background .2s, color .2s;
}
.bc-page .bc-account-box button[type="submit"]:hover,
.bc-page .bc-account-box .button:hover { background:transparent; color:#fff }

.bc-page .bc-account-box .woocommerce-LostPassword { margin-top:10px; font-size:12px }
.bc-page .bc-account-box .woocommerce-LostPassword a { color:var(--muted) }

.bc-page .bc-account-box .u-columns { display:grid; grid-template-columns:1fr 1fr; gap:32px }
.bc-page .bc-account-box .u-columns h2 { font-size:15px; font-weight:800; margin-bottom:16px }

.bc-page .bc-account-box .woocommerce-MyAccount-navigation ul {
  list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:8px;
  margin:0 0 30px; padding:0 0 22px; border-bottom:1px solid var(--border);
}
.bc-page .bc-account-box .woocommerce-MyAccount-navigation li { margin:0 }
.bc-page .bc-account-box .woocommerce-MyAccount-navigation a {
  display:inline-flex; padding:8px 16px; border-radius:40px; font-size:11px; font-weight:600;
  letter-spacing:.04em; border:1px solid var(--border); color:var(--muted); transition:all .2s;
}
.bc-page .bc-account-box .woocommerce-MyAccount-navigation a:hover { color:var(--fg); border-color:var(--border2) }
.bc-page .bc-account-box .woocommerce-MyAccount-navigation li.is-active a {
  background:var(--fg); color:var(--bg); border-color:var(--fg);
}

.bc-page .bc-account-box .woocommerce-MyAccount-content table {
  width:100%; border-collapse:collapse; font-size:12px; margin-bottom:20px;
}
.bc-page .bc-account-box .woocommerce-MyAccount-content th {
  text-align:left; padding:10px 12px; font-size:10px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--muted); border-bottom:1px solid var(--border2);
}
.bc-page .bc-account-box .woocommerce-MyAccount-content td {
  padding:12px; border-bottom:1px solid var(--border); color:var(--fg);
}
.bc-page .bc-account-box .woocommerce-MyAccount-content mark { background:none; color:var(--fg); font-weight:700 }

.bc-page .bc-account-box address { font-style:normal; font-size:13px; line-height:1.7; color:var(--muted) }
.bc-page .bc-account-box .woocommerce-Address-title {
  display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;
}
.bc-page .bc-account-box .woocommerce-Address-title h2 { font-size:14px; font-weight:800 }
.bc-page .bc-account-box .woocommerce-Addresses { display:grid; grid-template-columns:1fr 1fr; gap:24px }
.bc-page .bc-account-box .woocommerce-Address {
  background:var(--card-2); border:1px solid var(--border); border-radius:var(--r); padding:18px;
}

.bc-page .bc-account-box p { color:var(--muted); font-size:13px; line-height:1.7 }
.bc-page .bc-account-box a { color:#fff }

/* Remove a caixa/borda nativa do <fieldset> (ex: "Alteração de senha" em
   Detalhes da conta) — vira só um título de seção, sem traço nenhum. */
.bc-page .bc-account-box fieldset {
  border:none; padding:0; margin:28px 0 0;
}
.bc-page .bc-account-box legend {
  padding:0; margin:0 0 16px; font-size:13px; font-weight:800; color:var(--fg);
  text-transform:uppercase; letter-spacing:.04em;
}

/* Saudação do painel (parágrafo introdutório da dashboard nativa) — texto puro,
   sem caixa, pra não empilhar caixa dentro de caixa dentro do .bc-account-box. */
.bc-page .bc-account-box .woocommerce-MyAccount-content > p:first-of-type {
  font-size:14px; color:var(--muted); margin-bottom:26px; text-align:center;
}
.bc-page .bc-account-box .woocommerce-MyAccount-content > p:first-of-type a { font-weight:700; color:#fff }

/* Pedidos em lista limpa: sem borda por linha, sem fundo nas células.
   Cada célula (exceto Ações) mostra um rótulo pequeno em maiúsculas ACIMA
   do valor, via data-title nativo do WooCommerce (atributo já preenchido
   pelo core com o nome da coluna — "Nº do Pedido"/"Produto"/"Data"/"Status"/
   "Total", ver BC_Orders::add_items_column).
   !important + também mirando ".shop_table" (classe nativa que a própria
   WooCommerce usa no CSS dela, carregado à parte do tema — tem prioridade
   sobre um simples ".woocommerce-orders-table" sem reforço). */
.bc-page .bc-account-box table.shop_table,
.bc-page .bc-account-box table.woocommerce-orders-table {
  border-collapse:collapse !important; border:none !important;
  width:100% !important; margin:0 !important; background:none !important;
  box-shadow:none !important;
}
.bc-page .bc-account-box table.shop_table thead,
.bc-page .bc-account-box table.woocommerce-orders-table thead { display:none !important }
.bc-page .bc-account-box table.shop_table tbody tr,
.bc-page .bc-account-box table.woocommerce-orders-table tbody tr {
  display:flex !important; flex-wrap:wrap; align-items:flex-start; gap:14px 22px;
  background:none !important; box-shadow:none !important;
  padding:16px 4px !important;
  border:none !important; border-bottom:1px solid var(--border) !important;
}
.bc-page .bc-account-box table.shop_table td,
.bc-page .bc-account-box table.woocommerce-orders-table td {
  border:none !important; background:none !important; box-shadow:none !important;
  padding:0 !important; font-size:12px; color:var(--fg);
}
/* ::before em display:block (não a td inteira em flex-column) — assim o rótulo
   fica numa linha própria ACIMA, mas o conteúdo real da célula (que às vezes é
   mais de um nó, ex: "R$ 40,00" + " de 2 itens" no Total) continua fluindo
   normal, inline, na MESMA linha — virar flex-column na td quebrava esse
   conteúdo em linhas separadas mesmo com white-space:nowrap. */
.bc-page .bc-account-box table.shop_table td::before,
.bc-page .bc-account-box table.woocommerce-orders-table td::before {
  content:attr(data-title) !important;
  display:block; margin-bottom:4px;
  font-size:9px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--dim);
}
/* Ordem visual das células: #pedido, nome do produto (logo em seguida),
   data, status, total, ações por último — controlado via "order" do flex
   porque a coluna de produto foi inserida via PHP logo após "order-number"
   no array de colunas, mas precisamos que ela fique inline, não numa linha
   própria. */
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-number { font-weight:800; font-size:13px; order:1 }
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-items  { font-weight:600; color:var(--fg); order:2 }
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-date   { color:var(--muted); order:3 }
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-status { order:4 }
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-total  { color:var(--muted); order:5; white-space:nowrap }
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-status mark {
  background:none !important; padding:0; font-weight:700; color:var(--fg);
}
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-actions {
  margin-left:auto; display:flex !important; flex-direction:row !important; gap:8px; flex-wrap:wrap; order:6;
  align-self:flex-end;
}
/* Ações não tem rótulo (evita repetir "Ações" acima do botão "Ver Arquivos").
   Precisa repetir "table.shop_table"/"table.woocommerce-orders-table td" pra ficar
   MAIS específico que a regra genérica de ::before acima — só a classe sozinha
   perde por especificidade mesmo com !important (mesmo bug documentado na v1.7.0
   do projeto: seletor genérico com elementos "table"/"td" vence um seletor só
   com classes, mesmo tendo menos classes no total). */
.bc-page .bc-account-box table.shop_table td.woocommerce-orders-table__cell-order-actions::before,
.bc-page .bc-account-box table.woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions::before {
  content:none !important;
}
.bc-page .bc-account-box .woocommerce-orders-table__cell-order-actions .button {
  padding:8px 16px; font-size:10px;
}

@media(max-width:600px) {
  .bc-page .bc-account-box table.woocommerce-orders-table tbody tr { gap:10px 16px }
  .bc-page .bc-account-box .woocommerce-orders-table__cell-order-actions { margin-left:0; width:100% }
}

@media(max-width:768px) {
  .bc-page .bc-account-box .u-columns,
  .bc-page .bc-account-box .woocommerce-Addresses { grid-template-columns:1fr }
  .bc-page .bc-account-box { padding:20px }
}

/* ══════════════════════════════════════════
   MODAL OVERLAY (popup de detalhes do pedido)
══════════════════════════════════════════ */
.bc-page .modal-overlay {
  position:fixed; inset:0; z-index:9000;
  background:rgba(0,0,0,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  display:flex; align-items:center; justify-content:center; padding:16px;
  opacity:0; pointer-events:none; transition:opacity .3s var(--ease);
}
.bc-page .modal-overlay.active { opacity:1; pointer-events:all }
.bc-page .modal-box {
  background:var(--card); border:1px solid var(--border2);
  border-radius:var(--rg); width:100%; max-width:640px; max-height:92vh;
  overflow-y:auto; position:relative;
  transform:translateY(24px) scale(.97);
  transition:transform .35s var(--spring);
}
.bc-page .modal-overlay.active .modal-box { transform:translateY(0) scale(1) }
.bc-page .modal-close {
  position:absolute; top:14px; right:14px; z-index:20;
  width:34px; height:34px; border-radius:9px;
  background:var(--card-2); border:1px solid var(--border2);
  color:var(--muted); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s, transform .15s;
}
.bc-page .modal-close:hover  { background:var(--dim); color:var(--fg) }
.bc-page .modal-close:active { transform:scale(.9) }
.bc-page .modal-close svg    { width:14px; height:14px }
/* Caractere de texto puro em vez de SVG — em telas anteriores, ícones SVG com
   stroke="currentColor" às vezes não renderizavam nesse ambiente (ver setas da
   galeria); "×" sempre aparece, é só texto. */
.bc-page .modal-close-x {
  font-size:24px; line-height:1; font-weight:400; color:#ffffff; font-family:Arial,sans-serif;
  display:block; margin-top:-2px;
}

/* ── POPUP DE PEDIDO ────────────────────── */
.bc-page .bc-order-modal-body { padding:56px 24px 26px }
.bc-page .bc-order-header {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-bottom:16px; margin-bottom:18px; border-bottom:1px solid var(--border);
}
.bc-page .bc-order-number { font-size:16px; font-weight:800 }
.bc-page .bc-order-date   { font-size:12px; color:var(--muted); margin-top:2px }
.bc-page .bc-order-status {
  font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:6px 14px; border-radius:40px; flex-shrink:0;
  background:var(--card-2); border:1px solid var(--border2); color:var(--fg);
}
.bc-page .bc-order-status--completed,
.bc-page .bc-order-status--processing {
  background:rgba(34,197,94,.14); border-color:rgba(34,197,94,.35); color:#4ade80;
}
.bc-page .bc-order-status--cancelled,
.bc-page .bc-order-status--failed,
.bc-page .bc-order-status--refunded {
  background:rgba(255,92,92,.14); border-color:rgba(255,92,92,.35); color:#ff8080;
}
.bc-page .bc-order-status--pending,
.bc-page .bc-order-status--on-hold {
  background:rgba(234,179,8,.14); border-color:rgba(234,179,8,.35); color:#facc15;
}
.bc-page .bc-order-items { display:flex; flex-direction:column; gap:18px }
.bc-page .bc-order-item  { padding-bottom:18px; border-bottom:1px solid var(--border) }
.bc-page .bc-order-item:last-child { border-bottom:none; padding-bottom:0 }
.bc-page .bc-order-item-head { display:flex; align-items:center; gap:12px; margin-bottom:12px }
.bc-page .bc-order-item-img  { width:48px; height:48px; border-radius:8px; overflow:hidden; background:var(--card-2); flex-shrink:0 }
.bc-page .bc-order-item-img img { width:100%; height:100%; object-fit:cover }
.bc-page .bc-order-item-name { font-size:13px; font-weight:700 }
.bc-page .bc-order-item-qty  { font-size:11px; color:var(--muted); margin-top:2px }
.bc-page .bc-order-downloads { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.bc-page .bc-order-download-pending { font-size:12px; color:var(--muted); margin-top:8px }
.bc-page .bc-order-modal-body .bc-video-wrap {
  max-width:100%; width:440px; padding-bottom:calc(440px * .5625); margin:12px 0 14px;
}
@media(max-width:520px) {
  .bc-page .bc-order-modal-body .bc-video-wrap { width:100%; padding-bottom:56.25% }
}
.bc-page .bc-order-modal-error { padding:30px; text-align:center; color:var(--muted); font-size:13px }

/* ══════════════════════════════════════════
   LOGIN / CADASTRO (identidade própria, não o
   layout padrão de duas colunas da WooCommerce)
══════════════════════════════════════════ */
.bc-page .bc-auth-box {
  max-width:420px; margin:40px auto 0;
  background:var(--card); border-radius:var(--rg);
  padding:28px;
}
.bc-page .bc-auth-tabs { display:flex; gap:6px; margin-bottom:24px; background:var(--card-2); border-radius:var(--r); padding:4px }
.bc-page .bc-auth-tab {
  flex:1; padding:10px; border-radius:8px; background:transparent; border:none;
  font-family:var(--font); font-size:12px; font-weight:700; letter-spacing:.03em;
  color:var(--muted); cursor:pointer; transition:background .2s, color .2s;
}
.bc-page .bc-auth-tab.active { background:var(--fg); color:var(--bg) }
/* Causa REAL do "traçado" achada via inspeção do computed style ao vivo
   (não fieldset — chute anterior errado): o WooCommerce aplica um estilo
   nativo de "card" direto no <form> de login/cadastro (border 1px
   rgb(207,200,216) + padding 20px + border-radius 5px), provavelmente do
   CSS de blocos carregado na página — duplica a caixa que .bc-auth-box já
   desenha por fora. Zerado direto no form nativo. */
.bc-page .bc-auth-panels form.woocommerce-form-login,
.bc-page .bc-auth-panels form.woocommerce-form-register {
  border:none; padding:0; margin:0; border-radius:0; background:transparent;
}
.bc-page .bc-auth-panels fieldset { border:none; padding:0; margin:0 }
.bc-page .bc-auth-panels legend { padding:0; margin:0; display:none }

.bc-page .bc-auth-panels .u-columns { display:block }
.bc-page .bc-auth-panels .col-1,
.bc-page .bc-auth-panels .col-2 { display:none; width:auto; float:none }
.bc-page .bc-auth-panels .col-1.bc-panel-active,
.bc-page .bc-auth-panels .col-2.bc-panel-active { display:block }
.bc-page .bc-auth-panels .col-1 h2,
.bc-page .bc-auth-panels .col-2 h2,
.bc-page .bc-auth-panels .col-1 > h2,
.bc-page .bc-auth-panels .col-2 > h2 { display:none !important }

.bc-page .bc-auth-panels form p:last-child { margin-bottom:0 }
.bc-page .bc-auth-panels .form-row { margin-bottom:16px }
.bc-page .bc-auth-panels label {
  font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:var(--muted); margin-bottom:7px;
}
.bc-page .bc-auth-panels input[type="text"],
.bc-page .bc-auth-panels input[type="password"],
.bc-page .bc-auth-panels input[type="email"] {
  width:100%; padding:13px 16px; border-radius:12px;
  background:var(--card-2); border:1px solid var(--border); color:var(--fg);
  font-family:var(--font); font-size:14px; outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.bc-page .bc-auth-panels input[type="text"]:focus,
.bc-page .bc-auth-panels input[type="password"]:focus,
.bc-page .bc-auth-panels input[type="email"]:focus {
  border-color:rgba(255,255,255,.4); box-shadow:0 0 0 3px rgba(255,255,255,.06);
}
.bc-page .bc-auth-panels button[type="submit"],
.bc-page .bc-auth-panels input[type="submit"] {
  width:100%; margin-top:6px; padding:14px 26px; border-radius:12px;
}
.bc-page .bc-auth-panels .woocommerce-form-row--wide { clear:both }
/* form-lost-password.php do WooCommerce usa "form-row-first" nesse único campo
   (sem um "form-row-last" pareado) — sem isso ele fica preso em 47% flutuando. */
.bc-page .bc-auth-panels .lost_reset_password .form-row-first,
.bc-page .bc-auth-panels .lost_reset_password .form-row-last { width:100%; float:none }
.bc-page .bc-auth-panels .woocommerce-privacy-policy-text { font-size:11px; margin-top:14px }

/* Recuperar Senha / Definir Nova Senha — sem as abas Entrar/Criar Conta
   acima, então o cabeçalho próprio do formulário assume o lugar delas. */
.bc-page .bc-auth-head { margin-bottom:24px }
.bc-page .bc-auth-title { font-size:18px; font-weight:700; margin:0 0 8px }
.bc-page .bc-auth-subtitle { font-size:13px; color:var(--muted); line-height:1.6; margin:0 }
.bc-page .bc-auth-back { margin-top:18px; text-align:center }
.bc-page .bc-auth-back a { font-size:12px; color:var(--muted); transition:color .2s }
.bc-page .bc-auth-back a:hover { color:var(--fg) }

@media(max-width:480px) {
  .bc-page .bc-auth-box { padding:20px }
  .bc-page .bc-order-modal-body { padding:6px 16px 20px }
}

/* ── 404 ─────────────────────────────── */
.bc-page .bc-404 {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:110px 20px 100px;
}
.bc-page .bc-404-code {
  font-size:clamp(64px,12vw,120px); font-weight:900; line-height:1;
  letter-spacing:-.02em; color:var(--fg); margin-bottom:10px;
}
.bc-page .bc-404-title   { font-size:18px; font-weight:700; margin-bottom:8px }
.bc-page .bc-404-sub     { font-size:13px; color:var(--muted); max-width:420px; line-height:1.7; margin-bottom:30px }
.bc-page .bc-404-actions { display:flex; gap:12px; flex-wrap:wrap; justify-content:center }

@media(max-width:480px) {
  .bc-page .bc-404          { padding:64px 16px }
  .bc-page .bc-404-actions  { flex-direction:column; width:100%; max-width:280px; margin:0 auto }
  .bc-page .bc-404-actions .btn { width:100%; justify-content:center }
}

/* ── FOOTER ─────────────────────────────── */
.bc-page .footer       { border-top:1px solid var(--border); padding:22px 0 }
.bc-page .footer-inner {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px;
}
.bc-page .footer-logo      { height:20px; width:auto; filter:brightness(0) invert(1); opacity:.4 }
.bc-page .footer-logo-text { font-size:11px; font-weight:800; letter-spacing:.2em; color:var(--dim) }
.bc-page .footer-copy      { font-size:11px; color:var(--dim) }

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media(max-width:1024px) {
  .bc-page .bc-container, .bc-page .bc-nav-wrap { padding-left:32px !important; padding-right:32px !important }
  .bc-page .bc-nav-wrap             { padding-top:12px; padding-bottom:12px }
  .bc-page .products-grid  { grid-template-columns:repeat(3,1fr); gap:16px }
  .bc-page .bc-product-hero { grid-template-columns:1fr; gap:22px }
  .bc-page .bc-cart-layout  { grid-template-columns:1fr }
  .bc-page .bc-cart-summary { position:static }
}

@media(max-width:768px) {
  .bc-page .bc-container, .bc-page .bc-nav-wrap { padding-left:16px !important; padding-right:16px !important }
  .bc-page .bc-nav-wrap             { padding-top:11px; padding-bottom:11px }
  .bc-page .nav-logo-img   { height:24px }
  .bc-page .nav-search-wrap { flex:0 1 180px; min-width:90px }
  .bc-page .nav-cart-label { display:none }
  .bc-page .nav-cart       { padding:9px 11px }
  .bc-page .nav-account-label { display:none }
  .bc-page .nav-account    { padding:9px 11px }

  .bc-page .bc-hero        { padding:26px 0 20px }
  .bc-page .site-pill      { font-size:9px; padding:5px 12px 5px 9px; margin-bottom:14px }

  .bc-page .products-grid  { grid-template-columns:repeat(2,1fr); gap:14px }

  .bc-page .modal-body     { padding:18px 20px 22px }
  .bc-page .modal-name     { font-size:17px }
  .bc-page .modal-price-single { font-size:26px }
  .bc-page .modal-tier     { flex-direction:column; align-items:flex-start; gap:8px }
  .bc-page .modal-tier .btn { width:100%; justify-content:center }

  .bc-page .bc-product-container-box { padding:18px }
  .bc-page .bc-account-box  { padding:20px; margin-top:20px }
  .bc-page .bc-auth-box     { padding:22px; margin-top:24px }
  .bc-page .bc-price-now-big { font-size:28px }
  .bc-page .bc-single-container,
  .bc-page .bc-cart-container,
  .bc-page .bc-account-container { padding-top:6px; padding-bottom:44px }
  .bc-page .bc-payment-note { flex-wrap:wrap }
  .bc-page .bc-account-box .woocommerce-orders-table__cell-order-actions .button {
    padding:9px 14px; font-size:10px;
  }
  .bc-page .bc-cart-item {
    grid-template-columns:52px minmax(0,1fr) auto; grid-template-areas:"img info remove" "img qty subtotal";
    row-gap:8px;
  }
  .bc-page .bc-cart-item-img { grid-area:img; width:52px; height:52px }
  .bc-page .bc-cart-item-info { grid-area:info }
  .bc-page .bc-cart-item-remove { grid-area:remove }
  .bc-page .bc-cart-item .bc-qty-stepper { grid-area:qty }
  .bc-page .bc-cart-item-subtotal { grid-area:subtotal; justify-self:end }

  .bc-page .footer-inner   { flex-direction:column; align-items:center; text-align:center; gap:8px }
}

@media(max-width:480px) {
  .bc-page .bc-container, .bc-page .bc-nav-wrap { padding-left:8px !important; padding-right:8px !important }
  .bc-page .bc-nav-wrap             { padding-top:10px; padding-bottom:10px; gap:8px }
  .bc-page .nav-logo-img   { height:22px }
  .bc-page .nav-search-wrap { flex:1; min-width:0 }
  .bc-page .nav-search-input { padding:9px 10px 9px 30px; font-size:12px }
  .bc-page .nav-search-icon  { left:9px; width:13px; height:13px }

  .bc-page .bc-hero        { padding:18px 0 14px }
  .bc-page .site-pill      { font-size:9px; letter-spacing:.1em; padding:5px 10px 5px 8px; margin-bottom:11px }
  .bc-page .site-title     { font-size:clamp(17px,5vw,22px); letter-spacing:-.02em }
  .bc-page .site-sub       { font-size:12px }

  .bc-page .filter-bar     { padding:10px 0 8px; margin-bottom:14px }
  .bc-page .filter-btn     { padding:6px 11px; font-size:10px }

  .bc-page .products-grid  { grid-template-columns:repeat(2,1fr); gap:10px }
  .bc-page .pc-img-wrap    { padding-bottom:65% }
  .bc-page .pc-body        { padding:10px 10px 9px }
  .bc-page .pc-name        { font-size:12px; margin-bottom:5px }
  .bc-page .pc-desc        { display:none }
  .bc-page .pc-price       { font-size:10px; margin-bottom:3px }
  .bc-page .pc-actions     { width:100% }
  .bc-page .pc-actions > .btn:not(.btn-icon) { flex:1; justify-content:center; font-size:9px; padding:8px 6px }
  .bc-page .pc-actions > .btn-icon { flex:0 0 32px; width:32px }
  .bc-page .pc-actions > .pc-actions-spacer { flex:0 0 32px; width:32px }
  .bc-page .pc-actions > .pc-actions-delivery { flex:0 0 32px; width:32px }
  .bc-page .pc-actions > .pc-actions-delivery svg { width:14px; height:14px }
  .bc-page .btn-icon-svg   { width:13px; height:13px }

  .bc-page .nav-cart-label { display:none }
  .bc-page .nav-cart       { padding:8px 10px; gap:6px }
  .bc-page .nav-account-label { display:none }
  .bc-page .nav-account    { padding:8px 10px; gap:6px }

  .bc-page .bc-breadcrumb  { font-size:10px; gap:6px }
  .bc-page .bc-product-hero { gap:16px }
  /* Selos mais compactos (nota/categoria/destaque/entrega) — só reduz o peso
     visual de cada um pra caberem mais na mesma linha; o wrap continua sendo
     flex-wrap normal, só quebra quando realmente não sobra espaço. */
  .bc-page .modal-meta { gap:6px }
  .bc-page .modal-cat-tag,
  .bc-page .modal-dest-tag,
  .bc-page .modal-rating-tag { padding:3px 8px; font-size:9px }
  .bc-page .bc-delivery-badge { padding:3px 9px 3px 7px; font-size:9px }
  .bc-page .modal-rating-value,
  .bc-page .modal-rating-count { font-size:9px }
  .bc-page .bc-product-container-box { padding:14px; margin-bottom:28px }
  .bc-page .bc-gallery-slide { padding-bottom:88% }

  .bc-page .bc-cart-summary { padding:18px }
  .bc-page .bc-account-box  { padding:16px; margin-top:16px }
  .bc-page .bc-auth-box     { padding:18px; margin-top:18px }
  .bc-page .bc-price-now-big { font-size:24px }
  .bc-page .bc-price-compare-row .bc-price-old { font-size:13px }
  .bc-page .bc-qty-stepper { height:34px }
  .bc-page .bc-qty-btn     { width:32px }
  .bc-page .bc-buy-actions .btn { padding:12px 18px; font-size:10px }
  .bc-page .bc-order-modal-body { padding:48px 16px 20px }
  .bc-page .bc-order-header { flex-wrap:wrap; gap:8px }
  .bc-page .bc-account-box .woocommerce-MyAccount-navigation ul { gap:6px }
  .bc-page .bc-account-box .woocommerce-MyAccount-navigation a { padding:7px 13px; font-size:10px }
  .bc-page .bc-account-box table.woocommerce-orders-table tbody tr { gap:8px 14px; padding:14px 2px }
  .bc-page .bc-account-box .woocommerce-orders-table__cell-order-actions { width:100%; margin-left:0 }

  .bc-page .modal-body     { padding:14px 14px 18px }
  .bc-page .modal-name     { font-size:15px; margin-bottom:8px }
  .bc-page .modal-desc     { font-size:13px; margin-bottom:14px }
  .bc-page .modal-price-single { font-size:22px; margin-bottom:12px }
  .bc-page .modal-tier     { padding:11px; gap:7px }
  .bc-page .modal-tier-price { font-size:16px }

  .bc-page .footer         { padding:16px 0 }
  .bc-page .empty-state    { padding:44px 10px }
}
