/* ================================================================
   AceleraStore Racing — Fontes self-hosted (LGPD + performance)
   Barlow Condensed (titulos) + Inter (corpo) — zero CDN
   ================================================================ */

@font-face {
  font-family: "Barlow Condensed";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/barlow-condensed-600.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Barlow Condensed";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/barlow-condensed-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Inter";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/inter-variable.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Inter";
  font-weight: 500 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/inter-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ================================================================
   AceleraStore Racing — Estilos do tema
   Versao: 1.0.0 | Frame Tecnologia
   Mobile-first, CSS puro, zero framework, compativel LiteSpeed
   ================================================================ */

/* ---- Tokens (espelho do theme.json para uso em CSS puro) ---- */
/* FIX CONTRASTE 2026-07-15 (aprovado pelo Alisson): --red EE3333 c/ texto
   branco dava 4.07:1 (abaixo do AA 4.5:1) em todos os CTAs primários
   (Categorias, Ver catálogo, Adicionar ao carrinho, Filtrar produtos,
   Acessar/Cadastre-se, Ver todos os produtos etc). Escurecido pra DD0000
   (5.14:1 c/ branco). --red-hover (era igual ao novo --red, DD0000) escurecido
   mais um degrau pra C20000 (6.27:1 c/ branco) — mantém feedback visual de
   hover perceptível. --red-active sincronizado pro mesmo tom do hover
   (token hoje sem uso real no CSS, mantido consistente pra uso futuro). */
:root {
  --red:          #DD0000;
  --red-hover:    #C20000;
  --red-active:   #C20000;
  --red-darker:   #8B1F1F;
  --red-disabled: #6b3b3b;
  /* FIX CONTRASTE 2026-07-15: --red mais escuro (DD0000) quebrou 2 textos
     pequenos vermelhos sobre fundo bem escuro (topbar preto puro e kicker
     do hero) — re-scan pós-deploy achou "Envio em até 24h" caindo de 4.63:1
     pra 4.07:1 (abaixo do AA) e "Performance em duas rodas" de 4.37:1 (já
     no limite) pra 3.84:1. Token dedicado pra TEXTO vermelho sobre fundo
     escuro (mais claro que --red, que agora é só pra FUNDO de botão) —
     ~5.8-6.2:1 nos dois contextos, sem alterar --red usado nos botões. */
  --red-text-dark: #FF4444;

  --bg:        #0A0A0A;
  --bg-alt:    #121212;
  --surface:   #1A1A1A;
  --surface-2: #2A2A2A;
  --surface-3: #3A3A3A;

  --text:       #FFFFFF;
  --text-2:     #E5E5E5;
  --text-3:     #B5B5B5;
  --text-muted: #888888;

  --border:        #2A2A2A;
  --border-strong: #3A3A3A;
  --border-red:    rgba(238,51,51,.45);

  --success: #10B981;
  --warning: #F59E0B;
  --info:    #3B82F6;
  --danger:  #EE3333;

  --gradient-velocity: linear-gradient(90deg,#EE3333 0%,#FF5555 50%,#DD0000 100%);
  --gradient-dark:     linear-gradient(135deg,#0A0A0A 0%,#1A1A1A 50%,#2A2A2A 100%);
  --gradient-fire:     linear-gradient(90deg,#EE3333 0%,#FF6B35 50%,#FFA500 100%);
  --speedline:         linear-gradient(90deg,#EE3333 0%,transparent 100%);
  --glow-red:          0 0 18px rgba(238,51,51,.45);
  --glow-red-soft:     0 0 10px rgba(238,51,51,.25);
  --carbon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Crect width='8' height='8' fill='%231A1A1A'/%3E%3Cpath d='M0 0h4v4H0zM4 4h4v4H4z' fill='%23202020'/%3E%3C/svg%3E");

  --font-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-label:   "Barlow Condensed", "Inter", sans-serif;
  --font-mono:    ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --fs-hero: clamp(2.5rem, 7vw, 4.5rem);
  --fs-h2:   clamp(1.6rem, 4vw, 2.4rem);
  --fs-h3:   clamp(1.2rem, 3vw, 1.5rem);
  --fs-lg:   1.125rem;
  --fs-base: 1rem;
  --fs-sm:   .875rem;
  --fs-xs:   .75rem;

  --r-sm: 4px;  --r-md: 8px;  --r-lg: 12px;  --r-xl: 16px;  --r-full: 9999px;
  --sh-sm: 0 1px 2px rgba(0,0,0,.4);
  --sh-md: 0 4px 12px rgba(0,0,0,.5);
  --sh-lg: 0 12px 28px rgba(0,0,0,.6);
  --container: 1280px;
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ---- Reset e base ---- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}

body .wp-site-blocks {
  background: var(--bg);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: .01em;
  color: var(--text);
}

.container,
.wp-block-group.is-layout-constrained > *,
.entry-content > * {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
}

.sr-only,
.screen-reader-text {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Skip-link: torna-se visível ao receber foco (WCAG 2.1 — 2.4.1) */
.skip-link:focus,
a.skip-link:focus {
  clip: auto !important;
  clip-path: none !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  position: fixed !important;
  top: 8px !important;
  left: 8px !important;
  z-index: 99999 !important;
  background: #fff !important;
  color: #0A0A0A !important;
  padding: 12px 20px !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.4) !important;
  outline: 3px solid #DD0000 !important; /* sync com --red 2026-07-15 */
  outline-offset: 2px !important;
}

.speedline {
  height: 2px;
  border: 0;
  background: var(--speedline);
  margin: 0;
}

/* ================================================================
   TOP BAR
   ================================================================ */
.acl-topbar {
  background: #000;
  border-bottom: 1px solid #2A2A2A;
  font-size: .78rem;
  /* WCAG AA: hardcoded para não herdar vars do white layer (4.34:1 → 10.24:1) */
  color: #B5B5B5;
}
.acl-topbar .acl-topbar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 34px;
  gap: 16px;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 16px;
}
/* WCAG AA: hardcoded E5E5E5 (16.67:1 on black) — não herda var(--text-2) white layer */
.acl-topbar strong { color: #E5E5E5; }
.acl-topbar .red   { color: var(--red-text-dark); } /* FIX CONTRASTE 2026-07-15 */
@media (max-width: 640px) { .acl-topbar .hide-sm { display: none; } }

/* ================================================================
   HEADER
   ================================================================ */
.acl-header,
#acl-header,
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--bg);
  /* AJUSTE 2026-07-20: borda mais fina + sombra mais discreta (era 3px +
     0 4px 12px rgba(0,0,0,.5), halo pronunciado sobre fundo branco nas
     paginas white-conversao). Mantem separacao visivel, corta o halo. */
  border-bottom: 2px solid var(--red);
  box-shadow: 0 2px 4px rgba(0, 0, 0, .25);
}

.acl-header-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  height: 88px;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 16px;
}

/* Logo */
.acl-brand {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.acl-brand img {
  height: 72px;
  width: auto;
}

/* Busca */
.acl-search {
  flex: 1;
  display: flex;
  max-width: 580px;
}
.acl-search input {
  flex: 1;
  height: 48px;
  background: var(--surface-2);
  border: 1px solid var(--border-strong);
  border-right: 0;
  border-radius: var(--r-md) 0 0 var(--r-md);
  padding: 0 16px;
  color: var(--text);
  font-size: .95rem;
  font-family: var(--font-body);
}
.acl-search input::placeholder { color: var(--text-muted); }
.acl-search input:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px var(--border-red);
}
.acl-search button {
  width: 52px;
  background: var(--red);
  border: 0;
  border-radius: 0 var(--r-md) var(--r-md) 0;
  color: #fff;
  font-size: 1.2rem;
  cursor: pointer;
  transition: background .2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.acl-search button:hover { background: var(--red-hover); }

/* ================================================================
   SELETOR "ESCOLHA SUA MOTO" (Marca > Modelo) — Navegação por Moto
   Frame Tecnologia 2026-07-08
   ================================================================ */
.acl-moto-selector {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.acl-moto-selector .lbl {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .68rem;
  color: var(--text-3);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.acl-moto-selector .lbl i { color: var(--red); font-size: .85rem; }
.acl-moto-selector select {
  height: 40px;
  background: var(--surface-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  color: var(--text);
  font-size: .8rem;
  padding: 0 8px;
  max-width: 118px;
  font-family: var(--font-body);
}
.acl-moto-selector select:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px var(--border-red);
}
.acl-moto-selector select:disabled { opacity: .5; cursor: not-allowed; }
.acl-moto-selector button {
  width: 36px;
  height: 36px;
  background: var(--red);
  border: 0;
  border-radius: var(--r-md);
  color: #fff;
  font-size: .85rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, opacity .2s;
  flex-shrink: 0;
}
.acl-moto-selector button:hover:not(:disabled) { background: var(--red-hover); }
.acl-moto-selector button:disabled { opacity: .35; cursor: not-allowed; }

@media (max-width: 1180px) {
  .acl-moto-selector .lbl span { display: none; }
}

@media (max-width: 860px) {
  .acl-moto-selector {
    order: 4;
    flex-basis: 100%;
    justify-content: flex-start;
  }
  .acl-moto-selector select { max-width: none; flex: 1; }
}

/* Acoes header (conta, carrinho) */
.acl-head-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-left: auto;
  flex-shrink: 0;
}
.acl-head-actions a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-size: .7rem;
  color: var(--text-3);
  position: relative;
  min-height: 44px;
  justify-content: center;
}
.acl-head-actions a:hover { color: #fff; }
.acl-head-actions .acl-ico { font-size: 1.4rem; line-height: 1; }
.acl-cart-badge {
  position: absolute;
  top: -4px;
  right: -8px;
  background: var(--red);
  color: #fff;
  font-size: .62rem;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  border-radius: var(--r-full);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
}

/* Woo header cart link */
.woocommerce-cart-link .count {
  background: var(--red);
  color: #fff;
  font-size: .62rem;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  border-radius: var(--r-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  margin-left: 4px;
}

@media (max-width: 860px) {
  .acl-search { order: 3; flex-basis: 100%; max-width: none; }
  .acl-header-inner { flex-wrap: wrap; height: auto; padding-top: 10px; padding-bottom: 10px; gap: 10px; }
}

/* ================================================================
   NAV CATEGORIAS
   ================================================================ */
.acl-catnav {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.acl-catnav::-webkit-scrollbar { display: none; }
.acl-catnav-inner {
  display: flex;
  align-items: center;
  gap: 4px;
  height: 48px;
  min-width: max-content;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 16px;
  overflow-x: visible;
  scrollbar-width: none;
}
.acl-catnav-inner::-webkit-scrollbar { display: none; }
.acl-catnav a {
  white-space: nowrap;
  padding: 8px 14px;
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: .92rem;
  letter-spacing: .02em;
  color: var(--text-2);
  border-radius: var(--r-sm);
  transition: .15s;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
/* FIX CONTRASTE 2026-07-15: color:#fff fixo aqui so funcionava no header
   dark (home) — var(--surface-2) vira cinza-claro (#F3F4F6) nas paginas
   WHITE-conversao (categoria/arquivo/busca), deixando o link da categoria
   ATIVA branco sobre cinza-claro (ratio 1.1:1, quase invisivel). Trocado
   pra var(--text), que ja se adapta ao contexto (branco no home dark,
   quase-preto nas paginas white) — mesmo padrao usado no resto do catnav. */
.acl-catnav a:hover,
.acl-catnav a.current-cat,
.acl-catnav a[aria-current="page"] { color: var(--text); background: var(--surface-2); }
.acl-catnav .acl-cat-all {
  color: #fff;
  background: var(--red);
  padding: 8px 16px;
  border-radius: var(--r-sm);
}
.acl-catnav .acl-cat-all:hover { background: var(--red-hover); }

/* FIX QA 2026-07-15: no mobile a barra de categorias mostra só ~3 de 10
   itens e corta em cheio na borda, sem nenhuma pista visual de que dá pra
   arrastar (overflow-x:auto sem indicador) — mascara de fade na borda
   direita avisa que há mais conteúdo. Só <900px (desktop cabe tudo, sem
   scroll). Mask fade não muda cor: só reduz a opacidade da própria barra
   na borda, funciona igual no home (dark) e nas páginas internas (white). */
@media (max-width: 899px) {
  .acl-catnav {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);
    mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);
  }
}

/* ================================================================
   BOTOES
   ================================================================ */
.btn,
.acl-btn,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: .95rem;
  border: 0;
  border-radius: var(--r-md);
  padding: 0 24px;
  min-height: 44px;
  height: 48px;
  cursor: pointer;
  transition: background .2s, box-shadow .2s, transform .15s;
  text-transform: uppercase;
  letter-spacing: .02em;
  text-decoration: none;
  background: var(--red);
  color: #fff !important;
  line-height: 1;
}

.btn:hover, .acl-btn:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.single_add_to_cart_button:hover {
  background: var(--red-hover) !important;
  box-shadow: var(--glow-red);
  transform: translateY(-1px);
}

.btn:focus-visible, .acl-btn:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.btn[aria-busy="true"] { opacity: .7; pointer-events: none; }

.btn--ghost, .acl-btn--ghost {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid var(--border-strong);
  box-shadow: none;
}

/* FIX CONTRASTE 2026-07-15: .btn--ghost/.acl-btn--ghost usa color:#fff fixo,
   correto no home dark ("Mais vendidos"), mas o MESMO componente e reusado
   no botao "Limpar filtros" do filtro lateral (acl_sc_filters(), functions.php)
   dentro das paginas WHITE-conversao (loja/categoria/busca/tax) — branco
   sobre fundo branco/transparente, ratio 1:1 (ilegivel). Reescopado igual
   as demais overrides de white-conversao (mesmo grupo de body-class),
   com !important pra vencer o !important original por especificidade. */
body.archive .btn--ghost, body.archive .acl-btn--ghost,
body.search-results .btn--ghost, body.search-results .acl-btn--ghost,
body.tax-product_cat .btn--ghost, body.tax-product_cat .acl-btn--ghost,
body.tax-product_tag .btn--ghost, body.tax-product_tag .acl-btn--ghost,
body.woocommerce-page:not(.home) .btn--ghost, body.woocommerce-page:not(.home) .acl-btn--ghost {
  color: var(--text) !important;
  border-color: var(--border-strong);
}
body.archive .btn--ghost:hover, body.archive .acl-btn--ghost:hover,
body.search-results .btn--ghost:hover, body.search-results .acl-btn--ghost:hover,
body.tax-product_cat .btn--ghost:hover, body.tax-product_cat .acl-btn--ghost:hover,
body.tax-product_tag .btn--ghost:hover, body.tax-product_tag .acl-btn--ghost:hover,
body.woocommerce-page:not(.home) .btn--ghost:hover, body.woocommerce-page:not(.home) .acl-btn--ghost:hover {
  color: var(--red) !important;
}

.btn--ghost:hover, .acl-btn--ghost:hover {
  border-color: var(--red);
  background: transparent !important;
  box-shadow: none;
  transform: none;
}

.btn--lg, .acl-btn--lg { height: 54px; font-size: 1.05rem; padding: 0 32px; }
.btn--block, .acl-btn--block { width: 100%; }
.btn--chevron { clip-path: polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%); padding-right: 38px; }

/* Botao Woo secundario */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce .checkout-button {
  background: var(--red) !important;
  color: #fff !important;
}

/* ================================================================
   BADGES
   ================================================================ */
.badge, .acl-badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-label);
  font-weight: 700;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 4px 12px 4px 10px;
  clip-path: polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%);
}
.badge--oem  { background: var(--surface-3); color: var(--text-2); }
.badge--perf { background: var(--gradient-velocity); color: #fff; }
.badge--sale { background: var(--gradient-velocity); color: #fff; }
.badge--stock {
  background: transparent;
  color: var(--success);
  border: 1px solid var(--success);
  clip-path: none;
  border-radius: var(--r-sm);
  padding: 3px 10px;
}
.badge--stock::before { content: "●"; margin-right: 5px; font-size: .6em; }
.badge--low  { color: var(--warning); border-color: var(--warning); }
.badge--low::before { content: "▲"; margin-right: 5px; font-size: .7em; }
.badge--out {
  color: var(--text-muted);
  border: 1px solid var(--border-strong);
  clip-path: none;
  border-radius: var(--r-sm);
  padding: 3px 10px;
}
.badge--out::before { content: "○"; margin-right: 5px; font-size: .7em; }

/* WooCommerce sale badge */
.woocommerce span.onsale {
  background: var(--gradient-velocity);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .04em;
  border-radius: var(--r-sm);
  min-height: auto;
  padding: 4px 10px;
  line-height: 1.3;
  position: absolute;
  top: 10px;
  left: 0;
  min-width: auto;
}

/* ================================================================
   HERO
   ================================================================ */
.acl-hero {
  position: relative;
  background: var(--gradient-dark);
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.acl-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--carbon);
  opacity: .5;
}
.acl-hero::after {
  content: "";
  position: absolute;
  top: -40%; right: -10%;
  width: 60%; height: 180%;
  background: radial-gradient(ellipse at center, rgba(238,51,51,.18), transparent 60%);
  transform: rotate(18deg);
}
.acl-hero-stripes {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(115deg, transparent 0 60px, rgba(255,255,255,.015) 60px 62px);
  pointer-events: none;
}
.acl-hero-inner {
  position: relative;
  z-index: 2;
  max-width: var(--container);
  margin: 0 auto;
  padding: 72px 16px;
}
.acl-hero .kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: var(--red-text-dark); /* FIX CONTRASTE 2026-07-15 */
  font-size: .9rem;
  margin-bottom: 14px;
}
.acl-hero .kicker::before {
  content: "";
  width: 36px; height: 2px;
  background: var(--red);
}
.acl-hero h1 { font-size: var(--fs-hero); max-width: 14ch; margin-bottom: 16px; }
.acl-hero h1 em { color: var(--red); font-style: normal; }
.acl-hero p { font-size: 1.15rem; color: var(--text-2); max-width: 46ch; margin-bottom: 28px; }
.acl-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }

/* ================================================================
   TRUST BAR
   ================================================================ */
.acl-trust {
  background: var(--bg-alt);
  border-bottom: 1px solid var(--border);
}
.acl-trust-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1px;
  padding: 0;
  max-width: var(--container);
  margin: 0 auto;
}
.acl-trust-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 16px;
  background: var(--bg-alt);
}
.acl-trust-item .ico { font-size: 1.6rem; color: var(--red); flex-shrink: 0; }
.acl-trust-item strong { display: block; font-family: var(--font-display); text-transform: uppercase; font-size: 1rem; color: #fff; }
.acl-trust-item span  { font-size: .78rem; color: var(--text-3); }
@media (min-width: 768px) { .acl-trust-grid { grid-template-columns: repeat(4,1fr); } }

/* ================================================================
   SECTIONS
   ================================================================ */
.acl-section { padding: 56px 0; }
.acl-section--alt { background: var(--bg-alt); }
.acl-section-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 16px;
}
.acl-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 26px;
}
.acl-section-head h2 { font-size: var(--fs-h2); margin: 0; }
.acl-section-head h2 .tick { color: var(--red); }
.acl-section-head .acl-link {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  color: var(--text-3);
  font-size: .95rem;
  white-space: nowrap;
}
.acl-section-head .acl-link:hover { color: var(--red); }

/* ================================================================
   CATEGORIAS GRID
   ================================================================ */
.acl-cats {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 14px;
}
@media (min-width: 640px)  { .acl-cats { grid-template-columns: repeat(3,1fr); } }
@media (min-width: 1024px) { .acl-cats { grid-template-columns: repeat(6,1fr); } }

.acl-cat-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 22px 14px;
  text-align: center;
  transition: .2s;
  position: relative;
  overflow: hidden;
  display: block;
}
.acl-cat-card::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 2px;
  background: var(--speedline);
  transform: scaleX(0);
  transform-origin: left;
  transition: .25s;
}
.acl-cat-card:hover {
  border-color: var(--border-red);
  background: var(--surface-2);
  transform: translateY(-3px);
}
.acl-cat-card:hover::after { transform: scaleX(1); }
.acl-cat-card:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}
.acl-cat-card .ico { font-size: 2rem; margin-bottom: 10px; display: block; }
.acl-cat-card .name {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 1.02rem;
  color: #fff;
  line-height: 1.1;
  display: block;
}
.acl-cat-card .count { font-size: .72rem; color: var(--text-muted); margin-top: 4px; display: block; }

/* ================================================================
   HUB /motos/ — Marcas e modelos (Navegação por Moto)
   Frame Tecnologia 2026-07-08
   ================================================================ */
.acl-motos-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 640px)  { .acl-motos-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .acl-motos-grid { grid-template-columns: repeat(3,1fr); } }

.acl-moto-brand-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 18px 20px;
}
.acl-moto-brand-card h3 { margin: 0 0 10px; }
.acl-moto-brand-card h3 a {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.05rem;
  color: #fff;
}
.acl-moto-brand-card h3 a i { color: var(--red); }
.acl-moto-brand-card h3 .count,
.acl-moto-brand-card li .count { color: var(--text-muted); font-weight: 400; font-size: .78rem; }
.acl-moto-brand-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 4px 12px;
}
.acl-moto-brand-card li a {
  display: block;
  padding: 5px 0;
  font-size: .85rem;
  color: var(--text-2);
  border-bottom: 1px solid transparent;
}
.acl-moto-brand-card li a:hover {
  color: var(--red);
  border-bottom-color: var(--border-red);
}

/* ================================================================
   PRODUCT CARD
   ================================================================ */
.products.columns-2,
.products.columns-3,
.products.columns-4,
.acl-products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (min-width: 640px) {
  .products.columns-3,
  .products.columns-4,
  .acl-products { grid-template-columns: repeat(3,1fr); }
}
@media (min-width: 1024px) {
  .products.columns-4,
  .acl-products { grid-template-columns: repeat(4,1fr); }
}

/* Card base */
.woocommerce ul.products li.product,
.acl-pcard {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid transparent;
  border-radius: var(--r-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: .2s;
  position: relative;
  list-style: none;
  padding: 0;
  margin: 0;
}
.woocommerce ul.products li.product:hover,
.acl-pcard:hover {
  border-color: var(--border-strong);
  border-left-color: var(--red);
  box-shadow: var(--sh-lg), var(--glow-red-soft);
  transform: translateX(2px);
}

/* Placeholder de imagem (sem foto) */
.woocommerce ul.products li.product .woocommerce-loop-product__link,
.acl-pcard__media {
  position: relative;
  aspect-ratio: 1;
  background: var(--surface-2);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.woocommerce ul.products li.product .woocommerce-loop-product__link::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.04), transparent 70%);
}

/* Icone placeholder por categoria (via CSS data-attribute) */
.acl-pcard__media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.04), transparent 70%);
}

/* Produto sem imagem — placeholder */
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product img {
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
}

/* Quando nao tem imagem real, exibir placeholder */
.woocommerce ul.products li.product .woocommerce-placeholder {
  background: var(--surface-2);
  width: 100%;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Logo AceleraStore no placeholder */
.acl-pcard__phlogo {
  position: absolute;
  bottom: 8px; right: 10px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .62rem;
  letter-spacing: .1em;
  color: #fff;
  opacity: .18;
  text-transform: uppercase;
}
.acl-pcard__badge {
  position: absolute;
  top: 10px; left: 0;
  z-index: 2;
}
.acl-pcard__stockwrap {
  position: absolute;
  top: 10px; right: 10px;
  z-index: 2;
}

/* Corpo do card */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.acl-pcard__title {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 1.02rem;
  line-height: 1.1;
  color: #fff;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.3em;
  margin: 0 0 8px;
  padding: 12px 14px 0;
}

.woocommerce ul.products li.product .price,
.acl-pcard__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 0 14px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.woocommerce ul.products li.product .price .amount,
.woocommerce ul.products li.product .price ins .amount,
.acl-pcard__price .now {
  font-family: var(--font-label);
  font-weight: 700;
  font-size: 1.4rem;
  color: #fff;
  text-decoration: none;
}
.woocommerce ul.products li.product .price del,
.acl-pcard__price .old {
  font-size: .82rem;
  color: var(--text-muted);
  text-decoration: line-through;
}
.acl-pcard__price .inst {
  font-size: .7rem;
  color: var(--text-3);
  width: 100%;
  margin-top: -2px;
}

.acl-pcard__sku {
  font-family: var(--font-mono);
  font-size: .7rem;
  color: var(--text-muted);
  margin-bottom: 5px;
  letter-spacing: .02em;
  padding: 0 14px;
}
.acl-pcard__specs {
  margin-top: 4px;
  font-size: .74rem;
  color: var(--text-3);
  line-height: 1.4;
  padding: 0 14px;
}
.acl-pcard__specs span { display: block; }

.acl-pcard__foot {
  margin-top: auto;
  padding: 0 14px 14px;
}

/* Botao do card */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
  width: 100%;
  margin: 8px 0 0;
  border-radius: var(--r-md);
  height: 44px;
}

/* ================================================================
   FIX LAYOUT 2026-07-14 — VITRINE HOME (Mais Vendidos / Novidades)
   O <ul class="products"> dessas vitrines (acl_render_product_showcase,
   em functions.php) é impresso SEM wrapper .woocommerce em volta —
   por isso as regras ".woocommerce ul.products li.product" acima
   (Card base / Botao do card) NUNCA batem na home, e os elementos
   caem no display padrão do navegador (li:list-item, a/button:inline),
   causando o botão "Adicionar ao carrinho" (um <a> irmão, fora do link
   de imagem/título/preço) sobrepor o preço/Pix por falta de box de bloco.
   Escopo próprio via body.home (classe real do body na home), reusando
   os mesmos tokens dark do :root — a home permanece dark por decisão
   de design já registrada na camada WHITE-CONVERSÃO mais abaixo.
   Card vira flex-column com o link de conteúdo em flex:1, então o
   botão (irmão seguinte) fica sempre ancorado no rodapé do card —
   isso também alinha preço/botão entre cards de alturas diferentes
   na mesma linha (a grade .products já estica os itens da linha via
   align-items:stretch padrão do CSS Grid).
   ================================================================ */
body.home ul.products li.product {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid transparent;
  border-radius: var(--r-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: .2s;
  position: relative;
  list-style: none;
  padding: 0;
  margin: 0;
}
body.home ul.products li.product:hover {
  border-color: var(--border-strong);
  border-left-color: var(--red);
  box-shadow: var(--sh-lg), var(--glow-red-soft);
}
body.home ul.products li.product a.woocommerce-loop-product__link {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-decoration: none;
  color: inherit;
}
body.home ul.products li.product img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  flex-shrink: 0;
}
body.home ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 1.02rem;
  line-height: 1.1;
  color: var(--text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.3em;
  margin: 0 0 8px;
  padding: 12px 14px 0;
}
/* Wrapper <p> (sem classe) do preço/Pix/parcelas, gerado pelo core do WC —
   vira coluna própria; o <br> nativo entre preço e Pix é neutralizado
   porque o espaçamento passa a ser feito via margin/padding dos spans. */
body.home ul.products li.product a.woocommerce-loop-product__link > p {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
}
body.home ul.products li.product a.woocommerce-loop-product__link > p br {
  display: none;
}
body.home ul.products li.product .price {
  display: block;
  font-family: var(--font-label);
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--text);
  padding: 0 14px;
  margin: 0 0 2px;
}
body.home ul.products li.product .acl-pcard__pix {
  display: block;
  padding: 0 14px;
}
body.home ul.products li.product .acl-pcard__inst {
  display: block;
  padding: 0 14px;
  margin: 2px 0 14px;
}
/* Botao ancorado no rodape do card — sempre 1 linha, nunca sobrepoe preco/Pix */
/* FIX CONTRASTE 2026-07-15 (aprovado pelo Alisson): este seletor nunca
   declarava background/color — o WooCommerce 10.x adiciona a classe
   "wp-element-button" ao add-to-cart em tema de blocos, e como a home NÃO
   tem ancestral ".woocommerce" (ver nota acima), a regra ".woocommerce
   a.button{background:var(--red)}" nunca batia aqui; o botão ficava com o
   FALLBACK do theme.json (:root :where(.wp-element-button){background-color:
   var(--wp--preset--color--red)}), preset SEPARADO e ainda travado em
   #EE3333 (4.07:1, abaixo do AA) — nunca acompanhou o --red do racing.css.
   Declarado aqui explicitamente com a especificidade alta deste seletor
   (0,4,4) pra vencer o :where() do theme.json (especificidade zero) sem
   precisar editar theme.json. */
body.home ul.products li.product a.button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100% - 28px);
  margin: 0 14px 14px;
  border-radius: var(--r-md);
  height: 44px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 0;
  background: var(--red);
  color: #fff;
}
body.home ul.products li.product a.button:hover {
  background: var(--red-hover);
}

/* ================================================================
   BREADCRUMB
   ================================================================ */
.woocommerce .woocommerce-breadcrumb,
.acl-crumb {
  padding: 16px 0;
  font-size: .82rem;
  color: var(--text-muted);
  max-width: var(--container);
  margin: 0 auto;
  padding-left: 16px;
  padding-right: 16px;
}
.woocommerce .woocommerce-breadcrumb a:hover,
.acl-crumb a:hover { color: var(--red); }

/* ================================================================
   BANNER DE CATEGORIA
   ================================================================ */
.acl-cat-banner {
  background: var(--gradient-dark);
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: var(--r-lg);
  padding: 24px;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}
.acl-cat-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--carbon);
  opacity: .4;
}
.acl-cat-banner * { position: relative; z-index: 1; }
.acl-cat-banner h1 { font-size: var(--fs-h2); color: #fff; margin: 0 0 6px; }
.acl-cat-banner p  { color: var(--text-3); font-size: .9rem; margin: 0; }

/* ================================================================
   LAYOUT LOJA / ARQUIVO
   ================================================================ */
.woocommerce .woocommerce-result-count {
  color: var(--text-3);
  font-size: .86rem;
}
.woocommerce .woocommerce-ordering select {
  height: 42px;
  background: var(--surface-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  color: var(--text-2);
  padding: 0 12px;
  font-family: var(--font-body);
}

.acl-shop-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  padding-bottom: 60px;
}
@media (min-width: 1024px) {
  .acl-shop-layout { grid-template-columns: 260px 1fr; }
}

/* Filtros */
.acl-filters {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 18px;
  align-self: start;
}
.acl-filters h3 {
  font-size: 1.05rem;
  color: #fff;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  text-transform: uppercase;
}
.acl-filters h3 .ico { color: var(--red); }

.acl-fgroup { border-top: 1px solid var(--border); padding: 16px 0; }
.acl-fgroup:first-of-type { border-top: 0; padding-top: 0; }
.acl-ftitle {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: .92rem;
  color: var(--text-2);
  letter-spacing: .03em;
  margin-bottom: 10px;
}
.acl-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.acl-pill {
  background: var(--surface-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--r-full);
  padding: 6px 13px;
  font-size: .8rem;
  color: var(--text-2);
  cursor: pointer;
  transition: .15s;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.acl-pill:hover { border-color: var(--border-red); }
.acl-pill.active { background: var(--red); border-color: var(--red); color: #fff; }

/* Filtros nativos Woo */
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content,
.woocommerce .widget_price_filter .price_slider_amount .button {
  background: var(--red);
  color: #fff;
  border-radius: var(--r-md);
}
.woocommerce .widget_layered_nav ul li a {
  color: var(--text-2);
  font-size: .86rem;
}
.woocommerce .widget_layered_nav ul li.chosen a {
  color: var(--red);
  font-weight: 600;
}

/* Paginacao */
.woocommerce nav.woocommerce-pagination ul,
.acl-pagination {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-top: 34px;
  list-style: none;
  padding: 0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.acl-pagination a {
  min-width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  font-family: var(--font-label);
  font-weight: 600;
  color: var(--text-2);
  text-decoration: none;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.acl-pagination a.active {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.acl-pagination a:hover:not(.active) {
  border-color: var(--border-red);
}

/* ================================================================
   PAGINA DE PRODUTO (PDP)
   ================================================================
   FIX LAYOUT 2026-07-14: esta regra era da PDP dark antiga (pré
   WHITE-CONVERSÃO de 2026-06-17), escrita para quando ".woocommerce
   div.product" tinha só 2 filhos (galeria + resumo). Hoje esse mesmo
   wrapper (".wp-block-group.woocommerce.product", injetado automati-
   camente pelo compat layer do WooCommerce nos templates FSE de PDP —
   confirmado só existe em single-product, não em home/loja/categoria)
   engloba 5+ blocos/shortcodes irmãos (hero, especificações, tabs,
   avaliações, relacionados). O grid de 2 colunas forçava TODOS eles
   pra dentro de só 2 colunas estreitas e esticava (align-items:stretch
   padrão do grid) a caixa de especificações até a altura da galeria,
   criando ~850px de vazio branco embaixo da tabela.
   Cada seção interna já tem seu próprio max-width/grid (.acl-pdp-hero
   e .acl-specs-section .acl-section-inner, ver camada WHITE-CONVERSÃO
   mais abaixo) — não precisa de grid aqui, só empilhar em bloco normal
   full-width, com respiro no fim antes do footer.
   ".acl-pdp" (bare, sem o "div.product") confirmado morto por grep em
   todo o tema (CSS + PHP + templates) — nenhuma marcação usa essa
   classe isolada — removido do seletor.
   ================================================================ */
.woocommerce div.product {
  padding-bottom: 56px;
}

/* Hero PDP via shortcode [acl_pdp_hero] — galeria + info 2 colunas */
.acl-pdp-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  max-width: var(--container);
  margin: 0 auto;
  padding: 24px 16px 40px;
}
@media (min-width: 900px) {
  .acl-pdp-hero { grid-template-columns: 1.1fr 1fr; gap: 44px; align-items: start; }
}

/* Coluna galeria */
.acl-pdp-gallery { display: flex; flex-direction: column; gap: 12px; }

/* Imagem principal da galeria */
.acl-pdp-img-main {
  position: relative;
  aspect-ratio: 1;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: 280px;
}
.acl-pdp-img-main::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 35%, rgba(255,255,255,.05), transparent 70%);
  pointer-events: none;
}
.acl-pdp-img-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.acl-pdp-img-main img.acl-placeholder-svg {
  width: 85%;
  height: 85%;
  object-fit: contain;
}

/* Thumbnails galeria (ate 5 slots) */
.acl-pdp-thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}
.acl-pdp-thumb {
  aspect-ratio: 1;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  cursor: pointer;
}
.acl-pdp-thumb.active,
.acl-pdp-thumb:hover { border-color: var(--red); }
.acl-pdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Galeria de produto */
.woocommerce div.product div.images,
.acl-gallery {}
.woocommerce div.product div.images .woocommerce-product-gallery__image,
.acl-gallery__main {
  position: relative;
  aspect-ratio: 1;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image::before,
.acl-gallery__main::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 35%, rgba(255,255,255,.05), transparent 70%);
}

/* Thumbnails galeria */
.woocommerce div.product div.images .flex-control-thumbs,
.acl-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 10px;
  margin-top: 12px;
}
.woocommerce div.product div.images .flex-control-thumbs li,
.acl-gallery__thumb {
  aspect-ratio: 1;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  cursor: pointer;
  list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li.flex-active-slide,
.acl-gallery__thumb.active { border-color: var(--red); }

/* Info produto */
.woocommerce div.product div.summary,
.acl-pdp-info { display: flex; flex-direction: column; gap: 0; }

.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--text-2);
  font-size: .95rem;
}

/* Categoria no PDP */
.woocommerce div.product p.posted_in,
.acl-pdp-cat {
  font-family: var(--font-display);
  text-transform: uppercase;
  color: var(--red);
  font-size: .85rem;
  letter-spacing: .08em;
  margin-bottom: 6px;
}
.woocommerce div.product p.posted_in a { color: var(--red); }

/* Titulo PDP */
.woocommerce div.product .product_title {
  font-size: clamp(1.6rem,4vw,2.2rem);
  color: #fff;
  margin-bottom: 10px;
}

/* SKU e meta */
.woocommerce div.product .woocommerce-product-rating,
.acl-pdp-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: .82rem;
  color: var(--text-3);
  margin-bottom: 18px;
  align-items: center;
}
.woocommerce div.product .sku { font-family: var(--font-mono); color: var(--text-2); }

/* Price box */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.acl-price-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: var(--r-lg);
  padding: 22px;
  margin-bottom: 22px;
}
.woocommerce div.product p.price .amount,
.woocommerce div.product span.price .amount,
.acl-price-now {
  font-family: var(--font-label);
  font-weight: 700;
  font-size: 2.4rem;
  color: #fff;
  line-height: 1;
}
.acl-price-pix { color: var(--success); font-size: .92rem; font-weight: 600; margin-top: 8px; }
.acl-price-inst { color: var(--text-3); font-size: .86rem; margin-top: 4px; }

/* Qty */
.woocommerce div.product .quantity,
.acl-qty {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  overflow: hidden;
}
.woocommerce div.product .quantity input.qty,
.acl-qty input {
  width: 54px; height: 54px;
  background: var(--surface);
  border: 0;
  color: #fff;
  text-align: center;
  font-size: 1.05rem;
  font-family: var(--font-body);
}

/* Frete CEP */
.acl-ship-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 16px;
  margin-bottom: 22px;
}
.acl-ship-box label { font-size: .82rem; color: var(--text-3); display: block; margin-bottom: 8px; }
.acl-ship-box .row { display: flex; gap: 8px; }
.acl-ship-box input {
  flex: 1;
  height: 44px;
  background: var(--surface-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  padding: 0 12px;
  color: #fff;
  font-family: var(--font-body);
}
.acl-ship-box input:focus { outline: none; border-color: var(--red); }

/* Trust mini */
.acl-pdp-trust {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 10px;
  margin-top: 18px;
}
.acl-pdp-trust .it {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 12px;
  text-align: center;
}
.acl-pdp-trust .it .ico { font-size: 1.4rem; color: var(--red); }
.acl-pdp-trust .it small { display: block; font-size: .72rem; color: var(--text-3); margin-top: 4px; line-height: 1.3; }

/* Specs */
.acl-specs-section { padding: 10px 0 56px; background: var(--bg-alt); }
.acl-specs-section h2 {
  font-size: var(--fs-h3);
  margin-bottom: 18px;
  border-left: 3px solid var(--red);
  padding-left: 12px;
}
.acl-spec-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.acl-spec-table tr { border-bottom: 1px solid var(--border); }
.acl-spec-table tr:last-child { border-bottom: 0; }
.acl-spec-table th {
  text-align: left;
  padding: 13px 18px;
  width: 38%;
  background: var(--bg-alt);
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: .86rem;
  color: var(--text-3);
  letter-spacing: .02em;
}
.acl-spec-table td { padding: 13px 18px; font-size: .9rem; color: var(--text); }
.acl-spec-table td.mono { font-family: var(--font-mono); color: var(--text-2); }

/* WooCommerce tabs produto */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  gap: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: 0;
  background: transparent;
  border-radius: 0;
  margin: 0;
  padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 14px 24px;
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  color: var(--text-3);
  font-size: .9rem;
  letter-spacing: .03em;
  border-bottom: 3px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: #fff;
  border-bottom-color: var(--red);
  background: transparent;
}
.woocommerce div.product .woocommerce-tabs .panel {
  background: var(--surface);
  border: 0;
  padding: 24px;
  color: var(--text-2);
}

/* Atributos na aba de produto */
.woocommerce table.shop_attributes {
  width: 100%;
  border-collapse: collapse;
  background: var(--surface);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.woocommerce table.shop_attributes tr { border-bottom: 1px solid var(--border); }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
  padding: 13px 18px;
  font-size: .9rem;
}
.woocommerce table.shop_attributes th {
  background: var(--bg-alt);
  color: var(--text-3);
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: .86rem;
  width: 38%;
}
.woocommerce table.shop_attributes td { color: var(--text); }

/* ================================================================
   REVIEWS (prova social)
   ================================================================ */
.acl-reviews {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) { .acl-reviews { grid-template-columns: repeat(3,1fr); } }
.acl-review {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 22px;
}
.acl-review .stars { color: var(--warning); font-size: 1rem; letter-spacing: 2px; margin-bottom: 10px; }
.acl-review p { color: var(--text-2); font-size: .95rem; margin-bottom: 14px; }
.acl-review .who { display: flex; align-items: center; gap: 10px; }
.acl-review .ava {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--gradient-velocity);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.acl-review .who b { font-size: .9rem; color: #fff; display: block; font-weight: 600; }
.acl-review .who small { font-size: .74rem; color: var(--text-muted); }

/* ================================================================
   FOOTER
   ================================================================ */
.acl-footer,
.site-footer {
  background: #060606;
  border-top: 3px solid var(--red);
  padding-top: 48px;
  margin-top: 0;
}
.acl-footer-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 16px;
}
.acl-footer-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  padding-bottom: 36px;
}
@media (min-width: 768px) { .acl-footer-cols { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; } }
.acl-footer img.logo { height: 60px; margin-bottom: 14px; }
/* WCAG AA: hardcoded B5B5B5 (9.88:1 on dark footer) — não herda var(--text-3) white */
.acl-footer p { color: #B5B5B5; font-size: .85rem; max-width: 34ch; }
.acl-footer h4,
.acl-footer h2.acl-footer-heading {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: #fff;
  margin-bottom: 14px;
  text-transform: uppercase;
  /* Resetar estilos de h2 que possam vazar */
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .03em;
}
.acl-footer ul { list-style: none; padding: 0; margin: 0; }
.acl-footer ul li { margin-bottom: 9px; }
/* WCAG AA: hardcoded B5B5B5 (9.88:1 on dark footer) */
.acl-footer ul a { color: #B5B5B5; font-size: .88rem; }
.acl-footer ul a:hover { color: var(--red); }
.acl-footer .pay { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.acl-footer .pay span {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  padding: 6px 10px;
  font-size: .72rem;
  color: var(--text-2);
  font-weight: 600;
}
.acl-footer .seals { display: flex; gap: 10px; margin-top: 14px; }
.acl-footer .seals span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .74rem;
  /* WCAG AA: hardcoded B5B5B5 on dark footer */
  color: #B5B5B5;
}
.acl-footer-bottom {
  border-top: 1px solid var(--border);
  padding: 18px 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
/* WCAG AA: hardcoded #888 on dark footer (5.58:1) */
.acl-footer-bottom small { color: #888888; font-size: .76rem; }
.acl-footer-legal {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
/* WCAG AA: hardcoded #B5B5B5 on dark footer (9.88:1) */
.acl-footer-legal a {
  color: #B5B5B5;
  font-size: .76rem;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color .15s;
}
.acl-footer-legal a:hover { color: #E5E5E5; }
.acl-footer-legal span { color: #888888; font-size: .76rem; }

/* ================================================================
   INPUTS / FORMULARIOS
   ================================================================ */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
input[type="text"], input[type="email"], input[type="tel"],
input[type="password"], input[type="search"], textarea, select {
  background: var(--surface-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  color: var(--text);
  padding: 12px 16px;
  font-family: var(--font-body);
  font-size: .95rem;
  width: 100%;
  transition: border-color .2s;
}
input::placeholder, textarea::placeholder { color: var(--text-muted); }
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px var(--border-red);
}

/* Labels */
.woocommerce form .form-row label,
label {
  color: var(--text-2);
  font-size: .88rem;
  font-weight: 500;
  display: block;
  margin-bottom: 6px;
}

/* ================================================================
   CARRINHO E CHECKOUT
   ================================================================ */
.woocommerce table.cart,
.woocommerce-cart-form table {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  width: 100%;
  border-collapse: collapse;
}
.woocommerce table.cart th,
.woocommerce-cart-form table th {
  background: var(--bg-alt);
  color: var(--text-3);
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: .85rem;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}
.woocommerce table.cart td,
.woocommerce-cart-form table td {
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  vertical-align: middle;
}
.woocommerce table.cart .product-name a { color: var(--text-2); }
.woocommerce table.cart .product-price .amount,
.woocommerce table.cart .product-subtotal .amount {
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
}

/* Cart totals */
.woocommerce .cart_totals,
.woocommerce-checkout .cart_totals {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: var(--r-lg);
  padding: 22px;
}
.woocommerce .cart_totals h2 {
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.woocommerce .cart_totals table { width: 100%; }
.woocommerce .cart_totals table th { color: var(--text-3); }
.woocommerce .cart_totals table .order-total th,
.woocommerce .cart_totals table .order-total td {
  font-size: 1.2rem;
  font-weight: 700;
  color: #fff;
}

/* Checkout */
.woocommerce form.checkout #order_review {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 22px;
}
.woocommerce form.checkout h3 {
  font-family: var(--font-display);
  text-transform: uppercase;
  color: #fff;
  font-size: 1.2rem;
  border-left: 3px solid var(--red);
  padding-left: 12px;
  margin-bottom: 18px;
}

/* ================================================================
   MINHA CONTA
   ================================================================ */
.woocommerce .woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 16px;
}
.woocommerce .woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0; margin: 0;
}
.woocommerce .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 10px 14px;
  border-radius: var(--r-md);
  color: var(--text-2);
  font-size: .9rem;
}
.woocommerce .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce .woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--surface-2);
  color: var(--red);
}

/* ================================================================
   MENSAGENS / NOTICES
   ================================================================ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: var(--r-lg);
  padding: 16px 20px;
  color: var(--text-2);
  font-size: .95rem;
  margin-bottom: 20px;
  list-style: none;
}
.woocommerce-message { border-left-color: var(--success); }
.woocommerce-info    { border-left-color: var(--info); }
.woocommerce-error   { border-left-color: var(--danger); }
.acl-notices-wrap {
  max-width: var(--container);
  margin: 0 auto;
  padding: 12px 16px 0;
}
.acl-notices-wrap:empty { display: none; }

/* ================================================================
   BLOCK EDITOR (blocos nativos Gutenberg no tema dark)
   ================================================================ */
.wp-block-separator {
  height: 2px;
  border: 0;
  background: var(--speedline);
  margin: 32px 0;
}

.wp-block-image img { border-radius: var(--r-lg); }

.wp-block-quote {
  border-left: 3px solid var(--red);
  background: var(--surface);
  padding: 20px 24px;
  border-radius: 0 var(--r-lg) var(--r-lg) 0;
  color: var(--text-2);
}

/* ================================================================
   MOBILE FILTER BUTTON (sticky)
   ================================================================ */
.acl-mob-filter {
  display: none;
}
@media (max-width: 1023px) {
  .acl-mob-filter {
    display: flex;
    position: sticky;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    z-index: 30;
    justify-content: center;
    margin-top: 20px;
  }
}

/* ================================================================
   PRODUTO SEM FOTO — PLACEHOLDER RACING
   ================================================================ */
.acl-placeholder-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  background: var(--surface-2);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.acl-placeholder-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.04), transparent 70%);
}
.acl-placeholder-ico {
  font-size: 4rem;
  color: #fff;
  opacity: .07;
  position: relative;
  z-index: 1;
}
.acl-placeholder-logo {
  position: absolute;
  bottom: 10px; right: 12px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .62rem;
  letter-spacing: .1em;
  color: #fff;
  opacity: .18;
  text-transform: uppercase;
  z-index: 2;
}

/* Placeholder racing — SVG grafite exibido no lugar da imagem ausente */
.woocommerce ul.products li.product a.woocommerce-loop-product__link img.woocommerce-placeholder,
.woocommerce ul.products li.product a.woocommerce-loop-product__link img.acl-placeholder-svg,
.woocommerce ul.products li.product a.woocommerce-loop-product__link img[src*="placeholder-produto"] {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--surface-2);
  border-radius: var(--r-sm);
  display: block;
  opacity: 1;
  filter: none;
}
/* Garante que o alt text nao quebre o layout (fallback de img quebrada) */
.woocommerce ul.products li.product a.woocommerce-loop-product__link img.woocommerce-placeholder {
  font-size: 0;
  color: transparent;
}

/* ================================================================
   NOTIFICACAO "ADICIONADO AO CARRINHO" (mini-cart / toast)
   ================================================================ */
.added_to_cart,
.woocommerce a.added_to_cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .85rem;
  color: var(--success) !important;
  border: 1px solid var(--success);
  border-radius: var(--r-md);
  padding: 8px 16px;
  margin-top: 8px;
  background: transparent;
  text-decoration: none;
}

/* ================================================================
   TAGS E CATEGORIAS WOOCOMMERCE
   ================================================================ */
.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.product_list_widget li .product-title {
  font-family: var(--font-display);
  text-transform: uppercase;
  color: var(--text-2);
}

/* ================================================================
   ESTADO: PRODUTO ESGOTADO
   ================================================================ */
.woocommerce ul.products li.product .button.disabled,
.woocommerce ul.products li.product .button[disabled] {
  background: var(--surface-3) !important;
  color: var(--text-muted) !important;
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}
.woocommerce div.product form.cart .single_add_to_cart_button.disabled {
  background: var(--surface-3) !important;
  cursor: not-allowed;
}

/* ================================================================
   SCROLLBARS PERSONALIZADOS — dark racing
   Track grafite #1a1a1a, thumb vermelho #DD0000 (sync 2026-07-15), ~10px
   ================================================================ */

/* Webkit (Chrome, Safari, Edge) */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: #1a1a1a;
}
::-webkit-scrollbar-thumb {
  background: #DD0000;
  border-radius: 6px;
  border: 2px solid #1a1a1a;
}
::-webkit-scrollbar-thumb:hover {
  background: #FF5555;
}
::-webkit-scrollbar-corner {
  background: #1a1a1a;
}

/* Firefox */
html {
  scrollbar-color: #DD0000 #1a1a1a;
  scrollbar-width: thin;
}

/* Áreas com overflow interno (nav, dropdowns, tabelas) */
.acl-catnav,
.woocommerce table.cart,
.woocommerce-cart-form table,
.acl-suggest {
  scrollbar-color: #DD0000 #1a1a1a;
  scrollbar-width: thin;
}

/* ================================================================
   CATÁLOGO — LARGURA E GRID
   max-width 1280px centralizado; 4 cols desktop / 3 tablet / 2 mobile
   Sem quebrar header (que pode ser mais largo via sticky/fullwidth)
   ================================================================ */

/* Container da loja (wrapper interno) */
.woocommerce-page .woocommerce,
.woocommerce .woocommerce-page,
.woocommerce-shop .woocommerce,
.acl-shop-layout,
.woocommerce-archive .woocommerce {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
  box-sizing: border-box;
}

/* Grid produtos — PHP clássico + WC Blocks: 2 mobile, 3 tablet, 4 desktop */
.products.columns-2,
.products.columns-3,
.products.columns-4,
.acl-products,
ul.products,
.wc-block-product-template.is-flex-container,
.wc-block-product-template__responsive {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 16px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 32px !important;
}

/* Itens filhos do WC Blocks: resetar width fixo do flex */
.wc-block-product-template.is-flex-container > li {
  width: auto !important;
}

@media (min-width: 768px) {
  .products.columns-2,
  .products.columns-3,
  .products.columns-4,
  .acl-products,
  ul.products,
  .wc-block-product-template.is-flex-container,
  .wc-block-product-template__responsive {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
  }
}

@media (min-width: 1024px) {
  .products.columns-2,
  .products.columns-3,
  .products.columns-4,
  .acl-products,
  ul.products,
  .wc-block-product-template.is-flex-container,
  .wc-block-product-template__responsive {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 22px !important;
  }
}

/* ================================================================
   BOTÃO FLUTUANTE WHATSAPP
   Fixo no canto inferior DIREITO, acima do conteúdo (z-index 200)
   ================================================================ */

.acl-wpp-btn {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  background: #25D366;
  border-radius: 50%;
  box-shadow: 0 4px 16px rgba(37, 211, 102, 0.45), 0 2px 6px rgba(0,0,0,.35);
  transition: background .2s, transform .2s, box-shadow .2s;
  text-decoration: none;
  color: #fff;
  flex-shrink: 0;
}
.acl-wpp-btn:hover {
  background: #1ebe5d;
  transform: scale(1.08);
  box-shadow: 0 6px 22px rgba(37, 211, 102, 0.55), 0 2px 8px rgba(0,0,0,.4);
}
.acl-wpp-btn:focus-visible {
  outline: 3px solid #25D366;
  outline-offset: 3px;
}
.acl-wpp-btn svg {
  display: block;
  flex-shrink: 0;
}

/* Mobile: ajusta bottom para não colidir com barra de navegação */
@media (max-width: 767px) {
  .acl-wpp-btn {
    bottom: 20px;
    right: 16px;
    width: 52px;
    height: 52px;
  }
  .acl-wpp-btn svg {
    width: 24px;
    height: 24px;
  }
}

/* ================================================================
   BOTÃO VOLTAR AO TOPO
   Canto inferior ESQUERDO (grafite/vermelho, estilo racing)
   Desktop: aparece após scroll > 400px
   Mobile: aparece ao rolar para CIMA
   z-index 195 (abaixo do WhatsApp 200 e modais 300)
   ================================================================ */

.acl-back-top {
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 195;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  background: #2A2A2A;
  border: 2px solid var(--red);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,.55), 0 0 0 0 rgba(238,51,51,0);
  transition: background .2s, transform .2s, box-shadow .2s, border-color .2s;
  flex-shrink: 0;
}
.acl-back-top:hover {
  background: var(--red);
  border-color: var(--red);
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,.6), 0 0 12px rgba(238,51,51,.45);
}
.acl-back-top:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.acl-back-top svg {
  display: block;
  flex-shrink: 0;
}

@media (max-width: 639px) {
  .acl-back-top {
    bottom: 20px;
    left: 16px;
    width: 46px;
    height: 46px;
  }
  .acl-back-top svg {
    width: 18px;
    height: 18px;
  }
}

/* ================================================================
   MODAL LGPD / COOKIES
   FIX QA 2026-07-08: era um card flutuante em bottom:24/left:24 — MESMA
   posição do botão "voltar ao topo" (também bottom:24/left:24), com
   z-index MENOR (190 < 195), então o botão redondo ficava por cima do
   texto/CTA "Aceitar" (cortava a leitura para "CEITAR"). Convertido para
   BARRA INFERIOR de largura total: nunca mais colide com os flutuantes
   (que agora sobem via body:has() enquanto a barra está visível) e não
   cobre CTAs de conteúdo (hero, galeria) por ocupar só uma faixa fina
   no rodapé da viewport. z-index elevado para 300 (sempre acima de
   scroll-top e WhatsApp — o CTA de aceite tem que estar sempre alcançável).
   ================================================================ */

.acl-lgpd {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 300;
  max-width: 100%;
  width: 100%;
  background: #141414;
  border: none;
  border-top: 3px solid var(--red);
  border-radius: 0;
  padding: 14px 24px;
  box-shadow: 0 -8px 28px rgba(0,0,0,.55);
  opacity: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 24px;
  transition: opacity .35s, transform .35s;
}

.acl-lgpd[hidden] {
  display: none;
}

.acl-lgpd--saindo {
  opacity: 0;
  transform: translateY(12px);
}

.acl-lgpd__text {
  font-size: .82rem;
  /* WCAG AA: hardcoded #D1D5DB (fundo fixo #141414 — 8.06:1) */
  color: #D1D5DB;
  line-height: 1.5;
  margin: 0;
  flex: 1 1 320px;
  max-width: 720px;
}

.acl-lgpd__link {
  color: var(--red);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.acl-lgpd__link:hover { color: var(--red-hover); }

.acl-lgpd__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.acl-lgpd__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 20px;
  background: var(--red);
  color: #fff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: .82rem;
  border: 0;
  border-radius: var(--r-md);
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .03em;
  white-space: nowrap;
  transition: background .2s;
  flex-shrink: 0;
}
.acl-lgpd__btn:hover { background: var(--red-hover); }
.acl-lgpd__btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.acl-lgpd__saibamais {
  font-size: .78rem;
  /* WCAG AA: hardcoded #B5B5B5 on #141414 (9.88:1) */
  color: #B5B5B5;
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}
.acl-lgpd__saibamais:hover { color: #E5E5E5; }

/* Mobile: barra empilhada (texto em cima, botões embaixo) */
@media (max-width: 639px) {
  .acl-lgpd {
    flex-direction: column;
    align-items: stretch;
    padding: 14px 16px;
    gap: 10px;
  }
  .acl-lgpd__text {
    /* reset do flex-basis:320px do desktop — em column ele vira ALTURA, não largura */
    flex: none;
    max-width: 100%;
    text-align: center;
  }
  .acl-lgpd__actions {
    justify-content: center;
  }
  .acl-lgpd--saindo {
    opacity: 0;
    transform: translateY(12px);
  }
}

/* ================================================================
   FIX QA 2026-07-08: enquanto a barra LGPD estiver visível, os botões
   flutuantes (WhatsApp e voltar ao topo) sobem para não ficarem por
   baixo da barra. #acl-lgpd-banner é REMOVIDO do DOM ao aceitar (ver
   acl-lgpd.js), então :has() deixa de casar automaticamente depois disso.
   ================================================================ */
body:has(#acl-lgpd-banner:not([hidden])) .acl-wpp-btn,
body:has(#acl-lgpd-banner:not([hidden])) .acl-back-top {
  bottom: 88px;
}
@media (max-width: 639px) {
  body:has(#acl-lgpd-banner:not([hidden])) .acl-wpp-btn,
  body:has(#acl-lgpd-banner:not([hidden])) .acl-back-top {
    bottom: 150px;
  }
}

/* ================================================================
   AUTOSUGESTÃO DE BUSCA — dropdown dark racing
   ================================================================ */

.acl-suggest {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 300;
  background: #141414;
  border: 1px solid var(--border-strong);
  border-top: 0;
  border-radius: 0 0 var(--r-md) var(--r-md);
  box-shadow: 0 8px 24px rgba(0,0,0,.55);
  display: none;
  max-height: 420px;
  overflow-y: auto;
}

.acl-suggest--open {
  display: block;
}

.acl-suggest ul {
  list-style: none;
  margin: 0;
  padding: 6px 0;
}

.acl-suggest__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  transition: background .12s;
  border-bottom: 1px solid var(--border);
  min-height: 64px;
}
.acl-suggest__item:last-child { border-bottom: 0; }
.acl-suggest__item:hover,
.acl-suggest__item--focus {
  background: var(--surface-2);
}

.acl-suggest__thumb {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.acl-suggest__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.acl-suggest__ph {
  font-size: 1.4rem;
  color: var(--text-muted);
  opacity: .5;
}

.acl-suggest__info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.acl-suggest__name {
  font-family: var(--font-body);
  font-size: .88rem;
  color: var(--text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 280px;
}
.acl-suggest__price {
  font-family: var(--font-label);
  font-weight: 700;
  font-size: .95rem;
  color: #fff;
}

.acl-suggest__empty {
  padding: 16px 14px;
  font-size: .85rem;
  color: var(--text-muted);
  text-align: center;
}

/* ================================================================
   AceleraStore Racing — CAMADA WHITE-CONVERSÃO (internas)
   Escopada por body-class: single-product, archive, search-results,
   woocommerce-page:not(.home)
   HOME (.home) NÃO recebe override e permanece DARK.
   Header / footer pretos: componentes compartilhados, sem override.
   Frame Tecnologia 2026-06-17
   ================================================================ */

body.single-product,
body.archive,
body.search-results,
body.tax-product_cat,
body.tax-product_tag,
body.woocommerce-page:not(.home) {
  --bg:        #FFFFFF;
  --bg-alt:    #F7F7F8;
  --surface:   #FFFFFF;
  --surface-2: #F3F4F6;
  --surface-3: #E9EAEC;
  --text:      #1A1A1A;
  --text-2:    #374151;
  --text-3:    #6B7280;
  /* WCAG AA: #6B7280 = 4.83:1 on white (era #9CA3AF = 2.54:1 — corrigido 2026-06-17) */
  --text-muted:#6B7280;
  --border:    #E5E7EB;
  --border-strong: #D1D5DB;
  --border-red: rgba(238,51,51,.35);
  /* Verde para Pix / estoque: WCAG AA — #047857 = 5.48:1 on white (era #0E9F6E = 3.39:1) */
  --green:      #047857;
  --green-bg:   #E7F7F0;
  --amber:      #B45309;
  --amber-bg:   #FEF3C7;

  background: var(--bg);
  color: var(--text);
}

body.single-product .wp-site-blocks,
body.archive .wp-site-blocks,
body.search-results .wp-site-blocks,
body.tax-product_cat .wp-site-blocks,
body.tax-product_tag .wp-site-blocks,
body.woocommerce-page:not(.home) .wp-site-blocks {
  background: var(--bg);
}

/* Titulos nas internas: uppercase racing desligado para legibilidade */
body.single-product h1,
body.archive h1,
body.search-results h1,
body.tax-product_cat h1,
body.woocommerce-page:not(.home) h1 {
  text-transform: none;
  color: var(--text);
}

body.single-product h2,
body.archive h2,
body.search-results h2,
body.tax-product_cat h2 {
  color: var(--text);
}

/* Breadcrumb claro */
.acl-crumb,
.acl-crumb a {
  color: var(--text-3);
  font-size: .82rem;
}
.acl-crumb a:hover { color: var(--red); }
.acl-crumb .separator,
.acl-crumb span { color: var(--text-muted); }

/* ================================================================
   PDP (single-product) — WHITE
   ================================================================ */

/* Hero grid: galeria esq + info dir */
.acl-pdp-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: var(--container);
  margin: 24px auto;
  padding: 0 16px;
}
@media (max-width: 768px) {
  .acl-pdp-hero { grid-template-columns: 1fr; gap: 20px; }
}

/* Galeria */
.acl-pdp-gallery {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.acl-pdp-img-main {
  aspect-ratio: 1/1;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
}
.acl-pdp-img-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.acl-pdp-thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.acl-pdp-thumb {
  aspect-ratio: 1/1;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.acl-pdp-thumb.active { border-color: var(--red); }
.acl-pdp-thumb img { width: 100%; height: 100%; object-fit: contain; }

/* Info coluna */
.acl-pdp-info { display: flex; flex-direction: column; gap: 14px; }
.acl-pdp-cat {
  font-size: .78rem;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.acl-pdp-cat a { color: var(--text-3); }
.acl-pdp-cat a:hover { color: var(--red); }

/* FIX CONTRASTE 2026-07-15: legado ".woocommerce div.product .product_title{color:#fff}"
   (linha ~1461, escrito para a PDP dark antiga) tem especificidade MAIOR (0,3,1) que a
   regra abaixo (0,2,1) e ainda bate aqui porque o wrapper <div class="wp-block-group
   woocommerce product"> da PDP White herda a classe "product" injetada pelo compat layer
   do WooCommerce — resultado: titulo branco sobre fundo branco (ilegivel). Selector abaixo
   reescopado com prefixo "body.single-product" só para GANHAR especificidade (0,3,2 >
   0,3,1, decidido por contagem de tipo, não por ordem de fonte) sem tocar/quebrar a regra
   legada, que continua servindo a PDP dark antiga (shortcode [acl_pdp_hero], hoje sem uso
   em nenhum template/conteúdo ativo, mas preservada intacta). */
body.single-product .acl-pdp-info h1.product_title {
  font-size: clamp(1.35rem, 3vw, 1.8rem);
  font-weight: 800;
  line-height: 1.2;
  margin: 0;
  color: var(--text);
}

.acl-pdp-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  font-size: .82rem;
  color: var(--text-3);
  margin: 0;
}
.acl-pdp-meta strong.sku { color: var(--text-2); }

/* Avaliações inline */
.acl-pdp-info .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: .85rem;
}
.acl-pdp-info .star-rating { color: #F59E0B; }
.acl-pdp-info .woocommerce-review-link { color: var(--text-3); }

/* Price-box */
.acl-price-box {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 18px 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.acl-price-box .acl-price-now .woocommerce-Price-amount {
  font-size: 2rem;
  font-weight: 700;
  color: #1A1A1A; /* cinza-900 — NÃO vermelho (WCAG AA) */
  font-family: var(--font-display);
}
.acl-price-box .acl-price-now ins { text-decoration: none; }
.acl-price-box .acl-price-now del {
  font-size: 1rem;
  color: var(--text-muted);
  margin-left: 8px;
}
.acl-price-box .acl-price-now del .woocommerce-Price-amount { font-size: 1rem; color: var(--text-muted); }

/* Pix */
.acl-pdp-pix {
  background: var(--green-bg);
  border-radius: var(--r-md);
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .9rem;
}
.acl-pdp-pix .v {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--green);
}
.acl-pdp-pix .tag {
  background: var(--green);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  border-radius: var(--r-full);
  padding: 2px 8px;
}
.acl-pdp-pix .t { color: var(--text-2); }

/* Parcelamento */
.acl-pdp-inst { font-size: .85rem; color: var(--text-3); }
.acl-pdp-inst b { color: var(--text-2); }
.acl-pdp-inst a { color: var(--red); }

/* Qty + CTA */
.acl-pdp-cta-row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.acl-pdp-qty {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  overflow: hidden;
  flex-shrink: 0;
}
.acl-pdp-qty button {
  width: 40px;
  height: 50px;
  background: var(--bg-alt);
  border: 0;
  font-size: 1.2rem;
  cursor: pointer;
  color: var(--text-2);
}
.acl-pdp-qty button:hover { background: var(--surface-3); }
.acl-pdp-qty input {
  width: 52px;
  height: 50px;
  border: 0;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  background: #fff;
}

/* WooCommerce botão add-to-cart na PDP */
.acl-pdp-info .woocommerce-variation-add-to-cart,
.acl-pdp-info form.cart {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.acl-pdp-info .single_add_to_cart_button,
.acl-pdp-info button.single_add_to_cart_button {
  background: var(--red);
  color: #fff;
  border: 2px solid var(--red);
  border-radius: var(--r-md);
  font-size: 1.05rem;
  font-weight: 700;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .04em;
  height: 54px;
  width: 100%;
  cursor: pointer;
  transition: background .2s, border-color .2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.acl-pdp-info .single_add_to_cart_button:hover { background: var(--red-hover); border-color: var(--red-hover); }

/* Frete CEP */
.acl-ship-box {
  background: var(--bg-alt);
  border-radius: var(--r-md);
  padding: 14px 16px;
  font-size: .88rem;
  color: var(--text-2);
}
.acl-ship-box label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--text-2);
}
.acl-ship-row {
  display: flex;
  gap: 8px;
}
.acl-ship-row input[type="text"] {
  flex: 1;
  height: 42px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  padding: 0 12px;
  font-size: .9rem;
  background: #fff;
  color: var(--text);
}
.acl-ship-row input:focus { outline: none; border-color: var(--red); }
.acl-ship-row .btn-calc {
  height: 42px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  font-size: .88rem;
  font-weight: 600;
  color: var(--text-2);
  cursor: pointer;
  white-space: nowrap;
}
.acl-ship-row .btn-calc:hover { border-color: var(--red); color: var(--red); }
.acl-ship-result { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.acl-ship-opt {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  font-size: .85rem;
}
.acl-ship-opt b { color: var(--text); font-weight: 700; }
.acl-ship-bar {
  background: var(--green-bg);
  color: var(--green);
  font-size: .8rem;
  font-weight: 600;
  border-radius: var(--r-md);
  padding: 8px 12px;
  text-align: center;
}
.acl-ship-link { font-size: .78rem; color: var(--text-3); margin-top: 6px; display: inline-block; }
.acl-ship-link:hover { color: var(--red); }

/* Trust PDPbar */
.acl-pdp-trust {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  padding: 12px 0 4px;
  border-top: 1px solid var(--border);
}
.acl-pdp-trust .it {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .78rem;
  color: var(--text-3);
  flex: 1;
  min-width: 80px;
}
.acl-pdp-trust .it .ico { font-size: 1.1rem; }
.acl-pdp-trust .it small { line-height: 1.3; }

/* Selos pagamento */
.acl-pay-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  font-size: .75rem;
  color: var(--text-3);
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.acl-pay-strip .ttl { width: 100%; font-weight: 600; color: var(--text-2); margin-bottom: 2px; }
.acl-pay-strip span:not(.ttl) {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  padding: 3px 8px;
  font-weight: 600;
  color: var(--text-2);
}
.acl-pay-strip .mp {
  background: #009EE3;
  color: #fff;
  border-color: #009EE3;
}

/* Produto esgotado — PDP */
.acl-pdp-outofstock {
  background: var(--bg-alt);
  border: 2px solid var(--border-strong);
  border-radius: var(--r-lg);
  padding: 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
/* FIX CONTRASTE 2026-07-15: --text-3 (#6B7280) foi calibrado p/ 4.83:1 sobre
   fundo BRANCO puro (#FFFFFF) — sobre o proprio fundo do badge (#F3F4F6,
   levemente cinza) cai pra 4.39:1 (abaixo do AA 4.5:1). Trocado pra --text-2
   (mais escuro, ja no palette, ratio ~9:1 aqui), mantendo o tom neutro/mudo
   do badge. */
.acl-pdp-outofstock .badge-unavailable {
  display: inline-block;
  background: #F3F4F6;
  color: var(--text-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--r-full);
  font-size: .85rem;
  font-weight: 700;
  padding: 6px 18px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.acl-pdp-outofstock h3 { font-size: 1rem; margin: 0; color: var(--text-2); text-transform: none; }
/* Tradução / estilo do form Back In Stock */
.acl-pdp-outofstock .cwgstock_button_div,
.cwgstock_button_div { display: flex; flex-direction: column; gap: 8px; }
.cwgstock_button_div input[type="email"] {
  width: 100%;
  height: 48px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  padding: 0 16px;
  font-size: .95rem;
  color: var(--text);
  background: #fff;
}
.cwgstock_button_div input[type="email"]:focus { outline: none; border-color: var(--red); }
.cwgstock_button_div input[type="submit"],
.cwgstock_button_div button[type="submit"] {
  height: 50px;
  background: var(--text);
  color: #fff;
  border: 0;
  border-radius: var(--r-md);
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .04em;
  transition: background .2s;
}
.cwgstock_button_div input[type="submit"]:hover { background: var(--text-2); }
.cwgstock_message { font-size: .85rem; color: var(--green); margin-top: 6px; }

/* Specs zebrada */
.acl-specs-section { background: var(--bg-alt); padding: 32px 0; }
.acl-specs-section .acl-section-inner { max-width: var(--container); margin: 0 auto; padding: 0 16px; }
.acl-spec-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.acl-spec-table th,
.acl-spec-table td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--border); }
.acl-spec-table th { width: 38%; font-weight: 600; color: var(--text-2); }
.acl-spec-table td { color: var(--text); }
.acl-spec-table tr:nth-child(even) th,
.acl-spec-table tr:nth-child(even) td { background: #fff; }
.acl-spec-table tr:nth-child(odd) th,
.acl-spec-table tr:nth-child(odd) td { background: var(--bg-alt); }
.acl-spec-table .mono { font-family: var(--font-mono); font-size: .84rem; }
.acl-spec-table .ok { color: var(--green); }

/* WooCommerce tabs nas internas */
body.single-product .woocommerce-tabs {
  max-width: var(--container);
  margin: 0 auto;
  padding: 24px 16px;
}
body.single-product .woocommerce-tabs .tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--border);
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
body.single-product .woocommerce-tabs .tabs li a {
  display: block;
  padding: 10px 20px;
  font-weight: 600;
  font-size: .92rem;
  color: var(--text-3);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
}
body.single-product .woocommerce-tabs .tabs li.active a {
  color: var(--text);
  border-bottom-color: var(--red);
}
body.single-product .woocommerce-tabs .panel { color: var(--text-2); line-height: 1.7; }

/* Avaliações */
body.single-product #reviews { max-width: var(--container); margin: 0 auto; padding: 32px 16px; }
body.single-product #reviews h2 { color: var(--text); margin-bottom: 20px; }
body.single-product .comment-form-rating .stars a { color: #F59E0B; }
body.single-product .comment-form input,
body.single-product .comment-form textarea {
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  padding: 10px 14px;
  font-size: .92rem;
  color: var(--text);
  background: #fff;
  width: 100%;
}
body.single-product .comment-form input:focus,
body.single-product .comment-form textarea:focus { outline: none; border-color: var(--red); }
body.single-product #respond .submit {
  background: var(--red);
  color: #fff;
  border: 0;
  border-radius: var(--r-md);
  padding: 12px 24px;
  font-weight: 700;
  cursor: pointer;
}

/* Relacionados "Quem viu, levou também" */
.woocommerce-page .related.products { max-width: var(--container); margin: 0 auto; padding: 32px 16px; }
.woocommerce-page .related.products h2 { color: var(--text); margin-bottom: 20px; }

/* Sticky CTA mobile (PDP) */
.acl-sticky-buy {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 300;
  background: #fff;
  border-top: 1px solid var(--border);
  box-shadow: 0 -4px 16px rgba(0,0,0,.12);
  padding: 10px 16px;
  align-items: center;
  gap: 12px;
}
@media (max-width: 768px) {
  .acl-sticky-buy { display: flex; }
}
.acl-sticky-buy .p { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.acl-sticky-buy .now { font-size: 1.2rem; font-weight: 700; color: #1A1A1A; font-family: var(--font-display); }
.acl-sticky-buy .pix { font-size: .78rem; color: var(--green); }
.acl-sticky-buy .btn { flex-shrink: 0; min-width: 160px; }

/* ================================================================
   LISTAGEM (archive, categoria, busca) — WHITE
   ================================================================ */

/* Banner categoria white — D8 fix: remover fundo dark, garantir contraste legível */
body.archive .acl-cat-banner,
body.tax-product_cat .acl-cat-banner,
body.search-results .acl-cat-banner {
  background: #F7F7F8;
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: var(--r-lg);
  padding: 20px 24px;
  max-width: none;
  margin: 0 0 24px;
  position: relative;
  overflow: hidden;
}
body.archive .acl-cat-banner::after,
body.tax-product_cat .acl-cat-banner::after,
body.search-results .acl-cat-banner::after {
  display: none;
}
body.archive .acl-cat-banner h1,
body.tax-product_cat .acl-cat-banner h1,
body.search-results .acl-cat-banner h1 {
  font-size: clamp(1.4rem, 3.5vw, 2rem);
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 6px;
  text-transform: none;
}
body.archive .acl-cat-banner p,
body.tax-product_cat .acl-cat-banner p,
body.search-results .acl-cat-banner p { color: #374151; font-size: .92rem; margin: 0; }

/* Shop layout */
.acl-shop-layout-outer { max-width: var(--container); margin: 0 auto; padding: 0 16px; }
.wp-block-columns.is-layout-flex { display: flex; gap: 28px; align-items: flex-start; }
.wp-block-column:first-child { flex: 0 0 240px; }
.wp-block-column:last-child { flex: 1; }
@media (max-width: 900px) {
  .wp-block-columns.is-layout-flex { flex-direction: column; }
  .wp-block-column:first-child { flex: none; width: 100%; }
}

/* Filtros sidebar */
body.archive .acl-filters,
body.search-results .acl-filters,
body.tax-product_cat .acl-filters {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 20px;
  position: sticky;
  top: 100px;
}
body.archive .acl-filters h3,
body.search-results .acl-filters h3,
body.tax-product_cat .acl-filters h3 {
  font-size: 1rem;
  color: var(--text);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
  text-transform: uppercase;
  letter-spacing: .05em;
}
body.archive .acl-fgroup,
body.search-results .acl-fgroup,
body.tax-product_cat .acl-fgroup { margin-bottom: 18px; }
body.archive .acl-ftitle,
body.search-results .acl-ftitle,
body.tax-product_cat .acl-ftitle {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 700;
  color: var(--text-3);
  margin-bottom: 8px;
}
body.archive .acl-pills,
body.search-results .acl-pills,
body.tax-product_cat .acl-pills { display: flex; flex-wrap: wrap; gap: 6px; }
body.archive .acl-pill,
body.search-results .acl-pill,
body.tax-product_cat .acl-pill {
  display: inline-block;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  padding: 5px 12px;
  font-size: .8rem;
  font-weight: 600;
  color: var(--text-2);
  cursor: pointer;
  transition: .15s;
  text-decoration: none;
}
body.archive .acl-pill:hover,
body.search-results .acl-pill:hover,
body.tax-product_cat .acl-pill:hover { border-color: var(--red); color: var(--red); }
body.archive .acl-pill.active,
body.search-results .acl-pill.active,
body.tax-product_cat .acl-pill.active {
  background: var(--red);
  color: #fff;
  border-color: var(--red);
}

/* Toolbar */
body.archive .woocommerce-result-count,
body.search-results .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count {
  color: var(--text-3);
  font-size: .88rem;
  margin: 0;
}
body.archive .woocommerce-ordering select,
body.search-results .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select {
  height: 38px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  padding: 0 12px;
  font-size: .85rem;
  background: #fff;
  color: var(--text);
}

/* ================================================================
   CARDS DE PRODUTO — white, sem botão, card inteiro clicável
   ================================================================ */

/* Grid WooCommerce Blocks (wc-block-product-template) */
.wc-block-product-template.wc-block-grid,
ul.wc-block-grid__products,
.wc-block-product-template__responsive {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
}
@media (max-width: 1100px) {
  .wc-block-product-template.wc-block-grid,
  ul.wc-block-grid__products,
  .wc-block-product-template__responsive { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 700px) {
  .wc-block-product-template.wc-block-grid,
  ul.wc-block-grid__products,
  .wc-block-product-template__responsive { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Card branco */
body.archive .acl-product-card,
body.search-results .acl-product-card,
body.tax-product_cat .acl-product-card,
/* WooCommerce default loop */
body.archive ul.products li.product,
body.search-results ul.products li.product,
body.tax-product_cat ul.products li.product,
/* FIX QA 2026-07-08: carrinho vazio ("Novidades na loja") também é white-conversão */
body.woocommerce-cart ul.products li.product,
/* WooCommerce Blocks */
body.archive .wc-block-product,
body.search-results .wc-block-product,
body.tax-product_cat .wc-block-product {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
  transition: box-shadow .2s, transform .18s;
  position: relative;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  list-style: none;
  padding: 0;
  margin: 0;
}
body.archive ul.products li.product:hover,
body.search-results ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.woocommerce-cart ul.products li.product:hover,
body.archive .wc-block-product:hover,
body.search-results .wc-block-product:hover,
body.tax-product_cat .wc-block-product:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.1);
  transform: translateY(-2px);
}

/* Thumb do card */
body.archive ul.products li.product .woocommerce-loop-product__link,
body.woocommerce-cart ul.products li.product .woocommerce-loop-product__link,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  flex: 1;
}
body.archive ul.products li.product img,
body.woocommerce-cart ul.products li.product img,
body.tax-product_cat ul.products li.product img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
  background: var(--bg-alt);
  border-bottom: 1px solid var(--border);
}

/* Conteúdo do card */
body.archive ul.products li.product .acl-pcard__body,
body.tax-product_cat ul.products li.product .acl-pcard__body { padding: 12px; flex: 1; display: flex; flex-direction: column; }

/* Título do card — D9 fix: garantir Title Case (sem uppercase) nas listagens white
   WC Blocks usa wp-block-post-title; PHP clássico usa woocommerce-loop-product__title */
body.archive ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.search-results ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-cart ul.products li.product .woocommerce-loop-product__title,
body.archive .wc-block-product .wp-block-post-title,
body.tax-product_cat .wc-block-product .wp-block-post-title,
body.search-results .wc-block-product .wp-block-post-title,
body.archive .wc-block-product .woocommerce-loop-product__title,
body.tax-product_cat .wc-block-product .woocommerce-loop-product__title {
  font-size: .88rem;
  font-weight: 600;
  color: var(--text);
  line-height: 1.35;
  margin: 10px 14px 4px;
  text-transform: none !important;
  font-family: var(--font-body);
}

/* SKU no card */
.acl-pcard__sku { font-size: .72rem; color: var(--text-muted); font-family: var(--font-mono); margin: 0 14px; }

/* Preço no card */
body.archive ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.woocommerce-cart ul.products li.product .price,
body.search-results ul.products li.product .price {
  font-size: 1.05rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 6px 14px 2px;
  display: block;
}
body.archive ul.products li.product .price del,
body.tax-product_cat ul.products li.product .price del {
  font-size: .82rem;
  color: var(--text-muted);
  margin-left: 4px;
}
body.archive ul.products li.product .price del .woocommerce-Price-amount,
body.tax-product_cat ul.products li.product .price del .woocommerce-Price-amount { font-size: .82rem; color: var(--text-muted); }

/* Pix/parcelamento no card do carrinho (mesmo padrão do catálogo) */
body.woocommerce-cart ul.products li.product .acl-pcard__pix,
body.woocommerce-cart ul.products li.product .acl-pcard__inst {
  display: block;
  margin: 0 14px;
}
body.woocommerce-cart ul.products li.product .acl-pcard__pix { font-size: .77rem; color: var(--green, #047857); font-weight: 600; margin-top: 4px; }
body.woocommerce-cart ul.products li.product .acl-pcard__inst { font-size: .75rem; color: var(--text-3); margin-bottom: 12px; }

/* Pix no card */
.acl-pcard__pix { font-size: .77rem; color: var(--green); font-weight: 600; }

/* Parcelamento no card */
.acl-pcard__inst { font-size: .75rem; color: var(--text-3); margin-top: 2px; }

/* ESCONDER botão "Adicionar ao carrinho" e "Leia mais" nos cards de listagem */
body.archive ul.products li.product .add_to_cart_button,
body.archive ul.products li.product .button,
body.archive ul.products li.product .added_to_cart,
body.archive ul.products li.product .wc-block-components-product-button,
body.tax-product_cat ul.products li.product .add_to_cart_button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_cat ul.products li.product .added_to_cart,
body.search-results ul.products li.product .add_to_cart_button,
body.search-results ul.products li.product .button,
.wc-block-product .wc-block-components-product-button,
.woocommerce-page:not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout) .wc-block-components-product-button__button,
.woocommerce-page:not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout) ul.products li.product a.button,
/* FIX QA 2026-07-08: vitrine "Novidades na loja" (carrinho vazio) — card inteiro
   já é clicável via .woocommerce-loop-product__link, mesmo padrão do catálogo */
.wp-block-woocommerce-empty-cart-block ul.products li.product .add_to_cart_button,
.wp-block-woocommerce-empty-cart-block ul.products li.product .button {
  display: none !important;
}

/* Badge esgotado no card */
/* FIX CONTRASTE 2026-07-15: mesmo ajuste do .acl-pdp-outofstock .badge-unavailable
   acima — --text-3 sobre o fundo #F3F4F6 do proprio badge da 4.39:1 (abaixo do
   AA), trocado pra --text-2 (~9:1). */
.acl-badge-unavailable {
  display: inline-block;
  background: #F3F4F6;
  border: 1px solid var(--border-strong);
  color: var(--text-2);
  font-size: .7rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: var(--r-full);
  text-transform: uppercase;
  letter-spacing: .04em;
}
/* Overlay de esgotado no card */
.acl-card-out .acl-pdp-media::after,
.acl-card-out .pcard__media::after {
  content: 'Indisponível';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.7);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  font-weight: 700;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* Badge Novo */
.acl-badge-new {
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  color: #1D4ED8;
  font-size: .7rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--r-full);
  text-transform: uppercase;
  display: inline-block;
}

/* Paginação white */
body.archive .nav-links,
body.tax-product_cat .nav-links,
body.search-results .nav-links {
  display: flex;
  gap: 6px;
  justify-content: center;
  flex-wrap: wrap;
  padding: 28px 0 16px;
}
body.archive .nav-links a,
body.tax-product_cat .nav-links a,
body.search-results .nav-links a,
body.archive .nav-links span,
body.tax-product_cat .nav-links span,
body.search-results .nav-links span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  font-size: .88rem;
  font-weight: 600;
  color: var(--text-2);
  background: #fff;
  padding: 0 10px;
  transition: .15s;
}
body.archive .nav-links a:hover,
body.tax-product_cat .nav-links a:hover,
body.search-results .nav-links a:hover { border-color: var(--red); color: var(--red); }
body.archive .nav-links span.current,
body.tax-product_cat .nav-links span.current,
body.search-results .nav-links span.current {
  background: var(--red);
  color: #fff;
  border-color: var(--red);
}

/* Botão filtro mobile (internas white) */
body.archive .acl-mob-filter,
body.tax-product_cat .acl-mob-filter,
body.search-results .acl-mob-filter {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid var(--border);
  padding: 10px 16px;
  gap: 10px;
  z-index: 200;
}
@media (max-width: 900px) {
  body.archive .acl-mob-filter,
  body.tax-product_cat .acl-mob-filter,
  body.search-results .acl-mob-filter { display: flex; }
  body.archive .acl-filters,
  body.tax-product_cat .acl-filters,
  body.search-results .acl-filters { display: none; }
  body.archive .acl-filters.open,
  body.tax-product_cat .acl-filters.open,
  body.search-results .acl-filters.open {
    display: block;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 400;
    overflow-y: auto;
    padding: 24px 18px calc(90px + env(safe-area-inset-bottom, 0px));
    border-radius: 0;
  }
}

/* ================================================================
   FIX QA 2026-07-15: botão "X Fechar" do modal de filtros mobile.
   Antes o botão [acl_mob_filter_btn] fazia display:block via inline
   style (maior especificidade que a classe .open), então o painel
   nunca virava o modal fullscreen desenhado acima — abria "achatado"
   no meio do conteúdo, colidindo com o próprio botão fixo no rodapé.
   Corrigido: JS agora alterna a classe .open (functions.php).
   ================================================================ */
.acl-filters-close {
  display: none;
}
@media (max-width: 900px) {
  body.archive .acl-filters.open .acl-filters-close,
  body.tax-product_cat .acl-filters.open .acl-filters-close,
  body.search-results .acl-filters.open .acl-filters-close {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 14px;
    right: 14px;
    width: 40px;
    height: 40px;
    min-width: 44px;
    min-height: 44px;
    border-radius: var(--r-full);
    background: var(--surface-2, #F3F4F6);
    border: 1px solid var(--border);
    color: var(--text, #1A1A1A);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
  }
}
/* Trava o scroll do body atrás do modal de filtros aberto (mobile) */
body.acl-filters-locked {
  overflow: hidden;
}

/* ================================================================
   BUSCA — estado "nenhum resultado"
   ================================================================ */
.acl-noresult {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 40px 28px;
  text-align: center;
  max-width: 560px;
  margin: 0 auto 32px;
}
.acl-noresult .ic { font-size: 2.5rem; color: var(--text-3); margin-bottom: 12px; }
.acl-noresult h2 { font-size: 1.25rem; color: var(--text); margin: 0 0 10px; text-transform: none; }
.acl-noresult p { color: var(--text-3); font-size: .9rem; margin: 0 0 20px; }
.acl-noresult .acts { display: flex; flex-direction: column; gap: 10px; align-items: center; }
/* FIX CONTRASTE 2026-07-15: texto branco sobre o verde oficial do WhatsApp
   (#25D366) da so 1.98:1 (bem abaixo do AA 4.5:1) — mantido o fundo (cor de
   marca do WhatsApp, unico uso deste componente: CTA da tela de busca sem
   resultado), so escurecido o TEXTO pra var(--text), que sobre esse verde
   fica ~8.8:1 (normal) / ~5.6:1 (hover, verde mais escuro). !important pra
   vencer o color:#fff !important da regra base .btn (mesmo elemento tem
   classes "btn btn--wa"). */
.btn--wa {
  background: #25D366;
  color: var(--text) !important;
  border: 0;
  border-radius: var(--r-md);
  padding: 12px 22px;
  font-weight: 700;
  font-size: .9rem;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  transition: background .2s;
}
.btn--wa:hover { background: #1DA851; color: var(--text) !important; }

/* Refino por categoria (chips na busca) */
.acl-refine-cats {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 14px 0 20px;
}
.acl-refine-cats .rc {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  padding: 7px 16px;
  font-size: .84rem;
  font-weight: 600;
  color: var(--text-2);
  cursor: pointer;
  transition: .15s;
}
.acl-refine-cats .rc:hover { border-color: var(--border-strong); }
.acl-refine-cats .rc.on { background: var(--text); color: #fff; border-color: var(--text); }
.acl-refine-cats .rc .n { font-size: .74rem; color: var(--text-muted); }
.acl-refine-cats .rc.on .n { color: rgba(255,255,255,.7); }

/* Search head */
.acl-search-head { padding: 20px 0 4px; }
.acl-search-head h1 { font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--text); margin: 0 0 6px; text-transform: none; }
.acl-search-head h1 .q { color: var(--red); }
.acl-search-head p { color: var(--text-3); font-size: .88rem; margin: 0; }

/* ================================================================
   FOCUS-VISIBLE e acessibilidade nas internas
   ================================================================ */
body.single-product :focus-visible,
body.archive :focus-visible,
body.search-results :focus-visible,
body.tax-product_cat :focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

/* ================================================================
   FONT AWESOME — integração com ícones do tema
   Garante que tags <i class="fa-*"> herdam tamanho/cor do container
   Frame Tecnologia 2026-06-17
   ================================================================ */

/* Ícones FA herdam cor e tam do container; sem espaçamento extra */
.acl-ico i[class*="fa-"],
.ico i[class*="fa-"],
.ic i[class*="fa-"],
.seals i[class*="fa-"],
.acl-head-actions i[class*="fa-"] {
    font-size: inherit;
    color: inherit;
    line-height: 1;
    vertical-align: middle;
}

/* Trust bar — ícones FA vermelhos no dark, acl-pdp-info */
.acl-pdp-trust .it .ico i[class*="fa-"] { color: var(--red); }

/* Categoria card — ícone FA centralizado */
.acl-cat-card .ico i[class*="fa-"] {
    font-size: 1.6rem;
    display: block;
    color: var(--red);
}

/* No contexto white (páginas internas), manter contraste */
body.single-product .acl-pdp-trust .it .ico i[class*="fa-"],
body.archive .acl-pdp-trust .it .ico i[class*="fa-"] {
    color: #DD0000; /* sync com --red 2026-07-15 */
}

/* WhatsApp btn do no-result */
.acl-noresult .btn--wa i[class*="fa-"] { color: inherit; }

/* Paginação — ícones chevron */
.wp-block-query-pagination-next i[class*="fa-"],
.wp-block-query-pagination-previous i[class*="fa-"],
.page-numbers i[class*="fa-"] {
    font-size: .9rem;
    vertical-align: middle;
}

/* ================================================================
   Back In Stock Notifier — sobrescrever painel azul Bootstrap
   O plugin usa .panel-primary (#337ab7) do Bootstrap.
   Substituir por cinza grafite da paleta racing da loja.
   ================================================================ */
.cwginstock-subscribe-form .panel-primary {
    border-color: #3A3A3A !important;
}
.cwginstock-subscribe-form .panel-primary > .panel-heading {
    color: #FFFFFF !important;
    background-color: #2A2A2A !important;
    border-color: #3A3A3A !important;
}
.cwginstock-subscribe-form .panel-primary > .panel-heading + .panel-collapse > .panel-body {
    border-top-color: #3A3A3A !important;
}
.cwginstock-subscribe-form .panel-primary > .panel-heading .badge {
    color: #2A2A2A !important;
    background-color: #E5E5E5 !important;
}
.cwginstock-subscribe-form .panel-primary > .panel-footer + .panel-collapse > .panel-body {
    border-bottom-color: #3A3A3A !important;
}
/* Painel geral — borda e fundo do body */
.cwginstock-subscribe-form .panel {
    border-color: #3A3A3A !important;
    background: #FFFFFF;
}
.cwginstock-subscribe-form .panel-body {
    background: #FFFFFF;
    color: #1A1A1A;
}
/* ================================================================
   D1 FIX: Ocultar short description crua (CAPS sem acento) no carrinho/checkout
   A short_description dos produtos Laquila é a descrição bruta da API,
   redundante com o nome do produto. Ocultar nas telas de transação.
   WC Blocks renderiza como .wc-block-components-product-metadata__description
   PHP clássico como .woocommerce-product-details__short-description
   ================================================================ */
.woocommerce-cart .woocommerce-product-details__short-description,
.woocommerce-checkout .woocommerce-product-details__short-description,
.woocommerce table.cart .woocommerce-product-details__short-description,
.wc-block-cart .woocommerce-product-details__short-description,
.wc-block-checkout .woocommerce-product-details__short-description,
.wp-block-woocommerce-cart .woocommerce-product-details__short-description,
.wp-block-woocommerce-checkout .woocommerce-product-details__short-description,
/* WC Blocks cart/checkout: metadata description = short_desc */
.wc-block-components-product-metadata__description,
.wc-block-cart-items .wc-block-components-product-metadata__description,
.wc-block-checkout .wc-block-components-product-metadata__description {
  display: none !important;
}

/* ================================================================
   D7 FIX: Ocultar calculador duplicado do Melhor Envio na PDP
   O tema já tem o acl-ship-box customizado. O plugin Melhor Envio
   injeta um segundo bloco "Simulação de frete" via hook nativo WC.
   ================================================================ */
body.single-product #woocommerce-correios-calculo-de-frete-na-pagina-do-produto,
body.single-product .containerCalculator {
  display: none !important;
}

/* Botão submit do Back In Stock — cinza grafite */
.cwginstock-subscribe-form input[type="submit"],
.cwgstock_button_div input[type="submit"],
.cwgstock_button_div button[type="submit"] {
    background-color: #2A2A2A !important;
    border-color: #2A2A2A !important;
    color: #FFFFFF !important;
}
.cwginstock-subscribe-form input[type="submit"]:hover,
.cwgstock_button_div input[type="submit"]:hover,
.cwgstock_button_div button[type="submit"]:hover {
    background-color: #3A3A3A !important;
    border-color: #3A3A3A !important;
}

/* ================================================================
   FIX2-D1: Ocultar botão "Leia mais" / "Adicionar ao carrinho"
   na seção "Novidades na loja" do carrinho vazio (WC Empty Cart Block).
   O bloco usa wc-block-grid__product-add-to-cart (render clássico WC),
   mas a página tem classe .woocommerce-cart, logo o seletor
   :not(.woocommerce-cart) não cobre esse caso.
   Card inteiro já é clicável via .wc-block-grid__product-link.
   ================================================================ */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart,
.wp-block-woocommerce-empty-cart-block .wp-block-button.wc-block-grid__product-add-to-cart,
.woocommerce-cart .wc-block-grid__product-add-to-cart {
  display: none !important;
}

/* ================================================================
   ACESSIBILIDADE WCAG AA — Quick-wins (2026-06-17)
   - Tap targets mobile ≥44px
   - Hierarquia footer (h2.acl-footer-heading visual = h4)
   - Contraste textos secundários (white layer)
   - Skip-link visível ao foco
   Frame Tecnologia 2026-06-17
   ================================================================ */

/* TAP TARGETS ≥44px no mobile (WCAG 2.5.5 AAA / 2.5.8 AA nível A)
   Aplica apenas em mobile para não alterar visual desktop */
@media (max-width: 768px) {
  /* Títulos de produto nos cards — toda a área do título clicável */
  .wc-block-product .wp-block-post-title a,
  .woocommerce ul.products li.product .woocommerce-loop-product__title a,
  .wc-block-grid__product-title a {
    display: block;
    min-height: 44px;
    padding-top: 6px;
    padding-bottom: 6px;
  }

  /* Links de categoria na sidebar de filtros */
  .acl-fgroup label,
  .acl-pill,
  .acl-fcat a,
  .acl-fcat label {
    min-height: 44px;
    display: flex;
    align-items: center;
  }

  /* Checkbox "Lembrar de mim" na Minha Conta — aumenta área de toque */
  .woocommerce-form__input-checkbox,
  #rememberme,
  input[type="checkbox"]#rememberme {
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    cursor: pointer;
    vertical-align: middle;
  }

  /* Wrap da label do checkbox — área clicável estendida */
  .woocommerce-form-login .woocommerce-form__label-for-checkbox,
  label[for="rememberme"] {
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
  }

  /* FIX QA 2026-07-15: botão "Acessar" e o link "Perdeu sua senha?" do
     login (Minha conta) ficam lado a lado e colidem no mobile — força
     empilhamento full-width abaixo de 768px. */
  .woocommerce-form-login .form-row,
  .woocommerce-form-login .woocommerce-LostPassword.lost_password {
    display: block;
    width: 100%;
    flex: 0 0 100%;
    float: none;
    clear: both;
  }
  .woocommerce-form-login .woocommerce-LostPassword.lost_password {
    margin-top: 12px;
  }
}

/* ================================================================
   QUANTIDADE FIXA EM 1 NA PDP (2026-07-22) — complemento visual do filtro
   PHP woocommerce_quantity_input_args (functions.php, trava min=max=1).
   O campo de quantidade continua tecnicamente no HTML da PDP (variação de
   produto variável), só fica oculto pra não sobrar espaço vazio — o valor
   "1" já vai garantido no submit independente de estar visível ou não.
   Escopo por body.single-product (classe nativa do WP só na PDP) — NUNCA
   afeta o carrinho (.woocommerce-cart) nem o checkout, onde o stepper
   continua normal. Frame Tecnologia. */
body.single-product .quantity {
  display: none !important;
}

