/* ── Card de produto — minimalista, fundo transparente (mesma cor da pagina) ──
   Decisao 2026-04-28:
   - Card vira <a> unico (sem botao "Ver produto" interno)
   - Estado normal: transparente — herda fundo da pagina (branco)
   - Hover: ganha box-shadow leve + translateY (efeito de elevar/destacar)
     (fundo branco explicito no hover garante consistencia mesmo se a pagina
      tiver fundo diferente em alguma sessao) */
.product-card {
  background: transparent;
  border: none;
  overflow: hidden;
  transition: transform var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
  min-height: 400px;
  padding: 0; /* 2026-04-28: imagem encosta nas laterais do card */
  width: 100%;
  /* sem max-width — cards ocupam 1fr da celula (alinhamento archiproducts decisao 2026-04-28) */
}
.product-card:hover {
  background: var(--cor-branco);
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05);
}

/* Wrap quadrado 1:1 — fundo transparente herda do card (cinza-050 normal / branco hover).
   Antes: fundo branco fixo. Mudou em 2026-04-28 com efeito archiproducts.
   Padding agora aplicado no .product-card-track (decisao 2026-05-06). */
.product-card-img-wrap {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: transparent;
  flex-shrink: 0;
  position: relative;
}
/* Link cobre a area do wrap inteira; track fica embaixo dele.
   Setas e dots ficam acima do link via z-index. */
.product-card-link {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
}

/* Track — todas as imagens lado a lado, deslizam via translateX.
   inset: 8% gera a 'respiracao' interna (substituiu padding do wrap). */
.product-card-track {
  position: absolute;
  inset: 8%;
  display: flex;
  overflow: hidden;
}
.product-card-img-wrap .product-card-img {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  /* 2026-09-05 (gestor): a foto do produto aparece INTEIRA no card, sem corte. Antes era
     `cover`, pensado para as fotos quadradas da Stella (599 de 617); as 18 não quadradas —
     pendentes Ark e perfis 3:2 — perdiam as laterais (o refletor do Capello saía do card).
     Junto: `add_image_size('product-card', …, false)` para o WordPress parar de recortar
     ao gerar a miniatura — sem isso o corte já vinha do arquivo e nenhum CSS resolveria. */
  object-fit: contain;
  display: block;
  transform: translateX(0);
  transition: transform 350ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
/* Quando o carousel muda de slide, todas as imgs se movem juntas (translateX no parent) */
.product-card-track[data-active-index="1"] .product-card-img { transform: translateX(-100%); }
.product-card-track[data-active-index="2"] .product-card-img { transform: translateX(-200%); }
.product-card-track[data-active-index="3"] .product-card-img { transform: translateX(-300%); }
.product-card-track[data-active-index="4"] .product-card-img { transform: translateX(-400%); }
.product-card-track[data-active-index="5"] .product-card-img { transform: translateX(-500%); }
.product-card-track[data-active-index="6"] .product-card-img { transform: translateX(-600%); }
.product-card-track[data-active-index="7"] .product-card-img { transform: translateX(-700%); }
.product-card-track[data-active-index="8"] .product-card-img { transform: translateX(-800%); }
.product-card-track[data-active-index="9"] .product-card-img { transform: translateX(-900%); }

/* ─── Setas do carousel — chevron solto sem caixa, halo sutil pra contraste ─── */
.product-card-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 28px; height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--cor-preto);
  /* halo branco difuso garante visibilidade contra fundos escuros sem caixa */
  filter: drop-shadow(0 0 2px rgba(255,255,255,0.85)) drop-shadow(0 1px 2px rgba(0,0,0,0.18));
  cursor: pointer;
  z-index: 3;
  opacity: 0;
  transition: opacity 180ms ease, color 180ms ease, transform 180ms ease;
  padding: 0;
}
.product-card:hover .product-card-nav { opacity: 1; }
.product-card-nav:hover { color: var(--cor-azul); transform: translateY(-50%) scale(1.15); }
.product-card-nav--prev { left: 6px; }
.product-card-nav--next { right: 6px; }
.product-card-nav:focus-visible { opacity: 1; outline: 2px solid var(--cor-azul); outline-offset: 2px; }
.product-card-nav svg { width: 18px; height: 18px; }

/* ─── Dots no rodape da imagem ─── */
.product-card-dots {
  position: absolute;
  bottom: 8px;
  left: 0; right: 0;
  display: flex;
  justify-content: center;
  gap: 6px;
  z-index: 3;
  pointer-events: none;
}
.product-card-dot {
  pointer-events: auto;
  width: 6px; height: 6px;
  border-radius: 50%;
  border: 0;
  padding: 0;
  background: rgba(0,0,0,0.20);
  cursor: pointer;
  transition: background 180ms ease, transform 180ms ease;
}
.product-card-dot.is-active {
  background: var(--cor-preto);
  transform: scale(1.2);
}
.product-card-dot:hover { background: rgba(0,0,0,0.45); }

.product-card-info {
  /* Texto avancado a esquerda em 3 espacos (var(--space-3) = 12px) e respiracao top/bottom */
  padding: var(--space-3) var(--space-3) var(--space-3) var(--space-3);
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
}

/* SKU / código — espacamento minimo do titulo (decisao 2026-04-25) */
.product-card-sku {
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-top: 0;
}

/* Nome do produto — peso regular (sem negrito).
   rc860 (gestor): reserva 3 linhas SEMPRE (13px×1.35×3 ≈ 53px) para todos os cards
   alinharem preço/botões na mesma altura; corta com reticências acima de 3. */
.product-card-title {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
  margin: 0;
  color: var(--text-primary);
  transition: color var(--transition-fast);
  min-height: 53px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
/* rc874: em card estreito (2 colunas no celular ≈ 158px) o justify estica os espaços
   entre palavras — "Perfil   LED   Arandela". Alinhado à esquerda a partir daí. */
@media (max-width: 640px) {
  .product-card-title { text-align: left; }
}
/* Hover do card NAO altera cor do titulo (decisao 2026-04-28 — visual mais sobrio) */

/* Preço — 3 precos (regular riscado, promocional, a vista azul ML) + parcelamento.
   Decisao 2026-04-25: filter PHP em functions.php gera o HTML com 4 spans. */
.product-card-price {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: var(--space-1);
  min-height: 80px;
  font-family: var(--font-body);
  text-align: left;
}
/* Estrutura de precos — 4 linhas centralizadas (decisao 2026-04-25):
   1) de R$ XXX (regular riscado)
   2) por R$ YYY (a vista, DESTAQUE azul ML)
   3) no Pix/Boleto ou R$ ZZZ (promocional)
   4) em ate 10X de R$ X,XX sem juros */
.ark-price-de {
  font-size: 13px;
  color: var(--text-secondary);
  display: block;
}
.ark-price-de del {
  text-decoration: line-through;
  color: var(--text-secondary);
  font-weight: 400;
}
/* rc860: etiqueta "Preço por metro" removida do card a pedido do gestor (era .ark-price-perfil-warn) */

/* rc863: card Pro voltou ao formato "a partir de R$X/m" (kit de 1 m do rc861 removido a pedido do gestor) */
/* Prefixo "a partir" como overline pequeno (separado do preco em destaque na linha seguinte) */
.ark-price-vista-prefix {
  display: block;
  font-size: 11px;
  color: var(--text-secondary);
  line-height: 1;
  margin-top: 2px;
}
.ark-price-vista {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 6px;
  margin-top: 1px;
  font-size: 13px;
  color: var(--text-secondary);
}
.ark-price-vista strong {
  color: #3483FA;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.1;
}
.ark-price-promo {
  font-size: 12px;
  color: var(--text-secondary);
  display: block;
  margin-top: 3px;
}
.ark-price-parcelas {
  font-size: 12px;
  color: var(--text-secondary);
  display: block;
  margin-top: 2px;
}
.ark-price-parcelas strong {
  color: var(--text-primary);
  font-weight: 700;
}
.product-card-price del {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
  font-weight: 400;
}
.product-card-price-pix {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
}
.product-card-price-pix-label {
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cor-vermelho);  /* único lugar onde vermelho aparece no preço */
}
.product-card-price-pix-value {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: 500;
  color: var(--text-primary);  /* preto, não vermelho */
  line-height: 1;
}
.product-card-price-installment {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
}

/* Botao "Ver produto" do card REMOVIDO em 2026-04-28 — card inteiro virou <a>.
   Regras .product-card-info .btn/.button preservadas para outros contextos
   (ex: pagina de produto single, paginas customizadas) caso voltem a usar. */

/* ─── Bottom do card: info (titulo+preco) + actions (qty + add to cart) ───
   flex:1 + margin-top:auto no .product-card-actions garante que o botao Adicionar
   fique sempre alinhado no rodape do card, independente da altura do bloco de preco
   (Perfil LED tem retangulo vermelho extra na linha 1 — sem isso desalinha entre cards) */
.product-card-bottom {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3);
  flex: 1;
}
.product-card-bottom .product-card-info {
  padding: 0;
  text-decoration: none;
  color: inherit;
}
.product-card-actions {
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding-top: var(--space-3);
  border-top: 1px solid var(--cor-cinza-100);
  margin-top: auto;
}
/* Qty group — 3 col grid: − [input] + */
.product-card-qty {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  overflow: hidden;
  background: var(--cor-branco);
  flex: 0 0 auto;
}
.product-card-qty .qty-btn {
  width: 30px;
  height: 36px;
  border: 0;
  background: transparent;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  color: var(--cor-preto);
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
  padding: 0;
  line-height: 1;
}
.product-card-qty .qty-btn:hover { background: var(--cor-cinza-050); color: var(--cor-azul); }
.product-card-qty .qty-input {
  width: 32px;
  height: 36px;
  border: 0;
  border-left: 1px solid #E5E5E5;
  border-right: 1px solid #E5E5E5;
  background: transparent;
  text-align: center;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--cor-preto);
  -moz-appearance: textfield;
  padding: 0;
}
.product-card-qty .qty-input::-webkit-outer-spin-button,
.product-card-qty .qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.product-card-qty .qty-input:focus { outline: none; }

/* Botao Adicionar — azul ML, alinhado em altura com qty (36px) */
.product-card-add {
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 36px;
  border: 0;
  border-radius: 6px;
  background: var(--cor-azul);
  color: var(--cor-branco);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 150ms ease, transform 150ms ease;
  padding: 0 12px;
}
.product-card-add:hover { background: var(--cor-azul-esc); }
.product-card-add:active { transform: scale(0.97); }
.product-card-add.is-adding { opacity: 0.7; cursor: wait; }
.product-card-add.is-added {
  background: #2EA84F;  /* verde de feedback de sucesso */
}
.product-card-add .icon-cart { flex-shrink: 0; }

/* rc442 — Mobile (≤600px): card grid 2-col deixa cada card ~180px de largura.
   Qty stepper (90px) + gap (8) + add button (= ~80px) cortava texto "Adicionar".
   Solução: STACK VERTICAL — qty acima (centralizado), botão abaixo full-width. */
@media (max-width: 600px) {
  .product-card-actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
  }
  .product-card-qty {
    width: 100% !important;
    justify-content: center !important;
  }
  .product-card-qty .qty-btn { flex: 1 1 auto; max-width: 44px; height: 34px; }
  .product-card-qty .qty-input { flex: 0 0 50px; height: 34px; font-size: 13px; }
  .product-card-add {
    width: 100% !important;
    flex: 0 0 auto !important;
    height: 36px !important;
    font-size: 12.5px !important;
    padding: 0 8px !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
  }
}

/* ============================================================
   CONFIGURADOR DE PERFIL LED ARK NO DRAWER (Fase 1A — 2026-05-10)
   Drawer entra em modo .is-configuring ao clicar Adicionar em card
   Perfil LED. Body normal + footer ficam ocultos durante config.
   ============================================================ */
.ark-drawer.is-configuring .ark-drawer-body,
.ark-drawer.is-configuring .ark-drawer-footer,
.ark-drawer.is-configuring .ark-drawer-cta-fixed {
  display: none !important;
}
.ark-drawer.is-configuring .ark-drawer-config,
.ark-drawer.is-configuring .ark-drawer-subheader {
  display: block !important;
}
.ark-drawer.is-configuring .ark-drawer-title { display: none; }
.ark-drawer.is-configuring .ark-drawer-title-config { display: block; }

/* Sub-header com mini-thumbs dos itens existentes */
.ark-drawer-subheader {
  padding: 8px 20px;
  background: #fafafa;
  border-bottom: 1px solid var(--cor-cinza-100);
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  color: var(--text-secondary);
}
.ark-drawer-subheader[hidden] { display: none !important; }
.ark-drawer-subheader-thumbs {
  display: inline-flex;
  gap: 4px;
}
.ark-drawer-subheader-thumbs img {
  width: 28px;
  height: 28px;
  border: 1px solid var(--cor-cinza-100);
  background: #f7f6f3;
  object-fit: contain;
}

/* Container externo do configurador */
.ark-drawer-config {
  padding: 16px 20px;
  overflow-y: auto;
  flex: 1;
}
.ark-drawer-config-inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Cabeca: thumb + nome + sku */
.ark-config-product {
  display: flex;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--cor-cinza-100);
}
.ark-config-thumb {
  flex: 0 0 64px;
  width: 64px; height: 64px;
  background: #f7f6f3;
  border: 1px solid var(--cor-cinza-100);
  object-fit: contain;
}
.ark-config-product-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ark-config-product-sku {
  font-size: 9.5px;
  color: var(--cor-cinza-500);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ark-config-product-name { font-size: 12px; color: var(--cor-preto); font-weight: 400; line-height: 1.35; }

/* Grupos de chips */
.ark-config-group { display: flex; flex-direction: column; gap: 6px; }
.ark-config-group-label {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--cor-preto);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.ark-config-group-label .selected-value {
  font-weight: 400;
  color: var(--text-secondary);
  text-transform: none;
  letter-spacing: 0;
  margin-left: 4px;
}
.ark-config-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.ark-config-chips .chip {
  height: 28px;
  padding: 0 10px;
  border: 1px solid #ddd;
  background: #fff;
  font-size: 11px;
  font-weight: 500;
  color: var(--cor-preto);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  border-radius: 0;
  transition: background 120ms, color 120ms, border-color 120ms;
}
.ark-config-chips .chip:hover:not(.is-selected):not(:disabled) {
  border-color: var(--cor-preto);
}
/* rc773: seleção do drawer IGUAL à da página (borda preta + bold, sem fundo escuro) — pedido do gestor */
.ark-config-chips .chip.is-selected {
  background: var(--cor-branco);
  color: var(--cor-preto);
  border: 1px solid var(--cor-preto);
  font-weight: 600;
}
.ark-config-chips .chip:disabled,
.ark-config-chips .chip.is-hidden {
  opacity: 0.35;
  cursor: not-allowed;
}

/* Tamanho */
.ark-config-tamanho-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.ark-config-tamanho-input {
  flex: 1;
  height: 32px;
  border: 1px solid #ddd;
  padding: 0 8px;
  font-size: 13px;
  font-family: inherit;
  border-radius: 0;
}
.ark-config-tamanho-suffix { font-size: 11px; color: var(--text-secondary); }
.ark-config-tamanho-cobrado {
  display: block;
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 2px;
}
.ark-config-tamanho-cobrado strong { color: var(--cor-preto); font-weight: 600; }
/* hidden HTML attribute precisa de !important pra vencer display:block acima (rc173 fix) */
.ark-config-tamanho-cobrado[hidden] { display: none !important; }
.ark-config-tamanho-tolerancia {
  display: block;
  font-size: 10.5px;
  color: var(--cor-cinza-500);
  font-style: italic;
  margin-top: 2px;
}

/* Bloco de informações embaixo do tamanho (rc179 → rc180)
   3 parágrafos como observações independentes, separados, justificados, sem itálico.
   Cada parágrafo recebe bullet "•" + leve recuo, parecido com "nota técnica". */
.ark-tamanho-info {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ark-tamanho-info p {
  margin: 0;
  padding: 0 0 0 14px;
  position: relative;
  font-size: 12px;
  line-height: 1.5;
  color: var(--cor-cinza-700);
  text-align: justify;
  font-style: normal;
  font-family: var(--font-body);
}
.ark-tamanho-info p::before {
  content: '•';
  position: absolute;
  left: 2px;
  top: 0;
  color: var(--cor-azul);
  font-weight: 700;
}
.ark-tamanho-info p strong {
  color: var(--cor-preto);
  font-weight: 600;
}

/* Driver dimerizavel vinculado: qty travada (sem botoes +/-) */
.ark-driver-bound-qty {
  font-size: 11px;
  color: var(--cor-cinza-500);
  font-style: italic;
  white-space: nowrap;
}

/* ============================================================
   DRAWER mini-cart — variações em LINHAS SEPARADAS (rc179)
   Grid 2 colunas (label / valor). Label negrito, valor regular, sem itálico.
   ============================================================ */
.cart-item-info dl.variation,
.cart-item-info .variation {
  display: grid !important;
  grid-template-columns: max-content 1fr;
  column-gap: 0; /* rc257: zebra ponta-a-ponta — respiro via padding interno */
  row-gap: 0;
  font-size: 10.5px !important;
  color: var(--cor-cinza-700) !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
  font-style: normal !important;
  font-family: var(--font-body) !important;
  width: 100%;
}
.cart-item-info dl.variation dt,
.cart-item-info .variation dt {
  display: block !important;
  font-weight: 600 !important;
  color: var(--cor-preto) !important;
  font-style: normal !important;
  margin: 0 !important;
  padding: 4px 10px 4px 8px !important; /* rc257: respiro à direita sem gap externo */
  white-space: nowrap;
}
.cart-item-info dl.variation dd,
.cart-item-info .variation dd {
  display: block !important;
  font-weight: 400 !important;
  color: var(--cor-cinza-700) !important;
  font-style: normal !important;
  margin: 0 !important;
  padding: 4px 8px !important;
}
.cart-item-info dl.variation dd p,
.cart-item-info .variation dd p {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
}
.cart-item-info dl.variation dt::after,
.cart-item-info .variation dt::after { content: '' !important; }
.cart-item-info dl.variation dd::after,
.cart-item-info .variation dd::after { content: '' !important; }
/* Zebra striping mais visível (cinza #EFEFEF rc182) */
.cart-item-info dl.variation dt:nth-of-type(even),
.cart-item-info dl.variation dt:nth-of-type(even) + dd,
.cart-item-info .variation dt:nth-of-type(even),
.cart-item-info .variation dt:nth-of-type(even) + dd {
  background: #EFEFEF !important;
}
/* Linhas ímpares com fundo branco explícito (sobrescreve qualquer pai) */
.cart-item-info dl.variation dt:nth-of-type(odd),
.cart-item-info dl.variation dt:nth-of-type(odd) + dd,
.cart-item-info .variation dt:nth-of-type(odd),
.cart-item-info .variation dt:nth-of-type(odd) + dd {
  background: #FFFFFF !important;
}
/* Obs sem name (dt vazio) ocupa as 2 colunas em itálico discreto */
.cart-item-info dl.variation dt:empty + dd,
.cart-item-info .variation dt:empty + dd {
  grid-column: 1 / -1;
  font-size: 10.5px !important;
  color: var(--cor-cinza-500) !important;
  font-style: italic !important;
}
.cart-item-info dl.variation dt:empty,
.cart-item-info .variation dt:empty {
  display: none !important;
}

/* ============================================================
   PAGINA /CARRINHO/ — tabela 7 colunas estilo "pedido de projeto" (rc178/rc179)
   Foto · Descrição do Produto · Código/Ambiente · Preço · Qtd · Subtotal · ×
   Cores: azul Ark (--cor-azul) substitui verde
   ============================================================ */

/* FIX rc179: WooCommerce cart usa wrapper .container.page-layout que tem max-width:800px
   (regra global pra páginas estáticas em linha 2677). Sobrescreve quando body é cart/checkout. */
body.woocommerce-cart .container.page-layout,
body.woocommerce-checkout .container.page-layout {
  max-width: var(--container-max, 1440px);
  padding-top: 0 !important;
}
/* rc183: oculta breadcrumb + page-title default no cart/checkout (gestor não quer "Início › Cart" + h1 "Cart") */
body.woocommerce-cart .breadcrumb,
body.woocommerce-cart .page-content > .page-title,
body.woocommerce-checkout .breadcrumb,
body.woocommerce-checkout .page-content > .page-title {
  display: none !important;
}

.ark-cart-page {
  width: 100%;
  max-width: 1380px;
  margin: 32px auto;
  padding: 0 24px;
  font-family: var(--font-body);
}
/* Força fonte padrão em TODOS os elementos do cart (rc189) — evita herança serif default browser */
.ark-cart-page,
.ark-cart-page input,
.ark-cart-page button,
.ark-cart-page select,
.ark-cart-page textarea,
.ark-cart-page label,
.ark-cart-page span,
.ark-cart-page strong,
.ark-cart-page p,
.ark-cart-page a {
  font-family: var(--font-body);
}
/* rc208: linha do título com botão Imprimir à direita */
.ark-cart-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 24px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--cor-cinza-100);
}
.ark-cart-title {
  font-size: 26px;
  font-weight: 600;
  margin: 0;
  padding: 0;
  border: 0;
}
.ark-cart-print-btn, .ark-cart-clear-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 14px;
  background: transparent;
  color: var(--cor-cinza-700);
  border: 1px solid var(--cor-cinza-200, #ddd);
  border-radius: 3px;
  font-size: 11px;
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 120ms, color 120ms, border-color 120ms;
}
.ark-cart-print-btn, .ark-cart-clear-btn:hover {
  background: var(--cor-azul);
  color: #fff;
  border-color: var(--cor-azul);
}
.ark-cart-print-btn, .ark-cart-clear-btn svg { display: block; }
/* rc255: variação destrutiva pro Limpar carrinho — hover vermelho em vez de azul */
.ark-cart-clear-btn:hover { background: #DC2626; border-color: #DC2626; color: #fff; }
.ark-cart-clear-btn:disabled { opacity: 0.55; cursor: progress; }

/* ============================================================
   PRINT VIEW DEDICADA — mockup cart-print-v2.html (rc218)
   Hidden na tela. JS move pro body antes do print(); CSS @media print
   esconde resto do body e mostra .ark-cart-print-view.
   Tokens:
     --cor-azul    #3483FA  → Subtotal, Total, doc-number
     --cor-vermelho #E8001D → borda lateral do bloco Atenção
     #f0f0f0                → header da products-table
     #EFEFEF (zebra)        → linhas pares das tabelas info-table e variation
   ============================================================ */
.ark-cart-print-view { display: none; }

@media print {
  /* rc447/rc448: NEUTRALIZA regras mobile do tema (overflow-x:clip de header.css:854,
     max-width restritivos) que vazam pro contexto de print no Chrome Android.
     Sem isso o body fica preso em 412px (viewport mobile) → Chrome escala pra A4 landscape
     (~1122px) gerando 3 páginas com conteúdo apertado em vez de 1 página igual ao PC.

     rc448: ALÉM de resetar overflow/max-width, FORÇAMOS min-width em mm (unidade física
     que o print engine reconhece como largura da PÁGINA, não do viewport). 247mm = A4
     landscape (297mm) - margens laterais (50mm). Assim body cresce até a largura útil
     da página A4, igualando layout mobile = desktop. */
  html, body {
    width: 247mm !important;
    min-width: 247mm !important;
    max-width: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  .ark-cart-page,
  .ark-co-wrap,
  .ark-co-form,
  .container,
  .site-main,
  .site-content {
    overflow: visible !important;
    max-width: none !important;
    min-width: 247mm !important;
    width: 247mm !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }
  .ark-cart-print-view {
    width: 247mm !important;
    min-width: 247mm !important;
    max-width: none !important;
  }
  /* rc219: margens laterais 10mm → 15mm (gestor).
     rc221: counter(page)/counter(pages) via @page margin box (fixed extrai do contexto de paginação).
     rc222: paginação centralizada (@bottom-right → @bottom-center). Rodapé HTML removido.
     rc224: @bottom-center → @bottom-left (razão social/CNPJ/endereço) + @bottom-right (Página X de Y).
     rc225: @bottom-left REMOVIDO — razão social/CNPJ/endereço volta como rodapé HTML (.doc-footer)
            posicionado fixed, para incluir mini logo + texto centralizados.
            @bottom-right (Página X de Y) MANTIDO.
     rc227: .doc-footer migra de `position: fixed` para `position: running(rodape)` —
            CSS Paged Media Level 3. HTML do rodapé é extraído pro margin box `@bottom-left`,
            ficando NA MESMA LINHA Y do `@bottom-right` (counter page/pages).
            Margin inferior do @page aumentada (10mm → 18mm) pra acomodar rodapé
            com linha horizontal acima + texto a ~3-4mm do fundo.
     rc228: REVERSÃO de `position: running()` — Chromium/Blink (motor do Chrome) NÃO
            implementa CSS Paged Media Level 3 running elements. `position: running(rodape)`
            era ignorado e `content: element(rodape)` ficava vazio, fazendo o <footer>
            cair no flow normal acima do margin box do @bottom-right, criando os dois
            "rodapés" desalinhados. Volta a `position: fixed; bottom: 0` calibrado com
            @page margin-bottom: 0, de modo que o footer fixed e o @bottom-right
            ocupam a MESMA faixa vertical do fundo da folha. Reservamos via padding
            o respiro inferior (6mm) que antes era margin do @page.
     rc229: REFATOR COMPLETO do rodapé. Problema do rc228: @page margin-bottom: 0
            COLAPSA o slot do margin box `@bottom-right`, fazendo "Página X de Y" SUMIR
            do PDF. Solução: unificar TODO o rodapé em margin boxes do @page (não
            misturar com .doc-footer fixed). `@bottom-left` recebe mini logo SVG inline
            via content: "\00A0\00A0\00A0\00A0\00A0\00A0\00A0" url(data:...) + razão social/CNPJ/endereço como string.
            `@bottom-right` recebe Página X de Y. Border-top + vertical-align middle
            garantem mesma linha Y. `@page margin-bottom: 14mm` restaura o slot.
            `.doc-footer` HTML escondido em print (mantido pra screen como noop).
     rc232: 2 fixes solicitados pelo gestor.
            (a) MINI LOGO INVISÍVEL no rc229-rc231: `content: url(data:image/svg+xml,...)`
            em @page margin box do Chromium é silenciosamente ignorado quando o SVG é
            inline (encoder/parser do print pipeline difere do flow normal). Troca pra
            PNG inline base64 do logo OFICIAL (sem "ILUMINAÇÃO" antiga). PNG raster
            em data URI é a forma mais robusta — Chromium aceita.
            (b) ALINHAMENTO ESQUERDA → CENTRO: migra `@bottom-left` para `@bottom-center`.
            "Página X de Y" permanece em `@bottom-right`, na MESMA linha Y.
            Engine de paginação reserva slots automaticamente (sem overlap).
     rc233: rc232 renderizou LOGO GIGANTE (PNG 166x40 nativo) — `content: url()` em
            @page margin box NÃO aceita width/height CSS, então o tamanho INTRÍNSECO
            do PNG é usado direto. Razão social/CNPJ/endereço foram empurrados pra fora
            do slot (sumiram). Solução: regerar PNG no tamanho FINAL visual desejado
            (83x20px ≈ 22x5mm em 96 DPI). Tamanho proporcional ao texto 10.5pt
            (≈ 2.6mm altura), logo 5mm fica equilibrado visualmente.
     rc234: rc233 funcionou parcial — logo + texto visíveis e legíveis, "Página X de Y"
            na direita corretamente. MAS o `@bottom-center` apareceu colado à ESQUERDA.
            Tentativa rc234 inicial (`@bottom-left { content: ""; }` simétrico) NÃO
            centralizou — Chromium ignora slot esquerdo vazio pra fins de balanceamento.
     rc235: SOLUÇÃO DEFINITIVA — unificar TODO o rodapé em UM ÚNICO `@bottom-center`,
            incluindo "Página X de Y" no FINAL do mesmo content string. Isso garante
            centralização absoluta na largura da página (engine só tem 1 caixa pra
            posicionar, e text-align: center funciona perfeitamente). Counter(page)
            e counter(pages) funcionam em qualquer margin box do CSS Paged Media.
            Trade-off aceito: "Página X de Y" deixa de estar canto-direito puro e fica
            colado ao final do texto centralizado. Critério #1 do gestor (CENTRALIZADO)
            tem precedência sobre canto-direito absoluto. @bottom-right removido. */
  @page {
    /* rc375: TEXTO PURO vetorial (sem PNG do texto) — letras nítidas em impressão.
       Apenas mini-logo via PNG inline (pequeno, raster aceitável).
       Y igualado: padding-bottom 4mm em @bottom-center e @bottom-right.
       Config validada em test-12.pdf local via Chrome headless. */
    size: A4 landscape;
    margin: 10mm 25mm 18mm 25mm;

    /* rc392: logo + texto JUNTOS no @bottom-center. 40 NBSP depois do texto
       compensam o logo+gap à esquerda: o conjunto fica simetrico, e ao @bottom-center
       centralizar o conjunto, o TEXTO acaba no centro absoluto (148.5mm) da pagina. */
    /* rc397: volta logo + texto JUNTOS no @bottom-center com 22 NBSP balanceadores.
       Logo container reduzido pra 47x27.5 (25% maior que 38x22 original sem margem).
       22 NBSP no fim (~13.6mm em 10pt) compensam logo+gap a esquerda do texto,
       fazendo o conjunto ficar simetrico em relacao ao texto => texto centralizado. */
    /* rc412: logo em cima do texto via A (line feed) + white-space:pre + text-align:center.
       Logo SOZINHO na linha 1, texto na linha 2. Bolinha simétrica no início E fim do texto. */
    @bottom-center {
      content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjBweCIgaGVpZ2h0PSIyMnB4IiB2aWV3Qm94PSIyMTAgNDI1IDgwMCA0NzAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZlcnNpb249IjEuMCI+PGRlZnM+PGcvPjxjbGlwUGF0aCBpZD0iZWExZWIzOWVkZSI+PHBhdGggZD0iTSAyMTAuODEyNSA2NjUuNjc5Njg4IEwgNDE0LjU3MDMxMiA2NjUuNjc5Njg4IEwgNDE0LjU3MDMxMiA4MDEuNjUyMzQ0IEwgMjEwLjgxMjUgODAxLjY1MjM0NCBaIE0gMjEwLjgxMjUgNjY1LjY3OTY4OCAiIGNsaXAtcnVsZT0ibm9uemVybyIvPjwvY2xpcFBhdGg+PGNsaXBQYXRoIGlkPSJhZjBhYWMyYjRhIj48cGF0aCBkPSJNIDAuODEyNSAwLjY3OTY4OCBMIDIwNC41NzAzMTIgMC42Nzk2ODggTCAyMDQuNTcwMzEyIDEzNi42NTIzNDQgTCAwLjgxMjUgMTM2LjY1MjM0NCBaIE0gMC44MTI1IDAuNjc5Njg4ICIgY2xpcC1ydWxlPSJub256ZXJvIi8+PC9jbGlwUGF0aD48Y2xpcFBhdGggaWQ9ImNmMDIyN2RiNDEiPjxyZWN0IHg9IjAiIHdpZHRoPSIyMDUiIHk9IjAiIGhlaWdodD0iMTM3Ii8+PC9jbGlwUGF0aD48Y2xpcFBhdGggaWQ9ImM2NmUxYWM1YzAiPjxyZWN0IHg9IjAiIHdpZHRoPSI4NDciIHk9IjAiIGhlaWdodD0iMjM5Ii8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xpcC1wYXRoPSJ1cmwoI2VhMWViMzllZGUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAxLCAyMTAsIDY2NSkiPjxnIGNsaXAtcGF0aD0idXJsKCNjZjAyMjdkYjQxKSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2FmMGFhYzJiNGEpIj48cGF0aCBmaWxsPSIjZmYwMDAwIiBkPSJNIDAuODEyNSAwLjY3OTY4OCBMIDIwNC43NzM0MzggMC42Nzk2ODggTCAyMDQuNzczNDM4IDEzNi42NTIzNDQgTCAwLjgxMjUgMTM2LjY1MjM0NCBaIE0gMC44MTI1IDAuNjc5Njg4ICIgZmlsbC1vcGFjaXR5PSIxIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9nPjwvZz48L2c+PGcgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDEuMDkzOTU0LCA4MjIuNzkzNTIyKSI+PGc+PHBhdGggZD0iTSAyLjE4NzUgLTAuNTc4MTI1IEwgMjEuNjg3NSAtMTcwLjU0Njg3NSBMIDQzLjU2MjUgLTE3Ni4yODEyNSBMIDE0My41MTU2MjUgLTM3LjY0MDYyNSBMIDEyNC4yNjU2MjUgLTMyLjU5Mzc1IEwgMTAwLjU3ODEyNSAtNjUuODkwNjI1IEwgMjYuMTg3NSAtNDYuMzc1IEwgMjEuNjU2MjUgLTUuNjg3NSBaIE0gMjcuMTg3NSAtNjMuOTUzMTI1IEwgOTAuODU5Mzc1IC04MC42NTYyNSBMIDM3LjUzMTI1IC0xNTUuNTMxMjUgTCAzNy4xMDkzNzUgLTE1NS40MjE4NzUgWiBNIDI3LjE4NzUgLTYzLjk1MzEyNSAiLz48L2c+PC9nPjwvZz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAxLCA0MTksIDYxMykiPjxnIGNsaXAtcGF0aD0idXJsKCNjNjZlMWFjNWMwKSI+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjgyMDQ2NiwgMTg4Ljg4OTUxKSI+PGc+PHBhdGggZD0iTSAzOSAtODMuMDYyNSBDIDQyLjUwNzgxMiAtOTAuMDgyMDMxIDQ3LjMxNjQwNiAtOTUuNDEwMTU2IDUzLjQyMTg3NSAtOTkuMDQ2ODc1IEMgNTkuNTM1MTU2IC0xMDIuNjkxNDA2IDY2LjY4NzUgLTEwNC41MTU2MjUgNzQuODc1IC0xMDQuNTE1NjI1IEwgNzQuODc1IC04My4wNjI1IEMgNjQuNjAxNTYyIC04My41ODIwMzEgNTYuMjgxMjUgLTgxLjE3NTc4MSA0OS45MDYyNSAtNzUuODQzNzUgQyA0My41MzkwNjIgLTcwLjUxOTUzMSAzOS45MDYyNSAtNjMuMzA0Njg4IDM5IC01NC4yMDMxMjUgTCAzOSAwIEwgMTYuNTc4MTI1IDAgTCAxNi41NzgxMjUgLTEwMy43MzQzNzUgTCAzOSAtMTAzLjczNDM3NSBaIE0gMzkgLTgzLjA2MjUgIi8+PC9nPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3Ny42NDI3MTMsIDE4OC44ODk1MSkiPjxnPjxwYXRoIGQ9Ik0gMTE0LjQ1MzEyNSAwIEwgODcuOTM3NSAwIEwgNTcuNTE1NjI1IC00Ny41NzgxMjUgTCAzOS45Njg3NSAtMjkuMDQ2ODc1IEwgMzkuOTY4NzUgMCBMIDE3LjU0Njg3NSAwIEwgMTcuNTQ2ODc1IC0xNDQuNjcxODc1IEwgMzkuOTY4NzUgLTE0NC42NzE4NzUgTCAzOS45Njg3NSAtNTcuMzI4MTI1IEwgODUuNzk2ODc1IC0xMDMuNzM0Mzc1IEwgMTExLjUzMTI1IC0xMDMuNzM0Mzc1IEwgNzMuMTI1IC02My41NjI1IFogTSAxMTQuNDUzMTI1IDAgIi8+PC9nPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxOTMuNjU2MDIyLCAxODguODg5NTEpIj48Zy8+PC9nPjwvZz48ZyBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0Ni4zMDA3MjgsIDE4OC44ODk1MSkiPjxnPjxwYXRoIGQ9Ik0gMTcuNTQ2ODc1IDAgTCAxNy41NDY4NzUgLTE0NC42NzE4NzUgTCAzOS45Njg3NSAtMTQ0LjY3MTg3NSBMIDM5Ljk2ODc1IDAgWiBNIDE3LjU0Njg3NSAwICIvPjwvZz48L2c+PC9nPjxnIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAzLjgxOTk0NiwgMTg4Ljg4OTUxKSI+PGc+PHBhdGggZD0iTSAxMDAuODEyNSAwIEwgNzguNzgxMjUgMCBMIDc4Ljc4MTI1IC0xMi42NzE4NzUgQyA3MS4zNjMyODEgLTMuNTc4MTI1IDU5LjkyMTg3NSAwLjk2ODc1IDQ0LjQ1MzEyNSAwLjk2ODc1IEMgMzcuMTcxODc1IDAuOTY4NzUgMzAuNzY5NTMxIC0wLjQyNTc4MSAyNS4yNSAtMy4yMTg3NSBDIDE5LjcyNjU2MiAtNi4wMDc4MTIgMTUuNDcyNjU2IC05Ljg0Mzc1IDEyLjQ4NDM3NSAtMTQuNzE4NzUgQyA5LjQ5MjE4OCAtMTkuNTkzNzUgOCAtMjUuMDg1OTM4IDggLTMxLjIwMzEyNSBDIDggLTQwLjY5MTQwNiAxMS40NDE0MDYgLTQ4LjIyNjU2MiAxOC4zMjgxMjUgLTUzLjgxMjUgQyAyNS4yMTA5MzggLTU5LjQwNjI1IDM0LjgzMjAzMSAtNjIuMjY1NjI1IDQ3LjE4NzUgLTYyLjM5MDYyNSBMIDc4LjU3ODEyNSAtNjIuMzkwNjI1IEwgNzguNTc4MTI1IC02NS41MTU2MjUgQyA3OC41NzgxMjUgLTcyLjE0MDYyNSA3Ni40NjA5MzggLTc3LjI2OTUzMSA3Mi4yMzQzNzUgLTgwLjkwNjI1IEMgNjguMDE1NjI1IC04NC41NTA3ODEgNjEuODc1IC04Ni4zNzUgNTMuODEyNSAtODYuMzc1IEMgNDMuODAwNzgxIC04Ni4zNzUgMzMuNTk3NjU2IC04Mi44NjMyODEgMjMuMjAzMTI1IC03NS44NDM3NSBMIDE0LjAzMTI1IC05MS40NTMxMjUgQyAyMS45Njg3NSAtOTYuMTI4OTA2IDI5LjA4NTkzOCAtOTkuNDcyNjU2IDM1LjM5MDYyNSAtMTAxLjQ4NDM3NSBDIDQxLjY5MTQwNiAtMTAzLjUwMzkwNiA0OS40NTcwMzEgLTEwNC41MTU2MjUgNTguNjg3NSAtMTA0LjUxNTYyNSBDIDcxLjk0NTMxMiAtMTA0LjUxNTYyNSA4Mi4yMTg3NSAtMTAxLjI5Njg3NSA4OS41IC05NC44NTkzNzUgQyA5Ni43ODEyNSAtODguNDIxODc1IDEwMC40ODQzNzUgLTc5LjQ4NDM3NSAxMDAuNjA5Mzc1IC02OC4wNDY4NzUgWiBNIDQ5LjE0MDYyNSAtMTYuNzY1NjI1IEMgNTcuMDY2NDA2IC0xNi43NjU2MjUgNjMuNzg5MDYyIC0xOC42MTMyODEgNjkuMzEyNSAtMjIuMzEyNSBDIDc0Ljg0Mzc1IC0yNi4wMTk1MzEgNzcuOTI5Njg4IC0zMC43MzgyODEgNzguNTc4MTI1IC0zNi40Njg3NSBMIDc4LjU3ODEyNSAtNDYuMDE1NjI1IEwgNTAuNSAtNDYuMDE1NjI1IEMgNDMuMDkzNzUgLTQ2LjAxNTYyNSAzNy42NjQwNjIgLTQ0Ljk0MTQwNiAzNC4yMTg3NSAtNDIuNzk2ODc1IEMgMzAuNzY5NTMxIC00MC42NDg0MzggMjkuMDQ2ODc1IC0zNy4xMDkzNzUgMjkuMDQ2ODc1IC0zMi4xNzE4NzUgQyAyOS4wNDY4NzUgLTI3LjQ5MjE4OCAzMC44MzIwMzEgLTIzLjc1MzkwNiAzNC40MDYyNSAtMjAuOTUzMTI1IEMgMzcuOTg4MjgxIC0xOC4xNjAxNTYgNDIuODk4NDM4IC0xNi43NjU2MjUgNDkuMTQwNjI1IC0xNi43NjU2MjUgWiBNIDQ5LjE0MDYyNSAtMTYuNzY1NjI1ICIvPjwvZz48L2c+PC9nPjxnIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDE4LjA3ODM5MywgMTg4Ljg4OTUxKSI+PGc+PHBhdGggZD0iTSAxNTEuODkwNjI1IC0xMDQuNTE1NjI1IEMgMTYzLjcyMjY1NiAtMTA0LjUxNTYyNSAxNzMuMDE5NTMxIC0xMDAuOTM3NSAxNzkuNzgxMjUgLTkzLjc4MTI1IEMgMTg2LjUzOTA2MiAtODYuNjMyODEyIDE4OS45MjE4NzUgLTc2Ljg5MDYyNSAxODkuOTIxODc1IC02NC41NDY4NzUgTCAxODkuOTIxODc1IDAgTCAxNjcuNDg0Mzc1IDAgTCAxNjcuNDg0Mzc1IC01OC4yOTY4NzUgQyAxNjcuNDg0Mzc1IC02Ni4yMjI2NTYgMTY1LjMwNDY4OCAtNzIuNDI1NzgxIDE2MC45NTMxMjUgLTc2LjkwNjI1IEMgMTU2LjU5NzY1NiAtODEuMzk0NTMxIDE1MC41ODU5MzggLTgzLjY0MDYyNSAxNDIuOTIxODc1IC04My42NDA2MjUgQyAxMzQuMjEwOTM4IC04My4zOTA2MjUgMTI3LjI4OTA2MiAtODAuMjM4MjgxIDEyMi4xNTYyNSAtNzQuMTg3NSBDIDExNy4wMTk1MzEgLTY4LjE0NDUzMSAxMTQuNDUzMTI1IC02MC41MDc4MTIgMTE0LjQ1MzEyNSAtNTEuMjgxMjUgTCAxMTQuNDUzMTI1IDAgTCA5Mi4wMzEyNSAwIEwgOTIuMDMxMjUgLTU4LjI5Njg3NSBDIDkyLjAzMTI1IC02Ni4yMjI2NTYgODkuODUxNTYyIC03Mi40MjU3ODEgODUuNSAtNzYuOTA2MjUgQyA4MS4xNDQ1MzEgLTgxLjM5NDUzMSA3NS4xOTUzMTIgLTgzLjY0MDYyNSA2Ny42NTYyNSAtODMuNjQwNjI1IEMgNTguODIwMzEyIC04My4zOTA2MjUgNTEuODAwNzgxIC04MC4yMzgyODEgNDYuNTkzNzUgLTc0LjE4NzUgQyA0MS4zOTQ1MzEgLTY4LjE0NDUzMSAzOC43OTY4NzUgLTYwLjUwNzgxMiAzOC43OTY4NzUgLTUxLjI4MTI1IEwgMzguNzk2ODc1IDAgTCAxNi41NzgxMjUgMCBMIDE2LjU3ODEyNSAtMTAzLjczNDM3NSBMIDM4Ljc5Njg3NSAtMTAzLjczNDM3NSBMIDM4Ljc5Njg3NSAtODMuNjQwNjI1IEMgNDUuNjkxNDA2IC05Ny41NTQ2ODggNTguMjM4MjgxIC0xMDQuNTE1NjI1IDc2LjQzNzUgLTEwNC41MTU2MjUgQyA4NS42NjQwNjIgLTEwNC41MTU2MjUgOTMuMzYzMjgxIC0xMDIuMzM1OTM4IDk5LjUzMTI1IC05Ny45ODQzNzUgQyAxMDUuNzA3MDMxIC05My42Mjg5MDYgMTEwLjAzMTI1IC04Ny40ODQzNzUgMTEyLjUgLTc5LjU0Njg3NSBDIDExOC44NzUgLTk2LjE5MTQwNiAxMzIuMDAzOTA2IC0xMDQuNTE1NjI1IDE1MS44OTA2MjUgLTEwNC41MTU2MjUgWiBNIDE1MS44OTA2MjUgLTEwNC41MTU2MjUgIi8+PC9nPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MjEuNDQyOTE3LCAxODguODg5NTEpIj48Zz48cGF0aCBkPSJNIDc2LjIzNDM3NSAtMTA0LjUxNTYyNSBDIDg1Ljk4NDM3NSAtMTA0LjUxNTYyNSA5NC41OTM3NSAtMTAyLjMwMDc4MSAxMDIuMDYyNSAtOTcuODc1IEMgMTA5LjUzOTA2MiAtOTMuNDU3MDMxIDExNS4zNTkzNzUgLTg3LjIxODc1IDExOS41MTU2MjUgLTc5LjE1NjI1IEMgMTIzLjY3OTY4OCAtNzEuMTAxNTYyIDEyNS43NjU2MjUgLTYxLjg3NSAxMjUuNzY1NjI1IC01MS40Njg3NSBDIDEyNS43NjU2MjUgLTQxLjIwNzAzMSAxMjMuNzE4NzUgLTMyLjEwOTM3NSAxMTkuNjI1IC0yNC4xNzE4NzUgQyAxMTUuNTMxMjUgLTE2LjI0MjE4OCAxMDkuNzczNDM4IC0xMC4xMDE1NjIgMTAyLjM1OTM3NSAtNS43NSBDIDk0Ljk1MzEyNSAtMS4zOTQ1MzEgODYuMzc1IDAuNzgxMjUgNzYuNjI1IDAuNzgxMjUgQyA2OC40Mzc1IDAuNzgxMjUgNjEuMjIyNjU2IC0wLjgxMjUgNTQuOTg0Mzc1IC00IEMgNDguNzQyMTg4IC03LjE4NzUgNDMuNzM4MjgxIC0xMS44MzIwMzEgMzkuOTY4NzUgLTE3LjkzNzUgTCAzOS45Njg3NSAzNy44MjgxMjUgTCAxNy41NDY4NzUgMzcuODI4MTI1IEwgMTcuNTQ2ODc1IC0xMDMuNzM0Mzc1IEwgMzkuOTY4NzUgLTEwMy43MzQzNzUgTCAzOS45Njg3NSAtODUuNzk2ODc1IEMgNDMuNzM4MjgxIC05MS44OTg0MzggNDguNzEwOTM4IC05Ni41NDY4NzUgNTQuODkwNjI1IC05OS43MzQzNzUgQyA2MS4wNjY0MDYgLTEwMi45MjE4NzUgNjguMTc5Njg4IC0xMDQuNTE1NjI1IDc2LjIzNDM3NSAtMTA0LjUxNTYyNSBaIE0gNzEuNTYyNSAtMTguMzI4MTI1IEMgNzcuNjY0MDYyIC0xOC4zMjgxMjUgODMuMTI1IC0xOS43NTM5MDYgODcuOTM3NSAtMjIuNjA5Mzc1IEMgOTIuNzUgLTI1LjQ3MjY1NiA5Ni40ODQzNzUgLTI5LjUwMzkwNiA5OS4xNDA2MjUgLTM0LjcwMzEyNSBDIDEwMS44MDQ2ODggLTM5Ljg5ODQzOCAxMDMuMTQwNjI1IC00NS43NSAxMDMuMTQwNjI1IC01Mi4yNSBDIDEwMy4xNDA2MjUgLTU4LjYyNSAxMDEuODA0Njg4IC02NC4zNDM3NSA5OS4xNDA2MjUgLTY5LjQwNjI1IEMgOTYuNDg0Mzc1IC03NC40NzY1NjIgOTIuNzUgLTc4LjQ3NjU2MiA4Ny45Mzc1IC04MS40MDYyNSBDIDgzLjEyNSAtODQuMzMyMDMxIDc3LjY2NDA2MiAtODUuNzk2ODc1IDcxLjU2MjUgLTg1Ljc5Njg3NSBDIDY1LjQ0NTMxMiAtODUuNzk2ODc1IDU5Ljk4NDM3NSAtODQuMzYzMjgxIDU1LjE3MTg3NSAtODEuNSBDIDUwLjM2NzE4OCAtNzguNjQ0NTMxIDQ2LjYzMjgxMiAtNzQuNjQ4NDM4IDQzLjk2ODc1IC02OS41MTU2MjUgQyA0MS4zMDA3ODEgLTY0LjM3ODkwNiAzOS45Njg3NSAtNTguNjI1IDM5Ljk2ODc1IC01Mi4yNSBDIDM5Ljk2ODc1IC00Mi4yMzgyODEgNDIuOTI1NzgxIC0zNC4wODIwMzEgNDguODQzNzUgLTI3Ljc4MTI1IEMgNTQuNzU3ODEyIC0yMS40NzY1NjIgNjIuMzMyMDMxIC0xOC4zMjgxMjUgNzEuNTYyNSAtMTguMzI4MTI1IFogTSA3MS41NjI1IC0xOC4zMjgxMjUgIi8+PC9nPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3NTQuMDI5NTQyLCAxODguODg5NTEpIj48Zz48cGF0aCBkPSJNIDc1LjY1NjI1IC03Ny42MDkzNzUgQyA3MS4xMDE1NjIgLTgwLjQ2MDkzOCA2Ni4xMjg5MDYgLTgyLjcwMzEyNSA2MC43MzQzNzUgLTg0LjMyODEyNSBDIDU1LjMzNTkzOCAtODUuOTUzMTI1IDUwLjM2NzE4OCAtODYuNzY1NjI1IDQ1LjgyODEyNSAtODYuNzY1NjI1IEMgNDEuMTQwNjI1IC04Ni43NjU2MjUgMzcuNDI5Njg4IC04NS45MjE4NzUgMzQuNzAzMTI1IC04NC4yMzQzNzUgQyAzMS45NzI2NTYgLTgyLjU0Njg3NSAzMC42MDkzNzUgLTc5Ljk0NTMxMiAzMC42MDkzNzUgLTc2LjQzNzUgQyAzMC42MDkzNzUgLTcyLjkyNTc4MSAzMi4yMDMxMjUgLTcwLjI1NzgxMiAzNS4zOTA2MjUgLTY4LjQzNzUgQyAzOC41NzgxMjUgLTY2LjYxMzI4MSA0My44NzUgLTY0LjUzNTE1NiA1MS4yODEyNSAtNjIuMjAzMTI1IEMgNTguMzAwNzgxIC02MC4xMTcxODggNjQuMTE3MTg4IC01OC4wMzUxNTYgNjguNzM0Mzc1IC01NS45NTMxMjUgQyA3My4zNDc2NTYgLTUzLjg3ODkwNiA3Ny4zMTI1IC01MC43NTc4MTIgODAuNjI1IC00Ni41OTM3NSBDIDgzLjkzNzUgLTQyLjQzNzUgODUuNTkzNzUgLTM2Ljk3NjU2MiA4NS41OTM3NSAtMzAuMjE4NzUgQyA4NS41OTM3NSAtMjAuMDgyMDMxIDgxLjc4OTA2MiAtMTIuMzc4OTA2IDc0LjE4NzUgLTcuMTA5Mzc1IEMgNjYuNTgyMDMxIC0xLjg0NzY1NiA1Ny4xMjg5MDYgMC43ODEyNSA0NS44MjgxMjUgMC43ODEyNSBDIDM4LjAyMzQzOCAwLjc4MTI1IDMwLjM4MjgxMiAtMC40ODQzNzUgMjIuOTA2MjUgLTMuMDE1NjI1IEMgMTUuNDM3NSAtNS41NTQ2ODggOS4xNjQwNjIgLTkuMTAxNTYyIDQuMDkzNzUgLTEzLjY1NjI1IEwgMTIuMDkzNzUgLTI5LjY0MDYyNSBDIDE2LjUwNzgxMiAtMjUuNzM0Mzc1IDIxLjkyOTY4OCAtMjIuNjA5Mzc1IDI4LjM1OTM3NSAtMjAuMjY1NjI1IEMgMzQuNzk2ODc1IC0xNy45Mjk2ODggNDAuOTQxNDA2IC0xNi43NjU2MjUgNDYuNzk2ODc1IC0xNi43NjU2MjUgQyA1MS44NjcxODggLTE2Ljc2NTYyNSA1NS45NjA5MzggLTE3LjY3NTc4MSA1OS4wNzgxMjUgLTE5LjUgQyA2Mi4yMDMxMjUgLTIxLjMyMDMxMiA2My43NjU2MjUgLTI0LjExMzI4MSA2My43NjU2MjUgLTI3Ljg3NSBDIDYzLjc2NTYyNSAtMzAuNzM4MjgxIDYyLjgyMDMxMiAtMzMuMTEzMjgxIDYwLjkzNzUgLTM1IEMgNTkuMDUwNzgxIC0zNi44ODI4MTIgNTYuNzQyMTg4IC0zOC4zNzg5MDYgNTQuMDE1NjI1IC0zOS40ODQzNzUgQyA1MS4yODUxNTYgLTQwLjU4NTkzOCA0Ny4zMTY0MDYgLTQxLjkyMTg3NSA0Mi4xMDkzNzUgLTQzLjQ4NDM3NSBDIDM1LjIyMjY1NiAtNDUuNTU0Njg4IDI5LjYwMTU2MiAtNDcuNTk3NjU2IDI1LjI1IC00OS42MDkzNzUgQyAyMC44OTQ1MzEgLTUxLjYyODkwNiAxNy4xNTYyNSAtNTQuNjI1IDE0LjAzMTI1IC01OC41OTM3NSBDIDEwLjkxNDA2MiAtNjIuNTYyNSA5LjM1OTM3NSAtNjcuODU5Mzc1IDkuMzU5Mzc1IC03NC40ODQzNzUgQyA5LjM1OTM3NSAtODQuMzU5Mzc1IDEzIC05MS44NjMyODEgMjAuMjgxMjUgLTk3IEMgMjcuNTYyNSAtMTAyLjEzMjgxMiAzNi42NjAxNTYgLTEwNC43MDMxMjUgNDcuNTc4MTI1IC0xMDQuNzAzMTI1IEMgNTQuMjAzMTI1IC0xMDQuNzAzMTI1IDYwLjczNDM3NSAtMTAzLjc1NzgxMiA2Ny4xNzE4NzUgLTEwMS44NzUgQyA3My42MDkzNzUgLTk5Ljk4ODI4MSA3OS4xNjQwNjIgLTk3LjQyMTg3NSA4My44NDM3NSAtOTQuMTcxODc1IFogTSA3NS42NTYyNSAtNzcuNjA5Mzc1ICIvPjwvZz48L2c+PC9nPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMDcuMDYzMzcxLCA4ODIuMzM3MzQ0KSI+PGc+PHBhdGggZD0iTSA2LjEyNSAwIEwgNi4xMjUgLTUwLjQ2ODc1IEwgMTMuOTM3NSAtNTAuNDY4NzUgTCAxMy45Mzc1IDAgWiBNIDYuMTI1IDAgIi8+PC9nPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMjguMjgwNzE1LCA4ODIuMzM3MzQ0KSI+PGc+PHBhdGggZD0iTSA1Ljc4MTI1IDAgTCA1Ljc4MTI1IC0zNi4xODc1IEwgMTMuNTMxMjUgLTM2LjE4NzUgTCAxMy41MzEyNSAwIFogTSA5LjY1NjI1IC01MS4yODEyNSBDIDEwLjk2ODc1IC01MS4yODEyNSAxMi4wNTA3ODEgLTUwLjgzNTkzOCAxMi45MDYyNSAtNDkuOTUzMTI1IEMgMTMuNzY5NTMxIC00OS4wNjY0MDYgMTQuMjAzMTI1IC00Ny45MjE4NzUgMTQuMjAzMTI1IC00Ni41MTU2MjUgQyAxNC4yMDMxMjUgLTQ1LjE2MDE1NiAxMy43Njk1MzEgLTQ0LjAzMTI1IDEyLjkwNjI1IC00My4xMjUgQyAxMi4wNTA3ODEgLTQyLjIxODc1IDEwLjk2ODc1IC00MS43NjU2MjUgOS42NTYyNSAtNDEuNzY1NjI1IEMgOC4zMzIwMzEgLTQxLjc2NTYyNSA3LjIzODI4MSAtNDIuMjE4NzUgNi4zNzUgLTQzLjEyNSBDIDUuNTE5NTMxIC00NC4wMzEyNSA1LjA5Mzc1IC00NS4xNjAxNTYgNS4wOTM3NSAtNDYuNTE1NjI1IEMgNS4wOTM3NSAtNDcuOTIxODc1IDUuNTE5NTMxIC00OS4wNjY0MDYgNi4zNzUgLTQ5Ljk1MzEyNSBDIDcuMjM4MjgxIC01MC44MzU5MzggOC4zMzIwMzEgLTUxLjI4MTI1IDkuNjU2MjUgLTUxLjI4MTI1IFogTSA5LjY1NjI1IC01MS4yODEyNSAiLz48L2c+PC9nPjwvZz48ZyBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0OC43NTAwMTYsIDg4Mi4zMzczNDQpIj48Zz48cGF0aCBkPSJNIDMwLjY3MTg3NSAtMzYuMTg3NSBMIDM4LjQyMTg3NSAtMzYuMTg3NSBMIDM4LjQyMTg3NSAtMy41MzEyNSBDIDM4LjQyMTg3NSAtMC4wOTM3NSAzNy42NDg0MzggMi44OTQ1MzEgMzYuMTA5Mzc1IDUuNDM3NSBDIDM0LjU2NjQwNiA3Ljk3NjU2MiAzMi4zNzg5MDYgOS45NDE0MDYgMjkuNTQ2ODc1IDExLjMyODEyNSBDIDI2LjcxMDkzOCAxMi43MTA5MzggMjMuNDE0MDYyIDEzLjQwNjI1IDE5LjY1NjI1IDEzLjQwNjI1IEMgMTQuMzAwNzgxIDEzLjQwNjI1IDkuMjg5MDYyIDExLjgxNjQwNiA0LjYyNSA4LjY0MDYyNSBMIDcuOTUzMTI1IDMgQyA5LjcyMjY1NiA0LjMxMjUgMTEuNTIzNDM4IDUuMjk2ODc1IDEzLjM1OTM3NSA1Ljk1MzEyNSBDIDE1LjIwMzEyNSA2LjYwOTM3NSAxNy4xODc1IDYuOTM3NSAxOS4zMTI1IDYuOTM3NSBDIDIyLjc1NzgxMiA2LjkzNzUgMjUuNTE1NjI1IDYuMDAzOTA2IDI3LjU3ODEyNSA0LjE0MDYyNSBDIDI5LjY0MDYyNSAyLjI4NTE1NiAzMC42NzE4NzUgLTAuMjAzMTI1IDMwLjY3MTg3NSAtMy4zMjgxMjUgTCAzMC42NzE4NzUgLTcuODkwNjI1IEMgMjkuNDUzMTI1IC01Ljg5MDYyNSAyNy44MzIwMzEgLTQuMzY3MTg4IDI1LjgxMjUgLTMuMzI4MTI1IEMgMjMuNzg5MDYyIC0yLjI4NTE1NiAyMS40MjE4NzUgLTEuNzY1NjI1IDE4LjcwMzEyNSAtMS43NjU2MjUgQyAxNS40ODQzNzUgLTEuNzY1NjI1IDEyLjY0MDYyNSAtMi41IDEwLjE3MTg3NSAtMy45Njg3NSBDIDcuNzAzMTI1IC01LjQ0NTMxMiA1Ljc4NTE1NiAtNy41IDQuNDIxODc1IC0xMC4xMjUgQyAzLjA1NDY4OCAtMTIuNzU3ODEyIDIuMzc1IC0xNS44MDA3ODEgMi4zNzUgLTE5LjI1IEMgMi4zNzUgLTIyLjY0NDUzMSAzLjA1NDY4OCAtMjUuNjQ0NTMxIDQuNDIxODc1IC0yOC4yNSBDIDUuNzg1MTU2IC0zMC44NjMyODEgNy43MDMxMjUgLTMyLjg4MjgxMiAxMC4xNzE4NzUgLTM0LjMxMjUgQyAxMi42NDA2MjUgLTM1LjczODI4MSAxNS40ODQzNzUgLTM2LjQ1MzEyNSAxOC43MDMxMjUgLTM2LjQ1MzEyNSBDIDIxLjM3ODkwNiAtMzYuNDUzMTI1IDIzLjczODI4MSAtMzUuOTIxODc1IDI1Ljc4MTI1IC0zNC44NTkzNzUgQyAyNy44MjAzMTIgLTMzLjc5Njg3NSAyOS40NTMxMjUgLTMyLjI4NTE1NiAzMC42NzE4NzUgLTMwLjMyODEyNSBaIE0gMjAuMjY1NjI1IC03Ljg5MDYyNSBDIDIzLjMwNDY4OCAtNy44OTA2MjUgMjUuODAwNzgxIC04LjkyOTY4OCAyNy43NSAtMTEuMDE1NjI1IEMgMjkuNjk1MzEyIC0xMy4wOTc2NTYgMzAuNjcxODc1IC0xNS43NzM0MzggMzAuNjcxODc1IC0xOS4wNDY4NzUgQyAzMC42NzE4NzUgLTIyLjMwNDY4OCAyOS43MDcwMzEgLTI0Ljk2ODc1IDI3Ljc4MTI1IC0yNy4wMzEyNSBDIDI1Ljg1MTU2MiAtMjkuMDkzNzUgMjMuMzQ3NjU2IC0zMC4xMjUgMjAuMjY1NjI1IC0zMC4xMjUgQyAxNy4xNzk2ODggLTMwLjEyNSAxNC42NjQwNjIgLTI5LjA5Mzc1IDEyLjcxODc1IC0yNy4wMzEyNSBDIDEwLjc2OTUzMSAtMjQuOTY4NzUgOS43Njk1MzEgLTIyLjMwNDY4OCA5LjcxODc1IC0xOS4wNDY4NzUgQyA5Ljc2OTUzMSAtMTUuNzczNDM4IDEwLjc1NzgxMiAtMTMuMDk3NjU2IDEyLjY4NzUgLTExLjAxNTYyNSBDIDE0LjYxMzI4MSAtOC45Mjk2ODggMTcuMTQwNjI1IC03Ljg5MDYyNSAyMC4yNjU2MjUgLTcuODkwNjI1IFogTSAyMC4yNjU2MjUgLTcuODkwNjI1ICIvPjwvZz48L2c+PC9nPjxnIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkzLjQyODY4NiwgODgyLjMzNzM0NCkiPjxnPjxwYXRoIGQ9Ik0gMjcuMzQzNzUgLTM2LjQ1MzEyNSBDIDMxLjU2MjUgLTM2LjQ1MzEyNSAzNC44NTkzNzUgLTM1LjIxODc1IDM3LjIzNDM3NSAtMzIuNzUgQyAzOS42MTcxODggLTMwLjI4MTI1IDQwLjgxMjUgLTI2Ljg2NzE4OCA0MC44MTI1IC0yMi41MTU2MjUgTCA0MC44MTI1IDAgTCAzMi45ODQzNzUgMCBMIDMyLjk4NDM3NSAtMjAuMzQzNzUgQyAzMi45ODQzNzUgLTIzLjA2MjUgMzIuMjEwOTM4IC0yNS4yMDMxMjUgMzAuNjcxODc1IC0yNi43NjU2MjUgQyAyOS4xMjg5MDYgLTI4LjMyODEyNSAyNyAtMjkuMTA5Mzc1IDI0LjI4MTI1IC0yOS4xMDkzNzUgQyAyMS4xMDE1NjIgLTI5LjA2NjQwNiAxOC41ODIwMzEgLTI3Ljk4ODI4MSAxNi43MTg3NSAtMjUuODc1IEMgMTQuODYzMjgxIC0yMy43Njk1MzEgMTMuOTM3NSAtMjEuMDgyMDMxIDEzLjkzNzUgLTE3LjgxMjUgTCAxMy45Mzc1IDAgTCA2LjEyNSAwIEwgNi4xMjUgLTUwLjQ2ODc1IEwgMTMuOTM3NSAtNTAuNDY4NzUgTCAxMy45Mzc1IC0yOS4xMDkzNzUgQyAxNi40Mzc1IC0zNC4wMDM5MDYgMjAuOTA2MjUgLTM2LjQ1MzEyNSAyNy4zNDM3NSAtMzYuNDUzMTI1IFogTSAyNy4zNDM3NSAtMzYuNDUzMTI1ICIvPjwvZz48L2c+PC9nPjxnIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQwLjA3OTQ2OSwgODgyLjMzNzM0NCkiPjxnPjxwYXRoIGQ9Ik0gMjYuMjUgLTIuMzEyNSBDIDIzLjI1NzgxMiAtMC41MzkwNjIgMjAuMjg5MDYyIDAuMzQzNzUgMTcuMzQzNzUgMC4zNDM3NSBDIDE0LjM5NDUzMSAwLjM0Mzc1IDExLjk2ODc1IC0wLjUzOTA2MiAxMC4wNjI1IC0yLjMxMjUgQyA4LjE1NjI1IC00LjA4MjAzMSA3LjIwMzEyNSAtNi43MTA5MzggNy4yMDMxMjUgLTEwLjIwMzEyNSBMIDcuMjAzMTI1IC0yOC45Njg3NSBMIDIuMTA5Mzc1IC0yOC45Njg3NSBMIDIuMTA5Mzc1IC0zNC44MjgxMjUgTCA3LjIwMzEyNSAtMzQuODI4MTI1IEwgNy4yMDMxMjUgLTQ0Ljc1IEwgMTQuOTY4NzUgLTQ0Ljc1IEwgMTQuOTY4NzUgLTM0LjgyODEyNSBMIDI1LjY0MDYyNSAtMzQuODI4MTI1IEwgMjUuNjQwNjI1IC0yOC45Njg3NSBMIDE0Ljk2ODc1IC0yOC45Njg3NSBMIDE0Ljk2ODc1IC0xMS42MjUgQyAxNC45Njg3NSAtOS44MTI1IDE1LjI4NTE1NiAtOC41MzkwNjIgMTUuOTIxODc1IC03LjgxMjUgQyAxNi41NTQ2ODggLTcuMDkzNzUgMTcuNTMxMjUgLTYuNzM0Mzc1IDE4Ljg0Mzc1IC02LjczNDM3NSBDIDIwLjI4OTA2MiAtNi43MzQzNzUgMjIuMTAxNTYyIC03LjI1MzkwNiAyNC4yODEyNSAtOC4yOTY4NzUgWiBNIDI2LjI1IC0yLjMxMjUgIi8+PC9nPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNjguOTEzMjQ1LCA4ODIuMzM3MzQ0KSI+PGcvPjwvZz48L2c+PGcgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzODguNDMwNTAxLCA4ODIuMzM3MzQ0KSI+PGc+PHBhdGggZD0iTSAyNi4zOTA2MjUgLTI3LjA2MjUgQyAyNC44MDQ2ODggLTI4LjA2MjUgMjMuMDcwMzEyIC0yOC44NDM3NSAyMS4xODc1IC0yOS40MDYyNSBDIDE5LjMwMDc4MSAtMjkuOTc2NTYyIDE3LjU2NjQwNiAtMzAuMjY1NjI1IDE1Ljk4NDM3NSAtMzAuMjY1NjI1IEMgMTQuMzQ3NjU2IC0zMC4yNjU2MjUgMTMuMDUwNzgxIC0yOS45Njg3NSAxMi4wOTM3NSAtMjkuMzc1IEMgMTEuMTQ0NTMxIC0yOC43ODkwNjIgMTAuNjcxODc1IC0yNy44ODI4MTIgMTAuNjcxODc1IC0yNi42NTYyNSBDIDEwLjY3MTg3NSAtMjUuNDM3NSAxMS4yMjY1NjIgLTI0LjUwNzgxMiAxMi4zNDM3NSAtMjMuODc1IEMgMTMuNDU3MDMxIC0yMy4yMzgyODEgMTUuMzA0Njg4IC0yMi41MTU2MjUgMTcuODkwNjI1IC0yMS43MDMxMjUgQyAyMC4zMzU5MzggLTIwLjk3MjY1NiAyMi4zNjMyODEgLTIwLjI0MjE4OCAyMy45Njg3NSAtMTkuNTE1NjI1IEMgMjUuNTgyMDMxIC0xOC43OTY4NzUgMjYuOTY4NzUgLTE3LjcwNzAzMSAyOC4xMjUgLTE2LjI1IEMgMjkuMjgxMjUgLTE0LjgwMDc4MSAyOS44NTkzNzUgLTEyLjg5ODQzOCAyOS44NTkzNzUgLTEwLjU0Njg3NSBDIDI5Ljg1OTM3NSAtNy4wMDM5MDYgMjguNTMxMjUgLTQuMzE2NDA2IDI1Ljg3NSAtMi40ODQzNzUgQyAyMy4yMjY1NjIgLTAuNjQ4NDM4IDE5LjkyOTY4OCAwLjI2NTYyNSAxNS45ODQzNzUgMC4yNjU2MjUgQyAxMy4yNjU2MjUgMC4yNjU2MjUgMTAuNTk3NjU2IC0wLjE3MTg3NSA3Ljk4NDM3NSAtMS4wNDY4NzUgQyA1LjM3ODkwNiAtMS45Mjk2ODggMy4xOTE0MDYgLTMuMTcxODc1IDEuNDIxODc1IC00Ljc2NTYyNSBMIDQuMjE4NzUgLTEwLjM0Mzc1IEMgNS43NTc4MTIgLTguOTc2NTYyIDcuNjQ4NDM4IC03Ljg4MjgxMiA5Ljg5MDYyNSAtNy4wNjI1IEMgMTIuMTQwNjI1IC02LjI1IDE0LjI4NTE1NiAtNS44NDM3NSAxNi4zMjgxMjUgLTUuODQzNzUgQyAxOC4wODU5MzggLTUuODQzNzUgMTkuNTA3ODEyIC02LjE2MDE1NiAyMC41OTM3NSAtNi43OTY4NzUgQyAyMS42ODc1IC03LjQyOTY4OCAyMi4yMzQzNzUgLTguNDA2MjUgMjIuMjM0Mzc1IC05LjcxODc1IEMgMjIuMjM0Mzc1IC0xMC43MTg3NSAyMS45MDYyNSAtMTEuNTQ2ODc1IDIxLjI1IC0xMi4yMDMxMjUgQyAyMC41OTM3NSAtMTIuODU5Mzc1IDE5Ljc4NTE1NiAtMTMuMzc4OTA2IDE4LjgyODEyNSAtMTMuNzY1NjI1IEMgMTcuODc4OTA2IC0xNC4xNDg0MzggMTYuNSAtMTQuNjE3MTg4IDE0LjY4NzUgLTE1LjE3MTg3NSBDIDEyLjI4OTA2MiAtMTUuODkwNjI1IDEwLjMzMjAzMSAtMTYuNTk3NjU2IDguODEyNSAtMTcuMjk2ODc1IEMgNy4yODkwNjIgLTE4LjAwMzkwNiA1Ljk4NDM3NSAtMTkuMDUwNzgxIDQuODkwNjI1IC0yMC40Mzc1IEMgMy44MDQ2ODggLTIxLjgyMDMxMiAzLjI2NTYyNSAtMjMuNjcxODc1IDMuMjY1NjI1IC0yNS45ODQzNzUgQyAzLjI2NTYyNSAtMjkuNDI5Njg4IDQuNTMxMjUgLTMyLjA1MDc4MSA3LjA2MjUgLTMzLjg0Mzc1IEMgOS42MDE1NjIgLTM1LjYzMjgxMiAxMi43ODEyNSAtMzYuNTMxMjUgMTYuNTkzNzUgLTM2LjUzMTI1IEMgMTguOTA2MjUgLTM2LjUzMTI1IDIxLjE3OTY4OCAtMzYuMTk1MzEyIDIzLjQyMTg3NSAtMzUuNTMxMjUgQyAyNS42NzE4NzUgLTM0Ljg3NSAyNy42MTMyODEgLTMzLjk3NjU2MiAyOS4yNSAtMzIuODQzNzUgWiBNIDI2LjM5MDYyNSAtMjcuMDYyNSAiLz48L2c+PC9nPjwvZz48ZyBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQyMS41NDg1MjEsIDg4Mi4zMzczNDQpIj48Zz48cGF0aCBkPSJNIDIxLjI4MTI1IC0zNi40NTMxMjUgQyAyNC45NTcwMzEgLTM2LjQ1MzEyNSAyOC4yMjI2NTYgLTM1LjY3OTY4OCAzMS4wNzgxMjUgLTM0LjE0MDYyNSBDIDMzLjk0MTQwNiAtMzIuNTk3NjU2IDM2LjE2NDA2MiAtMzAuNDQxNDA2IDM3Ljc1IC0yNy42NzE4NzUgQyAzOS4zMzIwMzEgLTI0LjkxMDE1NiA0MC4xMjUgLTIxLjczODI4MSA0MC4xMjUgLTE4LjE1NjI1IEMgNDAuMTI1IC0xNC41MzEyNSAzOS4zMzIwMzEgLTExLjMyMDMxMiAzNy43NSAtOC41MzEyNSBDIDM2LjE2NDA2MiAtNS43NSAzMy45NDE0MDYgLTMuNTg1OTM4IDMxLjA3ODEyNSAtMi4wNDY4NzUgQyAyOC4yMjI2NTYgLTAuNTAzOTA2IDI0Ljk1NzAzMSAwLjI2NTYyNSAyMS4yODEyNSAwLjI2NTYyNSBDIDE3LjU3MDMxMiAwLjI2NTYyNSAxNC4yODUxNTYgLTAuNTAzOTA2IDExLjQyMTg3NSAtMi4wNDY4NzUgQyA4LjU2NjQwNiAtMy41ODU5MzggNi4zNDM3NSAtNS43NSA0Ljc1IC04LjUzMTI1IEMgMy4xNjQwNjIgLTExLjMyMDMxMiAyLjM3NSAtMTQuNTMxMjUgMi4zNzUgLTE4LjE1NjI1IEMgMi4zNzUgLTIxLjczODI4MSAzLjE2NDA2MiAtMjQuOTEwMTU2IDQuNzUgLTI3LjY3MTg3NSBDIDYuMzQzNzUgLTMwLjQ0MTQwNiA4LjU2NjQwNiAtMzIuNTk3NjU2IDExLjQyMTg3NSAtMzQuMTQwNjI1IEMgMTQuMjg1MTU2IC0zNS42Nzk2ODggMTcuNTcwMzEyIC0zNi40NTMxMjUgMjEuMjgxMjUgLTM2LjQ1MzEyNSBaIE0gMjEuMjgxMjUgLTI5Ljc5Njg3NSBDIDE4LjAxOTUzMSAtMjkuNzk2ODc1IDE1LjM1OTM3NSAtMjguNjkxNDA2IDEzLjI5Njg3NSAtMjYuNDg0Mzc1IEMgMTEuMjM0Mzc1IC0yNC4yODUxNTYgMTAuMjAzMTI1IC0yMS40Njg3NSAxMC4yMDMxMjUgLTE4LjAzMTI1IEMgMTAuMjAzMTI1IC0xNC41MzEyNSAxMS4yMzQzNzUgLTExLjY5MTQwNiAxMy4yOTY4NzUgLTkuNTE1NjI1IEMgMTUuMzU5Mzc1IC03LjMzNTkzOCAxOC4wMTk1MzEgLTYuMjUgMjEuMjgxMjUgLTYuMjUgQyAyNC41NTA3ODEgLTYuMjUgMjcuMjA3MDMxIC03LjMzNTkzOCAyOS4yNSAtOS41MTU2MjUgQyAzMS4yODkwNjIgLTExLjY5MTQwNiAzMi4zMTI1IC0xNC41MzEyNSAzMi4zMTI1IC0xOC4wMzEyNSBDIDMyLjMxMjUgLTIxLjQ2ODc1IDMxLjI4MTI1IC0yNC4yODUxNTYgMjkuMjE4NzUgLTI2LjQ4NDM3NSBDIDI3LjE1NjI1IC0yOC42OTE0MDYgMjQuNTA3ODEyIC0yOS43OTY4NzUgMjEuMjgxMjUgLTI5Ljc5Njg3NSBaIE0gMjEuMjgxMjUgLTI5Ljc5Njg3NSAiLz48L2c+PC9nPjwvZz48ZyBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ2NS4yMDcxMzIsIDg4Mi4zMzczNDQpIj48Zz48cGF0aCBkPSJNIDMwLjgxMjUgLTM2LjE4NzUgTCAzOC42NDA2MjUgLTM2LjE4NzUgTCAzOC42NDA2MjUgMCBMIDMwLjgxMjUgMCBMIDMwLjgxMjUgLTcuMDc4MTI1IEMgMjguNDU3MDMxIC0yLjI2NTYyNSAyNC4xNDg0MzggMC4xNzk2ODggMTcuODkwNjI1IDAuMjY1NjI1IEMgMTMuNzY1NjI1IDAuMjY1NjI1IDEwLjUxOTUzMSAtMC45NzY1NjIgOC4xNTYyNSAtMy40Njg3NSBDIDUuODAwNzgxIC01Ljk1NzAzMSA0LjYyNSAtOS4zNTkzNzUgNC42MjUgLTEzLjY3MTg3NSBMIDQuNjI1IC0zNi4xODc1IEwgMTIuNDUzMTI1IC0zNi4xODc1IEwgMTIuNDUzMTI1IC0xNS44NDM3NSBDIDEyLjQ1MzEyNSAtMTMuMTI1IDEzLjE5NTMxMiAtMTAuOTg0Mzc1IDE0LjY4NzUgLTkuNDIxODc1IEMgMTYuMTg3NSAtNy44NTkzNzUgMTguMjUgLTcuMDc4MTI1IDIwLjg3NSAtNy4wNzgxMjUgQyAyMy45MTQwNjIgLTcuMTE3MTg4IDI2LjMzMjAzMSAtOC4xOTE0MDYgMjguMTI1IC0xMC4yOTY4NzUgQyAyOS45MTQwNjIgLTEyLjQxMDE1NiAzMC44MTI1IC0xNS4wOTc2NTYgMzAuODEyNSAtMTguMzU5Mzc1IFogTSAzMC44MTI1IC0zNi4xODc1ICIvPjwvZz48L2c+PC9nPjxnIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTEwLjc2OTg1NywgODgyLjMzNzM0NCkiPjxnPjxwYXRoIGQ9Ik0gMTMuNjA5Mzc1IC0yOC45Njg3NSBDIDE0LjgyODEyNSAtMzEuNDE0MDYyIDE2LjUgLTMzLjI3MzQzOCAxOC42MjUgLTM0LjU0Njg3NSBDIDIwLjc1NzgxMiAtMzUuODE2NDA2IDIzLjI1NzgxMiAtMzYuNDUzMTI1IDI2LjEyNSAtMzYuNDUzMTI1IEwgMjYuMTI1IC0yOC45Njg3NSBDIDIyLjUzOTA2MiAtMjkuMTU2MjUgMTkuNjMyODEyIC0yOC4zMTY0MDYgMTcuNDA2MjUgLTI2LjQ1MzEyNSBDIDE1LjE4NzUgLTI0LjU5NzY1NiAxMy45MjE4NzUgLTIyLjA4MjAzMSAxMy42MDkzNzUgLTE4LjkwNjI1IEwgMTMuNjA5Mzc1IDAgTCA1Ljc4MTI1IDAgTCA1Ljc4MTI1IC0zNi4xODc1IEwgMTMuNjA5Mzc1IC0zNi4xODc1IFogTSAxMy42MDkzNzUgLTI4Ljk2ODc1ICIvPjwvZz48L2c+PC9nPjxnIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTM4LjcxOTU3NywgODgyLjMzNzM0NCkiPjxnPjxwYXRoIGQ9Ik0gMzEuMjgxMjUgLTI1LjUgQyAyOC42NTYyNSAtMjguMjI2NTYyIDI1LjMwMDc4MSAtMjkuNTkzNzUgMjEuMjE4NzUgLTI5LjU5Mzc1IEMgMTggLTI5LjU5Mzc1IDE1LjM1OTM3NSAtMjguNTIzNDM4IDEzLjI5Njg3NSAtMjYuMzkwNjI1IEMgMTEuMjM0Mzc1IC0yNC4yNTM5MDYgMTAuMjAzMTI1IC0yMS40Njg3NSAxMC4yMDMxMjUgLTE4LjAzMTI1IEMgMTAuMjAzMTI1IC0xNC42MjUgMTEuMjA3MDMxIC0xMS44NDM3NSAxMy4yMTg3NSAtOS42ODc1IEMgMTUuMjM4MjgxIC03LjUzOTA2MiAxNy44MTY0MDYgLTYuNDY4NzUgMjAuOTUzMTI1IC02LjQ2ODc1IEMgMjUuNTc4MTI1IC02LjQ2ODc1IDI5LjEzMjgxMiAtNy45MTQwNjIgMzEuNjI1IC0xMC44MTI1IEwgMzUuOTg0Mzc1IC02LjQ2ODc1IEMgMzQuMzQ3NjU2IC00LjI4OTA2MiAzMi4yMjI2NTYgLTIuNjI1IDI5LjYwOTM3NSAtMS40Njg3NSBDIDI3LjAwMzkwNiAtMC4zMTI1IDI0LjAwMzkwNiAwLjI2NTYyNSAyMC42MDkzNzUgMC4yNjU2MjUgQyAxNy4wNjY0MDYgMC4yNjU2MjUgMTMuOTEwMTU2IC0wLjUwMzkwNiAxMS4xNDA2MjUgLTIuMDQ2ODc1IEMgOC4zNzg5MDYgLTMuNTg1OTM4IDYuMjI2NTYyIC01LjczODI4MSA0LjY4NzUgLTguNSBDIDMuMTQ0NTMxIC0xMS4yNjk1MzEgMi4zNzUgLTE0LjQ0NTMxMiAyLjM3NSAtMTguMDMxMjUgQyAyLjM3NSAtMjEuNjU2MjUgMy4xNDQ1MzEgLTI0Ljg1OTM3NSA0LjY4NzUgLTI3LjY0MDYyNSBDIDYuMjI2NTYyIC0zMC40Mjk2ODggOC4zNzg5MDYgLTMyLjU5NzY1NiAxMS4xNDA2MjUgLTM0LjE0MDYyNSBDIDEzLjkxMDE1NiAtMzUuNjc5Njg4IDE3LjA2NjQwNiAtMzYuNDUzMTI1IDIwLjYwOTM3NSAtMzYuNDUzMTI1IEMgMjMuODI4MTI1IC0zNi40NTMxMjUgMjYuNzA3MDMxIC0zNS45NDE0MDYgMjkuMjUgLTM0LjkyMTg3NSBDIDMxLjc4OTA2MiAtMzMuODk4NDM4IDMzLjg5ODQzOCAtMzIuNDM3NSAzNS41NzgxMjUgLTMwLjUzMTI1IFogTSAzMS4yODEyNSAtMjUuNSAiLz48L2c+PC9nPjwvZz48ZyBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU3Ni44MDE3NTcsIDg4Mi4zMzczNDQpIj48Zz48cGF0aCBkPSJNIDIwLjY3MTg3NSAtMzYuNDUzMTI1IEMgMjYuMzkwNjI1IC0zNi40NTMxMjUgMzAuNjY0MDYyIC0zNC44NDM3NSAzMy41IC0zMS42MjUgQyAzNi4zMzIwMzEgLTI4LjQwNjI1IDM3Ljc1IC0yMy44NzUgMzcuNzUgLTE4LjAzMTI1IEMgMzcuNzUgLTE3LjQzNzUgMzcuNzAzMTI1IC0xNi40NTcwMzEgMzcuNjA5Mzc1IC0xNS4wOTM3NSBMIDEwLjI2NTYyNSAtMTUuMDkzNzUgQyAxMC44OTg0MzggLTEyLjI4MTI1IDEyLjIxMDkzOCAtMTAuMDY2NDA2IDE0LjIwMzEyNSAtOC40NTMxMjUgQyAxNi4yMDMxMjUgLTYuODQ3NjU2IDE4LjYzMjgxMiAtNi4wNDY4NzUgMjEuNSAtNi4wNDY4NzUgQyAyMy40NDUzMTIgLTYuMDQ2ODc1IDI1LjMwMDc4MSAtNi40MTAxNTYgMjcuMDYyNSAtNy4xNDA2MjUgQyAyOC44MzIwMzEgLTcuODY3MTg4IDMwLjM3NSAtOC45MTAxNTYgMzEuNjg3NSAtMTAuMjY1NjI1IEwgMzUuODQzNzUgLTUuODQzNzUgQyAzNC4wMzEyNSAtMy44OTQ1MzEgMzEuODUxNTYyIC0yLjM5MDYyNSAyOS4zMTI1IC0xLjMyODEyNSBDIDI2Ljc2OTUzMSAtMC4yNjU2MjUgMjMuOTU3MDMxIDAuMjY1NjI1IDIwLjg3NSAwLjI2NTYyNSBDIDE3LjIwNzAzMSAwLjI2NTYyNSAxMy45NzY1NjIgLTAuNTAzOTA2IDExLjE4NzUgLTIuMDQ2ODc1IEMgOC4zOTQ1MzEgLTMuNTg1OTM4IDYuMjI2NTYyIC01LjczODI4MSA0LjY4NzUgLTguNSBDIDMuMTQ0NTMxIC0xMS4yNjk1MzEgMi4zNzUgLTE0LjQ0NTMxMiAyLjM3NSAtMTguMDMxMjUgQyAyLjM3NSAtMjEuNjAxNTYyIDMuMTQ0NTMxIC0yNC43ODUxNTYgNC42ODc1IC0yNy41NzgxMjUgQyA2LjIyNjU2MiAtMzAuMzY3MTg4IDguMzk0NTMxIC0zMi41NDY4NzUgMTEuMTg3NSAtMzQuMTA5Mzc1IEMgMTMuOTc2NTYyIC0zNS42NzE4NzUgMTcuMTQwNjI1IC0zNi40NTMxMjUgMjAuNjcxODc1IC0zNi40NTMxMjUgWiBNIDMwLjgxMjUgLTIwLjgxMjUgQyAzMC42NzU3ODEgLTIzLjcxODc1IDI5LjcwMzEyNSAtMjYuMDA3ODEyIDI3Ljg5MDYyNSAtMjcuNjg3NSBDIDI2LjA3ODEyNSAtMjkuMzYzMjgxIDIzLjY5NTMxMiAtMzAuMjAzMTI1IDIwLjc1IC0zMC4yMDMxMjUgQyAxNy44ODI4MTIgLTMwLjIwMzEyNSAxNS41IC0yOS4zNjMyODEgMTMuNTkzNzUgLTI3LjY4NzUgQyAxMS42OTUzMTIgLTI2LjAwNzgxMiAxMC41NDY4NzUgLTIzLjcxODc1IDEwLjE0MDYyNSAtMjAuODEyNSBaIE0gMzAuODEyNSAtMjAuODEyNSAiLz48L2c+PC9nPjwvZz48L3N2Zz4=") "\00000A·  Razão Social: Ark Lamps Ltda  ·  CNPJ: 45.433.022/0001-83  ·  Endereço: Rua Fernandes Vieira, 318 - 1° Andar - Belenzinho - São Paulo - SP - CEP.: 03059-023  ·";
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
      font-size: 10pt;
      color: #000;
      vertical-align: bottom;
      padding-bottom: 5mm;
      white-space: pre;
      text-align: center;
      line-height: 1.3;
    }

    @bottom-right {
      content: "Página " counter(page) " de " counter(pages);
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
      font-size: 10pt;
      font-weight: 400;
      color: #000;
      vertical-align: bottom;
      padding-bottom: 8mm;  /* rc385: era 4mm — sobe rodapé (logo + razão social + página) ~15px */
      margin-right: -15mm;
      white-space: nowrap;
    }
  }

  /* Esconde TUDO do body, menos a print-view (que está direto no body via JS) */
  body > * { display: none !important; }
  /* rc414: reforço — esconde footer global e outros elementos que podem duplicar conteúdo */
  footer.site-footer,
  header.site-header,
  .site-footer,
  .site-header,
  .footer-bottom-info,
  body > footer,
  body > header,
  body > main { display: none !important; visibility: hidden !important; }
  body > .ark-cart-print-view {
    display: block !important;
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-size: 11.5pt;
    color: #1A1A1A;
    line-height: 1.4;
    padding: 0;
    margin: 0;
    background: #fff;
    -webkit-font-smoothing: antialiased;
  }
  body { background: #fff !important; margin: 0; padding: 0; color: #1A1A1A; }

  /* Habilita cores em qualquer browser */
  .ark-cart-print-view,
  .ark-cart-print-view * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .ark-cart-print-view *, .ark-cart-print-view *::before, .ark-cart-print-view *::after {
    box-sizing: border-box;
  }
  .ark-cart-print-view table { border-collapse: collapse; }
  .ark-cart-print-view img { display: block; max-width: 100%; }

  /* ============= DOC TITLE — rc224: revertido pro padrão pré-rc223
     Logo absolute top-left + h1 "Orçamento ARK-..." centralizado (com ARK em azul). ============= */
  .ark-cart-print-view .doc-title-row {
    /* rc245: text-align left (logo a esquerda) */
    /* rc376: borda preta fina (gestor: "linha abaixo do logo superior preta e fina") */
    position: relative;
    text-align: left;
    margin: 0 0 14px;
    padding-bottom: 0;
    border-bottom: 0.3pt solid #000;
    page-break-after: avoid;
  }
  .ark-cart-print-view .doc-title-row .doc-logo {
    /* rc245: alinhamento ESQUERDA (rc244 estava centro por confusao); 2px da linha */
    display: block;
    margin: 0 0 2px 0;
    width: 180px;
  }
  .ark-cart-print-view .doc-title-row .doc-logo img {
    display: block;
    width: 180px;
    height: auto;
  }
  .ark-cart-print-view .doc-title-row .doc-title {
    /* rc377: bottom 2px → 6px — gestor pediu título "Orçamento ARK-..." mais ALTO */
    position: absolute;
    bottom: 6px;
    right: 0;
    font-size: 13pt;
    font-weight: 600;
    color: #0A0A0A;
    letter-spacing: -0.005em;
    line-height: 1.2;
    margin: 0;
  }
  .ark-cart-print-view .doc-title-row .doc-title .doc-number {
    color: #3483FA;
  }

  /* ============= DOC HEADER — table 3 colunas (3 pares label/value) zebrada ============= */
  /* rc376: borda preta fina (gestor pediu padronização com as outras linhas) */
  .ark-cart-print-view .doc-header {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 0.3pt solid #000;
    page-break-after: avoid;
  }
  .ark-cart-print-view .info-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11pt;
  }
  .ark-cart-print-view .info-table th {
    font-weight: 600;
    color: #0A0A0A;
    text-align: left;
    padding: 6px 8px;
    white-space: nowrap;
    vertical-align: top;
  }
  .ark-cart-print-view .info-table td {
    font-weight: 400;
    color: #3D3D3D;
    padding: 6px 8px;
    vertical-align: top;
  }
  .ark-cart-print-view .info-table td:nth-child(2) { width: 38%; }
  .ark-cart-print-view .info-table td:nth-child(4) { width: 22%; }
  .ark-cart-print-view .info-table td:nth-child(6) { width: 22%; }
  /* rc377: gestor pediu retirar bordas em cima/embaixo da linha "Obra/Resp.Téc./E-mail"
     (linha 2) e zebra começa na linha 1 (linha superior). Solução: zebra em
     :nth-child(odd) = linhas 1 e 3 cinza, linha 2 branca, SEM bordas separadoras. */
  .ark-cart-print-view .info-table tbody tr:nth-child(odd) th,
  .ark-cart-print-view .info-table tbody tr:nth-child(odd) td {
    background: #EFEFEF;
  }

  /* ============= TABELA DE PRODUTOS — rc361 ============= */
  /* Bordas pretas finas (0.5pt #000) · sem negrito · fonte Inter unificada
     · zebra cinza neutro (#F4F4F4) em linhas E header · sem bordas nas fotos */
  .ark-cart-print-view,
  .ark-cart-print-view * {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, 'Segoe UI', sans-serif;
  }
  .ark-cart-print-view .products-table {
    width: 100%;
    margin-top: 4px;
    border: 0.3pt solid #000;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 11.5pt;
  }
  .ark-cart-print-view .products-table thead.print-thead { display: table-row-group; } /* rc555: era table-header-group — repetia o cabeçalho vazio na página 2 quando a tabela acabava na página 1 */
  .ark-cart-print-view .products-table thead.print-thead th {
    background: #F4F4F4;
    color: #000;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 10.5pt;
    padding: 8px 10px;
    border-bottom: 0.3pt solid #000;
    text-align: center;
    vertical-align: middle;
    line-height: 1.25;
  }
  .ark-cart-print-view .products-table thead.print-thead .col-desc { text-align: left; }
  .ark-cart-print-view .products-table thead.print-thead .col-preco,
  .ark-cart-print-view .products-table thead.print-thead .col-subtotal { text-align: right; }
  .ark-cart-print-view .products-table tbody td {
    padding: 10px;
    vertical-align: top;
    border-bottom: 0.3pt solid #000;
    font-size: 11.5pt;
    color: #000;
    background: #fff;
    font-weight: 400;
  }
  /* rc382: célula de descrição com padding lateral mínimo pra caber mais info técnica por linha. */
  .ark-cart-print-view .products-table tbody td.cell-desc {
    padding-left: 4px;
    padding-right: 4px;
  }
  /* Zebra: linhas ímpares com cinza neutro (sem azulado) */
  /* rc362: zebra tbody removida */
  .ark-cart-print-view .products-table tbody tr:last-child td { border-bottom: 0; }
  .ark-cart-print-view .products-table .row-product,
  .ark-cart-print-view .products-table .row-product td {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* Larguras das colunas */
  .ark-cart-print-view .products-table .col-codigo   { width:  9%; text-align: center; vertical-align: middle; }
  .ark-cart-print-view .products-table .col-foto     { width:  8%; text-align: center; vertical-align: middle; }
  .ark-cart-print-view .products-table .col-desc     { width: 50%; }
  .ark-cart-print-view .products-table .col-preco    { width: 10%; text-align: right; white-space: nowrap; vertical-align: middle; }
  .ark-cart-print-view .products-table .col-qtd      { width:  6%; text-align: center; vertical-align: middle; }
  .ark-cart-print-view .products-table .col-subtotal { width: 13%; text-align: right; white-space: nowrap; vertical-align: middle; }

  /* Cód./Ambiente */
  .ark-cart-print-view .cell-codigo { text-align: center; vertical-align: middle; }
  .ark-cart-print-view .cell-codigo strong {
    display: block;
    font-weight: 400;
    font-size: 12pt;
    color: #000;
    font-family: 'SF Mono', Consolas, monospace;
    letter-spacing: 0.02em;
    margin-bottom: 4px;
  }
  .ark-cart-print-view .cell-codigo .ambiente {
    display: block;
    font-size: 10.5pt;
    font-weight: 400;
    color: #000;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.3;
  }

  /* Foto — rc361: SEM borda, 20% menor (80→64px) */
  .ark-cart-print-view .cell-foto img,
  .ark-cart-print-view .cell-foto .img-placeholder {
    display: inline-block;
    width: 64px;
    height: 64px;
    /* 2026-09-05 (gestor): foto inteira também no PDF do orçamento — era `cover` e cortava */
    object-fit: contain;
    background: transparent;
    border: 0;
  }
  .ark-cart-print-view .cell-foto .img-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10pt;
    color: #000;
    text-align: center;
    line-height: 1.2;
    padding: 4px;
    font-weight: 400;
  }

  /* Descrição — TUDO regular */
  .ark-cart-print-view .cell-desc .desc-sku {
    font-size: 10.5pt;
    color: #000;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 3px;
    font-family: 'SF Mono', Consolas, monospace;
    font-weight: 400;
  }
  .ark-cart-print-view .cell-desc .desc-nome {
    font-size: 10.5pt;  /* rc570: era 10pt — meio termo entre 11pt e 10pt; equipe achou 10pt pequeno */
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #000;
    line-height: 1.3;
    margin-bottom: 4px;
  }
  .ark-cart-print-view .cell-desc .desc-marca { display: none !important; }
  /* rc378: Dimensão e Garantia abaixo das info técnicas */
  .ark-cart-print-view .cell-desc .desc-dimensao {
    font-size: 10.5pt;
    color: #000;
    margin-top: 4px;
    font-weight: 400;
  }
  .ark-cart-print-view .cell-desc .desc-dimensao strong { font-weight: 600; }
  .ark-cart-print-view .cell-desc .desc-garantia {
    font-size: 10.5pt;
    color: #000;
    margin-top: 2px;
    font-weight: 400;
  }
  .ark-cart-print-view .cell-desc .desc-garantia strong { font-weight: 600; }

  /* Info técnica — Mockup A: linha única separada por "|" (rc384).
     Cada par "Label: Valor |" é um `.tech-item` inline-block com white-space:nowrap,
     então ao chegar no fim da linha o item INTEIRO quebra (nunca parte dele).
     text-align:left (era justify): justify esticava os espaços de forma desigual;
     left mantém EXATAMENTE 1 espaço HTML em volta do "|" (uniforme). */
  .ark-cart-print-view .cell-desc .desc-techs {
    font-size: 10.5pt;
    color: #000;
    line-height: 1.55;
    margin: 4px 0 0;
    padding: 0;
    font-style: normal;
    text-align: left;
  }
  .ark-cart-print-view .cell-desc .desc-techs .tech-item {
    display: inline-block;
    white-space: nowrap;
  }
  .ark-cart-print-view .cell-desc .desc-techs .label { font-weight: 600; color: #000; }
  .ark-cart-print-view .cell-desc .desc-techs .val   { font-weight: 400; color: #000; }
  .ark-cart-print-view .cell-desc .desc-techs .sep   { color: #999; }

  /* Preço/Qtd/Subtotal */
  .ark-cart-print-view .cell-preco   { color: #000; font-weight: 400; font-size: 11.5pt; }
  .ark-cart-print-view .cell-qtd     { font-weight: 400; font-size: 12pt;   color: #000; }
  .ark-cart-print-view .cell-subtotal{ font-weight: 400; font-size: 12pt;   color: #000; }

  /* ============= FECHAMENTO — Condições · Totais com QR ============= */
  /* rc364: .totals-divider <hr> removido do HTML (era órfão na pág 2 quando .closing-wrap
     quebrava de página). Border-top movido pro .closing-wrap (separador visual mantido). */
  .ark-cart-print-view .totals-divider { display: none !important; }
  .ark-cart-print-view .closing-wrap {
    display: grid;
    grid-template-columns: 1fr 380px;
    border-top: 0;
    padding-top: 0;
    gap: 16px;
    align-items: stretch;
    margin-top: 0;
    /* rc571: removido `position:relative; top:-38mm` (rc562) — combinava com page-break-before:always pra
       puxar a closing-wrap visualmente pra cima sobrepondo o fim da p1. Com break forçado, o motor
       coloca no topo da p2 sem espaço fantasma, então o offset visual fica desnecessário e nocivo. */
    page-break-inside: avoid;
    page-break-before: always; /* rc570: força closing-wrap a SEMPRE começar em pág nova */
  }
  /* rc557: separador removido — border-bottom da products-table aparecia flutuando no topo da página 2.
     Aceito que não há separador visual entre products e closing-wrap; o gap natural dos blocos basta. */

  /* Bloco Condições — rc362: SEM fundo cinza (gestor pediu) */
  .ark-cart-print-view .conditions-box {
    padding: 14px 18px;
    background: #fff;
    border: 0.3pt solid #000;
    font-size: 11pt;
    line-height: 1.55;
    color: #3D3D3D;
    text-align: justify;
    text-justify: inter-word;
    display: block;
  }
  .ark-cart-print-view .conditions-box .conditions-main { width: 100%; }
  .ark-cart-print-view .conditions-box .conditions-title {
    font-size: 11pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #717171;
    margin: 0 0 10px;
    text-align: left;
  }
  .ark-cart-print-view .conditions-box .condition-attention {
    background: #FFF8E1;
    border-left: 2pt solid #E8001D;
    padding: 6px 10px;
    margin: 0 0 10px;
    font-size: 11pt;
    font-weight: 600;
    color: #0A0A0A;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-align: left;
  }
  .ark-cart-print-view .conditions-box .condition-item {
    margin: 0 0 6px;
    font-size: 11pt;
    color: #3D3D3D;
    letter-spacing: 0.02em;
    font-weight: 400;
  }
  .ark-cart-print-view .conditions-box .condition-item strong {
    color: #0A0A0A;
    font-weight: 600;
  }
  .ark-cart-print-view .conditions-box .condition-payment-title {
    margin: 10px 0 4px;
    font-size: 11pt;
    font-weight: 700;
    color: #0A0A0A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-align: left;
  }
  .ark-cart-print-view .conditions-box ul.payment-list {
    list-style: none; margin: 0; padding: 0; text-align: left;
  }
  .ark-cart-print-view .conditions-box ul.payment-list li {
    position: relative;
    padding: 2px 0 2px 14px;
    font-size: 11pt;
    color: #3D3D3D;
    line-height: 1.4;
    font-weight: 400;
  }
  .ark-cart-print-view .conditions-box ul.payment-list li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: #B8B8B8;
    font-weight: 400;
  }
  .ark-cart-print-view .conditions-box ul.payment-list li strong {
    color: #0A0A0A;
    font-weight: 600;
  }

  /* Bloco Totais — rc362: SEM fundo cinza (gestor pediu); discount vermelho + total azul mantidos */
  .ark-cart-print-view .totals-box {
    padding: 14px 18px;
    background: #fff;
    border: 0.3pt solid #000;
    display: flex;
    flex-direction: column;
    align-self: stretch;
  }
  .ark-cart-print-view .totals-box .totals-rows {
    display: flex; flex-direction: column; gap: 6px;
  }
  .ark-cart-print-view .totals-box .row {
    display: flex;
    justify-content: space-between;
    font-size: 11.5pt;
    color: #3D3D3D;
    font-weight: 400;
    gap: 8px;
  }
  /* rc799: valor NUNCA quebra em duas linhas (ex.: "R$" numa linha e "176,71" na outra) —
     o rótulo comprido é quem cede espaço, o número fica inteiro */
  .ark-cart-print-view .totals-box .row span:last-child,
  .ark-cart-print-view .totals-box .row strong {
    white-space: nowrap;
    flex-shrink: 0;
  }
  .ark-cart-print-view .totals-box .row.discount span:last-child {
    color: #E8001D; font-weight: 600;
  }
  .ark-cart-print-view .totals-box .row.final {
    margin-top: 6px;
    padding-top: 10px;
    border-top: 0.3pt solid #000;
    font-size: 12pt;
    color: #0A0A0A;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .ark-cart-print-view .totals-box .row.final strong {
    font-size: 15pt;
    color: #3483FA;
    font-weight: 700;
    letter-spacing: 0;
  }

  /* QR Code + explicação ao lado (rc361) — flex 2 colunas dentro do totals-box */
  .ark-cart-print-view .totals-box .qr-block-in-totals {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 0.3pt solid #000;
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .ark-cart-print-view .totals-box .qr-block-in-totals img {
    width: 170px;
    height: 170px;
    display: block;
    background: #fff;
    padding: 4px;
    border: 0.3pt solid #000;
    flex-shrink: 0;
  }
  .ark-cart-print-view .totals-box .qr-block-in-totals .qr-explain {
    flex: 1;
    font-size: 10.5pt;
    line-height: 1.5;
    color: #3D3D3D;
    text-align: left;
  }
  .ark-cart-print-view .totals-box .qr-block-in-totals .qr-explain-title {
    font-size: 11pt;
    font-weight: 700;
    color: #0A0A0A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
  }
  .ark-cart-print-view .totals-box .qr-block-in-totals .qr-explain p {
    margin: 0;
    font-weight: 400;
  }

  /* ============= TELEFONE c/ ícone WhatsApp ============= */
  .ark-cart-print-view .info-tel-wrap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  .ark-cart-print-view .info-wa-icon {
    display: inline-block;
    flex-shrink: 0;
    transform: translateY(-1px);
  }

  .ark-cart-print-view .closing-wrap { page-break-after: avoid; }

  /* ============= RODAPÉ via @bottom-left (rc371 — abordagem "imagem fixa") =============
     <tfoot> e .doc-footer HTML desativados — rodapé agora é PNG fixo no margin box
     do @page (ver acima). Repete em CADA página automaticamente, sem bugs. */
  .ark-cart-print-view .doc-footer { display: none !important; }
  .ark-cart-print-view .doc-footer-tfoot { display: none !important; }
  .ark-cart-print-view .doc-footer-tfoot .doc-footer-cell {
    border: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  .ark-cart-print-view .doc-footer-row {
    display: flex;
    align-items: center;
    gap: 12px;
    border-top: 0.3pt solid #000;
    padding: 3mm 0 0 0;
    margin: 8px 0 0 0;
    color: #000;
    font-size: 10pt;
    line-height: 1.4;
    letter-spacing: 0.02em;
    font-weight: 400;
    white-space: nowrap;
  }
  .ark-cart-print-view .doc-footer-row .footer-mini-logo {
    height: 15mm;
    width: auto;
    flex-shrink: 0;
  }
  .ark-cart-print-view .doc-footer-row .footer-info {
    flex: 1;
    color: #000;
    font-size: 10pt;
  }
  .ark-cart-print-view .doc-footer-row .footer-page-num {
    flex-shrink: 0;
    font-size: 10pt;
    color: #000;
    font-weight: 400;
  }
  /* rc370: REVERT rc369 — restaurado ::before counter() (estado rc368) */
  .ark-cart-print-view .doc-footer-row .footer-page-num::before {
    content: "Página " counter(page) " de " counter(pages);
  }
  .ark-cart-print-view .doc-footer .footer-info {
    color: #000;
    font-size: 9.5pt;
  }
} /* rc380: fecha @media print (chave faltante quebrava parser, drawer/carrinho desconfigurados na tela). */

/* Esconde o rodapé HTML do print na visualização normal (tela). */
@media screen {
  .ark-cart-print-view .doc-footer { display: none; }
}

/* Estilo do número do carrinho no título (visível na tela) — rc210 */
.ark-cart-number {
  display: inline-block;
  margin-left: 14px;
  padding: 4px 10px;
  background: #f0f5ff;
  color: var(--cor-azul-esc);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  /* rc439: !important pra vencer .ark-cart-page span { font-family: var(--font-body) } (line 695) */
  font-family: 'SF Mono', Consolas, monospace !important;
  border-radius: 3px;
  border: 1px solid #d0e0ff;
  vertical-align: middle;
}

/* Toast de remoção AJAX (rc222) — feedback inline quando item sai sem reload */
.ark-cart-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translate(-50%, 16px);
  background: #1a1a1a;
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 10px 18px;
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
  opacity: 0;
  transition: opacity 220ms ease, transform 220ms ease;
  z-index: 9999;
  pointer-events: none;
}
.ark-cart-toast.is-show {
  opacity: 1;
  transform: translate(-50%, 0);
}

.ark-cart-table {
  border: 1px solid var(--cor-cinza-100);
  border-radius: 4px;
  background: #fff;
  margin-bottom: 32px;
  overflow: hidden;
}
.ark-cart-thead,
.ark-cart-row {
  display: grid;
  grid-template-columns: 156px 1fr 156px 100px 140px 120px 36px;
  gap: 0;
  align-items: start; /* rc182: todas as colunas alinhadas no topo */
}
.ark-cart-thead { align-items: center; }
.ark-cart-thead {
  background: #2A2A2A;
  color: #fff;
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}
.ark-cart-thead > * { padding: 12px 12px; }
.ark-cart-thead .col-foto { text-align: center; }
.ark-cart-thead .col-preco { text-align: right; }
.ark-cart-thead .col-qtd { text-align: center; }
.ark-cart-thead .col-subtotal { text-align: right; color: var(--cor-azul); }

.ark-cart-row {
  border-bottom: 1px solid var(--cor-cinza-100);
  padding: 0;
  background: #fff;
  position: relative;
}
.ark-cart-row > * {
  padding: 14px 12px;
  min-width: 0;
}
.ark-cart-row:last-of-type { border-bottom: 0; }
.ark-cart-table { width: 100%; }

/* rc789-791: Observação larga — abaixo do campo Ambiente, células mescladas da coluna
   Código/Ambiente até Subtotal (2 linhas); foto/descrição/remover atravessam as 2 linhas */
.ark-cart-row:not(.ark-cart-thead) > .col-foto,
.ark-cart-row:not(.ark-cart-thead) > .col-descricao,
.ark-cart-row:not(.ark-cart-thead) > .col-remove { grid-row: 1 / span 2; }
.ark-cart-row .ark-cart-obs-wide { grid-column: 3 / 7; grid-row: 2; align-self: start; padding-top: 0; }
.ark-cart-row .ark-cart-obs-wide textarea {
  width: 100%; resize: vertical; min-height: 46px;
  border: 1px solid var(--border-default);
  padding: 7px 10px;
  font-family: var(--font-body); font-size: 12px; line-height: 1.45;
  color: var(--cor-cinza-700);
  border-radius: 0; outline: none;
}
.ark-cart-row .ark-cart-obs-wide textarea:focus { border-color: var(--cor-preto); }

/* Coluna 1: Foto 140×140 */
.ark-cart-row .col-foto {
  display: flex;
  justify-content: center;
}
.ark-cart-row .col-foto img,
.ark-cart-row .col-foto a {
  display: block;
  width: 140px;
  height: 140px;
}
.ark-cart-row .col-foto img {
  /* 2026-09-05 (gestor): foto inteira também na linha do carrinho — era `cover` e cortava */
  object-fit: contain;
  border-radius: 3px;
  background: #f7f6f3;
}

/* Coluna 2: Descrição (SKU + nome + marca + variações com driver via filter) */
.ark-cart-row .col-descricao {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.ark-cart-sku-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 10.5px;
  color: var(--cor-cinza-500);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 2px;
}
.ark-cart-sku-line .ark-cart-sku {
  flex: 0 0 220px; /* espaço reservado pra qualquer SKU até ~15-18 chars */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ark-cart-sku-line .ark-cart-despacho {
  flex: 1;
  text-align: right;
  white-space: nowrap;
}
.ark-cart-sku-line strong {
  color: var(--cor-preto);
  font-weight: 600;
  font-family: 'SF Mono', Consolas, monospace;
  letter-spacing: 0.02em;
}
.ark-cart-sku-line .ark-cart-despacho strong {
  font-family: var(--font-body);
  letter-spacing: 0.04em;
}
.ark-cart-name {
  font-size: 13.5px;
  color: var(--cor-preto);
  font-weight: 600;
  text-decoration: none;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.ark-cart-name:hover { color: var(--cor-azul); }
.ark-cart-brand { font-size: 11px; color: var(--cor-cinza-500); }

/* Variações cart page: linhas mais compactas, fonte 11px (rc182) */
.ark-cart-row .col-descricao dl.variation,
.ark-cart-row .col-descricao .variation {
  display: grid !important;
  grid-template-columns: max-content 1fr;
  column-gap: 0; /* rc257: zebra ponta-a-ponta — respiro via padding interno */
  row-gap: 0;
  font-size: 11px !important;
  color: var(--cor-cinza-700) !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  line-height: 1.35 !important;
  font-style: normal !important;
  font-family: var(--font-body) !important;
}
.ark-cart-row .col-descricao dl.variation dt,
.ark-cart-row .col-descricao .variation dt {
  display: block !important;
  font-weight: 600 !important;
  color: var(--cor-preto) !important;
  font-style: normal !important;
  margin: 0 !important;
  padding: 3px 12px 3px 8px !important; /* rc257: respiro à direita */
  white-space: nowrap;
}
.ark-cart-row .col-descricao dl.variation dd,
.ark-cart-row .col-descricao .variation dd {
  display: block !important;
  font-weight: 400 !important;
  color: var(--cor-cinza-700) !important;
  font-style: normal !important;
  margin: 0 !important;
  padding: 3px 8px !important;
}
.ark-cart-row .col-descricao dl.variation dd p,
.ark-cart-row .col-descricao .variation dd p {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
}
.ark-cart-row .col-descricao dl.variation dt::after,
.ark-cart-row .col-descricao .variation dt::after { content: '' !important; }
.ark-cart-row .col-descricao dl.variation dd::after,
.ark-cart-row .col-descricao .variation dd::after { content: '' !important; }
/* Zebra striping mais visível (cinza um pouco mais escuro que --cor-cinza-050) */
.ark-cart-row .col-descricao dl.variation dt:nth-of-type(even),
.ark-cart-row .col-descricao dl.variation dt:nth-of-type(even) + dd,
.ark-cart-row .col-descricao .variation dt:nth-of-type(even),
.ark-cart-row .col-descricao .variation dt:nth-of-type(even) + dd {
  background: #EFEFEF;
}
/* Obs (dt vazio): ocupa as 2 colunas em fonte menor com cor discreta */
.ark-cart-row .col-descricao dl.variation dt:empty + dd,
.ark-cart-row .col-descricao .variation dt:empty + dd {
  grid-column: 1 / -1;
  font-size: 11px !important;
  color: var(--cor-cinza-500) !important;
  font-style: italic !important;
}
.ark-cart-row .col-descricao dl.variation dt:empty,
.ark-cart-row .col-descricao .variation dt:empty {
  display: none !important;
}

/* Coluna 3: Código / Ambiente — 2 inputs empilhados */
.ark-cart-row .col-codamb {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ark-cart-field label {
  display: block;
  font-size: 9px;
  color: var(--cor-cinza-500);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 2px;
  font-weight: 600;
}
.ark-cart-field .locked-tag {
  color: var(--cor-vermelho, #c00);
  font-size: 8.5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  margin-left: 6px;
}
.ark-cart-field input {
  width: 100%;
  border: 1px solid var(--cor-cinza-200, #ddd);
  border-radius: 3px;
  padding: 6px 8px;
  font-size: 12px;
  font-family: inherit;
  background: #fff;
  transition: border-color 150ms;
}
.ark-cart-field input:focus {
  border-color: var(--cor-azul);
  outline: 0;
  box-shadow: 0 0 0 2px rgba(52, 131, 250, 0.15);
}
.ark-cart-codigo.is-locked {
  background: #fff5f5;
  border-color: var(--cor-vermelho, #c00);
  color: var(--cor-vermelho, #c00);
  font-weight: 600;
}

/* Coluna 4: Preço unitário */
.ark-cart-row .col-preco {
  font-size: 12.5px;
  color: var(--cor-preto);
  text-align: right;
}

/* Coluna 5: Qtd */
.ark-cart-row .col-qtd {
  display: flex;
  justify-content: center;
}
.ark-cart-qty {
  display: grid;
  grid-template-columns: 30px 42px 30px;
  height: 32px;
  border: 1px solid var(--cor-cinza-200, #ddd);
  border-radius: 3px;
  background: #fff;
  overflow: hidden;
}
.ark-cart-qty .qty-btn {
  border: 0;
  background: #fafafa;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  color: var(--cor-cinza-700);
  transition: background 120ms, color 120ms;
}
.ark-cart-qty .qty-btn:hover { color: var(--cor-azul); background: #f0f4ff; }
.ark-cart-qty .qty-input {
  border: 0;
  border-left: 1px solid var(--cor-cinza-200, #ddd);
  border-right: 1px solid var(--cor-cinza-200, #ddd);
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  background: transparent;
  outline: none;
  -moz-appearance: textfield;
  width: 100%;
  height: 100%;
}
.ark-cart-qty .qty-input::-webkit-inner-spin-button,
.ark-cart-qty .qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* Coluna 6: Subtotal — AZUL ARK */
.ark-cart-row .col-subtotal {
  font-size: 14px;
  font-weight: 700;
  color: var(--cor-azul);
  text-align: right;
}

/* Coluna 7: × excluir com tooltip "Excluir Produto" */
.ark-cart-row .col-remove {
  text-align: center;
  padding: 0 !important;
}
.ark-cart-remove {
  display: inline-block;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: transparent;
  color: var(--cor-cinza-500);
  font-size: 18px;
  text-decoration: none;
  line-height: 28px;
  text-align: center;
  position: relative;
  transition: background 120ms, color 120ms;
}
.ark-cart-remove:hover {
  background: #ffeded;
  color: var(--cor-vermelho, #c00);
}
.ark-cart-remove::after {
  content: attr(data-tooltip);
  position: absolute;
  background: #2A2A2A;
  color: #fff;
  font-size: 10.5px;
  padding: 4px 8px;
  border-radius: 3px;
  bottom: calc(100% + 6px);
  right: 0;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 120ms;
}
.ark-cart-remove:hover::after { opacity: 1; }

/* Chevron mobile e meta/price/body mobile — OCULTOS em desktop (rc181 fix) */
.ark-cart-row-chevron,
.ark-cart-mobile-meta,
.ark-cart-mobile-price,
.ark-cart-mobile-body {
  display: none;
}

/* Footer (rc188): grid 2-rows, continuar comprando esq + Frete + Cupom/Preços dir, Finalizar embaixo
   ┌──────────────────────────┬─────────────┬─────────────┐
   │ Continuar comprando      │   Frete     │ Cupom+Preço │  ← linha 1 (stretch)
   ├──────────────────────────┼─────────────┴─────────────┤
   │                          │       [Finalizar Pedido]  │  ← linha 2
   └──────────────────────────┴───────────────────────────┘
   */
.ark-cart-footer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px 24px;
  margin-bottom: 24px;
  align-items: start;
}
.ark-cart-footer-left {
  grid-row: 1;
  grid-column: 1;
  display: flex;
  align-items: flex-start;
  padding-top: 4px;
}
.ark-cart-footer-right-wrap {
  grid-row: 1;
  grid-column: 2;
  display: grid;
  grid-template-columns: 400px 400px;
  grid-template-rows: auto auto;
  gap: 20px;
  align-items: stretch; /* rc195: blocos esquerda/direita esticam pra mesma altura */
}
.ark-cart-footer-right-wrap .ark-cart-shipping {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
}
.ark-cart-footer-right-wrap .ark-cart-footer-right {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
}
/* rc198: tabela cinza ALTURA FIXA correspondente aos 4 cards de frete
   Cada card: ~42px (6+content~30+6 + border 2) + gap 4px entre cards
   4 cards: 4×42 + 3×4 = 180px. Adicionamos folga: 184px. */
.ark-cart-footer-right-wrap .ark-cart-footer-right > .ark-cart-totals {
  flex-grow: 1;
  min-height: 184px;
}
/* Finalizar dentro do wrap, mesma coluna do bloco de preços (400px) — rc190 */
.ark-cart-footer-right-wrap .ark-cart-finalize {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ark-cart-section-title {
  display: block;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--cor-preto);
  margin-bottom: 6px;
}

/* Drawer de produto (2026-09-05): abrir o produto na gaveta para escolher opções e dizer o
   ambiente, sem sair da listagem. */
.ark-prod-drawer { padding: 16px 18px 20px; }
.ark-prod-drawer-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.ark-prod-drawer-foto {
  width: 72px; height: 72px; object-fit: contain; flex: 0 0 72px;
  border: 1px solid var(--cor-cinza-200, #e5e3de); border-radius: 4px; background: #fff;
}
.ark-prod-drawer-sku { font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--cor-cinza-700, #717171); font-weight: 600; }
.ark-prod-drawer-nome { font-size: 13.5px; line-height: 1.35; margin: 2px 0 0; font-weight: 600; color: var(--cor-preto, #1a1a1a); }
.ark-prod-drawer-preco { font-size: 15px; font-weight: 700; color: var(--cor-preto, #1a1a1a); margin-bottom: 12px; }
.ark-prod-drawer-opc { font-weight: 400; color: var(--cor-cinza-700, #717171); }
.ark-prod-drawer-ambiente {
  width: 100%; height: 34px; padding: 0 10px; font: inherit; font-size: 12.5px;
  border: 1px solid var(--cor-cinza-200, #ddd); border-radius: 3px; background: #fff;
}
/* Os botões do drawer são o MESMO componente da página do produto (.config-row/.chip-group/.chip):
   padding, altura mínima, fonte e espaçamento vêm de lá. A única diferença medida era a largura —
   a gaveta é estreita, e em 3 colunas o chip ficava com 117px, o texto quebrava em duas linhas e a
   altura ia de 36px para 42px, deixando um botão diferente do outro. Em 2 colunas o rótulo cabe
   numa linha e a altura volta a bater com a página (medido em 2026-09-05). */
.ark-prod-drawer .chip-group,
.ark-prod-drawer .chip-group[data-attr] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Ficha técnica no drawer — mesma leitura da tabela do item no carrinho. */
.ark-prod-drawer-specs { width: 100%; border-collapse: collapse; margin: 12px 0 4px; font-size: 11.5px; }
.ark-prod-drawer-specs th,
.ark-prod-drawer-specs td { padding: 5px 8px; text-align: left; vertical-align: top; line-height: 1.35; }
.ark-prod-drawer-specs th { width: 42%; font-weight: 500; color: var(--cor-cinza-700, #717171); }
.ark-prod-drawer-specs td { color: var(--cor-preto, #1a1a1a); }
.ark-prod-drawer-specs tr:nth-child(odd) { background: var(--cor-cinza-50, #f7f6f3); }

.ark-prod-drawer-acoes { display: flex; gap: 8px; align-items: center; margin-top: 14px; }
.ark-prod-drawer-add {
  flex: 1; height: 38px; border: 0; border-radius: 4px; cursor: pointer;
  background: #3483FA; color: #fff; font: inherit; font-size: 13px; font-weight: 700;
}
.ark-prod-drawer-add:hover { filter: brightness(.95); }
.ark-prod-drawer-add:disabled { opacity: .6; cursor: default; }

/* Endereço já cadastrado no lugar do campo de CEP (2026-09-05): quem está logado vê para onde
   vai a entrega e só digita algo se quiser trocar. */
.ark-cart-endereco-salvo {
  display: flex;
  align-items: baseline;
  gap: 8px;
  justify-content: space-between;
  font-size: 12px;
  line-height: 1.45;
  color: var(--cor-preto);
}
.ark-cart-endereco-txt strong { font-weight: 600; }
.ark-cart-endereco-cep {
  display: block;
  font-size: 11px;
  color: var(--cor-cinza-700, #666);
}
.ark-cart-endereco-trocar {
  flex: 0 0 auto;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--cor-vermelho, #E63329);
  cursor: pointer;
  text-decoration: underline;
}
.ark-cart-endereco-trocar:hover { opacity: .8; }

.ark-cart-shipping .row {
  display: flex;
  gap: 6px;
  align-items: center;
}
.ark-cart-shipping input {
  flex: 1;
  height: 32px;
  padding: 0 10px;
  border: 1px solid var(--cor-cinza-200, #ddd);
  border-radius: 3px;
  font-size: 12px;
  font-family: inherit;
  background: #fff;
}
.ark-cart-shipping input:disabled { background: #fafafa; cursor: not-allowed; }

/* (Botão Calcular Frete — definido na regra unificada .ark-btn-cart-action mais abaixo, rc190) */

/* Endereço completo abaixo do CEP, fonte pequena */
.ark-cep-result {
  margin-top: 6px;
  font-size: 11px;
  color: var(--cor-cinza-700);
  line-height: 1.4;
}
.ark-cep-endereco {
  display: block;
  color: var(--cor-cinza-700);
  font-size: 11px;
  line-height: 1.4;
}
.ark-cep-error {
  color: var(--cor-vermelho, #c00);
  font-size: 11px;
  font-weight: 500;
}

/* Opções de frete compactas — todas próximas, sem título extra */
.ark-shipping-options {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* rc757: antes de calcular o CEP, as opções ficam ocultas (o [hidden] sozinho não vence o display:flex) */
.ark-shipping-options[hidden],
.ark-drawer-shipping-options[hidden] { display: none !important; }
/* rc757: composição do prazo (despacho + frete) em sub-linha menor */
/* 12/09 (gestor, print do checkout): a composição do prazo saía EMENDADA no checkout ("Até 10 dias
   úteis7 dias de preparo + 3 dias de frete") — o JS (arkRenderFretes) escreve o mesmo <span
   class="prazo-comp"> nos três lugares, mas a regra de bloco só cobria carrinho e gaveta. */
.ark-shipping-option-prazo .prazo-comp,
.ark-drawer-shipping-prazo .prazo-comp,
.ark-co-frete-opt-prazo .prazo-comp { display: block; font-size: 10px; color: var(--cor-cinza-500, #717171); margin-top: 1px; }
/* 12/09: opção de entrega dominada/indisponível some de verdade — o checkout tem
   `label.ark-co-frete-opt { display: grid !important }` que vencia o display:none inline. */
.ark-shipping-option.is-oculto,
.ark-drawer-shipping-option.is-oculto,
label.ark-co-frete-opt.is-oculto { display: none !important; }
.ark-shipping-option {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  align-items: center;
  column-gap: 8px;
  padding: 6px 10px;
  border: 1px solid var(--cor-cinza-200, #ddd);
  border-radius: 3px;
  cursor: pointer;
  transition: border-color 120ms, background 120ms;
  background: #fff;
}
.ark-shipping-option:hover { border-color: var(--cor-azul); background: #fafcff; }
/* rc754: transportadora indisponível pro CEP (ex.: John fora da Grande SP) */
.ark-shipping-option.is-disabled,
.ark-drawer-shipping-option.is-disabled {
  opacity: .5;
  cursor: not-allowed;
  background: #f7f6f3;
}
.ark-shipping-option.is-disabled:hover,
.ark-drawer-shipping-option.is-disabled:hover { border-color: var(--cor-cinza-200, #ddd); background: #f7f6f3; }
.ark-shipping-option.is-disabled .ark-shipping-option-preco,
.ark-drawer-shipping-option.is-disabled .ark-drawer-shipping-preco { font-size: 11px; color: var(--cor-vermelho); }
/* rc756: etiquetas "Mais barata" (verde) / "Mais rápida" (azul) no nome da transportadora */
.ark-frete-badge {
  display: inline-block; margin-left: 6px; padding: 1px 6px;
  font-size: 9px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  border-radius: 3px; vertical-align: middle; line-height: 1.5;
}
.ark-frete-badge.is-barata { background: #E6F6EC; color: #009929; border: 1px solid #A7E0BC; }
.ark-frete-badge.is-rapida { background: #EFF5FF; color: #2968D4; border: 1px solid #BCD7FB; }
.ark-shipping-option.is-selected {
  border-color: var(--cor-azul);
  background: #f0f6ff;
  box-shadow: 0 0 0 1px var(--cor-azul) inset;
}
.ark-shipping-option input[type="radio"] {
  margin: 0;
  width: 14px;
  height: 14px;
  accent-color: var(--cor-azul);
  cursor: pointer;
}
.ark-shipping-option-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ark-shipping-option-nome {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--cor-preto);
  line-height: 1.25;
}
.ark-shipping-option-prazo {
  font-size: 10px;
  color: var(--cor-cinza-500);
  margin-top: 1px;
}
.ark-shipping-option-preco {
  font-size: 11px;
  font-weight: 600;
  color: var(--cor-azul);
  white-space: nowrap;
}

/* Cupom inline acima dos totals — visual idêntico ao bloco "Calcular Frete" (rc189) */
.ark-cart-coupon-inline {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-bottom: 0; /* rc191: removido pra alinhar com .ark-cart-shipping .row */
}
.ark-cart-coupon-inline input {
  flex: 1;
  height: 32px;
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid var(--cor-cinza-200, #ddd);
  border-radius: 3px;
  font-size: 12px;
  font-family: var(--font-body);
  background: #fff;
  line-height: 1;
}
.ark-cart-coupon-inline input:disabled { background: #fafafa; color: #888; cursor: not-allowed; }
.ark-cart-coupon-inline input[readonly] { background: #fafafa; color: #555; cursor: default; }
/* rc645: mensagem de confirmação do cupom — ABAIXO do campo (substitui o notice no topo).
   Espelha .ark-drawer-coupon-msg. Ocupa o vão entre o cupom e a tabela de totais (o sync
   de altura mede .ark-cart-coupon-controls, então a msg não desalinha a tabela). */
.ark-cart-coupon-msg {
  display: block;
  margin-top: 6px;
  font-size: 11.5px;
  line-height: 1.3;
  color: #C0001A;
}
.ark-cart-coupon-msg.is-ok { color: #157347; }
.ark-cart-coupon-msg.is-muted { color: var(--cor-cinza-500, #888); }
.ark-cart-coupon-msg[hidden] { display: none; }
/* Botões "Calcular Frete" e "Aplicar Cupom" — regra UNIFICADA, mesma especificidade (rc190)
   Sem opacity no disabled — fica idêntico mesmo desabilitado, só muda cursor */
.ark-cart-page #ark-cep-calc-btn,
.ark-cart-page #ark-coupon-apply-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 32px !important;
  min-width: 92px;
  box-sizing: border-box !important;
  padding: 0 14px !important;
  margin: 0 !important;
  background: var(--cor-preto) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 3px !important;
  font-size: 11px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background 150ms;
  white-space: nowrap;
  line-height: 1 !important;
  opacity: 1 !important;
  vertical-align: middle;
}
.ark-cart-page #ark-cep-calc-btn:hover:not(:disabled),
.ark-cart-page #ark-coupon-apply-btn:hover:not(:disabled) {
  background: var(--cor-azul-esc) !important;
}
.ark-cart-page #ark-cep-calc-btn:disabled,
.ark-cart-page #ark-coupon-apply-btn:disabled {
  cursor: not-allowed;
  /* sem opacity nem mudança de cor — gestor quer visual idêntico ativo/disabled */
}

/* Banner inline de erro no checkout */
.ark-cart-checkout-banner {
  background: #fff5f5;
  border: 1px solid #f0c0c0;
  border-left: 3px solid var(--cor-vermelho, #c00);
  color: var(--cor-vermelho, #c00);
  padding: 10px 14px;
  border-radius: 3px;
  font-size: 12.5px;
  font-weight: 500;
  margin-bottom: 8px;
  line-height: 1.4;
}
.ark-cart-coupon button {
  height: 38px;
  padding: 0 18px;
  background: #ddd;
  border: 0;
  border-radius: 3px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: not-allowed;
  color: #888;
}
.ark-cart-shipping .hint {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--cor-cinza-100);
  text-align: center;
  line-height: 24px;
  color: var(--cor-cinza-700);
  cursor: help;
}

.ark-cart-footer-right { display: flex; flex-direction: column; gap: 0; }
/* rc193: tabela cinza alinhada com primeiro radio do frete (Correios PAC)
   Equivale a: altura do .ark-cep-result (6 margin-top + ~17px linha) + margin-top das options (10) ≈ 33px */
.ark-cart-footer-right > .ark-cart-totals { margin-top: 33px; }
/* rc205: estrutura em 2 áreas — topo (Subtotal/Cupom/Frete) e Total isolado.
   Total fica no centro do ESPAÇO SOBRA (entre fim do topo e fim do retângulo). */
.ark-cart-totals {
  display: flex;
  flex-direction: column;
  padding: 18px 20px;
  background: #fafafa;
  border-radius: 4px;
  border: 1px solid var(--cor-cinza-100);
}
.ark-cart-totals-top {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 0 0 auto; /* topo: altura natural, não estica */
}
.ark-cart-totals .row.final {
  flex: 1 1 auto; /* ocupa todo espaço sobra */
  display: flex;
  align-items: center; /* centro vertical do espaço sobra */
  justify-content: space-between;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid var(--cor-cinza-100);
}
.ark-cart-totals .row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: var(--cor-cinza-700);
}
.ark-cart-totals .row.final {
  font-size: 15px;
  padding-top: 12px;
  margin-top: 4px;
  border-top: 1px solid var(--cor-cinza-100);
  color: var(--cor-preto);
  font-weight: 700;
}
/* Total final em AZUL ARK */
.ark-cart-totals .row.final strong {
  color: var(--cor-azul);
  font-weight: 700;
  font-size: 18px;
}

/* Botão Finalizar em AZUL ARK */
/* Botão Finalizar — azul Ark (rc195: revertido pro estado original) */
.ark-cart-checkout {
  display: block;
  width: 100%;
  height: 48px;
  background: var(--cor-azul);
  color: #fff;
  text-align: center;
  line-height: 48px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 4px;
  transition: background 150ms;
}
.ark-cart-checkout:hover { background: var(--cor-azul-esc); color: #fff; }

/* Continuar comprando em AZUL ARK */
.ark-cart-continue {
  display: inline-block;
  padding: 10px 24px;
  border: 1px solid var(--cor-azul);
  color: var(--cor-azul);
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  background: #fff;
  border-radius: 3px;
  transition: background 150ms, color 150ms;
}
.ark-cart-continue:hover { background: var(--cor-azul); color: #fff; }

.ark-cart-empty { text-align: center; padding: 64px 24px; }
.ark-cart-empty p { font-size: 16px; color: var(--cor-cinza-700); margin-bottom: 16px; }

/* ============================================================
   MOBILE — Estilo drawer (≤ 768px) — rc425
   Layout único por item: foto 56 | info (nome+preço, chips COD/AMB, specs pipe, obs auto, qty+subtotal, obs editável) | remove 24
   Altura uniforme via min-height + line-clamp no nome/specs
   ============================================================ */

/* Por padrão, elementos mobile-only ficam escondidos no desktop */
.ark-cart-specs-mobile,
.ark-cart-autobs-mobile,
.ark-cart-mobile-specs-row { display: none; }

@media (max-width: 768px) {
  .ark-cart-page { max-width: 100%; padding: 16px 12px; margin: 16px auto; font-family: var(--font-body); }
  .ark-cart-title { font-size: 20px; }
  .ark-cart-thead { display: none; }

  /* rc434/rc438: número empilhado + mais respiro do menu/seção (cart=checkout) */
  .ark-cart-title-row {
    align-items: flex-start; /* botão Limpar alinha pelo topo do título */
    padding-top: 14px; /* rc438: distância do menu */
    padding-bottom: 14px;
    margin-bottom: 20px; /* rc438: distância da seção de baixo */
  }
  .ark-cart-title .ark-cart-number {
    display: block;
    margin: 4px 0 0;
    width: max-content;
  }

  /* rc433: remove borda externa do container — cada card já tem border próprio,
     evita borda dupla em volta da lista */
  .ark-cart-table {
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: visible;
  }

  /* Item card — drawer-style 4 rows, nome inteiro + specs full width + controles em 1 linha
     Grid (rc431):
       row 1: foto (56) | nome (1fr) | × (auto) — × volta pro topo direito
       row 2: specs+autobs (full width)
       row 3: codamb (full width — COD/AMB/OBS chips)
       row 4: qty | preço unit | subtotal (sem × — linha limpa) */
  .ark-cart-row {
    grid-template-columns: 56px 1fr auto auto;
    gap: 8px 10px;
    padding: 14px 16px;
    grid-template-areas:
      "foto desc  desc  remove"
      "spec spec  spec  spec"
      "cod  cod   cod   cod"
      "obs  obs   obs   obs"
      "qty  preco subt  subt";
    background: #fff;
    /* rc432: card destacado — border + radius + sombra discreta */
    border: 1px solid var(--cor-cinza-100);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    margin-bottom: 10px;
  }
  .ark-cart-row > * { padding: 0; }
  /* rc1092: a regra de mesa (rc789, "grid-row: 1 / span 2" em foto/descrição/remover) tem
     especificidade maior que as áreas do celular abaixo — a descrição atravessava as linhas
     "desc" e "spec" e o nome descia sobre a linha de specs (medido no retrato 66: 27px de
     interseção; print do gestor 15/09 22:47). Devolve cada coluna à sua área da grade. */
  .ark-cart-row:not(.ark-cart-thead) > .col-foto { grid-area: foto; }
  .ark-cart-row:not(.ark-cart-thead) > .col-descricao { grid-area: desc; }
  .ark-cart-row:not(.ark-cart-thead) > .col-remove { grid-area: remove; }

  /* Foto 56×56 fixa no canto superior esquerdo */
  .ark-cart-row .col-foto {
    grid-area: foto;
    flex-shrink: 0;
    align-self: flex-start;
  }
  .ark-cart-row .col-foto img,
  .ark-cart-row .col-foto a {
    width: 56px !important;
    height: 56px !important;
    background: var(--cor-cinza-050) !important;
    border: 1px solid var(--cor-cinza-100) !important;
    object-fit: contain !important;
    display: block !important;
  }
  .ark-cart-row .col-foto a { padding: 0; display: block; }

  /* Coluna nome — row 1 col 2, ocupa altura paralela à foto, sem truncate */
  .ark-cart-row .col-descricao {
    grid-area: desc;
    padding: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center; /* nome centralizado verticalmente na altura da foto */
    min-height: 56px;
    gap: 4px;
  }
  /* SKU/Despacho ocultos no mobile (info redundante com nome) */
  .ark-cart-row .col-descricao .ark-cart-sku-line { display: none; }
  /* Nome INTEIRO — sem truncate, quebra natural */
  .ark-cart-row .col-descricao .ark-cart-name {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--cor-preto);
    text-decoration: none;
    word-break: break-word;
  }
  /* Desktop variation data (dl) — escondido no mobile, substituído pelo pipe-string */
  .ark-cart-row .ark-cart-variation-desktop { display: none; }

  /* rc789: Observação larga no mobile — área própria full width */
  .ark-cart-row .ark-cart-obs-wide { grid-area: obs; }

  /* Row 2: bloco de specs + autobs, FULL WIDTH abaixo da foto+nome */
  .ark-cart-row .ark-cart-mobile-specs-row {
    grid-area: spec;
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 2px;
  }
  .ark-cart-row .ark-cart-specs-mobile {
    display: block;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
    color: var(--cor-cinza-700);
    word-break: break-word;
    /* sem line-clamp — mostra inteiro */
  }
  .ark-cart-row .ark-cart-autobs-mobile {
    display: block;
    font-size: 10.5px;
    font-style: italic;
    color: var(--cor-azul-esc);
    line-height: 1.4;
  }

  /* Row 3: COD/AMB/OBS — full width */
  .ark-cart-row .col-codamb {
    grid-area: cod;
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
  }
  /* rc432: chips discretos — sem caixa/background/border, apenas linha label+valor.
     Labels: Cód.: / Ambiente: / Obs.: (mais natural que ALL CAPS) */
  .ark-cart-row .col-codamb .ark-cart-field {
    display: flex;
    align-items: baseline;
    gap: 5px;
    padding: 2px 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    min-height: 20px;
  }
  .ark-cart-row .col-codamb .ark-cart-field label {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 500;
    color: var(--cor-cinza-500);
    margin: 0;
    padding: 0;
    line-height: 1.4;
    text-transform: none;
    letter-spacing: 0;
    /* Esconde texto original (CÓDIGO/AMBIENTE/OBSERVAÇÃO), injeta nova nomenclatura via ::before */
    font-size: 0;
    line-height: 0;
    overflow: hidden;
  }
  .ark-cart-row .col-codamb .ark-cart-field label::before {
    font-size: 11px;
    line-height: 1.4;
    font-weight: 500;
    color: var(--cor-cinza-500);
    text-transform: none;
    letter-spacing: 0;
  }
  .ark-cart-row .col-codamb .ark-cart-field:has(.ark-cart-codigo) label::before { content: 'Cód.:'; }
  .ark-cart-row .col-codamb .ark-cart-field:has(.ark-cart-ambiente) label::before { content: 'Ambiente:'; }
  .ark-cart-row .col-codamb .ark-cart-field:has(.ark-cart-obs) label::before { content: 'Obs.:'; }
  /* rc432: inputs sem caixa — apenas texto inline ao lado do label */
  .ark-cart-row .col-codamb .ark-cart-field input {
    flex: 1 1 auto;
    border: 0;
    background: transparent;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 500;
    color: var(--cor-preto);
    padding: 0;
    margin: 0;
    width: 100%;
    outline: none;
    min-width: 0;
    height: auto;
    line-height: 1.4;
  }
  /* Código auto vs personalizado — fonte mono mantida pra leitura técnica */
  .ark-cart-row .ark-cart-codigo {
    font-family: 'SF Mono', Consolas, monospace !important;
    font-weight: 600 !important;
    color: var(--cor-azul-esc) !important;
    font-size: 11px !important;
  }
  .ark-cart-row .ark-cart-codigo.is-locked { color: #8a6500 !important; }
  .ark-cart-row .ark-cart-codigo.is-locked + .locked-tag,
  .ark-cart-row .ark-cart-field .locked-tag { display: none; }

  .ark-cart-row .ark-cart-ambiente::placeholder,
  .ark-cart-row .ark-cart-obs::placeholder {
    color: var(--cor-cinza-300, #b5b3ad);
    font-style: italic;
  }

  /* Row 4: qty | preço | subtotal — alinhado com início da foto (rc433) */
  .ark-cart-row .col-qtd {
    grid-area: qty;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    justify-self: start;
    margin-top: 8px;
    margin-left: 0;
    padding-left: 0;
    align-self: center;
  }
  .ark-cart-row .ark-cart-qty {
    display: grid !important;
    grid-template-columns: 24px 32px 24px !important;
    width: 80px;
    height: 26px;
    border: 1px solid var(--cor-cinza-100);
    background: #fff;
    flex: none;
  }
  .ark-cart-row .ark-cart-qty .qty-btn {
    background: transparent;
    border: 0;
    font-size: 13px;
    color: var(--cor-cinza-700);
    cursor: pointer;
    padding: 0;
    line-height: 1;
    display: grid;
    place-items: center;
    height: 100%;
  }
  .ark-cart-row .ark-cart-qty .qty-input {
    border: 0;
    border-left: 1px solid var(--cor-cinza-100);
    border-right: 1px solid var(--cor-cinza-100);
    text-align: center;
    font-size: 11px;
    font-weight: 500;
    font-family: inherit;
    background: transparent;
    outline: none;
    width: 100%;
    height: 100%;
    padding: 0;
  }

  /* rc432/rc434: UNIT e TOTAL com TIPOGRAFIA IDÊNTICA, alinhados pela BASE do qty stepper.
     align-items: flex-end + align-self: stretch faz o texto alinhar embaixo da row 4. */
  .ark-cart-row .col-preco,
  .ark-cart-row .col-subtotal {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    align-self: stretch;
    font-size: 12px;
    font-weight: 500;
    color: var(--cor-preto);
    white-space: nowrap;
    margin-top: 8px;
    padding-left: 10px;
    line-height: 1.1;
    text-align: right;
  }
  .ark-cart-row .col-preco { grid-area: preco; }
  /* rc434: TOTAL na cor AZUL ARK (mesmo azul do Total do Pedido / botão Finalizar) */
  .ark-cart-row .col-subtotal {
    grid-area: subt;
    color: var(--cor-azul);
    font-weight: 600;
  }

  .ark-cart-row .col-preco::before,
  .ark-cart-row .col-subtotal::before {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cor-cinza-500);
    font-weight: 600;
    margin-right: 5px;
  }
  .ark-cart-row .col-preco::before    { content: 'Unit.:'; }
  .ark-cart-row .col-subtotal::before { content: 'Total:'; }

  /* Remove × — row 1 canto superior direito (rc431) — ícone discreto, sem border */
  .ark-cart-row .col-remove {
    grid-area: remove;
    display: grid;
    place-items: start center;
    margin: 0;
    padding: 0;
    align-self: flex-start;
  }
  .ark-cart-row .col-remove .ark-cart-remove {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    background: transparent;
    border: 0;
    color: var(--cor-cinza-300, #b5b3ad);
    text-decoration: none;
    font-size: 18px;
    line-height: 1;
    padding: 0;
    border-radius: 50%;
    transition: color 120ms, background 120ms;
  }
  .ark-cart-row .col-remove .ark-cart-remove:active,
  .ark-cart-row .col-remove .ark-cart-remove:hover {
    color: var(--cor-vermelho, #c00);
    background: #fef2f2;
  }

  /* Chevron antigo — escondido no novo layout (não tem accordion mais) */
  .ark-cart-row .ark-cart-row-chevron { display: none; }

  /* Footer mobile colapsa em coluna única (rc186) */
  .ark-cart-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .ark-cart-footer-right-wrap {
    grid-template-columns: 1fr;
  }
  .ark-cart-footer-left { padding-top: 0; }
}

/* Aviso IP65 sem dim */
.ark-config-warn-ip65 {
  padding: 6px 10px;
  background: rgba(255, 0, 0, 0.06);
  border-left: 3px solid #FF0000;
  font-size: 10.5px;
  color: #FF0000;
  line-height: 1.4;
  margin-top: 4px;
}

/* Display dinamico de preco */
.ark-config-price-display {
  padding: 10px 12px;
  background: #fafafa;
  border-left: 3px solid var(--cor-azul);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ark-config-price-label {
  font-size: 10.5px;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ark-config-price-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--cor-azul);
  line-height: 1.1;
}
.ark-config-price-vista { font-size: 11px; color: var(--text-secondary); }

/* rc251 — Feedback visual quando campo está faltando ao tentar adicionar */
.is-missing {
  animation: ark-shake 0.4s ease, ark-flash-missing 1.8s ease;
  outline: 2px solid rgba(220, 38, 38, 0.45);
  outline-offset: 4px;
  border-radius: 4px;
}
@keyframes ark-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  75% { transform: translateX(4px); }
}
@keyframes ark-flash-missing {
  0%, 100% { background-color: transparent; }
  30% { background-color: rgba(220, 38, 38, 0.08); }
}
.ark-aviso-falta {
  margin: 8px 0 0;
  padding: 10px 12px;
  background: #FEF2F2;
  border-left: 3px solid #DC2626;
  color: #991B1B;
  font-size: 13px;
  font-family: var(--font-body, system-ui);
  line-height: 1.4;
  border-radius: 0 4px 4px 0;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.2s, transform 0.2s;
  pointer-events: none;
}
.ark-aviso-falta.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.ark-config-price-regular {
  font-size: 11px;
  color: var(--text-secondary);
  order: -1;
}
.ark-config-price-regular del { color: var(--text-secondary); }
.ark-config-price-pix {
  font-size: 12.5px;
  color: var(--cor-verde, #00A650);
  font-weight: 600;
}
.ark-config-price-pix strong { font-weight: 700; }
.ark-config-driver-info {
  font-size: 11px;
  color: #064;
  margin-top: 4px;
}
.ark-config-driver-info strong { color: var(--cor-verde, #00A650); }

/* Acoes inferiores: qty + adicionar */
.ark-config-actions {
  display: flex;
  gap: 8px;
  align-items: stretch;
  padding-top: 12px;
  border-top: 1px solid var(--cor-cinza-100);
  margin-top: 4px;
}
.ark-config-qty {
  display: grid;
  grid-template-columns: 28px 36px 28px;
  height: 38px;
  border: 1px solid #ddd;
  background: #fff;
}
.ark-config-qty .qty-btn {
  border: 0; background: transparent; font-size: 14px; cursor: pointer;
}
.ark-config-qty .qty-input {
  border: 0; text-align: center; font-size: 13px; width: 100%;
  -moz-appearance: textfield;
}
.ark-config-qty .qty-input::-webkit-outer-spin-button,
.ark-config-qty .qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ark-config-add-btn {
  flex: 1;
  height: 38px;
  background: var(--cor-azul);
  color: #fff;
  border: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 150ms;
}
.ark-config-add-btn:hover:not([data-processing="1"]) { background: var(--cor-azul-esc); }
/* rc251: estado "processando" durante AJAX (substituiu :disabled) */
.ark-config-add-btn[data-processing="1"] {
  background: #d4d4d4;
  color: #888;
  cursor: progress;
}

/* Link pra single page */
.ark-config-link { text-align: center; margin-top: 6px; font-size: 11px; }
.ark-config-link a { color: var(--text-secondary); text-decoration: underline; }
.ark-config-link a:hover { color: var(--cor-preto); }

/* ============================================================
   Atributos do item de carrinho (variations) — compactos no drawer
   wc_get_formatted_cart_item_data renderiza <dl.variation> default WC com
   font/line-height grandes; aplica visual igual aos itens Stella (que sao simples).
   ============================================================ */
.ark-drawer .woocommerce-mini-cart-item dl.variation,
.ark-drawer .woocommerce-mini-cart-item .variation {
  font-size: 10px !important;
  line-height: 1.4 !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  color: var(--cor-cinza-700) !important;
  font-weight: 400 !important;
}
.ark-drawer .woocommerce-mini-cart-item dl.variation dt,
.ark-drawer .woocommerce-mini-cart-item dl.variation dd,
.ark-drawer .woocommerce-mini-cart-item .variation dt,
.ark-drawer .woocommerce-mini-cart-item .variation dd {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
  font-style: normal !important;
  font-size: 10px !important;
  line-height: 1.4 !important;
  color: var(--cor-cinza-700) !important;
  background: transparent !important;
}
.ark-drawer .woocommerce-mini-cart-item dl.variation dt::after,
.ark-drawer .woocommerce-mini-cart-item .variation dt::after { content: ' '; }
.ark-drawer .woocommerce-mini-cart-item dl.variation dd::after,
.ark-drawer .woocommerce-mini-cart-item .variation dd::after { content: ' · '; }
.ark-drawer .woocommerce-mini-cart-item dl.variation dd:last-of-type::after,
.ark-drawer .woocommerce-mini-cart-item .variation dd:last-of-type::after { content: ''; }
.ark-drawer .woocommerce-mini-cart-item dl.variation p,
.ark-drawer .woocommerce-mini-cart-item .variation p {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 10px !important;
  line-height: 1.4 !important;
}

/* rc254: garantir labels (col 1) ANTES dos valores (col 2) no drawer mini-cart.
   Sobrescreve conflito entre .cart-item-info dl.variation (display:grid) e
   .ark-drawer ... dl.variation dt (display:inline) que invertia visualmente. */
.ark-drawer .cart-item-info dl.variation,
.ark-drawer .cart-item-info .variation {
  display: grid !important;
  grid-template-columns: max-content 1fr !important;
  column-gap: 0 !important; /* rc257: zebra ponta-a-ponta — respiro via padding interno */
  row-gap: 0 !important;
  width: 100% !important;
  margin: 6px 0 0 !important;
}
.ark-drawer .cart-item-info dl.variation > dt,
.ark-drawer .cart-item-info .variation > dt {
  display: block !important;
  grid-column: 1 !important;
  font-weight: 600 !important;
  color: var(--cor-preto) !important;
  white-space: nowrap !important;
  font-size: 10.5px !important;
  line-height: 1.4 !important;
  padding: 3px 10px 3px 6px !important; /* rc257: respiro à direita sem column-gap */
  margin: 0 !important;
}
.ark-drawer .cart-item-info dl.variation > dd,
.ark-drawer .cart-item-info .variation > dd {
  display: block !important;
  grid-column: 2 !important;
  font-weight: 400 !important;
  color: var(--cor-cinza-700) !important;
  font-size: 10.5px !important;
  line-height: 1.4 !important;
  padding: 3px 6px !important; /* rc257 */
  margin: 0 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
.ark-drawer .cart-item-info dl.variation > dd > p,
.ark-drawer .cart-item-info .variation > dd > p {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
.ark-drawer .cart-item-info dl.variation > dt::after,
.ark-drawer .cart-item-info .variation > dt::after { content: '' !important; }
.ark-drawer .cart-item-info dl.variation > dd::after,
.ark-drawer .cart-item-info .variation > dd::after { content: '' !important; }
/* Obs (dt vazio) ocupa 2 colunas */
.ark-drawer .cart-item-info dl.variation > dt:empty,
.ark-drawer .cart-item-info .variation > dt:empty { display: none !important; }
.ark-drawer .cart-item-info dl.variation > dt:empty + dd,
.ark-drawer .cart-item-info .variation > dt:empty + dd {
  grid-column: 1 / -1 !important;
  font-style: italic !important;
  color: var(--cor-cinza-500) !important;
}

/* rc258: zebra ponta-a-ponta no DRAWER mini-cart.
   Sobrescreve `background: transparent !important` da regra antiga
   .ark-drawer .woocommerce-mini-cart-item dl.variation dt/dd (linha 2347)
   via maior specificity (.cart-item-info adiciona +1 class). */
.ark-drawer .cart-item-info dl.variation > dt:nth-of-type(even),
.ark-drawer .cart-item-info dl.variation > dt:nth-of-type(even) + dd,
.ark-drawer .cart-item-info .variation > dt:nth-of-type(even),
.ark-drawer .cart-item-info .variation > dt:nth-of-type(even) + dd {
  background: #EFEFEF !important;
}
.ark-drawer .cart-item-info dl.variation > dt:nth-of-type(odd),
.ark-drawer .cart-item-info dl.variation > dt:nth-of-type(odd) + dd,
.ark-drawer .cart-item-info .variation > dt:nth-of-type(odd),
.ark-drawer .cart-item-info .variation > dt:nth-of-type(odd) + dd {
  background: #FFFFFF !important;
}

/* ─── Animacao "fly-star" — estrela fina e brilhante com rastro de mini-estrelas ─── */
.ark-fly-star {
  position: fixed;
  z-index: 9999;
  width: 14px; height: 14px;
  pointer-events: none;
  color: var(--cor-azul);
  filter:
    drop-shadow(0 0 2px rgba(52, 131, 250, 1))
    drop-shadow(0 0 6px rgba(52, 131, 250, 1))
    drop-shadow(0 0 12px rgba(52, 131, 250, 0.7));
}
.ark-fly-star svg { width: 100%; height: 100%; display: block; }
.ark-fly-trail {
  position: fixed;
  z-index: 9998;
  pointer-events: none;
  color: var(--cor-azul);
  filter:
    drop-shadow(0 0 2px rgba(52, 131, 250, 1))
    drop-shadow(0 0 4px rgba(52, 131, 250, 0.7));
}
.ark-fly-trail svg { width: 100%; height: 100%; display: block; }

/* ─── Pulse do icone do carrinho no header quando recebe item ─── */
@keyframes ark-cart-pulse {
  0%   { transform: scale(1);    }
  35%  { transform: scale(1.25); }
  60%  { transform: scale(0.95); }
  100% { transform: scale(1);    }
}
.header-cart.is-pulsing,
.header-cart.is-pulsing svg {
  animation: ark-cart-pulse 600ms cubic-bezier(0.22, 1.5, 0.36, 1);
}
.header-cart.is-pulsing { color: var(--cor-azul); }

/* ── Página de produto single (redesign v2 — inspirado em Inspire Home) ── */
.product-single { padding: var(--space-6) 0 var(--space-20); }

/* Sangria lateral exclusiva da página de produto: 80px desktop em TODAS as seções
   (galeria/info, descrição, ficha técnica, downloads, avaliações, relacionados).
   Decisão 2026-05-04: gestor quer página de produto mais "abraçada" pela borda. */
.container.product-single {
  padding-left: 80px;
  padding-right: 80px;
}
@media (max-width: 1199px) {
  .container.product-single { padding-left: 40px; padding-right: 40px; }
}
@media (max-width: 1023px) {
  .container.product-single { padding-left: 24px; padding-right: 24px; }
}
@media (max-width: 640px) {
  .container.product-single { padding-left: 16px; padding-right: 16px; }
}

/* Breadcrumb */
.product-single .breadcrumb {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
  letter-spacing: 0.04em;
  margin-bottom: var(--space-5);
}
.product-single .breadcrumb a:hover { color: var(--text-primary); }
.product-single .breadcrumb .sep { margin: 0 var(--space-2); color: var(--cor-cinza-300); }
.product-single .breadcrumb .current { color: var(--text-primary); }

/* Grid principal: thumbs (80px) | imagem (auto: 380-720) | info (540px)
   Bloco unificado: gap reduzido + justify center → galeria e info coladas (decisão 2026-05-04)
   Padding lateral EXTRA só na página de produto — comprime o bloco sem mexer no header/footer. */
.product-single-grid {
  display: grid;
  grid-template-columns: 80px minmax(380px, 720px) 540px;
  gap: var(--space-3); /* 12px (era 20px) — colunas mais próximas, parece um bloco */
  justify-content: center; /* centraliza o conjunto no container, sem espaço extra entre cols */
  align-items: start;
  margin-bottom: var(--space-12);
  /* padding lateral REMOVIDO — agora vem do .container.product-single (80px que afeta todas as seções) */
}

/* Galeria — thumbs verticais separadas + imagem principal */
.gallery-thumbs {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.gallery-thumb {
  width: 80px; height: 80px;
  /* rc850 (gestor): só a imagem — sem fundo cinza e sem margem interna */
  background: transparent;
  border: 1px solid transparent;
  padding: 0;
  cursor: pointer;
  transition: border-color var(--transition-fast);
}
.gallery-thumb:hover { border-color: var(--cor-cinza-700); }
.gallery-thumb.is-active { border: 2px solid var(--text-primary); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: contain; }
.gallery-main {
  background: var(--cor-branco); /* branco igual o lightbox — consistência visual */
  border: 1px solid var(--border-default);
  aspect-ratio: 1 / 1;
  /* Quadro cabe na primeira dobra — padrão Hermès/Apple/Inspire (decisão 2026-05-04)
     Header reduzido (160px) + breadcrumb (~50) + margens (~30) = ~240px ocupados
     Em viewport 1080: 75vh = 810, max 720 = OK. Em viewport 800: 75vh = 600. */
  max-width: clamp(380px, 75vh, 720px);
  width: 100%;
  /* margin: 0 auto REMOVIDO — coluna grid já é minmax(380, 720), imagem encosta nos limites */
  overflow: hidden;
  cursor: zoom-in;
  position: relative;
}
.gallery-main img {
  width: 100%;
  height: 100%;
  /* 2026-09-05 (gestor): a foto inteira dentro do quadro — cover cortava as laterais das fotos 3:2
     (o refletor do Capello saía do quadro) */
  object-fit: contain;
  display: block;
  /* !important para anular qualquer cache CSS legado com scale/filter/blur — decisão 2026-05-04
     Sintoma anterior: trocar thumb causava blur persistente em todas as fotos */
  transform: none !important;
  filter: none !important;
  image-rendering: auto !important;
  transition: none !important;
}
.gallery-main:hover img,
.gallery-main:focus-within img,
.gallery-main:active img {
  transform: none !important;
  filter: none !important;
}
.gallery-main::after {
  content: '⤢';
  position: absolute;
  top: 12px; right: 12px;
  width: 32px; height: 32px;
  background: rgba(255,255,255,0.92);
  border: 1px solid var(--border-default);
  display: grid; place-items: center;
  font-size: 14px;
  color: var(--text-primary);
  pointer-events: none;
  opacity: 0.5;
  transition: opacity 0.2s ease;
}
.gallery-main:hover::after { opacity: 1; }

/* === Lightbox (overlay full-screen ao clicar imagem principal) === */
.ark-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.94);
  z-index: 999999; /* acima de qualquer plugin (PhotoSwipe usa 1500-9999) */
  display: none;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
}
.ark-lightbox[data-open="true"],
.ark-lightbox.is-open { display: flex !important; }
.ark-lightbox-content {
  position: relative;
  max-width: min(96vw, 1200px);
  max-height: 90vh;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ark-lightbox-content img {
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
  display: block;
  /* rc849 (gestor): imagem por inteiro — sem fundo nem moldura branca */
  background: transparent;
  padding: 0;
}
/* Botões DENTRO do content (sobrepostos à imagem) — sempre visíveis em qualquer tela */
.ark-lightbox-close,
.ark-lightbox-prev,
.ark-lightbox-next {
  position: absolute;
  background: rgba(255,255,255,0.95);
  border: 1px solid var(--border-default);
  color: var(--text-primary);
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  font-size: 22px;
  cursor: pointer;
  z-index: 10;
  transition: background var(--transition-fast), transform var(--transition-fast);
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.ark-lightbox-close:hover,
.ark-lightbox-prev:hover,
.ark-lightbox-next:hover { background: var(--cor-branco); transform: scale(1.05); }
.ark-lightbox-close { top: 16px; right: 16px; font-size: 26px; line-height: 1; }
.ark-lightbox-prev  { left: 16px;  top: 50%; transform: translateY(-50%); }
.ark-lightbox-next  { right: 16px; top: 50%; transform: translateY(-50%); }
.ark-lightbox-prev:hover { transform: translateY(-50%) scale(1.05); }
.ark-lightbox-next:hover { transform: translateY(-50%) scale(1.05); }
.ark-lightbox-counter {
  position: absolute;
  bottom: -36px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--cor-branco);
  font-size: 12px;
  letter-spacing: 0.08em;
}

/* === Mini-cart drawer (lateral direita) — design Inspire Home (decisão 2026-05-04) === */
.ark-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.4);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.ark-drawer-overlay.is-open { opacity: 1; visibility: visible; }

.ark-drawer {
  position: fixed;
  top: 0; right: 0;
  width: min(440px, 92vw);
  height: 100vh;
  /* rc1092: 100vh no Chrome do Android conta a barra de endereço — o CTA fixo do rodapé ficava
     atrás da barra do navegador (print do gestor, 15/09 22:39). dvh mede só a área visível;
     navegador sem dvh fica com o 100vh acima. */
  height: 100dvh;
  background: var(--cor-branco);
  z-index: 9999;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  box-shadow: -8px 0 32px rgba(0,0,0,0.08);
}
.ark-drawer.is-open { transform: translateX(0); }

/* Wrapper de scroll — engloba header + body + footer (tudo exceto CTA) */
.ark-drawer-scroll {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
}

/* Header: X esquerda + título centralizado (estilo Inspire) */
.ark-drawer-header {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--border-default);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  position: relative;
}
.ark-drawer-close {
  background: transparent;
  border: 0;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  cursor: pointer;
  color: var(--text-secondary);
  transition: color var(--transition-fast);
  flex-shrink: 0;
}
.ark-drawer-close:hover { color: var(--text-primary); }
.ark-drawer-title {
  font-size: var(--font-size-sm);
  font-weight: 600;
  letter-spacing: 0.12em;
  margin: 0;
  text-transform: uppercase;
  color: var(--text-primary);
}

/* Corpo com lista de produtos — agora SEM scroll proprio (scroll vai no .ark-drawer-scroll que engloba tudo) */
.ark-drawer-body {
  padding: var(--space-3) var(--space-4);
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}
/* Quando drawer aberto, trava scroll de html+body (cobre Safari iOS e edge cases onde body.style.overflow nao basta) */
html.ark-drawer-locked,
body.ark-drawer-locked {
  overflow: hidden !important;
}
.ark-drawer-body * { box-sizing: border-box; }
.ark-drawer-body ul.cart_list { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
.ark-drawer-body .woocommerce-mini-cart__empty-message {
  text-align: center;
  color: var(--text-secondary);
  font-size: var(--font-size-sm);
  padding: var(--space-8) 0;
}
.ark-drawer-body ul.cart_list {
  list-style: none;
  padding: 0;
  margin: 0;
}
/* === Override agressivo (#id + !important) — anula CSS default WC com alta especificidade === */
/* CRÍTICO: WC default usa li::before/::after { content: " "; display: table } como clearfix.
   No display:grid do <li>, esses pseudo-elementos viram colunas extras e empurram os filhos
   pra colunas inexistentes. Solução: zerá-los completamente (decisão 2026-05-04). */
#ark-drawer .ark-drawer-body .mini_cart_item::before,
#ark-drawer .ark-drawer-body .mini_cart_item::after,
#ark-drawer .ark-drawer-body ul.cart_list li::before,
#ark-drawer .ark-drawer-body ul.cart_list li::after,
#ark-drawer .ark-drawer-body ul.product_list_widget li::before,
#ark-drawer .ark-drawer-body ul.product_list_widget li::after {
  content: none !important;
  display: none !important;
}
#ark-drawer .ark-drawer-body ul.cart_list { padding: 0 !important; margin: 0 !important; list-style: none !important; }
#ark-drawer .ark-drawer-body .mini_cart_item {
  display: grid !important;
  grid-template-columns: 48px 1fr 28px !important;
  gap: 12px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #E2E0DB !important;
  align-items: start !important;
  margin: 0 !important;
}
#ark-drawer .ark-drawer-body .cart-item-thumb {
  display: block !important;
  width: 48px !important;
  height: 48px !important;
}
#ark-drawer .ark-drawer-body .cart-item-thumb img {
  display: block !important;
  width: 48px !important;
  height: 48px !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  background: #F7F6F3 !important;
  margin: 0 !important;
  border: 1px solid #E2E0DB !important;
  padding: 0 !important;
}
#ark-drawer .ark-drawer-body .cart-item-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
#ark-drawer .ark-drawer-body a.cart-item-name,
#ark-drawer .ark-drawer-body .cart-item-name {
  font-size: 11px !important;
  font-weight: 400 !important;
  color: #1A1A1A !important;
  text-decoration: none !important;
  line-height: 1.3 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  /* rc257: nome COMPLETO sempre — line-clamp removido (gestor pediu) */
  display: block !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
}
#ark-drawer .ark-drawer-body .cart-item-controls {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}
#ark-drawer .ark-drawer-body .cart-item-qty {
  display: grid !important;
  grid-template-columns: 20px 28px 20px !important;
  width: 68px !important;
  height: 22px !important;
  border: 1px solid #E2E0DB !important;
  background: #FFFFFF !important;
  flex: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: stretch !important;
}
#ark-drawer .ark-drawer-body .cart-item-qty .qty-btn {
  background: transparent !important;
  border: 0 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: #717171 !important;
  cursor: pointer !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 100% !important;
  width: 100% !important;
  line-height: 1 !important;
  min-width: 0 !important;
  min-height: 0 !important;
}
#ark-drawer .ark-drawer-body .cart-item-qty .qty-minus { border-right: 1px solid #E2E0DB !important; }
#ark-drawer .ark-drawer-body .cart-item-qty .qty-plus  { border-left:  1px solid #E2E0DB !important; }
#ark-drawer .ark-drawer-body .cart-item-qty .qty-input {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  border: 0 !important;
  text-align: center !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-family: inherit !important;
  background: transparent !important;
  outline: none !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
  -moz-appearance: textfield;
  appearance: textfield;
}
#ark-drawer .ark-drawer-body .cart-item-price {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  white-space: nowrap !important;
  margin: 0 !important;
  padding: 0 !important;
}
#ark-drawer .ark-drawer-body .mini_cart_item .remove {
  width: 24px !important;
  height: 24px !important;
  display: grid !important;
  place-items: center !important;
  color: #717171 !important;
  background: transparent !important;
  text-decoration: none !important;
  align-self: start !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0 !important;
}
#ark-drawer .ark-drawer-body .mini_cart_item .remove:hover { color: #E8001D !important; background: transparent !important; }
#ark-drawer .ark-drawer-body .mini_cart_item .remove svg { display: block !important; width: 16px !important; height: 16px !important; }

/* Item do mini-cart: thumb 48 | info | lixeira */
.ark-drawer-body .mini_cart_item {
  display: grid;
  grid-template-columns: 48px 1fr 28px;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--border-default);
  align-items: start;
}
.ark-drawer-body .cart-item-thumb {
  display: block;
  width: 48px; height: 48px;
  flex-shrink: 0;
}
.ark-drawer-body .cart-item-thumb img {
  width: 48px; height: 48px;
  object-fit: contain;
  background: var(--cor-cinza-050);
  margin: 0;
  border: 1px solid var(--border-default);
  display: block;
}
.ark-drawer-body .cart-item-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.ark-drawer-body .cart-item-name,
.ark-drawer-body a.cart-item-name {
  font-size: 11px !important;
  font-weight: 400 !important;     /* SEM negrito — !important anula CSS default WC (.cart_list a {font-weight:700}) */
  color: var(--text-primary) !important;
  text-decoration: none !important;
  line-height: 1.3 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  /* rc257: nome COMPLETO sempre — line-clamp removido */
  display: block;
  overflow: visible;
}
.ark-drawer-body .cart-item-name:hover { color: var(--text-primary) !important; text-decoration: underline !important; }
.ark-drawer-body .cart-item-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}
/* Qty +/- pequeno e compacto (decisão 2026-05-04 — gestor pediu botão menor) */
.ark-drawer-body .cart-item-qty {
  display: grid !important;
  grid-template-columns: 20px 28px 20px !important; /* 68px largura total (era 84) */
  align-items: stretch !important;
  border: 1px solid var(--border-default) !important;
  height: 22px !important; /* 22 altura (era 26) */
  width: 68px !important;
  flex-shrink: 0;
  background: var(--cor-branco) !important;
}
.ark-drawer-body .cart-item-qty .qty-btn {
  background: transparent !important;
  border: 0 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: var(--text-secondary) !important;
  cursor: pointer !important;
  display: grid !important;
  place-items: center !important;
  transition: background var(--transition-fast);
  padding: 0 !important;
  margin: 0 !important;
  height: 100% !important;
  width: 100% !important;
  line-height: 1 !important;
}
.ark-drawer-body .cart-item-qty .qty-btn:hover { background: var(--cor-cinza-050) !important; color: var(--text-primary) !important; }
.ark-drawer-body .cart-item-qty .qty-minus { border-right: 1px solid var(--border-default) !important; }
.ark-drawer-body .cart-item-qty .qty-plus  { border-left:  1px solid var(--border-default) !important; }
.ark-drawer-body .cart-item-qty .qty-input {
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  text-align: center !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-family: inherit !important;
  background: transparent !important;
  -moz-appearance: textfield;
  outline: none !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
}
.ark-drawer-body .cart-item-qty .qty-input::-webkit-outer-spin-button,
.ark-drawer-body .cart-item-qty .qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Preço do item */
.ark-drawer-body .cart-item-price {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
}
.ark-drawer-body .cart-item-price .amount,
.ark-drawer-body .cart-item-price bdi { font-weight: 600; }

/* Lixeira (remove) */
.ark-drawer-body .mini_cart_item .remove {
  width: 24px; height: 24px;
  display: grid; place-items: center;
  color: var(--text-secondary);
  background: transparent;
  border-radius: 0;
  text-decoration: none;
  align-self: start;
  transition: color var(--transition-fast);
}
.ark-drawer-body .mini_cart_item .remove:hover { color: var(--cor-vermelho); background: transparent; }
.ark-drawer-body .mini_cart_item .remove svg { display: block; }

/* Esconder os blocos default do WC mini-cart (subtotal/buttons) — já temos no footer customizado */
.ark-drawer-body .woocommerce-mini-cart__total,
.ark-drawer-body .woocommerce-mini-cart__buttons { display: none !important; }

/* Footer com cupom, frete, totais — fundo branco, bordas suaves (Inspire-like) */
.ark-drawer-footer {
  padding: var(--space-3) var(--space-4) var(--space-4);
  border-top: 1px solid var(--border-default);
  background: var(--cor-branco);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* CTA "IR PARA O CARRINHO" — UNICA parte fixa do drawer, fora do scroll */
.ark-drawer-cta-fixed {
  flex-shrink: 0;
  padding: var(--space-3) var(--space-4);
  background: var(--cor-branco);
  border-top: 1px solid var(--border-default);
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.04);
  /* rc442: safe-area-inset-bottom respeita barra de navegação Android/iOS gesture.
     env(safe-area-inset-bottom) é 0 em desktop; em mobile cresce conforme a barra. */
  padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
}
.ark-drawer-cta-fixed .ark-drawer-cta { margin: 0; }

/* rc446: padding-bottom mobile calibrado: 24px base + env(safe-area-inset-bottom).
   rc443 (64px fixo) ficou alto demais — gestor reportou botão muito pra cima.
   24px é só pra dar ar do edge — barra Android é coberta pelo env() quando suportado. */
@media (max-width: 768px) {
  .ark-drawer-cta-fixed {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

.ark-drawer-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ark-drawer-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
}
.ark-drawer-input-row {
  display: grid;
  grid-template-columns: 1fr 100px;
  gap: 6px;
}
.ark-drawer-input-row input {
  padding: 8px 10px;
  border: 1px solid var(--border-default);
  font-family: inherit;
  font-size: 13px;
  height: 36px;
  border-radius: 0;
  background: var(--cor-branco);
}
.ark-drawer-input-row input:focus { outline: none; border-color: var(--text-primary); }
.ark-drawer-input-row input:disabled { background: var(--cor-cinza-050); cursor: not-allowed; }
.ark-drawer-input-row button {
  padding: 0 14px;
  background: var(--text-primary);
  color: var(--cor-branco);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 600;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  height: 36px;
}
.ark-drawer-input-row button:disabled { opacity: 0.5; cursor: not-allowed; }
.ark-drawer-input-row button:hover:not(:disabled) { background: var(--cor-cinza-700); }

/* rc636: Cupom aplicado + mensagem de erro/feedback no drawer */
.ark-drawer-coupon-applied {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  background: var(--cor-cinza-050);
  border: 1px solid var(--border-default);
  font-size: 13px;
  color: var(--text-primary);
}
.ark-drawer-coupon-tag .ark-drawer-coupon-code { color: #C0001A; font-weight: 700; }
.ark-drawer-coupon-remove {
  background: none;
  border: 0;
  padding: 0;
  font-size: 12px;
  color: var(--text-secondary);
  text-decoration: underline;
  cursor: pointer;
  flex-shrink: 0;
}
.ark-drawer-coupon-remove:hover { color: #C0001A; }
.ark-drawer-coupon-msg {
  font-size: 12px;
  color: #C0001A;
}
.ark-drawer-coupon-msg.is-ok { color: #157347; }

/* rc636: Opções de frete no drawer — versão compacta da lista do cart.php */
.ark-drawer-shipping-options {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 4px;
}
.ark-drawer-shipping-option {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 8px;
  border: 1px solid var(--border-default);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.ark-drawer-shipping-option:hover { border-color: var(--text-primary); }
.ark-drawer-shipping-option.is-selected { border-color: var(--text-primary); background: var(--cor-cinza-050); }
.ark-drawer-shipping-option input { margin: 0; flex-shrink: 0; accent-color: #C0001A; }
/* rc639: nome em coluna de largura fixa → os prazos começam todos na MESMA vertical */
.ark-drawer-shipping-info {
  display: grid;
  grid-template-columns: 135px 1fr;
  align-items: baseline;
  gap: 4px;
  flex: 1;
  min-width: 0;
}
.ark-drawer-shipping-nome { font-size: 12px; font-weight: 500; color: var(--text-primary); }
.ark-drawer-shipping-prazo { font-size: 10.5px; color: var(--text-secondary); }
.ark-drawer-shipping-preco { font-size: 11px; color: var(--text-secondary); flex-shrink: 0; white-space: nowrap; }
.ark-drawer-cep-result { font-size: 12px; color: var(--text-secondary); margin-top: 2px; }
.ark-drawer-cep-result .ark-drawer-cep-error { color: #C0001A; }

/* Totais — rc637: caixa com linhas definidas + zebrado (linhas alternadas) */
.ark-drawer-totals {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: var(--space-2);
  border: 1px solid var(--border-default);
  border-radius: 4px;
  overflow: hidden;
}
.ark-drawer-totals-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 13px;
  color: var(--text-secondary);
  padding: 6px 10px;
  border-bottom: 1px solid var(--border-default);
}
.ark-drawer-totals-row:nth-child(odd) { background: var(--cor-cinza-050); }
.ark-drawer-totals-row:last-child { border-bottom: 0; }
.ark-drawer-totals-row .cart-subtotal-val,
.ark-drawer-totals-row span:last-child { color: var(--text-primary); }
/* rc638: linha Total (fecha a conta Subtotal − Cupom + Frete) em destaque */
.ark-drawer-totals-total { font-size: 14px; font-weight: 600; color: var(--text-primary); }
.ark-drawer-totals-total strong { color: var(--text-primary); font-weight: 700; }
.ark-drawer-total-final {
  font-size: 14px;
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--border-default);
  color: var(--text-primary);
  font-weight: 600;
}
.ark-drawer-total-final strong {
  font-size: 18px;
  color: #C0001A; /* total à vista em destaque */
  font-weight: 700;
}
/* rc633: Total à vista no mini-cart usa o MESMO "chamariz" do configurador (.ark-config-price-display).
   Só ajusta o espaçamento pro contexto do drawer. */
.ark-drawer-price-chamariz { margin-top: 10px; border-radius: 0 4px 4px 0; }

/* CTA principal: ir para o carrinho — azul ML (mesma cor do botão "Comprar" do single-product) */
.ark-drawer-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  height: 48px;
  background: #3483FA; /* azul Mercado Livre — alinhado com botão Comprar */
  color: var(--cor-branco);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border: 0;
  cursor: pointer;
  margin-top: var(--space-2);
  transition: background var(--transition-fast);
}
.ark-drawer-cta:hover { background: #2968D4; color: var(--cor-branco); }
.ark-drawer-cta svg { flex-shrink: 0; }

/* Loading state durante AJAX */
.ark-drawer.is-loading .ark-drawer-body { opacity: 0.5; pointer-events: none; }

/* Painel de informações (coluna 3 — compacta, decisão 2026-05-04) */
.product-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  font-size: var(--font-size-sm);
}

/* Linha meta — REF + categoria */
.product-info .info-meta {
  font-size: 11px;
  color: var(--text-secondary);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border-default);
}
.product-info .info-meta .ref { font-weight: 600; }
.product-info .info-meta .info-cat {
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 10px;
}
.product-info .info-meta .info-cat:hover { color: var(--text-primary); }

.product-info .product-title {
  font-family: var(--font-body);
  font-size: 1.125rem; /* 18px (era 22px) — pediu compactar */
  font-weight: 500;
  line-height: 1.3;
  margin: 0;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--text-primary);
}

.product-brand {
  font-size: var(--font-size-xs);
  font-weight: 500; /* rc835: itálico era sintético (Inter sem eixo ital) */
  color: var(--text-secondary);
  margin: 0;
}
.product-brand a {
  border-bottom: 1px solid var(--cor-cinza-300);
  padding-bottom: 1px;
  transition: color var(--transition-fast), border-color var(--transition-fast);
}
.product-brand a:hover { color: var(--text-primary); border-color: var(--text-primary); }

/* Badges (logo abaixo da marca) */
.product-badges {
  display: flex;
  gap: 6px;
  /* rc837 (gestor): os 3 badges na MESMA linha — wrap só em telas estreitas */
  flex-wrap: nowrap;
}
@media (max-width: 540px) {
  /* rc881 (gestor): os 3 selos na MESMA linha no mobile — nowrap + escala menor pra caber */
  .product-badges { flex-wrap: nowrap; gap: 4px; }
  .badge { font-size: 9px; padding: 3px 5px; letter-spacing: 0; gap: 3px; }
}
.badge {
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 4px 8px;
  border-radius: 0;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.badge-stock { background: var(--cor-cinza-050); color: var(--cor-verde-esc); border: 1px solid var(--cor-verde); }
.badge-outstock { background: var(--cor-cinza-050); color: var(--text-secondary); border: 1px solid var(--border-default); }
.badge-warranty { background: var(--cor-cinza-050); color: var(--text-primary); border: 1px solid var(--border-default); }
.badge-shipping { background: var(--cor-cinza-050); color: var(--text-primary); border: 1px solid var(--border-default); }

/* Bloco de preço destacado — compacto (decisão 2026-05-04) */
.price-block {
  background: var(--cor-cinza-050);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.price-pix {
  font-family: var(--font-body);
  font-size: 1.625rem; /* 26px (era 32px) */
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}
.price-pix .woocommerce-Price-amount,
.price-pix bdi { font-weight: 600; }
.price-pix small {
  font-size: var(--font-size-xs);
  font-weight: 400;
  color: var(--text-secondary);
  margin-left: 6px;
  letter-spacing: 0;
}
.price-original {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
}
.price-original strong { color: var(--text-primary); font-weight: 600; }
.price-regular {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
  margin-bottom: -2px;
}
.price-regular del { color: var(--text-secondary); }
.price-installments {
  font-size: 11px;
  color: var(--text-secondary);
}

/* Configurador de variantes — chips retos */
.product-configurator { margin-bottom: var(--space-8); }
.configurator-section { margin-bottom: var(--space-5); }
.configurator-label {
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: var(--space-3);
  display: block;
}
.configurator-options { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.configurator-option {
  padding: var(--space-2) var(--space-5);
  border: 1.5px solid var(--border-default);
  border-radius: 0;  /* chips retos */
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  font-weight: 500;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: all var(--transition-fast);
  background: var(--cor-branco);
  color: var(--text-primary);
}
.configurator-option:hover { border-color: var(--cor-preto); }
.configurator-option.is-selected {
  border-color: var(--cor-preto);
  background: var(--cor-preto);
  color: var(--cor-branco);
}

/* Linha qty + comprar — compacto (h44px), azul ML #3483FA */
.cart-row form.cart {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: var(--space-2);
  align-items: stretch;
  margin: 0;
}
.cart-row .quantity {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  align-items: stretch;
  border: 1px solid var(--border-default);
  background: var(--cor-branco);
  height: 44px;
}
.cart-row .quantity .qty-btn {
  background: transparent;
  border: 0;
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 400;
  color: var(--text-secondary);
  cursor: pointer;
  user-select: none;
  display: grid;
  place-items: center;
  transition: background var(--transition-fast), color var(--transition-fast);
}
.cart-row .quantity .qty-btn:hover { background: var(--cor-cinza-050); color: var(--text-primary); }
.cart-row .quantity .qty-btn--minus { border-right: 1px solid var(--border-default); }
.cart-row .quantity .qty-btn--plus  { border-left:  1px solid var(--border-default); }
.cart-row .quantity .qty {
  width: 100%;
  height: 100%;
  text-align: center;
  border: 0;
  font-size: var(--font-size-sm);
  font-weight: 500;
  background: transparent;
  font-family: inherit;
  padding: 0;
  -moz-appearance: textfield;
  outline: none;
}
.cart-row .quantity .qty::-webkit-outer-spin-button,
.cart-row .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* !important sobrescreve eventual cor herdada de plugins/Storefront/legado */
.cart-row .single_add_to_cart_button,
.cart-row button[type="submit"],
.product-single .single_add_to_cart_button,
button.single_add_to_cart_button.button.alt {
  width: 100% !important;
  background: #3483FA !important; /* azul Mercado Livre */
  background-color: #3483FA !important;
  color: #FFFFFF !important;
  border: 0 !important;
  border-radius: 0 !important;
  height: 44px !important;
  min-height: 44px !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: background var(--transition-base);
  padding: 0 var(--space-4) !important;
}
.cart-row .single_add_to_cart_button:hover,
button.single_add_to_cart_button.button.alt:hover {
  background: #2968D4 !important;
  background-color: #2968D4 !important;
}

/* WhatsApp como CTA secundário — compacto */
.btn-whatsapp {
  display: flex; align-items: center; justify-content: center;
  gap: var(--space-2);
  height: 38px;
  background: var(--cor-branco);
  color: var(--text-primary);
  font-size: 12px;
  font-weight: 500;
  border: 1px solid var(--border-default);
  text-decoration: none;
}
.btn-whatsapp svg { color: #25D366; width: 14px; height: 14px; }
.btn-whatsapp:hover { background: var(--cor-cinza-050); }

/* Calcular frete — compacto */
.shipping-calc {
  border: 1px solid var(--border-default);
  padding: var(--space-3);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.shipping-calc h4 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin: 0;
}
.shipping-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
}
.shipping-row input {
  padding: 8px var(--space-3);
  border: 1px solid var(--border-default);
  font-family: inherit;
  font-size: 14px;
  height: 36px;
  border-radius: 0;
}
.shipping-row input:focus { outline: none; border-color: var(--text-primary); }
.shipping-row button {
  padding: 0 var(--space-4);
  background: var(--text-primary);
  color: var(--cor-branco);
  font-size: var(--font-size-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 0;
  border-radius: 0;
  cursor: pointer;
}
.shipping-row button:disabled { opacity: 0.5; cursor: not-allowed; }
.shipping-link {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
  text-decoration: underline;
}
/* 15/10/2026: resultado do frete na página (configurador.js ligaFretePagina) — só tokens existentes */
.shipping-result { display: flex; flex-direction: column; gap: 6px; }
.shipping-opt {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: var(--space-2);
  padding: 6px 0;
  border-top: 1px solid var(--border-default);
  font-size: 13px;
}
.shipping-opt:first-child { border-top: 0; padding-top: 0; }
.shipping-opt__nome { color: var(--text-primary); min-width: 0; }
.shipping-opt__valor { color: var(--text-primary); white-space: nowrap; }
.shipping-opt__prazo { grid-column: 1 / -1; font-size: var(--font-size-xs); color: var(--text-secondary); }
.shipping-msg { margin: 0; font-size: var(--font-size-xs); color: var(--text-secondary); line-height: 1.5; }
.shipping-msg a { color: inherit; text-decoration: underline; }

/* Observações (textarea livre) — compacto */
.observacoes label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: 6px;
}
.observacoes textarea {
  width: 100%;
  min-height: 52px;
  padding: 8px var(--space-3);
  border: 1px solid var(--border-default);
  font-family: inherit;
  font-size: 13px;
  resize: vertical;
  border-radius: 0;
  background: var(--cor-branco);
}
.observacoes textarea:focus { outline: none; border-color: var(--text-primary); }

/* Descrição completa (full-width abaixo do grid) */
.product-description {
  margin: 0 0 var(--space-12);
  padding-top: var(--space-8);
  border-top: 1px solid var(--border-default);
}
.product-description h2,
.product-description h3,
.product-description h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-xl);
  font-weight: 500;
  margin-bottom: var(--space-4);
  letter-spacing: -0.01em;
  color: var(--cor-preto);
}
.product-description h4 { font-size: var(--font-size-lg); margin-top: var(--space-4); }
.product-description p,
.product-description li {
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  color: var(--cor-cinza-700);
  line-height: 1.7;
  margin-bottom: var(--space-3);
  max-width: 880px;
}
.product-description strong { font-weight: 600; color: var(--cor-preto); }

/* Links de cross-sell e variações dentro da descrição SEO ─── azul de link */
.product-seo-intro a,
.product-description a,
.woocommerce-product-details__short-description a {
  color: var(--cor-azul);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--transition-fast);
}
.product-seo-intro a:hover,
.product-description a:hover,
.woocommerce-product-details__short-description a:hover {
  color: var(--cor-azul-esc);
}

/* ─── Acordeão (Descrição do Produto + Especificações Técnicas) ───
   Padrão Delta Light: usa <details>/<summary> HTML5 nativo. Linhas sequenciais
   com gap mínimo, bordas top + bottom em peso destacado (chamada de seção). */
details.product-accordion {
  margin: 0;                                          /* zero espaço entre acordeões */
  border-top: 1px solid var(--cor-cinza-300);         /* todas fininhas */
  border-bottom: 1px solid var(--cor-cinza-300);      /* todas fininhas */
  background: transparent;
}
details.product-accordion + details.product-accordion {
  border-top: 0;                                       /* evita borda dupla entre adjacentes */
}
/* Head usa <summary> — fundo sólido, padding reduzido */
.product-accordion__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px var(--space-5); /* rc833: faixa mais baixa (aprovar → padrão do site) */
  background: var(--cor-cinza-050);
  cursor: pointer;
  list-style: none;       /* remove triangle padrão Firefox */
  transition: background var(--transition-fast);
}
.product-accordion__head::-webkit-details-marker {
  display: none;          /* remove triangle padrão WebKit/Safari/Chrome */
}
.product-accordion__head::marker {
  display: none;          /* remove triangle moderno (Firefox >115) */
}
.product-accordion__head:hover {
  background: var(--cor-cinza-100);
}
/* Aberto: linha divisória entre head e content separa hierarquia (head=controle, content=informação) */
details.product-accordion[open] .product-accordion__head {
  border-bottom: 1px solid var(--cor-cinza-300);
}
.product-accordion__head:focus-visible {
  outline: 2px solid var(--cor-azul);
  outline-offset: -2px;
}
.product-accordion__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0;
}
.product-accordion__chevron {
  flex-shrink: 0;
  color: var(--cor-cinza-700);
  transition: transform 0.3s ease;
}
/* Atributo nativo [open] no <details> aberto */
details.product-accordion[open] .product-accordion__chevron {
  transform: rotate(180deg);
}

/* Conteúdo: aparece apenas quando <details> está [open] (controle nativo do browser) */
.product-accordion__content {
  padding: var(--space-5);
  background: var(--cor-branco);
}

/* ─── Texto SEO (Descrição do Produto) — tipografia uniforme ───
   Corpo 13px (denso, leitura contínua). Único maior: h3 (nome do produto, 14px).
   Margens entre parágrafos reduzidas para texto mais contínuo. */
.product-seo-intro {
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.65;
  color: var(--cor-cinza-700);
}
.product-seo-intro p {
  font-size: 13px;
  font-weight: 400;
  color: var(--cor-cinza-700);
  line-height: 1.65;
  text-align: justify;
  hyphens: auto;
  margin: 0 0 var(--space-2);   /* margin reduzida — fluxo contínuo */
  max-width: none;
}
.product-seo-intro p:last-child { margin-bottom: 0; }

/* H3: nome do produto inicial — único elemento ligeiramente maior */
/* rc836: regra morta removida (morta seo h3 14/700) */

/* H4 (Perguntas frequentes) — mesma fonte/tamanho do corpo, apenas em bold */
/* rc836: regra morta removida (morta seo h4 13/700) */

/* Strong genérico — todos os destaques de chamada (variações, perguntas FAQ, etc) */
.product-seo-intro strong {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}

/* Pergunta da FAQ — APENAS quando o strong é o primeiro filho E está seguido de <br>
   (padrão típico da FAQ markdown). Isso evita afetar strong em meio a parágrafo
   normal (ex: "A Arandela LED <strong>Stella ICE LONG STL23774/30</strong> entrega...") */
.product-seo-intro p:has(> strong:first-child + br) > strong:first-child {
  display: block;
  margin-bottom: 0;
}
.product-seo-intro p:has(> strong:first-child + br) > strong:first-child + br {
  display: none;
}

/* Avaliações (bloco placeholder — sistema real será integrado depois) */
.product-reviews {
  margin-bottom: var(--space-12);
  padding-top: var(--space-8);
  border-top: 1px solid var(--border-default);
}
.product-reviews h2 {
  font-family: var(--font-body);
  font-size: var(--font-size-lg);
  font-weight: 500;
  margin-bottom: var(--space-5);
  letter-spacing: -0.01em;
}
.reviews-empty {
  background: var(--cor-cinza-050);
  padding: var(--space-6);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}
.reviews-empty .stars-row {
  display: inline-flex;
  gap: 4px;
  color: var(--cor-cinza-300);
  font-size: var(--font-size-lg);
  letter-spacing: 0.05em;
}
.reviews-empty p {
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
  margin: 0;
}
.reviews-empty .btn-review {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 12px 24px;
  background: var(--cor-branco);
  color: var(--text-primary);
  border: 1px solid var(--text-primary);
  font-size: var(--font-size-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast);
}
.reviews-empty .btn-review:hover { background: var(--text-primary); color: var(--cor-branco); }

/* Ficha técnica — tabela aberta com zebra striping (agora dentro do .product-accordion) */
.product-specs {
  padding: var(--space-3) 0 var(--space-5);
}
.specs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-sm);
}
.specs-table tr {
  border-bottom: 1px solid var(--border-default);
}
.specs-table tr:last-child { border-bottom: 0; }
.specs-table tr:nth-child(even) { background: var(--cor-cinza-050); }
.specs-table td {
  padding: 8px var(--space-3); /* rc833: linhas mais baixas e uniformes */
  line-height: 1.45;
  vertical-align: top;
  font-family: var(--font-body);
  color: var(--text-primary);
}
/* Coluna 1: nome em negrito, sem uppercase, normal-case (decisão 2026-05-04) */
.specs-table td:first-child {
  width: 24%; /* rc834: valores mais à esquerda (pedido do gestor) */
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: 0;
  text-transform: none;
  padding-right: 0;
}
/* Coluna 2: valor em peso regular, próximo da label (padding-left mínimo) */
.specs-table td:last-child {
  font-weight: 400;
  padding-left: var(--space-2);
}

/* Downloads — bloco com cards: Ficha Técnica (PDF), Arquivo IES, Bloco 3D */
.product-downloads {
  margin-bottom: var(--space-12);
  padding-top: var(--space-8);
  border-top: 1px solid var(--border-default);
}
.product-downloads h2 {
  font-family: var(--font-body);
  font-size: var(--font-size-lg);
  font-weight: 500;
  margin-bottom: var(--space-5);
  letter-spacing: -0.01em;
}
.downloads-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
@media (max-width: 768px) {
  .downloads-grid { grid-template-columns: 1fr; }
}
/* 11/10/2026: explicação e link para a Biblioteca técnica no bloco de downloads (textos do /copy-ark) */
.downloads-intro { margin: 0 0 var(--space-4); font-size: 14px; line-height: 1.7; color: var(--cor-cinza-700, #3D3D3D); max-width: 760px; }
.downloads-biblioteca { display: inline-block; margin-top: var(--space-4); font-size: 14px; font-weight: 600; color: var(--cor-azul, #3483FA); text-decoration: none; }
.downloads-biblioteca:hover { text-decoration: underline; }
.download-card {
  background: var(--cor-cinza-050);
  border: 1px solid var(--border-default);
  padding: var(--space-5);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  text-decoration: none;
  color: var(--text-primary);
  transition: border-color var(--transition-fast), background var(--transition-fast);
}
.download-card:not(.is-disabled):hover {
  border-color: var(--text-primary);
  background: var(--cor-branco);
}
.download-card.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.download-card .download-icon {
  flex-shrink: 0;
  width: 48px; height: 48px;
  background: var(--cor-branco);
  border: 1px solid var(--border-default);
  display: grid;
  place-items: center;
  color: var(--text-primary);
}
.download-card.is-disabled .download-icon {
  background: var(--cor-cinza-100);
  color: var(--cor-cinza-500);
}
.download-card .download-info { flex: 1; min-width: 0; }
.download-card .download-name {
  font-size: var(--font-size-sm);
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
  display: block;
}
.download-card .download-meta {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Link antigo (compatibilidade — não mais usado no template) */
.download-link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--cor-cinza-050);
  border: 1px solid var(--border-default);
  border-radius: 0;
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: 500;
  color: var(--text-primary);
  transition: background var(--transition-fast);
  margin-bottom: var(--space-2);
}
.download-link:hover { background: var(--cor-cinza-100); }

/* Avisos institucionais (texto fixo comum a todos produtos) */
.product-notice {
  margin-top: var(--space-6);
  padding: var(--space-4);
  background: var(--cor-cinza-050);
  border-left: 3px solid var(--border-default);
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-secondary);
}
.product-notice p { margin: 0 0 var(--space-2) 0; }
.product-notice p:last-child { margin-bottom: 0; }
.product-notice strong { color: var(--text-primary); }
.product-notice a { color: var(--text-primary); text-decoration: underline; }

/* Descrição completa e relacionados */
.product-short-desc {
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  color: var(--text-secondary);
  margin-bottom: var(--space-6);
  line-height: 1.75;
}
.product-full-desc {
  margin-top: var(--space-16);
  padding-top: var(--space-16);
  border-top: 1px solid var(--border-default);
}
.product-full-desc h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-2xl);
  font-weight: 400;
  margin-bottom: var(--space-6);
}
.product-full-desc p {
  font-family: var(--font-body);
  color: var(--text-secondary);
  line-height: 1.8;
  margin-bottom: var(--space-4);
}

.related-products {
  margin-top: var(--space-12);
  padding-top: var(--space-8);
  border-top: 1px solid var(--border-default);
}
.related-products h2 {
  font-family: var(--font-body);
  font-size: var(--font-size-lg);
  font-weight: 500;
  margin-bottom: var(--space-5);
  letter-spacing: -0.01em;
}
.products-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
}
@media (max-width: 1024px) {
  .products-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .products-grid-4 { grid-template-columns: 1fr; }
}

/* Página interna (sobre, contato, etc) */
.page-layout { padding: var(--space-12) 0 var(--space-20); max-width: 800px; }
.page-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-3xl);
  font-weight: 400;
  margin-bottom: var(--space-8);
}
.entry-content p { font-family: var(--font-body); color: var(--text-secondary); line-height: 1.8; margin-bottom: var(--space-4); }
.entry-content h2 { font-family: var(--font-heading); font-weight: 400; font-size: var(--font-size-2xl); margin: var(--space-8) 0 var(--space-4); }
.entry-content h3 { font-family: var(--font-heading); font-weight: 400; font-size: var(--font-size-xl); margin: var(--space-6) 0 var(--space-3); }
.entry-content ul, .entry-content ol { padding-left: var(--space-6); margin-bottom: var(--space-4); }
.entry-content li { font-family: var(--font-body); color: var(--text-secondary); line-height: 1.8; margin-bottom: var(--space-2); }

/* Responsivo */
@media (max-width: 1200px) {
  .product-single-grid {
    grid-template-columns: 70px minmax(340px, 480px) 440px;
    gap: var(--space-2); /* 8px — ainda mais apertado em viewports médias */
    justify-content: center;
  }
  .gallery-thumb { width: 70px; height: 70px; }
}
@media (max-width: 900px) {
  .product-single-grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
    /* rc874: sem isto o `justify-content: center` da regra base (linha ~2883) centraliza
       uma coluna maior que a tela e o conteúdo é cortado NOS DOIS LADOS (bug mobile
       reportado em 2026-08-06). `min-width: 0` deixa a coluna encolher de verdade. */
    justify-content: stretch;
  }
  .product-single-grid > * { min-width: 0; }
  /* rc1097 — "celular impecável" (gestor 16/09): a faixa de miniaturas NÃO rola para o lado;
     quebra em linhas (5 por linha em 360px, 56px cada). */
  .gallery-thumbs {
    flex-direction: row;
    flex-wrap: wrap;
    order: 2;
    overflow: visible;
    gap: 8px;
  }
  .gallery-thumb { flex: 0 0 56px; width: 56px; height: 56px; }
  .gallery-main { order: 1; }
  .product-info { order: 3; }
}
@media (max-width: 540px) {
  /* rc881 (gestor): escala mobile mais compacta — o título e o preço estavam grandes
     demais pra tela; reduz mantendo hierarquia. */
  .product-info .product-title { font-size: 16px; line-height: 1.28; }
  .price-pix { font-size: 1.375rem; } /* 22px (era 26) */
  .price-block--mini .price-pix { font-size: 16px; }
  .info-meta { font-size: 10px; }
  .product-title + .product-brand, .product-brand { font-size: 12px; }

  /* no mobile o preço não desliza à direita (tela estreita) — só encolhe na vertical */
  .price-block--sticky.is-stuck { max-width: 100%; margin-left: 0; }
}

/* ════════════════════════════════════════════════════════
   CONFIGURADOR PERFIL LED — chips + bloco de preço dinâmico + driver
   ════════════════════════════════════════════════════════ */

/* Grid Perfil LED — 3 colunas com 2 linhas: row 2 do col1+col2 fica pro guia */
/* rc783: grid com áreas — descrição cola 26px sob a foto, independente da altura do configurador */
.product-single-grid.perfil-led-grid {
  display: grid;
  /* rc842: volta ao layout do checkpoint b39ddde (preferência do gestor) — blocos da
     esquerda com respiro vertical de 26px; colunas separadas por 16px */
  grid-template-columns: 1fr 520px;
  grid-template-rows: auto auto 1fr;
  grid-template-areas: "gallery info" "desc info" "guia info";
  gap: 26px 16px;
  align-items: start;
}
.product-single-grid.perfil-led-grid .perfil-led-left { grid-area: gallery; min-width: 0; }
.product-single-grid.perfil-led-grid .product-info { grid-area: info; }
.product-single-grid.perfil-led-grid .ark-desc-inline { grid-area: desc; align-self: start; }
.product-single-grid.perfil-led-grid .product-accordion--guia { grid-area: guia; align-self: start; margin: 0; }
/* rc840 (gestor): o guia NUNCA tem barra de rolagem — o JS usa minHeight só para
   ALINHAR o fim do cartão com o fim do cálculo de frete; conteúdo compacto cabe */
.product-accordion--guia .product-accordion__content { overflow: visible; }

/* rc829/833: guia Opção 1 — trilho vertical numerado, COMPACTO (o guia não pode
   chamar mais atenção que o configurador nem gerar barra de rolagem) */
.pgt-passo { display: grid; grid-template-columns: 32px 1fr; gap: 0 10px; position: relative; padding-bottom: 12px; }
.pgt-passo:last-child { padding-bottom: 0; }
.pgt-passo::before { content: ''; position: absolute; left: 11px; top: 26px; bottom: 0; width: 1px; background: var(--cor-cinza-100); }
.pgt-passo:last-child::before { display: none; }
.pgt-num { width: 23px; height: 23px; border-radius: 50%; background: var(--cor-preto); color: #fff; font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.pgt-tit { font-size: 13px; font-weight: 600; padding-top: 3px; color: var(--text-primary); }
.pgt-txt { font-size: 12px; color: var(--text-secondary); line-height: 1.45; grid-column: 2; margin-top: 1px; }
.pgt-txt b { color: var(--text-primary); font-weight: 600; }
.pgt-cct { grid-column: 2; max-width: 400px; margin-top: 2px; }
.product-single-grid.perfil-led-grid .perfil-led-thumbs-gallery {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 24px;
  align-items: start;
}

/* rc783: Descrição sob a foto — aba estática com a MESMA cara das sanfonas (vale pros 2 templates) */
.ark-desc-inline__head {
  padding: 10px var(--space-5); /* rc833: mesma altura das sanfonas */
  background: var(--cor-cinza-050);
  border-top: 1px solid var(--cor-cinza-300);
  border-bottom: 1px solid var(--cor-cinza-300);
}
.ark-desc-inline__title {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-primary);
}
.ark-desc-inline__body {
  /* rc841 (gestor): respiro nas quatro laterais + espaço reservado p/ >=5 linhas */
  padding: 14px 18px 18px;
  min-height: calc(5 * 1.65em + 34px);
}
.ark-desc-inline__body p { text-align: justify; }
/* rc1156 (gestor, print do celular): justificado em coluna estreita abre buracos entre as palavras — os códigos das versões
   (STL24410BR/27…) não quebram e o navegador estica os espaços. No celular, alinhado à esquerda. */
@media (max-width: 900px) { .ark-desc-inline__body p { text-align: left; } }

/* Guia "Como escolher" — rc783: moldura DENTRO da sanfona (Solução 1) */
.perfil-guia-variacoes {
  border: 1px solid var(--border-default);
  padding: 26px 30px 28px;
  background: transparent;
  font-family: var(--font-body);
  color: var(--cor-cinza-700);
}
@media (max-width: 640px) {
  .perfil-guia-variacoes { padding: 16px 16px 18px; }
}
.perfil-guia-intro {
  font-size: 13.5px; line-height: 1.65;
  color: var(--cor-cinza-700);
  text-align: justify;
  max-width: 86ch;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--cor-cinza-050);
  margin: 0 0 20px;
}
.perfil-guia-intro b { color: var(--cor-preto); font-weight: 600; }

@media (max-width: 1024px) {
  .product-single-grid.perfil-led-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    /* mobile: foto → compra → descrição → guia (a descrição nunca empurra o preço) */
    grid-template-areas: "gallery" "info" "desc" "guia";
    justify-content: stretch; /* rc874 — ver comentário no @media 900 */
  }
  .product-single-grid.perfil-led-grid > * { min-width: 0; }
  /* rc829: empilhado não há coluna de referência — altura livre */
  .product-accordion--guia .product-accordion__content { max-height: none !important; }
  /* rc881 (gestor): no mobile a galeria empilha — foto grande em cima (largura total) e as
     mini fotos numa FAIXA HORIZONTAL rolável abaixo. Antes ficavam numa coluna de 70px ao
     lado da foto, onde só a 1ª aparecia e as demais transbordavam/somiam. */
  .product-single-grid.perfil-led-grid .perfil-led-thumbs-gallery {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .perfil-led-thumbs-gallery .gallery-main { order: 1; max-width: 100%; }
  .perfil-led-thumbs-gallery .gallery-thumbs-col { order: 2; flex-direction: row; }
  .gallery-thumbs-col .thumbs-nav { display: none; } /* setas ▲▼ são de scroll vertical — no horizontal, scroll nativo */
  .perfil-led-thumbs-gallery .gallery-thumbs {
    flex-direction: row;
    flex-wrap: wrap;          /* rc1097: sem rolagem lateral — quebra em linhas */
    overflow: visible;
    gap: 8px;
    padding-bottom: 4px;
  }
  .perfil-led-thumbs-gallery .gallery-thumbs::-webkit-scrollbar { display: none; }
  .perfil-led-thumbs-gallery .gallery-thumb { flex: 0 0 60px; width: 60px; height: 60px; }
}

/* Estilos do acordeão de descrição (.product-seo-intro) — fonte padrão Inter (rc181) */
.product-seo-intro h3 { font-family: var(--font-body); font-size: 18px; font-weight: 500; color: var(--cor-preto); margin: 0 0 var(--space-3); letter-spacing: -0.01em; }
.product-seo-intro h4 { font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--cor-preto); margin: var(--space-4) 0 var(--space-1); }
.product-seo-intro p { font-family: var(--font-body); margin: 0 0 var(--space-3); }
.product-seo-intro p:last-child { margin-bottom: 0; }
.product-seo-intro a { color: var(--cor-preto); text-decoration: underline; }
.product-seo-intro a:hover { color: var(--cor-vermelho); }

/* ════════════════════════════════════════════════════════
   CONFIGURADOR PERFIL LED — DIFERENÇAS MÍNIMAS vs single-product padrão
   - Texto introdutório de variação
   - Bloco de configurador (chips + tamanho)
   - Tabela specs com dynamic-val
   - Card produto: preço por metro (DE X/m até Y/m)
   ════════════════════════════════════════════════════════ */

/* Texto introdutório do configurador — sem margin (gap do .product-info cuida) */
.config-intro {
  font-size: 12px; color: var(--text-secondary); padding: 10px 12px;
  background: var(--cor-cinza-050); border-left: 2px solid var(--cor-preto);
  line-height: 1.45; margin: 0;
}

/* Configurador — bloco unificado, sem margin (gap do parent) */
.perfil-config-block {
  display: flex; flex-direction: column; gap: 14px;
  padding: var(--space-4); margin: 0;
  background: var(--cor-branco); border: 1px solid var(--border-default); border-radius: 0;
}
.config-row { display: flex; flex-direction: column; gap: 6px; }
.config-label {
  font-size: 11px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--text-secondary);
}

.chip-group { display: flex; flex-wrap: wrap; gap: 6px; }
/* 2026-08-20: chips de tamanho da linha Modular (1/2/3m) — container próprio para não
   cair no bind genérico de .chip-group (selectChip). Gestor: MESMO tamanho do chip de
   cor — replica o grid rc844 da cor (3 colunas, width 100%, min-height 36px do rc847),
   medido empiricamente: cor renderiza 158×42, tamanho idem com estas regras. */
.chip-tam-grupo {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

/* ══ 2026-08-20 (gestor, opção 4): painel "complete o sistema" da linha Modular ══ */
#ark-ml-overlay { position: fixed; inset: 0; background: rgba(10,10,10,.45); z-index: 10000;
  opacity: 0; pointer-events: none; transition: opacity 220ms ease; }
#ark-ml-overlay.on { opacity: 1; pointer-events: auto; }
#ark-ml-painel { position: fixed; top: 0; right: 0; width: 400px; max-width: 92vw; height: 100vh;
  height: 100dvh; background: var(--cor-branco); z-index: 10001; box-shadow: -18px 0 40px rgba(0,0,0,.18);
  display: flex; flex-direction: column; transform: translateX(105%); transition: transform 280ms ease; }
#ark-ml-painel.on { transform: translateX(0); }
.ml-painel__x { position: absolute; top: 10px; right: 12px; background: none; border: 0;
  font-size: 22px; color: var(--cor-cinza-500); cursor: pointer; line-height: 1; }
.ml-painel__head { padding: 16px 20px; border-bottom: 1px solid var(--border-default); }
.ml-painel__ok { font-size: 12px; color: var(--cor-verde-esc, #008F44); font-weight: 700; }
.ml-painel__tit { font-size: 16px; font-weight: 700; color: var(--cor-preto); margin-top: 2px; }
.ml-painel__body { padding: 14px 20px; overflow: auto; flex: 1; }
.ml-painel__sec { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  color: var(--cor-preto); margin: 12px 0 8px; }
.ml-painel__item { display: flex; gap: 10px; align-items: center; border: 1px solid var(--border-default);
  padding: 9px 10px; margin-bottom: 8px; }
.ml-painel__item img { width: 46px; height: 46px; object-fit: contain; border: 1px solid var(--cor-cinza-100);
  background: var(--cor-branco); flex: none; }
.ml-painel__info { flex: 1; font-size: 12px; color: var(--cor-cinza-700); line-height: 1.4;
  display: flex; flex-direction: column; }
.ml-painel__info b { color: var(--cor-preto); }
.ml-painel__add { background: var(--bg-cta, #00A650); color: #fff; border: 0; padding: 8px 12px;
  font-size: 10.5px; font-weight: 700; text-transform: uppercase; cursor: pointer; flex: none;
  text-decoration: none; letter-spacing: .03em; }
.ml-painel__add:hover { background: var(--bg-cta-hover, #008F44); color: #fff; }
.ml-painel__add:disabled { opacity: .65; cursor: default; }
.ml-painel__nota, .ml-painel__vazio, .ml-painel__carregando { font-size: 11.5px;
  color: var(--cor-cinza-500); line-height: 1.5; margin: 8px 0 0; }
.ml-painel__foot { border-top: 1px solid var(--border-default); padding: 14px 20px;
  display: flex; align-items: center; gap: 14px; }
.ml-painel__cart { flex: 1; background: var(--cor-preto); color: #fff; text-align: center;
  padding: 12px 16px; font-size: 12px; font-weight: 700; text-transform: uppercase;
  text-decoration: none; letter-spacing: .04em; }
.ml-painel__cart:hover { color: #fff; opacity: .9; }
.ml-painel__continuar { background: none; border: 0; font-size: 11.5px; color: var(--cor-cinza-500);
  cursor: pointer; text-decoration: underline; }
.chip-tam-grupo .chip {
  width: 100%;
  /* 42px = altura REAL medida dos chips de cor na Modular (rótulo com delta quebra
     em 2 linhas e o grid estica a linha toda) — mesma altura, mesmo bloco visual */
  min-height: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  text-align: center;
}
.chip {
  padding: 7px 12px; border: 1px solid var(--border-default);
  background: var(--cor-branco);
  font-size: 12px; font-weight: 500; color: var(--cor-cinza-700);
  cursor: pointer; border-radius: 0;
  transition: border-color 120ms ease, color 120ms ease, transform 120ms ease;
}
.chip:hover:not(:disabled) { border-color: var(--cor-cinza-700); color: var(--cor-preto); }
/* Selected: SEM fundo escurecido — só borda preta + texto bold */
.chip.is-selected {
  background: var(--cor-branco);
  color: var(--cor-preto);
  border: 1px solid var(--cor-preto);
  font-weight: 600;
}
/* Feedback visual ao clicar (movimentação mínima) */
.chip:active { transform: scale(0.96); }
.chip.was-clicked { animation: chip-pressed 220ms ease; }
@keyframes chip-pressed {
  0% { transform: scale(1); }
  35% { transform: scale(0.93); }
  100% { transform: scale(1); }
}
.chip:disabled, .chip.is-hidden { opacity: 0.35; cursor: not-allowed; pointer-events: none; }
.chip.is-hidden { display: none; }
.chip-cor { padding: 5px 10px 5px 5px; display: inline-flex; align-items: center; gap: 8px; }
.chip-cor .swatch { width: 16px; height: 16px; border: 1px solid rgba(0,0,0,0.08); display: inline-block; }
/* TONS DOS ACABAMENTOS DOS PERFIS — DONO ÚNICO (gestor 06/10/2026, decisão 1-A: "site, ficha e 3D com os mesmos tons").
   Quem lê daqui: as bolinhas de cor do site (abaixo), o visualizador 3D (assets/js/visualizador-3d.js lê as variáveis
   na página) e a ficha técnica em PDF (scripts/catalogo/73-gera-ficha-manual.py lê este bloco). Mudou um tom? Só aqui.
   Tons pedidos pelo gestor em 06/10: verde musgo, marrom cortém, cinza grafite claro. --acab-aluminio-fundo = o brilho
   do anodizado na bolinha; --acab-aluminio = tom base (peça 3D). */
:root {
  --acab-aluminio: #C9CBCE;
  --acab-aluminio-fundo: linear-gradient(135deg, #C9CBCE 0%, #9DA1A5 55%, #BEC0C3 100%);
  --acab-branco: #F4F4F2;
  --acab-preto: #1A1A1A;
  --acab-marrom-cortem: #6E3A1F;
  --acab-verde-fosco: #4A5634;
  --acab-cinza: #50545A;
}
/* rc833: cores reais por slug (Pro: aluminio/branco/preto/marrom-cortem/verde-fosco;
   legado PL103: branco-fosco-txt/preto-fosco-txt/marrom-cortem — seletores *= cobrem ambos) */
.chip-cor[data-cor*="branco"] .swatch { background: var(--acab-branco); }
.chip-cor[data-cor*="preto"]  .swatch { background: var(--acab-preto); }
.chip-cor[data-cor*="marrom"] .swatch { background: var(--acab-marrom-cortem); }
.chip-cor[data-cor*="cinza"]  .swatch { background: var(--acab-cinza); }
.chip-cor[data-cor*="aluminio"] .swatch { background: var(--acab-aluminio-fundo); }
.chip-cor[data-cor*="verde"] .swatch { background: var(--acab-verde-fosco); }
/* 2026-09-05: cores dos pendentes Ark (PD101 Capello, PD102 Milano) — exatas, depois das genéricas */
.chip-cor[data-cor="preto-brilhante"]  .swatch { background: linear-gradient(135deg, #0A0A0A 0%, #3D3D3D 45%, #0A0A0A 100%); }
.chip-cor[data-cor="branco-brilhante"] .swatch { background: linear-gradient(135deg, #FFFFFF 0%, #E6E6E6 50%, #FFFFFF 100%); }
.chip-cor[data-cor="dourado"]          .swatch { background: linear-gradient(135deg, #E9CB6B 0%, #B8902E 55%, #DDB955 100%); }
.chip-cor[data-cor="branco-cobre"]     .swatch { background: linear-gradient(135deg, #F4F4F2 0% 50%, #B87333 50% 100%); }
.chip-cor[data-cor="preto-cobre"]      .swatch { background: linear-gradient(135deg, #1A1A1A 0% 50%, #B87333 50% 100%); }

/* 2026-09-05: seletor de variações do produto comum (template-parts/product-variacoes.php).
   MEDIÇÃO EMPÍRICA (2ª passada): o botão é o mesmo componente do configurador de perfil —
   .config-row + .config-label + .chip-group[data-attr=cor|cct|dim] já entregam grade de 3
   colunas, chip 158×36, fonte 11,5px/600 e rótulo 11px maiúsculo. Aqui só o que é próprio:
   1) o form NÃO pode herdar o grid 100px/1fr de `.cart-row form.cart` (desenhado para
      qty+botão do produto simples) — era o que espremia os chips em 100px de largura,
      exatamente o caso já documentado no rc914 para o form de variação do WooCommerce;
   2) o grid qty+botão desce para a linha de ações. */
.cart-row form.cart.ark-var-form { display: block; }
.ark-var-form .config-row { margin-bottom: 14px; }
.ark-var-actions {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: var(--space-2);
  align-items: stretch;
}
.ark-var-hint { font-size: 12px; color: var(--text-secondary); margin: 8px 0 0; }
.ark-var-hint[hidden] { display: none; }

/* 2026-09-05: vídeo do produto na galeria */
.gallery-thumb--video { position: relative; }
.gallery-thumb__play {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; color: #fff; background: rgba(0, 0, 0, 0.28);
  pointer-events: none;
}
.gallery-main.is-video { cursor: default; }
.gallery-main.is-video::after { display: none; }
/* fundo BRANCO igual ao do quadro: com #000 a área piscava preta antes do 1º quadro do vídeo */
.gallery-main video { width: 100%; height: 100%; object-fit: contain; display: block; background: var(--cor-branco); }

/* Tamanho — input ocupa quase todo espaço, hint na linha de baixo */
.chip-tamanho {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
}
.chip-tamanho input {
  width: 100%; padding: 8px 12px;
  border: 1px solid var(--border-default); background: var(--cor-branco);
  font-family: inherit; font-size: 14px; text-align: left; border-radius: 0;
}
.chip-tamanho input:focus { outline: none; border-color: var(--cor-preto); }
.chip-tamanho .unit { font-size: 14px; color: var(--text-secondary); padding-right: 4px; }
.chip-tamanho .hint { grid-column: 1 / -1; font-size: 11px; color: var(--text-secondary); }

/* Bloco de driver (quando dim=sim) */
.price-driver { background: rgba(52, 131, 250, 0.08); border-left: 3px solid var(--cor-azul, #3483FA); padding: 10px 14px; margin-top: 8px; font-size: 12px; color: var(--cor-cinza-700); }
.price-driver strong { color: var(--cor-preto); display: block; font-size: 13px; margin-bottom: 2px; }
.price-driver-detail { font-size: 11px; opacity: 0.8; }
.alert-warn { background: rgba(232, 0, 29, 0.06); color: var(--cor-vermelho); padding: 10px 14px; font-size: 13px; border-left: 3px solid var(--cor-vermelho); display: none; margin: 0; }
.alert-warn.is-visible { display: block; }

/* Specs table — campos dinâmicos
   rc775 (pedido do gestor): valores em PRETO (não azul); flash vermelho segue como
   feedback transitório quando o configurador altera a spec. */
.specs-table .dynamic-val { color: var(--cor-preto, #1A1A1A); font-weight: 400; transition: color 0.3s ease; }
.specs-table .dynamic-val.flash { color: var(--cor-vermelho); }

/* Cards iguais aos da Stella — sem customização específica por tipo de produto. */

/* rc768 (F1-BUG-C): aviso de frete indisponível — >2m fora da Grande SP */
.ark-frete-aviso {
  background: #FFF6E5;
  border-left: 4px solid #D97706;
  border-radius: 6px;
  padding: 12px 14px;
  margin: 12px 0;
  font-size: 13px;
  line-height: 1.5;
  color: #573A08;
}
.ark-frete-aviso .ark-frete-aviso-wa {
  display: inline-block;
  margin-top: 8px;
  font-weight: 600;
  color: #16803C;
  text-decoration: underline;
}

/* rc773: divisão em peças — design aprovado (cantos retos, seleção borda preta, padrão do site) */
.ark-divisao-bloco { margin-top: 9px; display: flex; flex-direction: column; gap: 5px; }
/* rc774: [hidden] precisa vencer o display:flex — sem isto o bloco aparecia vazio antes de digitar tamanho */
.ark-divisao-bloco[hidden] { display: none !important; }
.ark-divisao-titulo {
  font-size: 11px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--cor-cinza-500, #717171);
}
.ark-divisao-opt {
  display: flex; gap: 8px; align-items: center;
  padding: 7px 10px; margin: 0;
  border: 1px solid var(--border-default, #E2E0DB); border-radius: 0;
  cursor: pointer; background: #fff; transition: border-color .12s ease;
}
.ark-divisao-opt:hover { border-color: var(--cor-cinza-700, #3D3D3D); }
.ark-divisao-opt input { accent-color: var(--cor-preto, #1a1a1a); margin: 0; }
.ark-divisao-txt { display: flex; align-items: center; gap: 8px; flex: 1; }
.ark-divisao-txt strong { font-size: 12px; color: var(--cor-cinza-700, #3D3D3D); font-weight: 500; }
.ark-divisao-txt small { font-size: 11px; color: var(--cor-cinza-500, #717171); margin-left: auto; text-align: right; }
.ark-divisao-txt small b { color: var(--cor-cinza-700, #3D3D3D); }
.ark-divisao-opt:has(input:checked) { border-color: var(--cor-preto, #1a1a1a); }
.ark-divisao-opt:has(input:checked) .ark-divisao-txt strong { font-weight: 600; color: var(--cor-preto, #1a1a1a); }
.ark-divisao-nota {
  font-size: 12px; color: var(--cor-cinza-700, #3D3D3D); margin: 2px 0 0;
  line-height: 1.5; padding-left: 13px; position: relative;
}
.ark-divisao-nota::before { content: '•'; position: absolute; left: 2px; color: var(--cor-azul, #3483FA); font-weight: 700; }

/* rc773: valor escolhido ao lado do label (mockup aprovado) */
.config-label .config-label-val,
.ark-config-group-label .config-label-val {
  font-style: normal; color: var(--cor-azul, #3483FA); font-weight: 600;
  text-transform: none; letter-spacing: 0; margin-left: 6px; font-size: 11px;
}

/* rc773: campo Observação dentro do cartão */
.config-obs textarea, .ark-config-obs textarea.ark-config-obs-input { resize: vertical; min-height: 46px; line-height: 1.5; }
.config-obs input, .config-obs textarea, .ark-config-obs .ark-config-obs-input {
  width: 100%; border: 1px solid var(--border-default, #E2E0DB); border-radius: 0;
  padding: 7px 11px; font-size: 14px; font-family: inherit; background: #fff; /* rc836: input = 14 */
}
.config-obs input:focus, .config-obs textarea:focus, .ark-config-obs .ark-config-obs-input:focus { outline: none; border-color: var(--cor-preto, #1a1a1a); }
.config-obs input::placeholder, .config-obs textarea::placeholder, .ark-config-obs .ark-config-obs-input::placeholder { color: #B8B8B8; }

/* rc773: compactação do cartão do configurador (mockup aprovado).
   2026-09-05: o seletor de variações do produto comum (.ark-var-form) entra no MESMO seletor —
   medição empírica mostrou que sem isto o chip do pendente saía 12px/500 contra 11,5px/600 do
   perfil, a única diferença que restava entre os dois componentes. */
.perfil-config-block { gap: 11px; }
.perfil-config-block .chip,
.ark-var-form .chip { padding: 6px 11px; font-size: 11.5px; font-weight: 600; }
.perfil-config-block .chip.chip-cor,
.ark-var-form .chip.chip-cor { padding: 6px 11px 6px 10px; }

/* rc772: link WhatsApp — verde oficial, clicável (pedido do gestor) */
.ark-wa-link,
.ark-frete-aviso .ark-frete-aviso-wa {
  color: #1DA851;
  font-weight: 600;
  text-decoration: underline;
}
.ark-wa-link:hover,
.ark-frete-aviso .ark-frete-aviso-wa:hover { color: #128C42; }


/* ══════════════ rc783: guia "Como escolher" — Trilho em 2 colunas na sanfona (mockup guia-perfil-v6-final.html) ══════════════ */
/* 7 paradas numeradas conectadas por linha vertical, na ordem do configurador; textos de 1 frase, justificados sem hifenização */
.pg-rail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 64px; }
@media (max-width: 800px) { .pg-rail-grid { grid-template-columns: 1fr; } }
.pg-rail { position: relative; counter-reset: pgstop; }
.pg-rail--b { counter-reset: pgstop 4; }
.pg-rail::before { content: ''; position: absolute; left: 11px; top: 10px; bottom: 12px; width: 1px; background: var(--border-default); }
.pg-stop { position: relative; counter-increment: pgstop; padding: 0 0 20px 42px; }
.pg-stop:last-child { padding-bottom: 0; }
.pg-stop::before {
  content: counter(pgstop);
  position: absolute; left: 0; top: -2px;
  width: 23px; height: 23px; border-radius: 50%;
  background: #fff; border: 1.5px solid var(--cor-preto);
  color: var(--cor-preto); font-size: 11px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}
.pg-slabel { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cor-preto); }
.pg-slabel .pg-val { font-style: normal; color: var(--cor-azul); font-weight: 600; margin-left: 6px; }
.pg-jtext { font-size: 13px; line-height: 1.65; color: var(--cor-cinza-700); text-align: justify; margin: 4px 0 0; }
.pg-jtext b { color: var(--cor-preto); font-weight: 600; }
.pg-chips-inline { display: inline-flex; flex-wrap: wrap; gap: 4px; vertical-align: -2px; }
.pg-chips-inline span { font-size: 11px; padding: 2px 7px; border: 1px solid var(--border-default); background: #fff; color: var(--cor-cinza-700); }

/* Régua de temperatura — borda a borda do texto; pin reativo desliza (rc778: espectro completo) */
.pg-cct-strip {
  position: relative; height: 8px; border-radius: 4px; margin-top: 9px;
  border: 1px solid rgba(0,0,0,.07);
  background: linear-gradient(90deg, #FFB84D 0%, #FFD9A0 22%, #FFF3E0 45%, #F6F8FA 70%, #DCEBFF 100%);
}
.pg-cct-pin {
  position: absolute; top: -4px; bottom: -4px; width: 4px;
  background: var(--cor-preto, #1A1A1A); border-radius: 2px;
  transform: translateX(-50%); transition: left .25s ease;
  box-shadow: 0 0 0 1.5px #fff;
}
/* rc782: marcas só das CCTs do produto, posicionadas no ponto real do espectro */
.pg-cct-marks-row { position: relative; height: 14px; font-size: 11px; color: var(--cor-cinza-500); margin-top: 4px; }
.pg-cct-mark { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.pg-cct-mark--start { transform: translateX(-15%); }
.pg-cct-mark--end { transform: translateX(-85%); }
.pg-cct-mark.is-on { color: var(--cor-preto, #1A1A1A); font-weight: 600; }

/* rc783: ⓘ — explicação no ponto da escolha (configurador) */
.ark-info-i {
  width: 15px; height: 15px; border-radius: 50%;
  border: 1px solid var(--cor-cinza-500);
  color: var(--cor-cinza-500);
  background: #fff;
  font-size: 10px; font-weight: 600; line-height: 1;
  font-family: var(--font-body); /* rc835: única serif da página — padroniza Inter */ font-style: normal;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; flex: none; padding: 0;
  margin-left: 6px; vertical-align: -3px;
  transition: border-color 120ms ease, color 120ms ease;
}
.ark-info-i:hover, .ark-info-i.is-open { border-color: var(--cor-preto); color: var(--cor-preto); }
.ark-config-pop {
  margin: 8px 0 2px;
  padding: 12px 14px;
  background: var(--cor-cinza-050);
  border-left: 2px solid var(--cor-preto);
  font-size: 13px; line-height: 1.6;
  color: var(--cor-cinza-700);
}
.ark-config-pop b { color: var(--cor-preto); font-weight: 600; }
.ark-config-pop .pg-cct-strip { margin-top: 10px; }

/* rc784: campo Observação funcional no form padrão (todos os produtos não-configuráveis) */
/* rc788: o form.cart é grid 100px|1fr (qty|botão) — o campo ocupa a linha inteira acima */
.ark-obs-field { margin: 0 0 14px; grid-column: 1 / -1; }
.ark-obs-field .config-label { display: block; margin-bottom: 6px; }
.ark-obs-field .ark-obs-opcional { font-style: normal; color: #B8B8B8; font-weight: 500; letter-spacing: 0; text-transform: none; }
.ark-obs-field textarea {
  width: 100%; resize: vertical; min-height: 52px;
  border: 1px solid var(--border-default);
  padding: 9px 12px;
  font-family: var(--font-body); font-size: 12.5px; line-height: 1.5;
  color: var(--cor-cinza-700);
  border-radius: 0; outline: none;
}
.ark-obs-field textarea:focus { border-color: var(--cor-preto); }

/* rc783: descrição sob a foto no template PADRÃO (grid 3 colunas: thumbs | galeria | info) */
/* rc787: grid-column EXPLÍCITA no info — sem ela, item com row definida cai na coluna 1 (80px) */
.product-single-grid { grid-template-rows: auto 1fr; row-gap: 26px; }
.product-single-grid > .product-info { grid-column: 3; grid-row: 1 / span 2; }
.product-single-grid > .ark-desc-inline { grid-column: 1 / 3; grid-row: 2; align-self: start; }
@media (max-width: 900px) {
  /* mobile padrão: foto → compra → descrição */
  .product-single-grid > .product-info { grid-column: auto; grid-row: auto; }
  .product-single-grid > .ark-desc-inline { grid-column: auto; grid-row: auto; order: 10; }
}

/* ══ Galeria: thumbs limitadas à altura da imagem + setas ▲▼ (rc824 — SEM scrollbar) ══
   Altura real sincronizada por JS (syncThumbsHeight); 460px é só fallback. */
.gallery-thumbs-col { display: flex; flex-direction: column; gap: 6px; }
.gallery-thumbs {
  max-height: 460px;
  overflow-y: auto;
  overflow-x: hidden;                 /* nada de rolagem lateral */
  overscroll-behavior: contain;
  scrollbar-width: none;              /* scrollbar escondida — navegação pelas setas */
}
.gallery-thumbs::-webkit-scrollbar { display: none; }
.thumbs-nav {
  width: 80px;                        /* mesma largura das thumbs */
  height: 22px;
  border: none; /* rc841: sem borda/fundo branco (gestor) */
  background: transparent;
  color: var(--cor-cinza-500);
  font-size: 10px;
  line-height: 1;
  cursor: pointer;
  transition: border-color var(--transition-fast), color var(--transition-fast);
}
.thumbs-nav:hover { border-color: var(--cor-preto); color: var(--cor-preto); }

/* ══ Total junto ao botão (rc825) — herda TUDO do .price-block, só reduz a escala ══ */
.price-block--mini {
  padding: 8px 2px 10px;
  margin: 0 0 6px;
  border-top: 1px solid var(--cor-cinza-050);
}
.price-block--mini .price-pix { font-size: 18px; }   /* original: 26px */
.price-block--mini.flash { animation: arkFlash 0.3s ease; }
.gallery-main { position: relative; }
.gallery-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* rc841 (gestor): sem borda e sem fundo branco — glifo limpo sobre a foto */
  background: transparent;
  border: none;
  color: var(--cor-preto);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--transition-fast), background var(--transition-fast);
}
.gallery-main:hover .gallery-nav { opacity: 1; }
.gallery-nav:hover { background: rgba(0,0,0,0.06); border-radius: 50%; }
.gallery-nav--prev { left: 10px; }
.gallery-nav--next { right: 10px; }

/* ══ Configurador: chips indisponíveis + delta de preço (2026-08-02) ══ */
.ark-config-chips .chip.is-unavailable {
  opacity: 0.35;
  cursor: not-allowed;
  text-decoration: line-through;
}
.ark-config-chips .chip .chip-delta {
  display: block;
  font-size: 10px;
  font-weight: 400;
  color: var(--cor-cinza-500);
  line-height: 1.2;
  margin-top: 1px;
}
.ark-config-chips .chip.is-selected .chip-delta { display: none; }
.ark-config-chips .chip.is-unavailable .chip-delta { display: none; }

/* ══ rc827: total sempre visível durante a configuração (pedido do gestor) ══
   Só o price-block do configurador Perfil LED — Stella/padrão não muda. */
.price-block--sticky {
  position: sticky;
  top: calc(var(--header-height-total) + 8px);
  z-index: 5;
  box-shadow: 0 6px 14px -8px rgba(0, 0, 0, 0.18);
}
.price-block--sticky.flash { animation: arkFlash 0.3s ease; }


/* ══ rc834: bloco "Importante" das specs — texto maior, WhatsApp verde, e-mail azul ══ */
/* rc836: tamanho unificado na regra base .product-notice (13px) */
.product-specs .product-notice a[href*="wa.me"] { color: #1EBE5D; font-weight: 600; }
.product-specs .product-notice a[href^="mailto"] { color: var(--cor-azul); font-weight: 600; }

/* ══ rc873 (gestor): descrição COMPLETA, sem corte ══
   O line-clamp de 5 linhas do rc834 truncava o texto com "…" e ainda cortava os
   descendentes (o "g" de garantia) porque o box tinha altura fixa. Os textos SEO
   novos têm 3-5 frases: o bloco cresce com o conteúdo. */
.perfil-led-grid .ark-desc-inline__body {
  display: block;
  overflow: visible;
  line-height: 1.65;
  padding-bottom: 20px;
}


/* ══ rc836: glifos dos botões de quantidade — FORA da escala de texto ══ */
.ark-perfil-qty .qty-btn { font-size: 18px; font-weight: 400; }
.product-card-qty .qty-btn { font-size: 18px; }
/* rc836: variante muted do valor do label (ex.: "opcional") — sai do inline */
.config-label-val--muted { color: var(--cor-cinza-300, #B8B8B8); font-weight: 500; }


/* rc842: cartão único REVERTIDO ao layout do checkpoint b39ddde — mantidos apenas os
   fixes pontuais aprovados: setas sem borda/fundo, respiro da descrição, guia sem rolagem */


/* ══ rc843 (gestor): foto um pouco maior; Descrição/Guia encolhem pela direita até a
   borda exata da foto (largura setada pelo JS syncMioloAlinhamento) ══ */
.perfil-led-grid .gallery-main { max-width: clamp(380px, 80vh, 720px); }
.perfil-led-grid .ark-desc-inline,
.perfil-led-grid details.product-accordion--guia { justify-self: start; width: 100%; }


/* ══ rc844 (gestor): configurador — nome do grupo PRETO + ":" antes do valor azul;
   Cor e Temperatura em grade uniforme (3 colunas, botões do mesmo tamanho, alinhados) ══ */
.config-label { color: var(--text-primary); }
.chip-group[data-attr="cor"],
.chip-group[data-attr="cct"] {
  display: grid;
  /* rc874: minmax(0,…) — com `1fr` puro a coluna não encolhe abaixo do min-content do
     chip ("Marrom Cortém +R$14"), o que forçava 377px de largura no configurador e
     estourava a tela do celular. */
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}
.chip-group[data-attr="cor"] .chip,
.chip-group[data-attr="cct"] .chip {
  width: 100%;
  justify-content: center;
  text-align: center;
}
/* rc874: em tela estreita, 3 colunas espremem "Marrom Cortém +R$14" em 3 linhas — 2 leem melhor */
@media (max-width: 420px) {
  .chip-group[data-attr="cor"],
  .chip-group[data-attr="cct"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* ══ rc853 (DEFINITIVO): .product-info é FLEX-COLUMN → margin-left:auto encolhia o
   bloco p/ fit-content (a causa-raiz da faixa "diminuída" desde o rc848). Agora:
   base 100% LIMPA (flex stretch = faixa total) e o compacto desliza à direita por
   MARGEM EM PX calculada pelo JS (px→px anima liso; auto/% não animam). ══ */
.price-block--sticky {
  transition: max-width .5s cubic-bezier(.22, .61, .36, 1),
              margin-left .5s cubic-bezier(.22, .61, .36, 1),
              padding .5s ease, box-shadow .45s ease;
}
.price-block--sticky .price-pix { transition: font-size .5s cubic-bezier(.22, .61, .36, 1); }
.price-block--sticky .price-installments,
.price-block--sticky .price-regular {
  max-height: 44px;
  opacity: 1;
  overflow: hidden;
  transition: max-height .5s cubic-bezier(.22, .61, .36, 1), opacity .3s ease;
}
.price-block--sticky.is-stuck {
  max-width: 290px;
  margin-left: var(--stuck-ml, 55%);
  padding: 8px 14px;
  box-shadow: 0 10px 24px -12px rgba(0, 0, 0, 0.30);
}
.price-block--sticky.is-stuck .price-pix { font-size: 18px; }
.price-block--sticky.is-stuck .price-installments,
.price-block--sticky.is-stuck .price-regular {
  max-height: 0;
  opacity: 0;
}
.price-block--sticky.is-stuck .price-driver { display: none; }

/* ══ rc845: valores azuis do configurador no MESMO tamanho do corpo (12px) ══ */
.config-label-val { font-size: 12px; }

/* ══ rc845: TODOS os grupos com botões iguais e alinhados por categoria ══ */
.chip-group[data-attr="ip"],
.chip-group[data-attr="w"],
.chip-group[data-attr="dim"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 6px;
}
.chip-group[data-attr="ip"] .chip,
.chip-group[data-attr="w"] .chip,
.chip-group[data-attr="dim"] .chip {
  width: 100%;
  justify-content: center;
  text-align: center;
}


/* ══ rc846 (gestor): refinos do configurador ══ */
/* Cores: swatch e início do texto ALINHADOS na vertical entre as duas linhas */
.chip-group[data-attr="cor"] .chip {
  justify-content: flex-start;
  text-align: left;
  padding-left: 10px;
}
/* Separação clara entre as seções do configurador */
.perfil-config-block .config-row + .config-row {
  border-top: 1px solid var(--cor-cinza-100);
  padding-top: 12px;
  margin-top: 12px;
}
/* Altura única para TODOS os botões (com ou sem delta de preço) — rc847: 36px, proporcional */
.chip-group .chip { min-height: 36px; }


/* ══ rc848 (gestor): ⓘ alinhado ao centro vertical das letras do label/valor ══ */
.config-label {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.config-label .ark-info-i { flex: 0 0 auto; }

/* ══════════════════════════════════════════════════════════════════════════
   rc881 (gestor) — REFINO MOBILE consolidado.
   No FIM do arquivo DE PROPÓSITO: em empate de especificidade a última regra
   vence. Os ajustes espalhados acima caíam ANTES das regras-base (.badge,
   .price-block--sticky) e eram sobrescritos. Aqui ganham.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 540px) {
  /* 1) selos SOB MEDIDA / GARANTIA / PREPARO na MESMA linha */
  .product-badges { flex-wrap: nowrap; gap: 4px; }
  .product-badges .badge { font-size: 9px; padding: 3px 5px; letter-spacing: 0; gap: 3px; }

  /* 2) escala de fontes mais compacta pra tela */
  .product-info .product-title { font-size: 16px; line-height: 1.28; }
  .price-block .price-pix { font-size: 1.375rem; } /* 22px (era 26) */
  .info-meta { font-size: 10px; }

  /* 3) preço sticky acima do resto da página (z-index 5 da regra base ficava sob outros blocos).
     O top vem da regra base, calc(var(--header-height-total) + 8px): o "top: 96px" fixo do rc881
     compensava a variável errada (64px) e saiu em 16/09 (rc1095), quando ela passou a valer 88px
     no celular — mesmos 96px, agora com um dono só. */
  .price-block.price-block--sticky { z-index: 90; }
  .price-block--sticky.is-stuck { max-width: 100%; margin-left: 0; } /* no mobile não desliza à direita */
}

/* ══════════════════════════════════════════════════════════════════════════
   rc882 (gestor) — 2ª rodada de refino mobile. No fim do arquivo pelo mesmo
   motivo do rc881: em empate de especificidade, a última regra vence.
   ══════════════════════════════════════════════════════════════════════════ */

/* 1) CARD — seta de trocar foto visível desde o início, discreta.
   Era opacity:0 revelada só em :hover — no celular não existe hover, então a
   seta só aparecia depois de mexer nas bolinhas. */
.product-card-nav { opacity: .38; }
.product-card:hover .product-card-nav { opacity: 1; }
@media (hover: none) {
  /* toque: discreta e sempre presente */
  .product-card-nav { opacity: .42; }
}

/* 2) CARD — bolinhas desciam SOBRE a imagem (sobrepunham 14px). Passam a ficar
   logo abaixo da foto, sem empurrar nada (a faixa já existe no fluxo). */
.product-card-dots { bottom: -14px; }
.product-card-img-wrap { margin-bottom: 18px; }

/* 3) RELACIONADOS — o card é o MESMO template da loja; o que mudava era o grid
   (1 coluna abaixo de 540px vs 2 na loja). Iguala ao da loja no site todo. */
@media (max-width: 540px) {
  .products-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
  /* 4) PDP — faixa de mini fotos: respiro lateral pra nenhuma thumb ficar cortada
     na borda direita, e rolagem por toque com encaixe. */
  .perfil-led-thumbs-gallery .gallery-thumbs {
    padding-right: 16px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .perfil-led-thumbs-gallery .gallery-thumb { scroll-snap-align: start; }

  /* 5) PDP — setas da foto principal: no toque não há hover, ficam sempre visíveis
     (discretas). Antes só apareciam com o mouse em cima. */
  .gallery-main .gallery-nav { opacity: .5; }
}

/* 6) PDP — selos alinhados com o quadro cinza do preço (mesma largura/começo/fim) */
@media (max-width: 540px) {
  .product-info .product-badges { width: 100%; }
  .product-info .product-badges .badge { flex: 1 1 auto; justify-content: center; }
}

/* 7) LIGHTBOX — setas saem de cima da foto (vão pro rodapé do overlay), pra não
   atrapalhar quem quer printar a imagem. Botão de compartilhar ao lado do fechar. */
@media (max-width: 1024px) {
  .ark-lightbox-prev, .ark-lightbox-next {
    top: auto; bottom: 18px; transform: none;
  }
  .ark-lightbox-prev { left: 28%; }
  .ark-lightbox-next { right: 28%; }
}
.ark-lightbox-share {
  position: absolute; top: 16px; right: 64px;
  width: 40px; height: 40px; display: grid; place-items: center;
  border: 0; border-radius: 50%; cursor: pointer;
  background: rgba(255,255,255,0.92); color: var(--cor-preto);
  z-index: 2;
}
.ark-lightbox-share:hover { background: var(--cor-branco); transform: scale(1.05); }
.ark-lightbox-share svg { width: 20px; height: 20px; }

/* 8) PDP — botão de compartilhar a página, discreto, na linha do REF */
.ark-share-page {
  display: inline-flex; align-items: center; gap: 6px;
  margin-left: auto; padding: 4px 8px;
  border: 1px solid var(--border-default); background: transparent;
  color: var(--text-secondary); font-size: 11px; cursor: pointer;
}
.ark-share-page:hover { color: var(--text-primary); border-color: var(--cor-cinza-700); }
.ark-share-page svg { width: 14px; height: 14px; }
.info-meta { display: flex; align-items: center; gap: 10px; }

/* 9) PDP — breadcrumb colado na linha do menu + botão voltar discreto */
.product-single .breadcrumb { display: flex; align-items: center; gap: 8px; }
.ark-back-btn {
  display: inline-flex; align-items: center; gap: 4px;
  border: 0; background: transparent; cursor: pointer;
  color: var(--text-secondary); font-size: 12px; padding: 2px 6px 2px 0;
}
.ark-back-btn:hover { color: var(--text-primary); }
.ark-back-btn svg { width: 14px; height: 14px; }
@media (max-width: 1024px) {
  .product-single .breadcrumb { margin-top: 14px; } /* respiro da linha cinza do menu */
}

/* 10) SPECS mobile — o zebrado tinha alturas irregulares e o texto da direita
   ficava desalinhado. Linhas com respiro uniforme, rótulo e valor equilibrados. */
@media (max-width: 640px) {
  .product-specs table td,
  .specs-table td { padding: 9px 10px; font-size: 12px; line-height: 1.5; vertical-align: top; }
  .product-specs table td:first-child,
  .specs-table td:first-child { width: 42%; color: var(--text-secondary); font-weight: 500; }
  .product-specs table td:last-child,
  .specs-table td:last-child { text-align: left; hyphens: auto; overflow-wrap: anywhere; }
}

/* ── rc882.1 — correções da verificação (dois pontos que não fecharam) ────────── */
@media (max-width: 1024px) {
  /* (a) A faixa de mini fotos não rolava e a última thumb ficava cortada na borda:
     o container tem padding lateral, então a faixa "fura" esse padding e volta o
     respiro por dentro — assim TODAS as fotos passam, sem corte no fim. */
  .product-single-grid.perfil-led-grid .perfil-led-thumbs-gallery .gallery-thumbs {
    margin-left: -16px;
    margin-right: -16px;
    padding-left: 16px;
    padding-right: 16px;
    max-width: 100vw;
  }
}
@media (max-width: 640px) {
  /* (b) specs: a coluna do rótulo tinha font-size próprio (--font-size-sm) e
     padding-right:0, que venciam a regra geral. Especifica as duas colunas. */
  .product-specs .specs-table td,
  .product-specs .specs-table td:first-child,
  .product-specs .specs-table td:last-child {
    font-size: 12px;
    line-height: 1.5;
    padding: 9px 10px;
  }
  .product-specs .specs-table td:first-child { width: 42%; font-weight: 600; }
  .product-specs .specs-table td:last-child { font-weight: 400; overflow-wrap: anywhere; }
}

/* ══════════════════════════════════════════════════════════════════════════
   rc883 (gestor) — 3ª rodada. Última no arquivo = vence empates de especificidade.
   ══════════════════════════════════════════════════════════════════════════ */

/* 1) CARD — sem bolinhas (o gestor preferiu assim) e mais compacto: a faixa que
   elas ocupavam sai, o resto sobe. Vale mobile e desktop. */
.product-card-dots { display: none !important; }
.product-card-img-wrap { margin-bottom: 0; }

/* 2) PDP — botão Voltar no azul Ark Lamps */
.ark-back-btn { color: var(--cor-azul); font-weight: 500; }
.ark-back-btn:hover { color: var(--cor-azul-esc); }

@media (max-width: 1024px) {
  /* 3) PDP — faixa de mini fotos SEM margem negativa (ela furava o container e, em
     algumas larguras, empurrava a última foto pra fora da tela). Agora a faixa vive
     dentro do container e rola por dentro dele. */
  .product-single-grid.perfil-led-grid .perfil-led-thumbs-gallery .gallery-thumbs {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
    width: 100%;
  }
}

/* 4) SPECS — coluna da esquerda em negrito; todas as linhas com respiro de duas
   linhas (mobile), menos a do Modelo, que pode crescer por causa do nome longo. */
@media (max-width: 640px) {
  .product-specs .specs-table td:first-child { font-weight: 700; }
  .product-specs .specs-table tr > td { height: 3.4em; }              /* ~2 linhas de respiro */
  .product-specs .specs-table tr.specs-row--modelo > td { height: auto; }
}
.product-specs .specs-table td:first-child { font-weight: 700; }

/* ── rc883.1 — a faixa de mini fotos estourava a tela (756px numa tela de 360) ──
   Causa: flex item nasce com min-width:auto, então a faixa esticava até caber os 11
   thumbs em vez de limitar-se à tela e rolar. Travar min-width:0 na cadeia faz o
   overflow-x funcionar de verdade. */
@media (max-width: 1024px) {
  .product-single-grid.perfil-led-grid .perfil-led-thumbs-gallery .gallery-thumbs-col,
  .product-single-grid.perfil-led-grid .perfil-led-thumbs-gallery .gallery-thumbs {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }
  .product-single-grid.perfil-led-grid .perfil-led-thumbs-gallery .gallery-thumbs {
    overflow: visible;        /* rc1097: as miniaturas quebram em linhas (regra ≤768 acima) */
    flex-wrap: wrap;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   rc884 (gestor) — card mais compacto + acertos da ficha técnica
   ══════════════════════════════════════════════════════════════════════════ */

/* 1) CARD (mobile e PC) — as informações sobem pra perto da imagem: some o padding
   de topo do bloco e encurta o respiro entre título e preço. */
.product-card-bottom { gap: var(--space-1); padding: 6px var(--space-3) var(--space-3); }
.product-card-bottom .product-card-info { padding-top: 0; padding-bottom: 0; }
.product-card-title { min-height: 0; margin-bottom: 2px; }
.product-card-price { margin-top: 0; min-height: 0; }

/* 2) SPECS — a coluna da esquerda é PRETA (não negrito), como o gestor pediu.
   E a coluna da direita alinha pela esquerda. */
.product-specs .specs-table td:first-child {
  font-weight: 500;
  color: var(--cor-preto, #1A1A1A);
}
.product-specs .specs-table td:last-child { text-align: left; }
@media (max-width: 640px) {
  .product-specs .specs-table td:first-child { font-weight: 500; color: var(--cor-preto, #1A1A1A); }
  .product-specs .specs-table td:last-child { text-align: left; hyphens: none; }
}

/* rc886 (gestor): ficha técnica — coluna da esquerda PRETA e em NEGRITO */
.product-specs .specs-table td:first-child { font-weight: 700; color: var(--cor-preto, #1A1A1A); }
@media (max-width: 640px) {
  .product-specs .specs-table td:first-child { font-weight: 700; color: var(--cor-preto, #1A1A1A); }
}

/* ══════════════════════════════════════════════════════════════════════════
   rc886 (gestor) — o configurador do DRAWER passa a ter o mesmo desenho do da
   PDP, só que reduzido. Diferenças medidas (comparação empírica PDP × drawer):
   chip 11px vs 12px · rótulo 10.5px vs 11px · preço 18px azul vs 26px preto.
   ══════════════════════════════════════════════════════════════════════════ */
.ark-drawer-config-inner .ark-config-group-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--text-secondary);
}
/* valor escolhido em azul, como o .config-label-val da PDP */
.ark-drawer-config-inner .ark-config-group-label .selected-value {
  color: var(--cor-azul);
  font-weight: 600;
  font-style: normal;
}
.ark-drawer-config-inner .ark-config-chips { gap: 6px; }
.ark-drawer-config-inner .ark-config-chips .chip {
  height: auto;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--cor-cinza-700);
  border: 1px solid var(--border-default);
  flex-direction: column;
  align-items: center;
  line-height: 1.2;
}
.ark-drawer-config-inner .ark-config-chips .chip.is-selected {
  color: var(--cor-preto);
  border-color: var(--cor-preto);
  font-weight: 600;
}
/* Cor e Temperatura em grade de 3, como na PDP (2 em tela estreita) */
.ark-drawer-config-inner .ark-config-group[data-attr="cor"] .ark-config-chips,
.ark-drawer-config-inner .ark-config-group[data-attr="cct"] .ark-config-chips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 420px) {
  .ark-drawer-config-inner .ark-config-group[data-attr="cor"] .ark-config-chips,
  .ark-drawer-config-inner .ark-config-group[data-attr="cct"] .ark-config-chips {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* preço com o mesmo peso visual da PDP (destaque preto, não azul) */
.ark-drawer-config-inner .ark-config-price-value {
  font-size: 24px;
  color: var(--cor-preto);
}

/* rc887 — swatch de cor no drawer: o chip de cor volta a alinhar em LINHA (a regra do
   rc886 pôs column por causa do delta, o que empurrava o quadradinho para cima do texto).
   Delta continua embaixo, agora dentro de um chip que sabe ter as duas coisas. */
.ark-drawer-config-inner .ark-config-chips .chip.chip-cor {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  padding: 6px 10px;
}
.ark-drawer-config-inner .ark-config-chips .chip.chip-cor .swatch { flex: 0 0 auto; }
.ark-drawer-config-inner .ark-config-chips .chip.chip-cor .chip-delta { flex: 1 0 100%; text-align: center; }

/* preço no topo do drawer — moldura leve pra ele se destacar do restante */
.ark-drawer-config-inner .ark-config-price-display {
  background: var(--cor-cinza-050);
  padding: 10px 12px;
  margin-bottom: 4px;
}

/* ══════════════════════════════════════════════════════════════════════════
   rc888 (gestor) — preço sempre visível no drawer + swatches alinhados
   ══════════════════════════════════════════════════════════════════════════ */

/* 1) O total do drawer acompanha a rolagem, como o da página do produto: o cliente
   escolhe lá embaixo e continua vendo o valor mudar. */
.ark-drawer-config-inner .ark-config-price-display {
  position: sticky;
  top: 0;
  z-index: 6;
  background: var(--cor-cinza-050);
  box-shadow: 0 6px 14px -10px rgba(0, 0, 0, 0.25);
}

/* 2) Chips de cor: o quadradinho sempre no MESMO lugar e o texto sempre começando no
   mesmo ponto — antes o conteúdo era centralizado, então cada nome começava numa
   posição diferente e os swatches ficavam desalinhados entre si. Vale PDP e drawer. */
.chip-cor {
  justify-content: flex-start !important;
  text-align: left !important;
}
.chip-cor .swatch {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
}
.ark-drawer-config-inner .ark-config-chips .chip.chip-cor {
  justify-content: flex-start;
  text-align: left;
}
.ark-drawer-config-inner .ark-config-chips .chip.chip-cor .chip-delta { text-align: left; }

/* rc888 — preço do drawer no estado COMPACTO (rolando), espelhando o .is-stuck da PDP:
   o valor diminui e as linhas de apoio recolhem, mantendo o total sempre à vista. */
.ark-drawer-config-inner .ark-config-price-display {
  transition: padding .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease;
}
.ark-drawer-config-inner .ark-config-price-value { transition: font-size .35s cubic-bezier(.22,.61,.36,1); }
.ark-drawer-config-inner .ark-config-price-display.is-stuck { padding: 6px 12px; }
.ark-drawer-config-inner .ark-config-price-display.is-stuck .ark-config-price-value { font-size: 17px; }
.ark-drawer-config-inner .ark-config-price-display.is-stuck .ark-config-price-label,
.ark-drawer-config-inner .ark-config-price-display.is-stuck .ark-config-price-vista,
.ark-drawer-config-inner .ark-config-price-display.is-stuck .ark-config-price-regular,
.ark-drawer-config-inner .ark-config-price-display.is-stuck .ark-config-driver-info {
  max-height: 0; opacity: 0; overflow: hidden; margin: 0;
  transition: max-height .35s cubic-bezier(.22,.61,.36,1), opacity .2s ease;
}
.ark-drawer-config-inner .ark-config-price-label,
.ark-drawer-config-inner .ark-config-price-vista,
.ark-drawer-config-inner .ark-config-price-regular,
.ark-drawer-config-inner .ark-config-driver-info {
  max-height: 40px; opacity: 1;
  transition: max-height .35s cubic-bezier(.22,.61,.36,1), opacity .3s ease;
}

/* ══ 2026-08-21: FAQ da PDP (campo _ark_seo_faq — schema FAQPage já sai pelo seo-stack) ══ */
.product-faq .faq-item { padding: 12px 0; border-bottom: 1px solid var(--cor-cinza-100); }
.product-faq .faq-item:last-child { border-bottom: 0; }
.product-faq .faq-q { font-size: 13px; font-weight: 700; color: var(--cor-preto); margin: 0 0 6px; }
.product-faq .faq-a { font-size: 13px; line-height: 1.65; color: var(--cor-cinza-700); margin: 0; }
.product-faq .faq-a a { color: #0B57D0; text-decoration: underline; text-underline-offset: 2px; }
.product-faq .faq-a a:hover { color: #0842A0; }


/* ══ rc913: form de variação dos produtos variáveis COMUNS (canoplas/acessórios) —
   o Woo renderiza <table class="variations"> com célula estreita; aqui a table vira
   bloco e o rótulo nativo some (o config-row injetado já traz "COR:" no padrão do
   configurador de perfil). Escopado: perfis LED usam template próprio, sem essa table. */
.product-single table.variations,
.product-single table.variations tbody,
.product-single table.variations tr,
.product-single table.variations td { display: block; width: 100%; border: 0; padding: 0; margin: 0; }
.product-single table.variations th.label { display: none; }
.product-single table.variations td.value { margin-bottom: 10px; }
.product-single .ark-var-row { margin: 14px 0 4px; }
.product-single .single_variation_wrap .woocommerce-variation-price { display: none; } /* preço já está no bloco padrão */


/* ══ rc914 (EMPÍRICO, print do gestor 2026-08-29): .cart-row form.cart tem grid
   100px/1fr desenhado para o form SIMPLES (qty+botão). No form de VARIAÇÃO a
   table.variations caía na coluna de 100px — chips espremidos na vertical.
   O form variável vira bloco e o grid desce para o wrapper qty+botão. */
.cart-row form.cart.variations_form { display: block; }
.cart-row .variations_form .woocommerce-variation-add-to-cart {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: var(--space-2);
  align-items: stretch;
}
.cart-row .variations_form table.variations { margin-bottom: 12px; }
.cart-row .variations_form .reset_variations { display: none; } /* "Limpar" não existe no padrão Ark */

/* ── Sem estoque no fornecedor: "Consulte-nos" no lugar do botão de compra ──────────
   Gestor 2026-09-06: quando a tabela do fornecedor diz que o item não está pronto para
   entrega, o site não vende — chama no WhatsApp, porque a Ark costuma ter um equivalente
   e confere o prazo na hora. Vale na página do produto e no card da vitrine. */
.ark-consulte {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 24px;
  background: #25D366;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.18s ease;
}
.ark-consulte:hover,
.ark-consulte:focus-visible { background: #1fba58; color: #fff; }

/* No card a largura é toda a linha de ações, e a altura acompanha o botão Adicionar.
   Gestor 12/09: o MESMO azul e o mesmo desenho do botão Adicionar (.product-card-add) — o card
   não tem dois botões de cores diferentes; o verde do WhatsApp fica só na página do produto. */
.ark-consulte--card {
  flex: 1 1 auto;
  width: 100%;
  height: 36px;
  padding: 0 12px;
  gap: 6px;
  border-radius: 6px;
  background: var(--cor-azul);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
}
.ark-consulte--card:hover,
.ark-consulte--card:focus-visible { background: var(--cor-azul-esc); color: #fff; }
.ark-consulte--card svg { flex: 0 0 auto; width: 16px; height: 16px; }

.ark-consulte-motivo {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--cor-cinza-600, #6b6b6b);
}

/* Última série: o fabricante encerra a produção quando este estoque acabar (gestor 06/09). */
.ark-ultima-serie {
  margin: 0 0 12px;
  padding: 10px 14px;
  background: #fdf6e3;
  border-left: 3px solid #b7791f;
  font-size: 13px;
  line-height: 1.5;
  color: #6b5518;
}

/* rc1153 (11/10/2026, mockup aprovado pelo gestor): "Faz parte da linha X" fecha a caixa Descrição — mesmo padrão dela
   (Inter, 13px, cinza do texto, justificado), destaques e atalhos com os tokens do tema. Substitui a seção .ark-linha (rc1149). */
.ark-linha-inline { border-top: 1px solid var(--cor-cinza-200, #E3E1DC); margin-top: 16px; padding-top: 14px; }
.ark-desc-inline__body .ark-linha-inline__rotulo { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-secondary); margin: 0 0 6px; text-align: left; }
.ark-linha-inline__rotulo strong { color: var(--text-primary); font-weight: 600; }
.ark-desc-inline__body .ark-linha-inline__frase { margin: 0 0 10px; }
/* rc1155 (gestor): os 3 destaques em retângulos IGUAIS — 3 colunas do mesmo tamanho, mesma altura, texto centralizado */
.ark-linha-inline__chips { list-style: none; padding: 0; margin: 0 0 14px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ark-linha-inline__chips li { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 40px; font-size: 12px; line-height: 1.3; padding: 6px 8px; border: 1px solid var(--cor-cinza-300); background: var(--cor-cinza-050); color: var(--text-primary); margin: 0; }
.ark-desc-inline__body .ark-linha-inline__sub { font-size: 12px; font-weight: 600; color: var(--text-primary); margin: 0 0 8px; text-align: left; }
.ark-linha-inline__tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.ark-linha-inline__tile { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 10px 6px; border: 1px solid var(--cor-cinza-200, #E3E1DC); background: #fff; color: var(--text-primary); text-decoration: none; }
.ark-desc-inline__body a.ark-linha-inline__tile, .ark-linha-inline__tile span { text-decoration: none; }
.ark-linha-inline__tile:hover, .ark-linha-inline__tile.is-atual { border-color: var(--cor-preto); }
.ark-linha-inline__tile img { width: 64px; height: 64px; object-fit: contain; margin-bottom: 6px; }
.ark-linha-inline__nome { font-size: 13px; font-weight: 600; }
.ark-linha-inline__qtd { font-size: 12px; color: var(--text-secondary); }
.ark-linha-inline__tag { position: absolute; top: -8px; left: 50%; transform: translateX(-50%); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; background: var(--cor-preto); color: #fff; padding: 2px 6px; white-space: nowrap; }
@media (max-width: 600px) { .ark-linha-inline__tiles { grid-template-columns: repeat(2, 1fr); } }
