/**
 * Auria Theme — theme.css (v2.1.0)
 *
 * Fixes:
 *   1. Header sólido + auto-hide on scroll
 *   2. Header simples (nome + badge Aberta), sem hambúrguer/sino
 *   3. Force-sans em todo lugar (combate Fraunces remanescente do plugin)
 *   4. Sheet do carrinho com flex column + actions sticky bottom
 *   5. Qty stepper (CSS pra estilizar — JS reativa em theme.js)
 *   6. Single-product CTA rosa força bruta
 *   7. Hero/banner carrossel no topo
 */

/* ════════════════════════════════════════════════════════════════ */
/*  Reset                                                            */
/* ════════════════════════════════════════════════════════════════ */

html, body {
  margin: 0;
  padding: 0;
  background: var(--ad-bg);
  color: var(--ad-ink-1);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-base);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* { box-sizing: border-box; }

img, picture, video, canvas, svg {
  max-width: 100%;
  height: auto;
  display: block;
}

a { color: inherit; text-decoration: none; }

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

body.auria-theme {
  padding-bottom: calc(var(--ad-bb-height) + env(safe-area-inset-bottom, 0px));
}

.auria-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.auria-main {
  flex: 1;
  max-width: var(--ad-container-wide);
  width: 100%;
  margin: 0 auto;
}

/* ════════════════════════════════════════════════════════════════ */
/*  FORCE-SANS — combate Fraunces remanescente do plugin             */
/* ════════════════════════════════════════════════════════════════ */
/* O plugin auria-storefront enqueueia _tokens.css (v0.5.2) que     */
/* define --auria-font-display: 'AuriaFraunces'. Como esse CSS pode */
/* carregar DEPOIS do nosso na cascade, force-sans aqui via family  */
/* explícito em selectors específicos.                              */

.auria-bb-panel,
.auria-bb-panel *,
.auria-bb-panel-content *,
.auria-bb-cart-totals,
.auria-bb-cart-totals *,
.auria-bb-panel-title,
.auria-bb-cart-item-name,
.auria-bb-cart-item-price,
.auria-bb-cat-name,
.auria-bb-search-name,
.auria-product-name,
.auria-store-name,
.auria-page-title,
.auria-archive-title,
.auria-product-section-title,
.auria-footer-title,
.auria-footer-title-sm,
.ad-card-name,
.ad-card-name *,
.ad-section-title,
.ad-tab,
.ad-hero-name,
.ad-header-name,
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ad-font-sans) !important;
}

/* ════════════════════════════════════════════════════════════════ */
/*  LOJA FECHADA — faixa preta topo + opacidade dos cards (v2.10)    */
/* ════════════════════════════════════════════════════════════════ */

.auria-closed-bar {
  position: sticky;
  top: 0;
  z-index: 110; /* acima do ad-header (sticky 100) */
  background: #1a1a1a;
  color: #fff;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  letter-spacing: -0.005em;
  text-align: center;
  justify-content: center;
}
.auria-closed-bar-dot {
  width: 8px;
  height: 8px;
  background: #ff453a;
  border-radius: 50%;
  flex-shrink: 0;
  animation: adClosedPulse 1.6s ease-in-out infinite;
}
@keyframes adClosedPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(0.7); }
}

/* Quando admin bar está visível (logged in admin), empurra a faixa */
body.admin-bar .auria-closed-bar { top: 32px; }
@media (max-width: 600px) {
  body.admin-bar .auria-closed-bar { top: 46px; }
}

/* Header sticky precisa ficar abaixo da faixa preta */
body.auria-store-closed .ad-header { top: 0; }
/* ad-header já tem top: 0 default e a closed-bar sticky empurra naturalmente */

/* Cards opacos + botão "Adicionar" vira "Indisponível" */
body.auria-store-closed .ad-card:not(.is-out) { opacity: 0.55; }
body.auria-store-closed .ad-card-add:not(.is-detail):not(.is-disabled) {
  background: var(--ad-surface-3) !important;
  color: var(--ad-ink-3) !important;
  pointer-events: none;
  box-shadow: none;
}
body.auria-store-closed .ad-card-add:not(.is-detail):not(.is-disabled) .ad-card-add-icon { display: none; }
body.auria-store-closed .ad-card-add:not(.is-detail):not(.is-disabled) .ad-card-add-text { font-size: 0; }
body.auria-store-closed .ad-card-add:not(.is-detail):not(.is-disabled) .ad-card-add-text::before {
  content: 'Indisponível';
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
}
/* Stepper inline (qty já no carrinho) continua ativo — user pode remover do carrinho */
/* Atalho WhatsApp do step 1 do checkout também desabilita pra evitar que crie pedido */
body.auria-store-closed .ad-cart-shortcut-whatsapp,
body.auria-store-closed [data-ad-step-next],
body.auria-store-closed [data-ad-checkout-confirm] {
  opacity: 0.4;
  pointer-events: none;
}

/* Banner detalhado abaixo do hero (only home) com horário próximo */
.auria-closed-banner {
  margin: 0 16px 16px;
  background: #FFF8E1;
  border: 1px solid #B8860B;
  border-radius: var(--ad-radius-md);
  padding: 12px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--ad-font-sans);
}
.auria-closed-banner-icon {
  flex-shrink: 0;
  font-size: 18px;
  line-height: 1;
  color: #78350f;
}
.auria-closed-banner-text { display: flex; flex-direction: column; gap: 2px; }
.auria-closed-banner-title {
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-bold);
  color: #78350f;
  margin: 0;
}
.auria-closed-banner-sub {
  font-size: var(--ad-text-xs);
  color: #78350f;
  margin: 0;
  line-height: 1.4;
}

/* ════════════════════════════════════════════════════════════════ */
/*  HEADER — simples (nome + badge), auto-hide on scroll             */
/* ════════════════════════════════════════════════════════════════ */

.ad-header {
  position: sticky;
  top: 0;
  z-index: var(--ad-z-header);
  background: var(--ad-bg);   /* sólido — não transparente, evita sobreposição visual */
  border-bottom: 1px solid var(--ad-border-soft);
  height: var(--ad-header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ad-space-3);
  padding: 0 var(--ad-space-4);
  max-width: var(--ad-container-wide);
  margin: 0 auto;
  width: 100%;
  transition: transform 0.3s var(--ad-ease-out);
  will-change: transform;
}
.ad-header.is-hidden {
  transform: translateY(-100%);
}

.ad-header-name {
  display: flex;
  align-items: center;
  font-size: var(--ad-text-md);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.015em;
  color: var(--ad-ink-1);
  text-decoration: none;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* v2.27.0 — 5 modos de marca: pilula | plano | underline | mark-word | logo
   .is-text mantido como alias da pilula pra compat com cache do navegador. */

/* PÍLULA (default + alias .is-text legado) */
.ad-header-name.is-text,
.ad-header-name.is-pilula {
  flex: 0 1 auto;
  background: var(--ad-primary) !important;
  color: var(--ad-primary-on) !important;
  padding: 6px 16px;
  border-radius: var(--ad-radius-full);
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.005em;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  transition: filter var(--ad-dur-fast) var(--ad-ease-out),
              transform var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-header-name.is-text:hover,
.ad-header-name.is-pilula:hover { filter: brightness(1.08); }
.ad-header-name.is-text:active,
.ad-header-name.is-pilula:active { transform: scale(0.97); }

/* PLANO — texto puro, sem fundo */
.ad-header-name.is-plano {
  flex: 0 1 auto;
  background: transparent;
  color: var(--ad-ink-1);
  padding: 0;
  font-size: var(--ad-text-lg);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.015em;
  transition: opacity var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-header-name.is-plano:hover { opacity: 0.7; }

/* UNDERLINE — texto + linha embaixo na cor primária */
.ad-header-name.is-underline {
  flex: 0 1 auto;
  background: transparent;
  color: var(--ad-ink-1);
  padding: 0 0 3px 0;
  font-size: var(--ad-text-lg);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.015em;
  border-bottom: 2px solid var(--ad-primary);
  line-height: 1.15;
  transition: border-color var(--ad-dur-fast) var(--ad-ease-out),
              opacity var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-header-name.is-underline:hover { opacity: 0.85; }

/* MARK + WORD — quadrado com inicial + nome ao lado */
.ad-header-name.is-mark-word {
  flex: 0 1 auto;
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ad-ink-1);
  padding: 0;
  font-size: var(--ad-text-md);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.015em;
  transition: opacity var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-header-name.is-mark-word:hover { opacity: 0.85; }
.ad-header-name.is-mark-word .ad-header-mark {
  width: 32px;
  height: 32px;
  background: var(--ad-primary);
  color: var(--ad-primary-on);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ad-radius-md);
  font-size: var(--ad-text-md);
  font-weight: var(--ad-weight-bold);
  flex: 0 0 auto;
  line-height: 1;
}
.ad-header-name.is-mark-word .ad-header-text {
  font-size: var(--ad-text-md);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* LOGO — container travado em 40×200, object-fit contain */
.ad-header-name.is-logo {
  flex: 0 1 auto;
  background: transparent;
  padding: 0;
  display: inline-flex;
  align-items: center;
  height: 40px;
  max-width: 200px;
  transition: opacity var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-header-name.is-logo:hover { opacity: 0.85; }

.ad-header-logo {
  height: 100%;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  display: block;
}

.ad-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--ad-radius-full);
  font-size: var(--ad-text-xs);
  font-weight: var(--ad-weight-semibold);
  letter-spacing: -0.005em;
  white-space: nowrap;
  flex-shrink: 0;
}
.ad-status-badge.is-open {
  background: var(--ad-open-soft);
  color: var(--ad-open);
}
.ad-status-badge.is-closed {
  background: var(--ad-closed-soft);
  color: var(--ad-closed);
}
.ad-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.04);
}

body.admin-bar .ad-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .ad-header { top: 46px; }
}

/* ════════════════════════════════════════════════════════════════ */
/*  HERO / BANNER carrossel                                          */
/* ════════════════════════════════════════════════════════════════ */

.ad-hero {
  position: relative;
  margin: 0 calc(-1 * var(--ad-space-4)) var(--ad-space-5);
  padding: 0;
}
.ad-hero-track {
  display: flex;
  gap: var(--ad-space-3);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--ad-space-4);
  padding: var(--ad-space-1) var(--ad-space-4) var(--ad-space-3);
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.ad-hero-track::-webkit-scrollbar { display: none; }

.ad-hero-slide {
  flex: 0 0 calc(100% - var(--ad-space-4) * 2);
  scroll-snap-align: start;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  background: linear-gradient(135deg, var(--ad-primary) 0%, var(--ad-primary-dark) 100%);
  color: white;
  border-radius: var(--ad-radius-lg);
  overflow: hidden;
  height: 200px;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(230, 57, 70, 0.18);
  transition: transform var(--ad-dur-base) var(--ad-ease-out),
              box-shadow var(--ad-dur-base) var(--ad-ease-out);
}
/* v2.19: carrossel mostra UM slide por vez em qualquer breakpoint.
   Antes: desktop tinha flex-basis 50% (2 slides visíveis simultâneos),
   o que fazia o auto-rotate parecer "parado" — slide novo entrava à
   direita mas user via os mesmos 2 slides. Agora 100% sempre, só
   muda altura pra ter mais respiro em desktop. */
@media (min-width: 600px) {
  .ad-hero-slide {
    height: 240px;
  }
}
@media (min-width: 960px) {
  .ad-hero-slide {
    height: 280px;
  }
}
.ad-hero-slide:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(230, 57, 70, 0.28);
}

.ad-hero-text {
  padding: var(--ad-space-4);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  /* sombra mais escura pra dar peso ao texto sobre o gradiente vermelho */
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.32);
}

.ad-hero-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: var(--ad-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.22);
  color: white;
  padding: 4px 10px;
  border-radius: var(--ad-radius-full);
  align-self: flex-start;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  text-shadow: none;
  /* v2.11: pulsa sutilmente pra chamar atenção pra oferta */
  animation: adHeroTagPulse 2.4s ease-in-out infinite;
  transform-origin: left center;
}
@keyframes adHeroTagPulse {
  0%, 100% { transform: scale(1); background: rgba(255, 255, 255, 0.22); }
  50%      { transform: scale(1.06); background: rgba(255, 255, 255, 0.36); }
}
@media (prefers-reduced-motion: reduce) {
  .ad-hero-tag { animation: none; }
}

/* v2.10: tema-pai Twenty Twenty-Five (FSE) injeta `color: var(--wp--preset--color--contrast)`
   em <h2> com specificity maior que `.ad-hero-name` direto. Subimos specificity via parent
   `.ad-hero-slide` + !important pra vencer styles FSE injetadas no head. Justificado: cor
   sobre fundo vermelho saturado é necessária pra legibilidade. */
.ad-hero-slide .ad-hero-name {
  font-size: var(--ad-text-xl) !important;
  font-weight: 900 !important;
  line-height: 1.14;
  letter-spacing: -0.028em;
  margin: 0;
  color: #fff !important;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.42);
}
@media (min-width: 600px) {
  .ad-hero-slide .ad-hero-name { font-size: var(--ad-text-2xl) !important; line-height: 1.1; }
}

/* Tag "EM OFERTA" também precisa garantir branco contra FSE */
.ad-hero-slide .ad-hero-tag { color: #fff !important; }

.ad-hero-pricewrap {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.ad-hero-old {
  font-size: var(--ad-text-xs);
  text-decoration: line-through;
  opacity: 0.85;
  font-variant-numeric: tabular-nums;
}
.ad-hero-old bdi { all: unset; }
.ad-hero-new {
  font-size: var(--ad-text-xl);
  font-weight: var(--ad-weight-bold);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.ad-hero-new bdi { all: unset; }

.ad-hero-cta {
  align-self: flex-start;
  background: white;
  color: var(--ad-primary);
  padding: 7px 14px;
  border-radius: var(--ad-radius-full);
  font-size: var(--ad-text-xs);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.005em;
  text-shadow: none;
}

.ad-hero-photo {
  position: relative;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}
/* Overlay sutil pra reduzir competição visual entre foto e texto à esquerda */
.ad-hero-photo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right,
    rgba(193, 18, 31, 0.35) 0%,
    rgba(193, 18, 31, 0.12) 22%,
    rgba(193, 18, 31, 0) 50%);
  pointer-events: none;
  z-index: 1;
}
.ad-hero-photo .ad-hero-img,
.ad-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ad-hero-photo-placeholder {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 30%, rgba(255,255,255,0.18), transparent 60%),
    radial-gradient(ellipse at 70% 70%, rgba(255,255,255,0.08), transparent 60%);
}

.ad-hero-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: -8px;
  padding-bottom: var(--ad-space-2);
}
.ad-hero-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ad-border-strong);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-hero-dot.is-active {
  background: var(--ad-primary);
  width: 18px;
  border-radius: 3px;
}

/* ════════════════════════════════════════════════════════════════ */
/*  SEARCH BAR                                                       */
/* ════════════════════════════════════════════════════════════════ */

.ad-catalog {
  padding: var(--ad-space-4);
  max-width: var(--ad-container-wide);
  margin: 0 auto;
}

/* v2.5: search do corpo removido — busca acontece pela tab "Busca" da bottom bar.
   Filtro virou FAB lateral (.ad-filter-fab — ver bloco no fim do arquivo). */

/* ════════════════════════════════════════════════════════════════ */
/*  TABS pills                                                       */
/* ════════════════════════════════════════════════════════════════ */

.ad-tabs {
  position: sticky;
  top: var(--ad-header-height);
  z-index: var(--ad-z-tabs);
  background: var(--ad-bg);
  margin: 0 calc(-1 * var(--ad-space-4)) var(--ad-space-5);
  padding: var(--ad-space-3) var(--ad-space-4);
  border-bottom: 1px solid var(--ad-border-soft);
  transition: top 0.3s var(--ad-ease-out);
}
/* Quando header está escondido (scroll pra baixo), tabs sobem pra ocupar o lugar */
body.ad-header-hidden .ad-tabs { top: 0; }
body.admin-bar .ad-tabs { top: calc(var(--ad-header-height) + 32px); }
body.admin-bar.ad-header-hidden .ad-tabs { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .ad-tabs { top: calc(var(--ad-header-height) + 46px); }
  body.admin-bar.ad-header-hidden .ad-tabs { top: 46px; }
}

.ad-tabs-strip {
  display: flex;
  gap: var(--ad-space-2);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--ad-space-4);
  scrollbar-width: none;
}
.ad-tabs-strip::-webkit-scrollbar { display: none; }

.ad-tab {
  flex: 0 0 auto;
  scroll-snap-align: start;
  padding: 10px 18px;
  border-radius: var(--ad-radius-full);
  background: var(--ad-surface-2);
  color: var(--ad-ink-2);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  letter-spacing: -0.005em;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
  white-space: nowrap;
}
.ad-tab:hover { background: var(--ad-surface-3); color: var(--ad-ink-1); }
.ad-tab.is-active {
  background: var(--ad-primary);
  color: var(--ad-primary-on);
  box-shadow: 0 2px 6px rgba(230, 57, 70, 0.25);
}

/* ════════════════════════════════════════════════════════════════ */
/*  SECTIONS + CARDS (= v2.0 sem mudança)                            */
/* ════════════════════════════════════════════════════════════════ */

.ad-section {
  margin-bottom: var(--ad-space-7);
  scroll-margin-top: calc(var(--ad-header-height) + 60px);
}
.ad-section-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--ad-space-4);
  gap: var(--ad-space-3);
}
.ad-section-title {
  font-size: var(--ad-text-xl);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--ad-ink-1);
  position: relative;
  padding-bottom: 10px;
}
/* Divisor rosa: traço curto e grosso sob o nome da categoria */
.ad-section-title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 36px;
  height: 3px;
  background: var(--ad-primary);
  border-radius: 2px;
}
.ad-section-more {
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-primary);
}
.ad-section-more:hover { color: var(--ad-primary-dark); }

/* v2.11: subcategorias — chips sticky horizontais dentro da section */
.ad-subcats {
  position: sticky;
  top: var(--ad-header-height);
  z-index: 5;
  background: var(--ad-bg);
  display: flex;
  gap: 6px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 8px 16px;
  margin: 0 calc(var(--ad-space-4) * -1) var(--ad-space-3);
  scrollbar-width: none;
  border-bottom: 1px solid var(--ad-border-soft);
}
.ad-subcats::-webkit-scrollbar { display: none; }
body.ad-header-hidden .ad-subcats { top: 0; }
@media (max-width: 600px) {
  .ad-subcats { margin-left: calc(var(--ad-space-4) * -1); margin-right: calc(var(--ad-space-4) * -1); }
}

.ad-subcat-chip {
  flex-shrink: 0;
  padding: 6px 14px;
  background: var(--ad-bg);
  border: 1px solid var(--ad-border);
  border-radius: var(--ad-radius-full);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-medium);
  color: var(--ad-ink-2);
  cursor: pointer;
  white-space: nowrap;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-subcat-chip:hover { border-color: var(--ad-ink-3); }
.ad-subcat-chip.is-active {
  background: var(--ad-primary-soft);
  border: 1.5px solid var(--ad-primary);
  color: var(--ad-primary);
  font-weight: var(--ad-weight-bold);
}

/* v2.11: classes pra esconder cards (filtros + subcategorias + paginação)
   Funciona em ambos: .ad-card (tema) e .auria-card (plugin storefront) */
.ad-card.is-hidden-by-filter,
.ad-card.is-hidden-by-subcat,
.ad-card.is-hidden-by-pagination,
.auria-card.is-hidden-by-filter,
.auria-card.is-hidden-by-subcat,
.auria-card.is-hidden-by-pagination { display: none; }

/* Controles de lazy load — botão "Mostrar mais" + contador + sentinela */
.ad-lazy-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: var(--ad-space-5) var(--ad-space-4);
  margin-top: var(--ad-space-3);
}
.ad-lazy-counter {
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  font-weight: var(--ad-weight-medium);
  font-variant-numeric: tabular-nums;
}
.ad-lazy-more {
  background: var(--ad-bg);
  border: 1px solid var(--ad-border);
  color: var(--ad-ink-1);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-bold);
  padding: 10px 24px;
  border-radius: var(--ad-radius-full);
  cursor: pointer;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-lazy-more:hover {
  border-color: var(--ad-primary);
  color: var(--ad-primary);
}
.ad-lazy-more[hidden] { display: none; }
.ad-lazy-sentinel {
  height: 1px;
  width: 100%;
  pointer-events: none;
}

.ad-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ad-space-4);
}
@media (min-width: 600px) { .ad-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 960px) { .ad-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1200px) { .ad-grid { gap: var(--ad-space-5); } }

.ad-card {
  display: flex;
  flex-direction: column;
  background: var(--ad-bg);
  border-radius: var(--ad-radius-lg);
  overflow: hidden;
  transition: transform var(--ad-dur-base) var(--ad-ease-out),
              box-shadow var(--ad-dur-base) var(--ad-ease-out);
  position: relative;
  box-shadow: var(--ad-shadow-card);
}
.ad-card:hover { transform: translateY(-2px); box-shadow: var(--ad-shadow-hover); }
.ad-card.is-out { opacity: 0.65; }
.ad-card.is-out:hover { transform: none; box-shadow: var(--ad-shadow-card); }

.ad-card-photo {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  background: #ffffff; /* v2.28.0 — letterbox branco neutro pro contain */
  overflow: hidden;
  text-decoration: none;
}
.ad-card-photo .ad-card-img,
.ad-card-photo img {
  width: 100%;
  height: 100%;
  /* v2.28.0 — contain mostra produto inteiro (era cover, cortava). */
  object-fit: contain;
  display: block;
  transition: transform var(--ad-dur-slow) var(--ad-ease-out);
}
.ad-card:hover .ad-card-img { transform: scale(1.04); }
.ad-card-img-placeholder {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--ad-surface-2) 0%, var(--ad-surface-3) 100%);
}

.ad-card-popular {
  position: absolute; bottom: 10px; left: 10px;
  background: var(--ad-popular-soft); color: var(--ad-popular);
  font-size: 11px; font-weight: var(--ad-weight-semibold);
  padding: 4px 10px; border-radius: var(--ad-radius-full);
  z-index: 2; box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
/* v2.33.3 — destaque manual do lojista (⭐ no admin) */
.ad-card-featured {
  position: absolute; bottom: 10px; left: 10px;
  background: #FEF3C7; color: #92400E;
  font-size: 11px; font-weight: var(--ad-weight-semibold);
  padding: 4px 10px; border-radius: var(--ad-radius-full);
  z-index: 2; box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
.ad-card-discount {
  position: absolute; top: 10px; left: 10px;
  background: var(--ad-primary); color: var(--ad-primary-on);
  font-size: 11px; font-weight: var(--ad-weight-bold);
  padding: 4px 10px; border-radius: var(--ad-radius-full);
  z-index: 2; box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}
.ad-card-out {
  position: absolute; bottom: 10px; left: 10px;
  background: rgba(26,26,26,0.92); color: white;
  font-size: 11px; font-weight: var(--ad-weight-semibold);
  padding: 4px 10px; border-radius: var(--ad-radius-full); z-index: 2;
}
.ad-card-fav {
  position: absolute; top: 8px; right: 8px;
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  z-index: 2; color: var(--ad-ink-3);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-card-fav svg { width: 18px; height: 18px; }
.ad-card-fav:hover { color: var(--ad-primary); transform: scale(1.1); }
.ad-card-fav.is-faved { color: var(--ad-primary); }
.ad-card-fav.is-faved svg { fill: var(--ad-primary); stroke: var(--ad-primary); }

.ad-card-body {
  padding: var(--ad-space-3);
  display: flex; flex-direction: column;
  gap: 6px; flex: 1;
}
.ad-card-name {
  margin: 0;
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-semibold);
  letter-spacing: -0.01em;
  color: var(--ad-ink-1);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.25;
  /* v2.27.2: min-height removido. Alinhamento dos preços/botões entre
     cards do grid é mantido via margin-top:auto no .ad-card-price. */
}
.ad-card-name a { color: inherit; text-decoration: none; }

.ad-card-price {
  display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px;
  /* v2.27.2: preço (e action que vem depois) caem pro fundo do card.
     Mantém preços/botões alinhados horizontalmente entre cards do grid
     mesmo com títulos de tamanhos diferentes. */
  margin-top: auto;
}
.ad-card-price .ad-price-current {
  font-size: var(--ad-text-lg);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-primary);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.015em;
}
.ad-card-price .ad-price-old {
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-3);
  text-decoration: line-through;
  font-variant-numeric: tabular-nums;
}
.ad-card-price bdi { all: unset; }

.ad-card-add {
  position: relative;
  margin-top: auto;
  display: flex; align-items: center; justify-content: center;
  gap: 6px;
  background: var(--ad-primary);
  color: var(--ad-primary-on);
  border: none;
  border-radius: var(--ad-radius-full);
  padding: 10px 16px;
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  text-decoration: none;
  cursor: pointer;
  transition: filter var(--ad-dur-fast) var(--ad-ease-out),
              transform var(--ad-dur-fast) var(--ad-ease-spring);
  box-shadow: 0 1px 2px rgba(230,57,70,0.18);
  overflow: hidden;
  user-select: none;
  width: 100%;
}
.ad-card-add:hover { filter: brightness(1.06); }
.ad-card-add:active { transform: scale(0.97); }
.ad-card-add-icon { display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; }
.ad-card-add-icon svg { width: 18px; height: 18px; }
.ad-card-add-text { white-space: nowrap; }
.ad-card-add.is-disabled,
.ad-card-add.is-detail {
  background: var(--ad-surface-2);
  color: var(--ad-ink-3);
  pointer-events: none;
  box-shadow: none;
}
.ad-card-add.is-detail {
  background: var(--ad-bg);
  border: 1px solid var(--ad-border);
  color: var(--ad-ink-2);
  pointer-events: auto;
}
.ad-card-add.is-detail:hover { border-color: var(--ad-primary); color: var(--ad-primary); }

/* Stepper inline (substitui o "+ Adicionar" depois do primeiro click) */
.ad-card-action {
  /* v2.27.2: margin-top:auto removido. Preço (.ad-card-price) é quem
     empurra agora — action vem grudado abaixo do preço com gap de 6px. */
  width: 100%;
  position: relative;
}
.ad-card-action.is-loading { opacity: 0.7; pointer-events: none; }

.ad-card-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0;
  background: var(--ad-primary);
  color: var(--ad-primary-on);
  border-radius: var(--ad-radius-full);
  padding: 4px;
  width: 100%;
  height: 40px;
  box-shadow: 0 1px 2px rgba(230,57,70,0.18);
  user-select: none;
  animation: adStepperIn 0.2s var(--ad-ease-spring);
}
.ad-card-stepper-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  border: none;
  color: var(--ad-primary-on);
  font-size: 16px;
  font-weight: var(--ad-weight-bold);
  font-family: var(--ad-font-sans);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--ad-dur-fast) var(--ad-ease-out),
              transform var(--ad-dur-fast) var(--ad-ease-out);
  flex-shrink: 0;
  line-height: 1;
}
.ad-card-stepper-btn:hover { background: rgba(255, 255, 255, 0.32); }
.ad-card-stepper-btn:active { transform: scale(0.92); }
.ad-card-stepper-qty {
  flex: 1;
  text-align: center;
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-bold);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: var(--ad-primary-on);
}

@keyframes adStepperIn {
  from { transform: scale(0.94); opacity: 0.6; }
  to { transform: scale(1); opacity: 1; }
}
@keyframes adFadeIn { from { opacity: 0; } to { opacity: 1; } }

.ad-empty {
  text-align: center;
  padding: var(--ad-space-8) var(--ad-space-4);
  color: var(--ad-ink-3);
  font-size: var(--ad-text-md);
}

/* Cards animation entrada staggered */
@media (prefers-reduced-motion: no-preference) {
  .ad-card { animation: adCardFadeUp 0.4s var(--ad-ease-out) backwards; }
  .ad-grid .ad-card:nth-child(1) { animation-delay: 0.04s; }
  .ad-grid .ad-card:nth-child(2) { animation-delay: 0.08s; }
  .ad-grid .ad-card:nth-child(3) { animation-delay: 0.12s; }
  .ad-grid .ad-card:nth-child(4) { animation-delay: 0.16s; }
  .ad-grid .ad-card:nth-child(5) { animation-delay: 0.2s; }
  .ad-grid .ad-card:nth-child(6) { animation-delay: 0.24s; }
  .ad-grid .ad-card:nth-child(7) { animation-delay: 0.28s; }
  .ad-grid .ad-card:nth-child(8) { animation-delay: 0.32s; }
}
@keyframes adCardFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ════════════════════════════════════════════════════════════════ */
/*  FOOTER                                                           */
/* ════════════════════════════════════════════════════════════════ */

.auria-footer {
  background: var(--ad-surface-2);
  margin-top: var(--ad-space-7);
  padding: var(--ad-space-7) 0 var(--ad-space-4);
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-2);
}
.auria-footer-inner {
  max-width: var(--ad-container-wide);
  margin: 0 auto;
  padding: 0 var(--ad-space-4);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ad-space-6);
}
@media (min-width: 720px) {
  .auria-footer-inner { grid-template-columns: 2fr 1fr 1fr; gap: var(--ad-space-8); }
}
.auria-footer-title {
  font-size: var(--ad-text-md);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-ink-1);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.auria-footer-title-sm {
  font-size: var(--ad-text-xs);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-3);
  margin: 0 0 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.auria-footer-text { margin: 0 0 6px; line-height: 1.5; }
.auria-footer-cnpj { font-size: var(--ad-text-xs); color: var(--ad-ink-3); margin-top: 8px; }
.auria-footer-link { color: var(--ad-primary); font-weight: var(--ad-weight-medium); }
.auria-footer-link:hover { color: var(--ad-primary-dark); text-decoration: underline; }
.auria-footer-schedule { list-style: none; margin: 0; padding: 0; }
.auria-footer-schedule li {
  display: flex; justify-content: space-between;
  padding: 4px 0; font-variant-numeric: tabular-nums;
}
.auria-footer-day { font-weight: var(--ad-weight-medium); color: var(--ad-ink-1); }
.auria-footer-hours { color: var(--ad-ink-2); }
.auria-footer-bottom {
  max-width: var(--ad-container-wide);
  margin: var(--ad-space-6) auto 0;
  padding: var(--ad-space-3) var(--ad-space-4) 0;
  border-top: 1px solid var(--ad-border-soft);
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  text-align: center;
}

/* ════════════════════════════════════════════════════════════════ */
/*  SINGLE PRODUCT — Adicionar ao carrinho com força bruta           */
/* ════════════════════════════════════════════════════════════════ */

.auria-product-page {
  max-width: var(--ad-container-wide);
  margin: 0 auto;
  padding: var(--ad-space-4);
}
.auria-product-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-medium);
  color: var(--ad-ink-2);
  margin-bottom: var(--ad-space-4);
}
.auria-product-back:hover { color: var(--ad-primary); }
.auria-product-back-arrow { font-size: 18px; line-height: 1; }

.auria-product {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ad-space-5);
}
@media (min-width: 768px) {
  .auria-product { grid-template-columns: 1.1fr 1fr; gap: var(--ad-space-8); align-items: start; }
}
.auria-product-gallery {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.auria-product-gallery-main {
  position: relative;
  background: var(--ad-photo-bg);
  border-radius: var(--ad-radius-xl);
  overflow: hidden;
  aspect-ratio: 4/3;
  max-height: 60vh;
}
@media (min-width: 768px) {
  .auria-product-gallery {
    position: sticky;
    top: calc(var(--ad-header-height) + 16px);
  }
  .auria-product-gallery-main {
    aspect-ratio: 1/1;
    max-height: none;
  }
}
/* v2.12: BUG FIX foto produto cortada. Estava `cover` que recortava
   garrafas/produtos altos mostrando só ponta. `contain` mantém aspect
   ratio e mostra foto inteira centralizada. Background do gallery cobre
   o espaço residual com a cor neutra. */
.auria-product-img { width: 100%; height: 100%; object-fit: contain; padding: var(--ad-space-3); }

/* v2.30.0 — Galeria de produto: thumbnails embaixo da main image. */
.auria-product-gallery-thumbs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 4px 2px;
  scrollbar-width: none;
}
.auria-product-gallery-thumbs::-webkit-scrollbar { display: none; }
.auria-gallery-thumb {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 8px;
  background: #ffffff;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.15s, transform 0.15s;
  scroll-snap-align: start;
}
.auria-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.auria-gallery-thumb:hover { transform: translateY(-1px); }
.auria-gallery-thumb.is-active {
  border-color: var(--ad-primary, #E63946);
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
@media (min-width: 768px) {
  .auria-gallery-thumb { flex-basis: 72px; width: 72px; height: 72px; }
}
.auria-product-gallery-main[data-auria-gallery] {
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
}
.auria-product-gallery-main[data-auria-gallery]:active { cursor: grabbing; }

.auria-product-info { display: flex; flex-direction: column; gap: var(--ad-space-4); }

.auria-product-eyebrow {
  font-size: var(--ad-text-xs);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-primary);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
}
.auria-product-name {
  font-size: var(--ad-text-2xl);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 4px 0;
  color: var(--ad-ink-1);
}
@media (min-width: 768px) { .auria-product-name { font-size: var(--ad-text-3xl); } }

.auria-product-short {
  font-size: var(--ad-text-md);
  color: var(--ad-ink-2);
  line-height: 1.55;
  margin: 0;
}

.auria-product-price {
  display: flex; align-items: baseline; gap: 12px; margin: 8px 0;
}
.auria-product-price .auria-price-current,
.auria-product-price .auria-price-new {
  font-size: 32px;
  font-weight: var(--ad-weight-bold);
  color: var(--ad-primary);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.015em;
}
.auria-product-price .auria-price-old {
  font-size: var(--ad-text-md);
  color: var(--ad-ink-3);
  text-decoration: line-through;
  font-variant-numeric: tabular-nums;
}
.auria-product-price bdi { all: unset; }

/* v2.6: stepper grande na página do produto (mesmo do card, com tamanho maior) */
.ad-card-action-product {
  margin: var(--ad-space-3) 0 0;
  width: 100%;
  max-width: 320px;
}
.ad-card-action-product .ad-card-add {
  height: 56px;
  padding: 0 28px;
  font-size: var(--ad-text-md);
  gap: 8px;
}
.ad-card-action-product .ad-card-add-icon { width: 22px; height: 22px; }
.ad-card-action-product .ad-card-add-icon svg { width: 22px; height: 22px; }
.ad-card-action-product .ad-card-stepper {
  height: 56px;
  padding: 6px;
}
.ad-card-action-product .ad-card-stepper-btn {
  width: 44px;
  height: 44px;
  font-size: 22px;
}
.ad-card-action-product .ad-card-stepper-qty {
  font-size: var(--ad-text-lg);
}

.auria-product-info form.cart {
  display: flex;
  flex-direction: column;
  gap: var(--ad-space-3);
  margin: 0;
}
.auria-product-info form.cart .quantity { display: flex; align-items: center; gap: 8px; }
.auria-product-info form.cart .quantity label { display: none; }

/* qty input — JS substitui por stepper, mas estilo decente caso não rode */
.auria-product-info form.cart input[type=number] {
  width: 80px;
  padding: 12px;
  border: 1px solid var(--ad-border);
  border-radius: var(--ad-radius-md);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-base);
  text-align: center;
  font-variant-numeric: tabular-nums;
  background: var(--ad-bg);
}

/* Botão Adicionar ao carrinho — força bruta rosa Auria */
.auria-product-info form.cart button.single_add_to_cart_button,
.auria-product-info form.cart .single_add_to_cart_button,
.woocommerce .auria-product-info form.cart .single_add_to_cart_button,
.woocommerce-page .auria-product-info form.cart .single_add_to_cart_button,
button.single_add_to_cart_button.button.alt {
  flex: 1 !important;
  width: 100% !important;
  padding: 16px 24px !important;
  background: var(--ad-primary) !important;
  background-color: var(--ad-primary) !important;
  color: var(--ad-primary-on) !important;
  border: none !important;
  border-radius: var(--ad-radius-full) !important;
  font-family: var(--ad-font-sans) !important;
  font-weight: var(--ad-weight-semibold) !important;
  font-size: var(--ad-text-md) !important;
  letter-spacing: -0.005em !important;
  cursor: pointer !important;
  transition: filter var(--ad-dur-fast), transform var(--ad-dur-fast) !important;
  box-shadow: var(--ad-shadow-fab) !important;
  text-transform: none !important;
}
.auria-product-info form.cart button.single_add_to_cart_button:hover { filter: brightness(1.06) !important; }
.auria-product-info form.cart button.single_add_to_cart_button:active { transform: scale(0.98) !important; }

@media (min-width: 768px) {
  .auria-product-info form.cart { flex-direction: row; align-items: center; }
}

.auria-product-info .variations { margin: 0; width: 100%; }
.auria-product-info .variations td { padding: 8px 0; }
.auria-product-info .variations select {
  width: 100%; padding: 12px 16px;
  border: 1px solid var(--ad-border);
  border-radius: var(--ad-radius-md);
  background: var(--ad-bg);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-base);
}
.auria-product-info .variations label {
  display: block; font-weight: var(--ad-weight-medium);
  font-size: var(--ad-text-sm); margin-bottom: 4px;
  color: var(--ad-ink-2);
}

.auria-product-section-title {
  font-size: var(--ad-text-lg);
  font-weight: var(--ad-weight-bold);
  margin: var(--ad-space-5) 0 var(--ad-space-3);
  letter-spacing: -0.015em;
  color: var(--ad-ink-1);
  position: relative;
  padding-bottom: 10px;
}
/* v2.10: divisor rosa igual ao da home, traço curto sob o nome */
.auria-product-section-title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 36px;
  height: 3px;
  background: var(--ad-primary);
  border-radius: 2px;
}
.auria-product-description { font-size: var(--ad-text-base); color: var(--ad-ink-2); line-height: 1.6; }
.auria-product-description p { margin: 0 0 var(--ad-space-3); }
.auria-product-description ul, .auria-product-description ol { padding-left: 22px; margin: 0 0 var(--ad-space-3); }

/* ════════════════════════════════════════════════════════════════ */
/*  ARCHIVE                                                          */
/* ════════════════════════════════════════════════════════════════ */

.auria-archive {
  max-width: var(--ad-container-wide);
  margin: 0 auto;
  padding: var(--ad-space-4);
}
.auria-archive-back {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--ad-text-sm); font-weight: var(--ad-weight-medium);
  color: var(--ad-ink-2); margin-bottom: var(--ad-space-3);
}
.auria-archive-back:hover { color: var(--ad-primary); }
.auria-archive-title {
  font-size: var(--ad-text-2xl);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.02em; margin: 0 0 4px;
}
@media (min-width: 768px) { .auria-archive-title { font-size: var(--ad-text-3xl); } }
.auria-archive-desc {
  font-size: var(--ad-text-sm); color: var(--ad-ink-2);
  margin: 0 0 var(--ad-space-5); max-width: 640px; line-height: 1.5;
}
.auria-archive-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--ad-space-4);
}
@media (min-width: 600px) { .auria-archive-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .auria-archive-grid { grid-template-columns: repeat(4, 1fr); } }

.auria-archive-pagination { display: flex; justify-content: center; margin: var(--ad-space-7) 0 var(--ad-space-4); }
.auria-archive-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; margin: 0 4px; padding: 0 14px;
  border-radius: var(--ad-radius-full);
  background: var(--ad-bg); border: 1px solid var(--ad-border);
  color: var(--ad-ink-1); font-weight: var(--ad-weight-semibold);
  font-size: var(--ad-text-sm);
}
.auria-archive-pagination .page-numbers:hover { border-color: var(--ad-primary); color: var(--ad-primary); }
.auria-archive-pagination .page-numbers.current {
  background: var(--ad-primary); color: var(--ad-primary-on); border-color: var(--ad-primary);
}

/* ════════════════════════════════════════════════════════════════ */
/*  PAGE GENÉRICA                                                    */
/* ════════════════════════════════════════════════════════════════ */

.auria-page-article {
  max-width: var(--ad-container);
  margin: 0 auto;
  padding: var(--ad-space-6) var(--ad-space-4);
  font-size: var(--ad-text-base);
  color: var(--ad-ink-2);
  line-height: 1.6;
}
.auria-page-header { margin-bottom: var(--ad-space-5); }
.auria-page-title {
  font-size: var(--ad-text-2xl);
  font-weight: var(--ad-weight-bold);
  letter-spacing: -0.02em;
  color: var(--ad-ink-1);
  margin: 0;
}
@media (min-width: 768px) { .auria-page-title { font-size: var(--ad-text-3xl); } }
.auria-page-content h2 {
  font-size: var(--ad-text-lg);
  font-weight: var(--ad-weight-bold);
  margin-top: var(--ad-space-5);
  letter-spacing: -0.01em; color: var(--ad-ink-1);
}
.auria-page-content p { margin: 0 0 var(--ad-space-3); }
.auria-page-content a { color: var(--ad-primary); text-decoration: underline; }


/* ════════════════════════════════════════════════════════════════ */
/*  ESCONDE elementos do plugin que não usamos                       */
/*  v2.2 — adiciona classes da bottom bar do plugin pro caso de      */
/*  ele renderizar mesmo após filter/remove_action (defesa em        */
/*  profundidade).                                                   */
/* ════════════════════════════════════════════════════════════════ */

.auria-store-header,
.auria-store-closed-banner,
.auria-hero,                         /* hero do plugin (se shortcode ainda renderizar) */
.auria-chips,
.auria-catalog-section,
/* bottom bar antiga do plugin (várias classes possíveis) */
#auria-bb-root,
.auria-bb-bar,
.auria-bb-panel,
.auria-bb-panel-backdrop,
.auria-bb-panel-content,
.auria-bb-fab,
.auria-bottom-bar,
.auria-bottombar,
.auria-bottom-menu,
[class*="auria-bottom-bar"],
[class*="auria-bottombar"]:not(.ad-bottombar),
[data-auria-bb],
[data-auria-bottombar]:not([data-ad-bottombar]) { display: none !important; }

/* ════════════════════════════════════════════════════════════════ */
/*  BOTTOM BAR NATIVA DO TEMA (v2.2)                                  */
/*  Categorias / Busca / Carrinho / Unidades / WhatsApp               */
/*  Markup próprio (.ad-bb-*), zero classe do plugin → sem briga      */
/*  de !important. Plugin desativado via filter+remove_action.        */
/* ════════════════════════════════════════════════════════════════ */

.ad-bottombar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--ad-z-bb);
  background: var(--ad-bg);
  font-family: var(--ad-font-sans);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  border-top: 1px solid var(--ad-border);
  isolation: isolate; /* stacking context próprio — evita glitch com backdrop-filter de outros elementos */
}

/* Tabs grid */
.ad-bb-tabs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: stretch;
  height: 60px;
  max-width: 720px;
  margin: 0 auto;
}

.ad-bb-item {
  background: transparent;
  border: none;
  color: var(--ad-ink-3);
  font-family: var(--ad-font-sans);
  font-size: 11px;
  font-weight: var(--ad-weight-medium);
  letter-spacing: -0.005em;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 0 4px;
  cursor: pointer;
  text-decoration: none;
  transition: color var(--ad-dur-fast) var(--ad-ease-out);
  position: relative;
}
.ad-bb-item:hover { color: var(--ad-ink-1); }
.ad-bb-item:active { transform: scale(0.94); }
.ad-bb-item.is-active { color: var(--ad-primary); }
.ad-bb-item.is-disabled { opacity: 0.35; pointer-events: none; }

.ad-bb-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ad-bb-icon svg {
  width: 22px;
  height: 22px;
}
.ad-bb-label {
  font-size: 10.5px;
  font-weight: var(--ad-weight-medium);
  line-height: 1;
  font-family: var(--ad-font-sans);
}

/* Carrinho com itens → rosa + badge */
.ad-bb-item-cart.has-items { color: var(--ad-primary); }
.ad-bb-item-cart .ad-bb-cart-count {
  position: absolute;
  top: -6px;
  right: -10px;
  background: var(--ad-primary);
  color: #fff;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: var(--ad-weight-bold);
  font-variant-numeric: tabular-nums;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--ad-bg);
  line-height: 1;
}
.ad-bb-item-cart .ad-bb-cart-count[hidden] { display: none; }

/* WhatsApp tab — verde sempre (cor da marca) */
.ad-bb-item-whatsapp { color: #25D366; }
.ad-bb-item-whatsapp:hover { color: #20BD5A; }

/* ════════════════════════════════════════════════════════════════ */
/*  SHEETS (busca / carrinho / unidades) + backdrop                  */
/* ════════════════════════════════════════════════════════════════ */

.ad-sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 95;
  opacity: 0;
  pointer-events: none;
  display: none; /* só renderiza quando aberto — evita backdrop-filter sempre ativo afetando rendering */
  transition: opacity var(--ad-dur-base) var(--ad-ease-out);
}
.ad-sheet-backdrop.is-open {
  display: block;
  opacity: 1;
  pointer-events: auto;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.ad-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--ad-bg);
  border-radius: var(--ad-radius-2xl) var(--ad-radius-2xl) 0 0;
  z-index: var(--ad-z-sheet);
  font-family: var(--ad-font-sans);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(100%);
  transition: transform var(--ad-dur-base) var(--ad-ease-spring),
              box-shadow var(--ad-dur-base) var(--ad-ease-out);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  /* Sem box-shadow por padrão — só renderiza quando aberto.
     Antes a sombra ficava "vazando" pelo fim da viewport mesmo com translateY(100%),
     criando aspecto fantasma sobre a bottom bar. */
}
.ad-sheet[aria-hidden="false"],
.ad-sheet.is-open {
  transform: translateY(0);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.16);
}

.ad-sheet-grabber {
  width: 40px;
  height: 4px;
  background: var(--ad-border-strong);
  border-radius: 2px;
  margin: 10px auto 4px;
  flex-shrink: 0;
}

.ad-sheet-header {
  flex-shrink: 0;
  padding: 8px var(--ad-space-5) var(--ad-space-3);
  border-bottom: 1px solid var(--ad-border-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ad-space-3);
}
.ad-sheet-title {
  font-family: var(--ad-font-sans);
  font-weight: var(--ad-weight-bold);
  font-size: var(--ad-text-xl);
  letter-spacing: -0.02em;
  color: var(--ad-ink-1);
  margin: 0;
}
.ad-sheet-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ad-surface-2);
  border: none;
  color: var(--ad-ink-1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-sheet-close:hover { background: var(--ad-surface-3); }
.ad-sheet-close svg { width: 18px; height: 18px; }

.ad-sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* v2.26.0 — overscroll-behavior:contain impede que scroll do body do step
     "vaze" pro pai (track), o que causava o reflow horizontal do carrossel
     em viewports estreitos com autofocus. */
  overscroll-behavior: contain;
  padding: var(--ad-space-4) var(--ad-space-5);
  color: var(--ad-ink-1);
}

.ad-sheet-footer {
  flex-shrink: 0;
  padding: var(--ad-space-3) var(--ad-space-5) var(--ad-space-4);
  border-top: 1px solid var(--ad-border-soft);
  background: var(--ad-bg);
}
.ad-sheet-footer[hidden] { display: none; }

/* ────────────────────────────────────────────────────────────── */
/* Sheet: BUSCA                                                    */
/* ────────────────────────────────────────────────────────────── */

.ad-search-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: var(--ad-space-4);
}
.ad-search-icon {
  position: absolute;
  left: 14px;
  display: inline-flex;
  align-items: center;
  color: var(--ad-ink-3);
  pointer-events: none;
}
.ad-search-icon svg { width: 18px; height: 18px; }
.ad-search-input {
  width: 100%;
  background: var(--ad-surface-2);
  border: 1px solid var(--ad-border-soft);
  border-radius: var(--ad-radius-md);
  padding: 12px 16px 12px 42px;
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-base);
  color: var(--ad-ink-1);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
  -webkit-appearance: none;
  appearance: none;
}
.ad-search-input:focus {
  outline: none;
  border-color: var(--ad-primary);
  background: var(--ad-bg);
  box-shadow: 0 0 0 3px var(--ad-primary-soft);
}

.ad-search-results {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ad-search-empty {
  color: var(--ad-ink-3);
  font-size: var(--ad-text-sm);
  text-align: center;
  padding: var(--ad-space-5) 0;
  margin: 0;
}
.ad-search-result {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: var(--ad-space-3);
  align-items: center;
  padding: var(--ad-space-2);
  border-radius: var(--ad-radius-md);
  text-decoration: none;
  color: inherit;
  transition: background var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-search-result:hover { background: var(--ad-surface-2); }
.ad-search-result-thumb {
  width: 48px;
  height: 48px;
  border-radius: var(--ad-radius-sm);
  background: var(--ad-photo-bg) center/cover no-repeat;
  flex-shrink: 0;
}
.ad-search-result-name {
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-1);
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ad-search-result-price {
  font-size: var(--ad-text-sm);
  color: var(--ad-primary);
  font-weight: var(--ad-weight-semibold);
  font-variant-numeric: tabular-nums;
}

/* ────────────────────────────────────────────────────────────── */
/* Sheet: CARRINHO                                                 */
/* ────────────────────────────────────────────────────────────── */

.ad-cart-items {
  display: flex;
  flex-direction: column;
}
.ad-cart-empty {
  text-align: center;
  padding: var(--ad-space-7) var(--ad-space-3);
  color: var(--ad-ink-2);
}
.ad-cart-empty[hidden] { display: none; }
.ad-cart-empty p:first-child {
  margin: 0 0 6px;
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-1);
}
.ad-cart-empty .ad-cart-empty-sub {
  font-weight: var(--ad-weight-regular);
  color: var(--ad-ink-3);
  font-size: var(--ad-text-sm);
}

.ad-cart-item {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: var(--ad-space-3);
  align-items: center;
  padding: var(--ad-space-3) 0;
  border-bottom: 1px solid var(--ad-border-soft);
}
.ad-cart-item:last-child { border-bottom: none; }
.ad-cart-item-photo {
  width: 56px;
  height: 56px;
  border-radius: var(--ad-radius-sm);
  overflow: hidden;
  background: var(--ad-photo-bg);
  flex-shrink: 0;
  display: block;
}
.ad-cart-item-photo img,
.ad-cart-item-thumb {
  width: 100%;
  height: 100%;
  /* v2.28.0 — contain pra coerencia com o catalogo (era cover) */
  object-fit: contain;
  display: block;
  background: #ffffff;
}
.ad-cart-item-info { min-width: 0; }
.ad-cart-item-name {
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-1);
  margin: 0 0 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* v2.12: lista de adicionais do item — letra menor, cinza, abaixo do título */
.ad-cart-item-addons {
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  margin: 0 0 4px;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.ad-cart-item-price {
  font-size: var(--ad-text-sm);
  color: var(--ad-primary);
  font-weight: var(--ad-weight-semibold);
  font-variant-numeric: tabular-nums;
  margin: 0;
}

.ad-cart-item-qty {
  display: inline-flex;
  align-items: center;
  background: var(--ad-surface-2);
  border-radius: var(--ad-radius-full);
  padding: 2px;
}
.ad-cart-qty-btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--ad-bg);
  border: none;
  color: var(--ad-ink-1);
  font-size: 14px;
  font-weight: var(--ad-weight-bold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-cart-qty-btn:hover { background: var(--ad-primary-soft); color: var(--ad-primary); }
.ad-cart-qty-btn:disabled { opacity: 0.4; pointer-events: none; }
.ad-cart-qty-value {
  min-width: 28px;
  text-align: center;
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-ink-1);
  font-variant-numeric: tabular-nums;
  padding: 0 6px;
}

.ad-cart-total-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--ad-space-3);
  padding: 10px 14px;
  background: var(--ad-ink-1);
  color: var(--ad-bg);
  border-radius: var(--ad-radius-md);
}
.ad-cart-total-label {
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
}
.ad-cart-total-value {
  font-size: var(--ad-text-lg);
  font-weight: var(--ad-weight-bold);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* CTA principal: finalizar pedido (rosa Auria) */
.ad-cart-cta-checkout {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: var(--ad-primary);
  color: var(--ad-primary-on);
  border: none;
  border-radius: var(--ad-radius-full);
  padding: 14px 18px;
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-semibold);
  text-decoration: none;
  cursor: pointer;
  letter-spacing: -0.005em;
  box-shadow: var(--ad-shadow-fab);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
  margin-bottom: 10px;
}
.ad-cart-cta-checkout:hover { filter: brightness(1.05); }
.ad-cart-cta-checkout:active { transform: scale(0.98); }

/* CTA secundária: pedir pelo WhatsApp (verde) */
.ad-cart-cta-whatsapp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  background: #25D366;
  color: #fff;
  border: none;
  border-radius: var(--ad-radius-full);
  padding: 14px 18px;
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-semibold);
  cursor: pointer;
  letter-spacing: -0.005em;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.32);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
  margin-bottom: var(--ad-space-3);
}
.ad-cart-cta-whatsapp:hover { filter: brightness(1.05); }
.ad-cart-cta-whatsapp:active { transform: scale(0.98); }
.ad-cart-cta-whatsapp.is-loading { opacity: 0.7; pointer-events: none; }
.ad-cart-whatsapp-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ad-cart-whatsapp-icon svg { width: 20px; height: 20px; }

/* Linha secundária: esvaziar + ver carrinho (links texto) */
.ad-cart-secondary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4px;
}
.ad-cart-clear {
  background: none;
  border: none;
  color: var(--ad-ink-3);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-medium);
  cursor: pointer;
  padding: 6px 4px;
  transition: color var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-cart-clear:hover { color: var(--ad-closed); }
.ad-cart-view {
  color: var(--ad-ink-3);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-medium);
  text-decoration: none;
  padding: 6px 4px;
  transition: color var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-cart-view:hover { color: var(--ad-primary); }

/* ────────────────────────────────────────────────────────────── */
/* CHECKOUT MULTISTEP (v2.7)                                       */
/* Sheet do carrinho virou checkout multistep com track horizontal,*/
/* progress bar e steps que deslizam (motion vocabulary do hero).  */
/* ────────────────────────────────────────────────────────────── */

.ad-sheet-checkout {
  /* sheet do checkout — mesma base de .ad-sheet, só ajusta layout interno */
  display: flex;
  flex-direction: column;
}

.ad-checkout-progress {
  height: 3px;
  background: var(--ad-primary-soft);
  flex-shrink: 0;
  overflow: hidden;
  margin-top: 8px; /* depois do grabber */
}
.ad-checkout-progress-bar {
  height: 100%;
  width: 20%;
  background: var(--ad-primary);
  transition: width 0.4s var(--ad-ease-spring), background-color 0.3s var(--ad-ease-out);
}
/* Step de sucesso (final) — barra fica verde */
.ad-sheet-checkout[data-ad-current-step="5"] .ad-checkout-progress-bar { background: var(--ad-popular); }

.ad-checkout-header {
  position: relative;
  gap: 6px;
}
.ad-checkout-back {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ad-surface-2);
  border: none;
  color: var(--ad-ink-1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-checkout-back:hover { background: var(--ad-surface-3); }
.ad-checkout-back[hidden] { display: none; }
.ad-checkout-back svg { width: 16px; height: 16px; }

.ad-checkout-step-indicator {
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  font-weight: var(--ad-weight-medium);
  margin-left: auto;
  margin-right: 8px;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}

/* Track horizontal — slide entre steps */
.ad-checkout-track {
  flex: 1 1 auto;
  display: flex;
  min-height: 0;
  /* v2.26.0 — overflow:clip em vez de hidden bloqueia também scroll programático
     (browser tentando trazer foco pra view) que causava "tela branca" em mobile.
     `contain: layout paint` isola o reflow do track do contexto pai. */
  overflow: clip;
  contain: layout paint;
  position: relative;
  /* Evita que um eventual width-overflow do step (scrollbar interna) empurre
     conteúdo pra fora horizontalmente em viewports estreitos. */
  width: 100%;
  max-width: 100%;
}

.ad-checkout-step {
  flex: 0 0 100%;
  width: 100%;
  /* v2.26.0 — max-width:100% impede que conteúdo interno force largura > 100%
     do track em mobile. Sem isso, scroll-into-view de input pode arrastar
     o step pra esquerda, criando o sintoma "tela branca". */
  max-width: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
  transform: translateX(0);
  /* v2.26.0 — translate3d força composite layer. Browser respeita melhor
     o transform e não tenta scrollar o pai pra trazer um input em foco. */
  will-change: transform, opacity;
  transition: transform 0.42s var(--ad-ease-spring), opacity 0.3s var(--ad-ease-out);
  opacity: 1;
}

/* JS muda data-ad-current-step no aside; cada step se posiciona via transform */
.ad-sheet-checkout[data-ad-current-step="1"] .ad-checkout-step[data-step="1"] { transform: translateX(0); }
.ad-sheet-checkout[data-ad-current-step="1"] .ad-checkout-step:not([data-step="1"]) { transform: translateX(100%); opacity: 0; pointer-events: none; }

.ad-sheet-checkout[data-ad-current-step="2"] .ad-checkout-step[data-step="1"] { transform: translateX(-100%); opacity: 0; pointer-events: none; }
.ad-sheet-checkout[data-ad-current-step="2"] .ad-checkout-step[data-step="2"] { transform: translateX(-100%); }
.ad-sheet-checkout[data-ad-current-step="2"] .ad-checkout-step[data-step="3"],
.ad-sheet-checkout[data-ad-current-step="2"] .ad-checkout-step[data-step="4"],
.ad-sheet-checkout[data-ad-current-step="2"] .ad-checkout-step[data-step="5"] { transform: translateX(0); opacity: 0; pointer-events: none; }

.ad-sheet-checkout[data-ad-current-step="3"] .ad-checkout-step[data-step="1"],
.ad-sheet-checkout[data-ad-current-step="3"] .ad-checkout-step[data-step="2"] { transform: translateX(-200%); opacity: 0; pointer-events: none; }
.ad-sheet-checkout[data-ad-current-step="3"] .ad-checkout-step[data-step="3"] { transform: translateX(-200%); }
.ad-sheet-checkout[data-ad-current-step="3"] .ad-checkout-step[data-step="4"],
.ad-sheet-checkout[data-ad-current-step="3"] .ad-checkout-step[data-step="5"] { transform: translateX(-100%); opacity: 0; pointer-events: none; }

.ad-sheet-checkout[data-ad-current-step="4"] .ad-checkout-step[data-step="1"],
.ad-sheet-checkout[data-ad-current-step="4"] .ad-checkout-step[data-step="2"],
.ad-sheet-checkout[data-ad-current-step="4"] .ad-checkout-step[data-step="3"] { transform: translateX(-300%); opacity: 0; pointer-events: none; }
.ad-sheet-checkout[data-ad-current-step="4"] .ad-checkout-step[data-step="4"] { transform: translateX(-300%); }
.ad-sheet-checkout[data-ad-current-step="4"] .ad-checkout-step[data-step="5"] { transform: translateX(-200%); opacity: 0; pointer-events: none; }

.ad-sheet-checkout[data-ad-current-step="5"] .ad-checkout-step[data-step="1"],
.ad-sheet-checkout[data-ad-current-step="5"] .ad-checkout-step[data-step="2"],
.ad-sheet-checkout[data-ad-current-step="5"] .ad-checkout-step[data-step="3"],
.ad-sheet-checkout[data-ad-current-step="5"] .ad-checkout-step[data-step="4"] { transform: translateX(-400%); opacity: 0; pointer-events: none; }
.ad-sheet-checkout[data-ad-current-step="5"] .ad-checkout-step[data-step="5"] { transform: translateX(-400%); }

/* Footer interno do step (botão Continuar fica no step, não no sheet) */
.ad-checkout-step-footer {
  flex-shrink: 0;
  padding: var(--ad-space-3) var(--ad-space-5) var(--ad-space-4);
  border-top: 1px solid var(--ad-border-soft);
  background: var(--ad-bg);
}
.ad-checkout-step-footer[hidden] { display: none; }

/* Ilustração de header do step (ícone grande em círculo soft) */
.ad-checkout-illust {
  display: flex;
  justify-content: center;
  margin: var(--ad-space-3) 0 var(--ad-space-4);
}
.ad-checkout-illust-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--ad-primary-soft);
  color: var(--ad-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ad-checkout-illust-icon svg { width: 28px; height: 28px; }

.ad-checkout-question {
  text-align: center;
  font-size: var(--ad-text-lg);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-ink-1);
  margin: 0 0 var(--ad-space-4);
  letter-spacing: -0.015em;
}

/* Form fields */
.ad-checkout-field {
  margin-bottom: var(--ad-space-3);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ad-checkout-label {
  font-size: var(--ad-text-xs);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-2);
  letter-spacing: -0.005em;
}
.ad-checkout-input {
  height: 48px;
  padding: 0 16px;
  background: var(--ad-surface-2);
  border: 1.5px solid transparent;
  border-radius: var(--ad-radius-md);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-base);
  color: var(--ad-ink-1);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color var(--ad-dur-fast) var(--ad-ease-out),
              background-color var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-checkout-input::placeholder { color: var(--ad-ink-3); }
.ad-checkout-input:focus {
  border-color: var(--ad-primary);
  background: var(--ad-bg);
}
.ad-checkout-input.is-valid {
  border-color: var(--ad-popular);
  background: var(--ad-popular-soft);
}
.ad-checkout-input.is-error {
  border-color: var(--ad-closed);
  background: var(--ad-closed-soft);
}
.ad-checkout-hint {
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  margin: 0;
  line-height: 1.4;
}
.ad-checkout-hint.is-success { color: var(--ad-popular); font-weight: var(--ad-weight-semibold); }
.ad-checkout-hint.is-error { color: var(--ad-closed); font-weight: var(--ad-weight-semibold); }

.ad-checkout-field-row {
  display: flex;
  gap: var(--ad-space-3);
}
.ad-checkout-field-flex { flex: 1; }
.ad-checkout-field-flex2 { flex: 2; }

.ad-checkout-cep-wrap {
  position: relative;
  display: flex;
}
.ad-checkout-cep-wrap .ad-checkout-input { flex: 1; }
.ad-checkout-cep-status {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  font-weight: var(--ad-weight-medium);
  pointer-events: none;
}
.ad-checkout-cep-status[hidden] { display: none; }

/* Mode toggle: Entregar vs Retirar */
.ad-checkout-mode-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: var(--ad-space-4);
  background: var(--ad-surface-2);
  padding: 4px;
  border-radius: var(--ad-radius-full);
}
.ad-checkout-mode-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 12px;
  background: transparent;
  border: none;
  border-radius: var(--ad-radius-full);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-2);
  cursor: pointer;
  transition: background var(--ad-dur-fast) var(--ad-ease-out),
              color var(--ad-dur-fast) var(--ad-ease-out),
              box-shadow var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-checkout-mode-btn.is-active {
  background: var(--ad-bg);
  color: var(--ad-primary);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.ad-checkout-mode-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ad-checkout-mode-icon svg { width: 18px; height: 18px; }

/* Pickup */
.ad-checkout-pickup-intro {
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-2);
  margin: 0 0 var(--ad-space-3);
}
.ad-checkout-pickup-list {
  display: flex;
  flex-direction: column;
  gap: var(--ad-space-2);
}
.ad-checkout-pickup-card {
  background: var(--ad-bg);
  border: 1.5px solid var(--ad-border);
  border-radius: var(--ad-radius-md);
  padding: var(--ad-space-3);
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: border-color var(--ad-dur-fast) var(--ad-ease-out),
              background-color var(--ad-dur-fast) var(--ad-ease-out);
  font-family: var(--ad-font-sans);
}
.ad-checkout-pickup-card.is-selected {
  border-color: var(--ad-primary);
  background: var(--ad-primary-soft);
}
.ad-checkout-pickup-name {
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-ink-1);
  letter-spacing: -0.005em;
}
.ad-checkout-pickup-addr {
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-2);
  line-height: 1.4;
}
.ad-checkout-pickup-hours {
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  margin-top: 2px;
}
.ad-checkout-pickup-single {
  background: var(--ad-surface-2);
  border-radius: var(--ad-radius-md);
  padding: var(--ad-space-3);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ad-checkout-pickup-empty {
  text-align: center;
  color: var(--ad-ink-3);
  font-size: var(--ad-text-sm);
  padding: var(--ad-space-5) 0;
}

/* Atalho WhatsApp no step 1 — secundário, linha discreta */
.ad-cart-shortcut-whatsapp {
  background: transparent;
  border: 1px solid var(--ad-border);
  color: var(--ad-ink-2);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  padding: 12px 16px;
  border-radius: var(--ad-radius-full);
  cursor: pointer;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 10px;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-cart-shortcut-whatsapp:hover {
  background: #DCFCE7;
  border-color: #25D366;
  color: #15803D;
}
.ad-cart-shortcut-whatsapp .ad-cart-whatsapp-icon { color: #25D366; display: inline-flex; }
.ad-cart-shortcut-whatsapp .ad-cart-whatsapp-icon svg { width: 18px; height: 18px; }
.ad-cart-shortcut-whatsapp.is-loading { opacity: 0.7; pointer-events: none; }

/* CTA Continuar com estado disabled */
.ad-cart-cta-checkout:disabled,
.ad-cart-cta-checkout[disabled] {
  background: var(--ad-surface-3);
  color: var(--ad-ink-3);
  pointer-events: none;
  box-shadow: none;
}

/* Esconde a bottom bar quando checkout step > 1 (foco total no fluxo) */
body.ad-checkout-active .ad-bottombar {
  transform: translateY(110%);
  transition: transform 0.3s var(--ad-ease-out);
}

/* ────────────────────────────────────────────────────────────── */
/* STEP 4 — Cards de método de pagamento                           */
/* ────────────────────────────────────────────────────────────── */

.ad-payment-methods {
  display: flex;
  flex-direction: column;
  gap: var(--ad-space-2);
}
.ad-payment-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: var(--ad-space-5);
  color: var(--ad-ink-3);
  font-size: var(--ad-text-sm);
}
.ad-payment-loading-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid var(--ad-border);
  border-top-color: var(--ad-primary);
  border-radius: 50%;
  animation: adSpin 0.7s linear infinite;
  display: inline-block;
}
@keyframes adSpin { to { transform: rotate(360deg); } }

.ad-payment-card {
  background: var(--ad-bg);
  border: 1.5px solid var(--ad-border);
  border-radius: var(--ad-radius-md);
  padding: 14px 16px;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--ad-font-sans);
  transition: border-color var(--ad-dur-fast) var(--ad-ease-out),
              background-color var(--ad-dur-fast) var(--ad-ease-out),
              transform var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-payment-card:hover { border-color: var(--ad-ink-3); }
.ad-payment-card:active { transform: scale(0.98); }
.ad-payment-card.is-selected {
  border-color: var(--ad-primary);
  background: var(--ad-primary-soft);
}
.ad-payment-card.is-pix.is-selected { border-color: #1A7F75; background: #E0F5F2; }
.ad-payment-card.is-card.is-selected { border-color: var(--ad-primary); background: var(--ad-primary-soft); }
.ad-payment-card.is-cod.is-selected { border-color: #B8860B; background: #FFF8E1; }
.ad-payment-card.is-whatsapp.is-selected { border-color: #25D366; background: #DCFCE7; }

.ad-payment-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: var(--ad-surface-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--ad-ink-2);
  font-weight: var(--ad-weight-bold);
  font-size: 12px;
}
.ad-payment-card.is-pix .ad-payment-icon { background: #E0F5F2; color: #1A7F75; }
.ad-payment-card.is-card .ad-payment-icon { background: var(--ad-primary-soft); color: var(--ad-primary); }
.ad-payment-card.is-cod .ad-payment-icon { background: #FFF8E1; color: #B8860B; }
.ad-payment-card.is-whatsapp .ad-payment-icon { background: #DCFCE7; color: #15803D; }
.ad-payment-icon svg { width: 18px; height: 18px; }

.ad-payment-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.ad-payment-title {
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-ink-1);
  letter-spacing: -0.005em;
}
.ad-payment-desc {
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  line-height: 1.3;
}

/* COD sub-pergunta inline */
.ad-cod-subquestion {
  margin-top: var(--ad-space-3);
  padding: var(--ad-space-3);
  background: var(--ad-surface-2);
  border-radius: var(--ad-radius-md);
  animation: adSlideDown 0.28s var(--ad-ease-spring);
}
@keyframes adSlideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
.ad-cod-sub-title {
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-2);
  margin: 0 0 8px;
}
.ad-cod-sub-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.ad-cod-sub-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px;
  background: var(--ad-bg);
  border: 1.5px solid var(--ad-border);
  border-radius: var(--ad-radius-md);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-1);
  cursor: pointer;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-cod-sub-btn:hover { border-color: var(--ad-ink-3); }
.ad-cod-sub-btn.is-selected {
  border-color: var(--ad-primary);
  background: var(--ad-primary-soft);
  color: var(--ad-primary);
}
.ad-cod-sub-icon { font-size: 16px; }

.ad-cod-change { margin-top: var(--ad-space-3); }
.ad-cod-change-q {
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-2);
  margin: 0 0 8px;
}
.ad-cod-change-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  background: var(--ad-surface-3);
  border-radius: var(--ad-radius-full);
  margin-bottom: 10px;
}
.ad-cod-change-btn {
  padding: 8px;
  background: transparent;
  border: none;
  border-radius: var(--ad-radius-full);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-2);
  cursor: pointer;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-cod-change-btn.is-active {
  background: var(--ad-bg);
  color: var(--ad-primary);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* ────────────────────────────────────────────────────────────── */
/* STEP 5 — Estados (loading / pix-waiting / success / failed)     */
/* ────────────────────────────────────────────────────────────── */

.ad-step5-body {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 360px;
}

.ad-step5-state {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 100%;
  text-align: center;
  animation: adFadeIn 0.4s var(--ad-ease-out);
}
.ad-checkout-step[data-ad-step5-mode="redirecting"] .ad-step5-state[data-state="redirecting"] { display: flex; }
.ad-checkout-step[data-ad-step5-mode="pix-waiting"] .ad-step5-state[data-state="pix-waiting"] { display: flex; }
.ad-checkout-step[data-ad-step5-mode="success"] .ad-step5-state[data-state="success"] { display: flex; }
.ad-checkout-step[data-ad-step5-mode="failed"] .ad-step5-state[data-state="failed"] { display: flex; }

/* — PIX waiting — */
.ad-pix-amount {
  font-size: var(--ad-text-2xl);
  font-weight: 800;
  color: var(--ad-primary);
  margin: 0;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.ad-pix-qr-wrap {
  width: 200px;
  height: 200px;
  background: var(--ad-bg);
  border: 1px solid var(--ad-border);
  border-radius: var(--ad-radius-md);
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ad-pix-qr {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
}
.ad-pix-qr-placeholder {
  width: 100%;
  height: 100%;
  background: var(--ad-surface-2);
  border-radius: var(--ad-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ad-ink-3);
}
.ad-pix-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--ad-primary-soft);
  color: var(--ad-primary);
  border: none;
  border-radius: var(--ad-radius-full);
  padding: 10px 18px;
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-bold);
  cursor: pointer;
  transition: filter var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-pix-copy-btn:hover { filter: brightness(0.95); }
.ad-pix-copy-btn:active { transform: scale(0.97); }
.ad-pix-copy-btn.is-copied { background: var(--ad-popular-soft); color: var(--ad-popular); }
.ad-pix-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-2);
  margin: 0;
  font-weight: var(--ad-weight-medium);
}
.ad-pix-pulse {
  width: 8px;
  height: 8px;
  background: var(--ad-popular);
  border-radius: 50%;
  display: inline-block;
  animation: adPulse 1.5s ease-in-out infinite;
}
@keyframes adPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.8); }
}

/* — Redirecting — */
.ad-redirecting-loader {
  display: inline-flex;
  gap: 6px;
}
.ad-redirecting-loader span {
  width: 10px;
  height: 10px;
  background: var(--ad-primary);
  border-radius: 50%;
  animation: adBounce 1.2s ease-in-out infinite;
}
.ad-redirecting-loader span:nth-child(2) { animation-delay: 0.15s; }
.ad-redirecting-loader span:nth-child(3) { animation-delay: 0.3s; }
@keyframes adBounce {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.6; }
  40% { transform: translateY(-10px); opacity: 1; }
}

/* — Success — */
.ad-success-check {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--ad-popular-soft);
  color: var(--ad-popular);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  animation: adCheckPop 0.5s var(--ad-ease-spring);
}
@keyframes adCheckPop {
  0% { transform: scale(0.4); opacity: 0; }
  60% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); }
}
.ad-success-circle {
  stroke-dasharray: 176;
  stroke-dashoffset: 176;
  animation: adDraw 0.6s 0.2s ease-out forwards;
}
.ad-success-path {
  stroke-dasharray: 50;
  stroke-dashoffset: 50;
  animation: adDraw 0.4s 0.7s ease-out forwards;
}
@keyframes adDraw { to { stroke-dashoffset: 0; } }

.ad-success-title {
  font-size: var(--ad-text-xl);
  font-weight: 800;
  color: var(--ad-ink-1);
  margin: 0;
  letter-spacing: -0.018em;
}
.ad-success-number {
  font-size: var(--ad-text-2xl);
  font-weight: 900;
  color: var(--ad-primary);
  font-variant-numeric: tabular-nums;
  margin: 0;
  letter-spacing: -0.025em;
}
.ad-success-eta {
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-2);
  margin: 0;
  line-height: 1.5;
}

/* Botão "Acompanhar pedido" — leva pra /auria-track/{id}/ do auria-admin */
.ad-success-track {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ad-primary);
  color: var(--ad-primary-on);
  border: none;
  border-radius: var(--ad-radius-full);
  padding: 12px 24px;
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-bold);
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(230, 57, 70, 0.18);
  transition: filter var(--ad-dur-fast) var(--ad-ease-out),
              transform var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-success-track:hover { filter: brightness(1.06); color: var(--ad-primary-on); }
.ad-success-track:active { transform: scale(0.97); }
.ad-success-track svg { flex-shrink: 0; }
.ad-success-track[hidden] { display: none; }

/* Confete — partículas absolute caindo do topo do step */
.ad-success-confetti {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ad-success-confetti span {
  position: absolute;
  top: -10px;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  animation: adFall 2.4s ease-in forwards;
}
.ad-success-confetti span:nth-child(1)  { left: 8%;  background: #E63946; animation-delay: 0.1s; }
.ad-success-confetti span:nth-child(2)  { left: 18%; background: #15803D; animation-delay: 0.3s; transform: rotate(15deg); }
.ad-success-confetti span:nth-child(3)  { left: 28%; background: #FAC775; animation-delay: 0.0s; }
.ad-success-confetti span:nth-child(4)  { left: 40%; background: #25D366; animation-delay: 0.5s; transform: rotate(-12deg); }
.ad-success-confetti span:nth-child(5)  { left: 52%; background: #E63946; animation-delay: 0.2s; }
.ad-success-confetti span:nth-child(6)  { left: 64%; background: #FAC775; animation-delay: 0.4s; transform: rotate(20deg); }
.ad-success-confetti span:nth-child(7)  { left: 76%; background: #15803D; animation-delay: 0.15s; }
.ad-success-confetti span:nth-child(8)  { left: 88%; background: #25D366; animation-delay: 0.35s; transform: rotate(-8deg); }
.ad-success-confetti span:nth-child(9)  { left: 14%; background: #FAC775; animation-delay: 0.6s; }
.ad-success-confetti span:nth-child(10) { left: 32%; background: #E63946; animation-delay: 0.7s; transform: rotate(25deg); }
.ad-success-confetti span:nth-child(11) { left: 60%; background: #15803D; animation-delay: 0.55s; }
.ad-success-confetti span:nth-child(12) { left: 82%; background: #FAC775; animation-delay: 0.45s; transform: rotate(-18deg); }
@keyframes adFall {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  100% { transform: translateY(380px) rotate(360deg); opacity: 0; }
}

/* — Failed — */
.ad-fail-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--ad-closed-soft);
  color: var(--ad-closed);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ────────────────────────────────────────────────────────────── */
/* Sheet: FILTROS (v2.10)                                          */
/* ────────────────────────────────────────────────────────────── */

.ad-filters-clear {
  background: transparent;
  border: none;
  color: var(--ad-primary);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-bold);
  cursor: pointer;
  padding: 0 12px;
  margin-left: auto;
  margin-right: 8px;
}
.ad-filters-clear:hover { color: var(--ad-primary-dark); }

.ad-filters-body {
  display: flex;
  flex-direction: column;
  gap: var(--ad-space-5);
  padding: var(--ad-space-4) var(--ad-space-5);
}

.ad-filter-group { display: flex; flex-direction: column; gap: 10px; }
.ad-filter-group-title {
  font-size: var(--ad-text-xs);
  font-weight: var(--ad-weight-bold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ad-ink-2);
  margin: 0;
}

/* Sort grid */
.ad-filter-sort-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.ad-filter-sort-btn {
  padding: 12px;
  background: var(--ad-bg);
  border: 1px solid var(--ad-border);
  border-radius: var(--ad-radius-md);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-medium);
  color: var(--ad-ink-2);
  cursor: pointer;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-filter-sort-btn:hover { border-color: var(--ad-ink-3); }
.ad-filter-sort-btn.is-active {
  background: var(--ad-primary-soft);
  border: 1.5px solid var(--ad-primary);
  color: var(--ad-primary);
  font-weight: var(--ad-weight-bold);
}

/* Categorias chips */
.ad-filter-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ad-filter-cat-chip {
  padding: 8px 14px;
  background: var(--ad-bg);
  border: 1px solid var(--ad-border);
  border-radius: var(--ad-radius-full);
  font-family: var(--ad-font-sans);
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-2);
  cursor: pointer;
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-filter-cat-chip:hover { border-color: var(--ad-ink-3); }
.ad-filter-cat-chip.is-active {
  background: var(--ad-primary-soft);
  border: 1.5px solid var(--ad-primary);
  color: var(--ad-primary);
  font-weight: var(--ad-weight-bold);
}

/* Faixa de preço — slider duplo */
.ad-filter-price { padding: 6px 0; }
.ad-filter-price-track {
  position: relative;
  height: 36px;
  display: flex;
  align-items: center;
}
.ad-filter-price-track::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 4px;
  background: var(--ad-border);
  border-radius: 2px;
  transform: translateY(-50%);
}
.ad-filter-price-fill {
  position: absolute;
  height: 4px;
  background: var(--ad-primary);
  border-radius: 2px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
.ad-filter-price-input {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  height: 36px;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
  pointer-events: none;
  outline: none;
  margin: 0;
}
.ad-filter-price-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--ad-bg);
  border: 2px solid var(--ad-primary);
  cursor: pointer;
  pointer-events: all;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}
.ad-filter-price-input::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--ad-bg);
  border: 2px solid var(--ad-primary);
  cursor: pointer;
  pointer-events: all;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}
.ad-filter-price-input::-webkit-slider-runnable-track { background: transparent; }
.ad-filter-price-input::-moz-range-track { background: transparent; }
.ad-filter-price-display {
  text-align: center;
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-ink-1);
  margin: 8px 0 0;
  font-variant-numeric: tabular-nums;
}

/* Toggles */
.ad-filter-toggles {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--ad-border-soft);
}
.ad-filter-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid var(--ad-border-soft);
  cursor: pointer;
}
.ad-filter-toggle:last-child { border-bottom: none; }
.ad-filter-toggle-label {
  font-size: var(--ad-text-base);
  color: var(--ad-ink-1);
  font-weight: var(--ad-weight-medium);
}
.ad-filter-toggle-control {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 24px;
  flex-shrink: 0;
}
.ad-filter-toggle-control input {
  opacity: 0;
  position: absolute;
  inset: 0;
  cursor: pointer;
  z-index: 2;
}
.ad-filter-toggle-track {
  position: absolute;
  inset: 0;
  background: var(--ad-surface-3);
  border-radius: 999px;
  transition: background var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-filter-toggle-track::after {
  content: '';
  position: absolute;
  left: 2px;
  top: 2px;
  width: 20px;
  height: 20px;
  background: var(--ad-bg);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
  transition: transform var(--ad-dur-fast) var(--ad-ease-spring);
}
.ad-filter-toggle-control input:checked ~ .ad-filter-toggle-track {
  background: var(--ad-primary);
}
.ad-filter-toggle-control input:checked ~ .ad-filter-toggle-track::after {
  transform: translateX(16px);
}

.ad-filters-footer { padding: var(--ad-space-3) var(--ad-space-5) var(--ad-space-4); }

/* ────────────────────────────────────────────────────────────── */
/* Sheet: CATEGORIAS                                               */
/* ────────────────────────────────────────────────────────────── */

.ad-cat-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ad-cat-link {
  display: grid;
  grid-template-columns: 56px 1fr 18px;
  gap: var(--ad-space-3);
  align-items: center;
  padding: var(--ad-space-2);
  border-radius: var(--ad-radius-md);
  text-decoration: none;
  color: inherit;
  transition: background var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-cat-link:hover { background: var(--ad-surface-2); }
.ad-cat-link:active { transform: scale(0.98); }
.ad-cat-thumb {
  width: 56px;
  height: 56px;
  border-radius: var(--ad-radius-sm);
  background: var(--ad-photo-bg) center/cover no-repeat;
  flex-shrink: 0;
}
.ad-cat-thumb-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ad-primary-soft);
  color: var(--ad-primary);
}
.ad-cat-thumb-fallback svg { width: 22px; height: 22px; }
.ad-cat-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.ad-cat-name {
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-ink-1);
  letter-spacing: -0.005em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ad-cat-count {
  font-size: var(--ad-text-xs);
  color: var(--ad-ink-3);
  font-variant-numeric: tabular-nums;
}
.ad-cat-chevron {
  color: var(--ad-ink-4);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: scaleX(-1); /* back icon vira chevron-right */
}
.ad-cat-chevron svg { width: 16px; height: 16px; }

.ad-sheet-empty {
  text-align: center;
  color: var(--ad-ink-3);
  font-size: var(--ad-text-sm);
  padding: var(--ad-space-5) 0;
  margin: 0;
}

/* ────────────────────────────────────────────────────────────── */
/* Sheet: UNIDADES                                                 */
/* ────────────────────────────────────────────────────────────── */

.ad-unit-card {
  background: var(--ad-surface-2);
  border-radius: var(--ad-radius-lg);
  padding: var(--ad-space-4);
  margin-bottom: var(--ad-space-3);
}
.ad-unit-card:last-child { margin-bottom: 0; }
.ad-unit-name {
  font-size: var(--ad-text-base);
  font-weight: var(--ad-weight-bold);
  color: var(--ad-ink-1);
  margin: 0 0 var(--ad-space-2);
  letter-spacing: -0.01em;
}
.ad-unit-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 6px;
  font-size: var(--ad-text-sm);
  color: var(--ad-ink-2);
  line-height: 1.45;
}
.ad-unit-row:last-of-type { margin-bottom: 12px; }
.ad-unit-row a { color: var(--ad-primary); text-decoration: none; }
.ad-unit-row a:hover { text-decoration: underline; }
.ad-unit-icon {
  flex-shrink: 0;
  color: var(--ad-ink-3);
  margin-top: 1px;
}
.ad-unit-icon svg { width: 16px; height: 16px; }
.ad-unit-maps {
  display: inline-block;
  margin-top: var(--ad-space-2);
  font-size: var(--ad-text-sm);
  font-weight: var(--ad-weight-semibold);
  color: var(--ad-primary);
  text-decoration: none;
  padding: 8px 14px;
  background: var(--ad-bg);
  border-radius: var(--ad-radius-full);
  border: 1px solid var(--ad-border);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-unit-maps:hover {
  background: var(--ad-primary-soft);
  border-color: var(--ad-primary-soft);
  color: var(--ad-primary-dark);
}
.ad-unit-empty {
  text-align: center;
  color: var(--ad-ink-3);
  font-size: var(--ad-text-sm);
  padding: var(--ad-space-5) 0;
}

/* ────────────────────────────────────────────────────────────── */
/* FAB lateral: filtro (v2.5)                                      */
/* Posiciona acima da bottom bar, lado direito. Esconde quando há  */
/* sheet aberto pra não competir com a UI da modal.                */
/* ────────────────────────────────────────────────────────────── */

.ad-filter-fab {
  position: fixed;
  right: 16px;
  bottom: calc(var(--ad-bb-height) + 16px + env(safe-area-inset-bottom, 0px));
  z-index: 88;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: var(--ad-bg);
  color: var(--ad-ink-1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08);
  transition: transform var(--ad-dur-fast) var(--ad-ease-spring),
              box-shadow var(--ad-dur-fast) var(--ad-ease-out),
              opacity var(--ad-dur-base) var(--ad-ease-out);
}
.ad-filter-fab:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16), 0 2px 4px rgba(0, 0, 0, 0.08);
}
.ad-filter-fab:active { transform: scale(0.94); }
.ad-filter-fab svg { width: 22px; height: 22px; }

/* Esconde FAB quando há sheet aberto (não competir com modal) */
body.ad-sheet-open .ad-filter-fab {
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
}

/* ────────────────────────────────────────────────────────────── */
/* Compensar altura da bottom bar pro conteúdo da página           */
/* (impede última linha ficar atrás da barra)                      */
/* ────────────────────────────────────────────────────────────── */

body { padding-bottom: calc(var(--ad-bb-height) + env(safe-area-inset-bottom, 0px)); }

/* No desktop (>=1024) bottom bar continua existindo mas é menos
   crítica — tema mantém presença pra consistência. */
@media (min-width: 1024px) {
  .ad-bottombar { box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.06); }
}


/* ════════════════════════════════════════════════════════════════ */
/*  Qty stepper no single-product (estilizado pelo JS)                */
/* ════════════════════════════════════════════════════════════════ */

.ad-qty-stepper {
  display: inline-flex;
  align-items: center;
  background: var(--ad-surface-2);
  border-radius: var(--ad-radius-full);
  padding: 4px;
  gap: 4px;
}
.ad-qty-stepper-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ad-bg);
  border: none;
  color: var(--ad-ink-1);
  font-size: 18px;
  font-weight: var(--ad-weight-bold);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0,0,0,0.08);
  transition: all var(--ad-dur-fast) var(--ad-ease-out);
}
.ad-qty-stepper-btn:hover { background: var(--ad-primary-soft); color: var(--ad-primary); }
.ad-qty-stepper-input {
  width: 40px !important;
  height: 36px !important;
  text-align: center !important;
  border: none !important;
  background: transparent !important;
  font-size: var(--ad-text-md) !important;
  font-weight: var(--ad-weight-bold) !important;
  font-variant-numeric: tabular-nums !important;
  color: var(--ad-ink-1) !important;
  padding: 0 !important;
  -moz-appearance: textfield !important;
}
.ad-qty-stepper-input::-webkit-outer-spin-button,
.ad-qty-stepper-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ─────────────────────────────────────────────────────────────── */
/* v2.31.0 (Onda L) — Página do produto: seletor de quantidade +   */
/*                    botão "Adicionar" sempre presente + total    */
/*                    dinâmico. Substitui o stepper-pós-add que    */
/*                    bypassava o filter de captura de addons.     */
/* ─────────────────────────────────────────────────────────────── */

.auria-product-already-in-cart {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  margin: 14px 0 4px;
  background: var(--ad-surface-2, rgba(0, 0, 0, 0.03));
  border: 1px solid var(--ad-border-soft, rgba(0, 0, 0, 0.06));
  border-radius: var(--ad-radius-md, 12px);
  font-size: var(--ad-text-sm, 14px);
  color: var(--ad-ink-2, #555);
  line-height: 1.4;
}
.auria-product-already-in-cart-icon {
  font-size: 18px;
  flex-shrink: 0;
}
.auria-product-already-in-cart-text {
  flex: 1;
  min-width: 0;
}
.auria-product-already-in-cart-text strong {
  color: var(--ad-ink-1, #111);
  font-weight: var(--ad-weight-bold, 700);
}
.auria-product-already-in-cart-link {
  color: var(--ad-primary, #e63946);
  font-weight: var(--ad-weight-semibold, 600);
  text-decoration: underline;
  text-underline-offset: 2px;
  margin-left: 4px;
  white-space: nowrap;
}
.auria-product-already-in-cart-link:hover {
  text-decoration-thickness: 2px;
}

.auria-product-cta {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 18px 0 8px;
}

.auria-product-qty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 4px 0;
}
.auria-product-qty-label {
  font-size: var(--ad-text-base, 15px);
  font-weight: var(--ad-weight-semibold, 600);
  color: var(--ad-ink-1, #111);
}

.auria-product-qty-stepper {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--ad-border, #e5e5e5);
  border-radius: 999px;
  overflow: hidden;
  background: var(--ad-surface-1, #fff);
  user-select: none;
}
.auria-product-qty-btn {
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: var(--ad-primary, #e63946);
  font-size: 22px;
  font-weight: var(--ad-weight-bold, 700);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
  -webkit-tap-highlight-color: transparent;
  font-family: var(--ad-font-sans);
  line-height: 1;
}
.auria-product-qty-btn:hover { background: rgba(230, 57, 70, 0.08); }
.auria-product-qty-btn:active { background: rgba(230, 57, 70, 0.16); }
.auria-product-qty-btn:focus-visible {
  outline: 2px solid var(--ad-primary, #e63946);
  outline-offset: -2px;
}

.auria-product-qty-input {
  width: 56px;
  height: 44px;
  border: 0;
  background: transparent;
  text-align: center;
  font-size: 17px;
  font-weight: var(--ad-weight-bold, 700);
  color: var(--ad-ink-1, #111);
  font-variant-numeric: tabular-nums;
  font-family: var(--ad-font-sans);
  appearance: textfield;
  -moz-appearance: textfield;
}
.auria-product-qty-input::-webkit-outer-spin-button,
.auria-product-qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.auria-product-qty-input:focus-visible {
  outline: 2px solid var(--ad-primary, #e63946);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Botão CTA — reusa estilo .ad-card-add-product existente, adiciona tweaks */
.auria-product-cta-btn {
  width: 100%;
  flex-wrap: wrap;
  gap: 6px 10px;
  padding: 14px 20px;
  min-height: 52px;
}
.auria-product-cta-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
}
.auria-product-cta-text {
  white-space: nowrap;
  font-weight: var(--ad-weight-bold, 700);
}
.auria-product-cta-total {
  font-variant-numeric: tabular-nums;
  font-weight: var(--ad-weight-bold, 700);
  opacity: 0.95;
  white-space: nowrap;
}

/* Mobile: stack o seletor verticalmente fica feio. Mantém horizontal. */
@media (max-width: 380px) {
  .auria-product-qty {
    gap: 8px;
  }
  .auria-product-qty-btn { width: 40px; height: 40px; }
  .auria-product-qty-input { width: 48px; height: 40px; font-size: 16px; }
  .auria-product-cta-btn {
    padding: 13px 16px;
    min-height: 48px;
  }
}


/* =================================================================
 * v2.32.0 — Onda Endereço Frente B
 * Busca preditiva de rua + autocompletar CEP no checkout (step 3)
 * ================================================================= */

.ad-checkout-address-lookup {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 14px;
  background: var(--ad-bg-soft, #f9fafb);
  border: 1px solid var(--ad-border, #e5e7eb);
  border-radius: 10px;
  margin-bottom: 16px;
}

.ad-checkout-address-search-wrap {
  position: relative;
}
.ad-checkout-address-status {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  color: var(--ad-ink-3, #6b7280);
  pointer-events: none;
}

.ad-checkout-address-results {
  margin-top: 8px;
  background: #fff;
  border: 1px solid var(--ad-border, #e5e7eb);
  border-radius: 8px;
  max-height: 320px;
  overflow-y: auto;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.ad-checkout-address-result {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  width: 100%;
  padding: 12px 14px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--ad-border-soft, #f3f4f6);
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: var(--ad-ink, #111827);
  transition: background 0.1s;
}
.ad-checkout-address-result:last-child {
  border-bottom: 0;
}
.ad-checkout-address-result:hover,
.ad-checkout-address-result:focus {
  background: #eff6ff;
  outline: none;
}
.ad-checkout-address-result-main {
  font-weight: 500;
  font-size: 14px;
  line-height: 1.2;
}
.ad-checkout-address-result-sub {
  font-size: 12px;
  color: var(--ad-ink-3, #6b7280);
}
.ad-checkout-address-result-empty {
  padding: 14px;
  font-size: 13px;
  color: var(--ad-ink-3, #6b7280);
  text-align: center;
}

.ad-checkout-link {
  color: var(--ad-link, #2563eb);
  text-decoration: underline;
  cursor: pointer;
  font-size: 13px;
}
.ad-checkout-link:hover {
  color: var(--ad-link-hover, #1d4ed8);
}

@media (max-width: 600px) {
  .ad-checkout-address-lookup {
    padding: 12px;
  }
  .ad-checkout-address-result {
    padding: 14px 12px;
  }
  .ad-checkout-address-result-main {
    font-size: 15px;
  }
}

/* =================================================================
 * v2.33.0 — Banner de detecção de cobertura por GPS
 * ================================================================= */

.ad-location-banner {
  position: fixed;
  z-index: 9000;
  left: 16px;
  right: 16px;
  bottom: 88px; /* fica acima do bottombar do mobile */
  background: #fff;
  border: 1px solid var(--ad-border, #e5e7eb);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  padding: 14px 16px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--ad-ink, #111827);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s ease, transform 0.3s ease, background 0.3s, border-color 0.3s;
  pointer-events: none;
}
.ad-location-banner.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.ad-location-banner-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.ad-location-banner-icon {
  font-size: 22px;
  flex-shrink: 0;
  line-height: 1;
}
.ad-location-banner-text {
  flex: 1;
  min-width: 200px;
}
.ad-location-banner-cta {
  background: var(--ad-popular, #16a34a);
  color: #fff;
  border: 0;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s, transform 0.05s;
}
.ad-location-banner-cta:hover:not(:disabled) {
  background: var(--ad-popular-hover, #15803d);
}
.ad-location-banner-cta:active {
  transform: scale(0.98);
}
.ad-location-banner-cta:disabled {
  opacity: 0.7;
  cursor: wait;
}

.ad-location-banner-close {
  background: transparent;
  border: 0;
  color: var(--ad-ink-3, #6b7280);
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 4px;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s;
}
.ad-location-banner-close:hover {
  color: var(--ad-ink, #111827);
  background: var(--ad-bg-soft, #f9fafb);
}

/* Estado: cobertura confirmada */
.ad-location-banner.is-success {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #166534;
}

/* Estado: fora-de-área */
.ad-location-banner.is-warning {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

@media (min-width: 768px) {
  .ad-location-banner {
    left: auto;
    right: 24px;
    bottom: 24px;
    max-width: 460px;
    min-width: 380px;
  }
}

/* Quando não tem bottombar (catálogo desktop), encosta mais baixo */
@media (min-width: 768px) {
  .ad-location-banner {
    bottom: 24px;
  }
}

/* =================================================================
 * v2.33.1 — Tooltips/explainers no checkout
 * ================================================================= */

.ad-checkout-explainer {
  background: #eff6ff;
  border-left: 3px solid #2563eb;
  padding: 10px 12px;
  margin: 0 0 12px 0;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.4;
  color: #1e3a8a;
}

/* Hint específico do CEP (default visível, some quando CEP é resolvido) */
[data-ad-cep-hint-default] {
  font-size: 12px;
}

/* Quando CEP foi resolvido, esconde o hint default automaticamente
   (JS controla via removeAttribute hidden no resolved + add hidden no default).
   CSS-only fallback: quando o sibling resolved fica visible, esconde default. */
.ad-checkout-field [data-ad-cep-resolved]:not([hidden]) ~ [data-ad-cep-hint-default],
.ad-checkout-field [data-ad-cep-hint-default] + [data-ad-cep-resolved]:not([hidden]) {
  /* sibling selector não funciona pra trás — JS cuida. */
}

/* =================================================================
 * v2.33.2 — Disable visual do input de rua até cidade selecionada
 * ================================================================= */

.ad-checkout-input:disabled,
.ad-checkout-input.is-disabled {
  background: var(--ad-bg-soft, #f3f4f6) !important;
  color: var(--ad-ink-3, #9ca3af);
  cursor: not-allowed;
  border-color: var(--ad-border-soft, #e5e7eb);
}
.ad-checkout-input:disabled::placeholder,
.ad-checkout-input.is-disabled::placeholder {
  color: var(--ad-ink-3, #9ca3af);
  font-style: italic;
}
