/* Mr. Oliver TCG · estilos específicos de cada página */

/* =============================================== HOME */

/* carrossel */
.banner-carrossel { position: relative; background: var(--cor-fundo); }
.banner-carrossel__controles { z-index: 2; }
.banner-carrossel__item[hidden] { display: none; }
.banner-slide { position: relative; display: block; color: var(--cor-texto); text-decoration: none; overflow: hidden; }
.banner-slide--imagem img { width: 100%; height: auto; aspect-ratio: 1440 / 350; object-fit: cover; }
/* temas no estilo dos cartazes da marca */
.banner-slide--amarelo { background: var(--cor-amarelo); color: var(--cor-azul); }
.banner-slide--azul { background: var(--cor-azul); color: #fff; }
.banner-slide--azul .banner-slide__titulo { color: var(--cor-amarelo); }
.banner-slide--branco { background: #fff; color: var(--cor-azul); }
.banner-slide--azul :focus-visible { outline-color: var(--cor-foco-escuro); }
.banner-slide__grade {
  position: relative;
  z-index: 1;
  display: grid;
  gap: var(--esp-5);
  align-items: center;
  padding-block: var(--esp-6) var(--esp-8);
  min-height: 360px;
}
@media (min-width: 768px) {
  .banner-slide__grade { grid-template-columns: 1.25fr 1fr; min-height: 420px; padding-block: var(--esp-7) var(--esp-8); }
}
.banner-slide__rotulo {
  font-size: var(--texto-sm);
  font-weight: 700;
  margin-bottom: var(--esp-2);
}
.banner-slide__titulo {
  font-weight: 900;
  font-size: clamp(2.5rem, 1.6rem + 4.2vw, 4.75rem);
  line-height: 0.95;
  letter-spacing: -0.02em;
  max-width: 11ch;
  margin-bottom: var(--esp-4);
}
.banner-slide__texto p:not(.banner-slide__rotulo) { max-width: 40ch; font-size: var(--texto-lg); font-weight: 500; }
/* o "O" do logo como grafismo: anel inclinado, cortado pela borda */
.banner-slide__o {
  position: absolute;
  z-index: 0;
  width: 520px;
  height: 640px;
  border-radius: 50%;
  border: 96px solid var(--cor-amarelo);
  transform: rotate(18deg);
  pointer-events: none;
}
.banner-slide--azul .banner-slide__o { right: -170px; bottom: -330px; }
.banner-slide--amarelo .banner-slide__o { border-color: var(--cor-azul); right: -200px; top: -300px; }
.banner-slide--branco .banner-slide__o { left: -330px; top: -120px; }
@media (max-width: 767px) {
  .banner-slide__o { width: 190px; height: 240px; border-width: 38px; }
  .banner-slide--azul .banner-slide__o { right: -95px; top: -150px; bottom: auto; }
  .banner-slide--amarelo .banner-slide__o { right: -95px; top: -150px; }
  .banner-slide--branco .banner-slide__o { left: auto; right: -95px; top: -150px; }
  .banner-slide__grade { padding-top: var(--esp-7); }
}
.banner-slide__foto { display: none; justify-self: center; }
.banner-slide__foto img { width: 100%; max-width: 330px; height: auto; }
@media (min-width: 768px) { .banner-slide__foto { display: block; } }

.banner-carrossel__controles {
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--esp-3);
  display: flex;
  align-items: center;
  gap: var(--esp-2);
}
.banner-carrossel__seta,
.banner-carrossel__pausa { background: #fff; color: var(--cor-azul); width: 40px; height: 40px; border: 1px solid var(--cor-borda); }
.banner-carrossel__seta:hover,
.banner-carrossel__pausa:hover { background: var(--cor-fundo); }
.banner-carrossel__pausa { margin-left: auto; }
.banner-carrossel__pontos { display: flex; gap: var(--esp-1); }
.banner-carrossel__ponto {
  width: 28px;
  height: 28px;
  border: 0;
  padding: 0;
  background: transparent;
  display: grid;
  place-items: center;
}
.banner-carrossel__ponto::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--cor-azul);
}
.banner-carrossel__ponto[aria-current]::before { background: var(--cor-azul); width: 24px; border-radius: var(--raio-pill); box-shadow: 0 0 0 2px #fff; }

/* benefícios */
.beneficios { background: #fff; border-bottom: var(--borda); }
.beneficios__lista {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--esp-4) var(--esp-3);
  padding-block: var(--esp-5);
}
@media (min-width: 900px) { .beneficios__lista { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.beneficio { display: flex; align-items: center; gap: var(--esp-3); font-size: var(--texto-sm); }
.beneficio:last-child { grid-column: 1 / -1; }
@media (min-width: 900px) { .beneficio:last-child { grid-column: auto; } }
.beneficio .icone {
  width: 44px;
  height: 44px;
  padding: 10px;
  border-radius: 50%;
  background: var(--cor-fundo);
  color: var(--cor-azul);
}
.beneficio strong { display: block; }
.beneficio span span { color: var(--cor-apoio); }

/* blocos de jogo */
.blocos-jogo { display: grid; gap: var(--esp-4); padding-block: var(--esp-3); }
@media (min-width: 768px) { .blocos-jogo { grid-template-columns: 1fr 1fr; gap: var(--esp-5); } }
.bloco-jogo {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--esp-2);
  min-height: 260px;
  padding: var(--esp-6);
  border-radius: var(--raio-card);
  overflow: hidden;
  text-decoration: none;
}
.bloco-jogo--pokemon { background: var(--cor-jogo-pokemon); color: var(--cor-azul); }
.bloco-jogo--onepiece { background: var(--cor-vermelho); color: #fff; }
.bloco-jogo:hover { color: inherit; }
.bloco-jogo:hover .bloco-jogo__cta { text-decoration: underline; }
.bloco-jogo__rotulo { font-size: var(--texto-xs); font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.bloco-jogo__titulo { font-family: var(--fonte-titulo); font-weight: 800; font-size: var(--texto-3xl); line-height: 1.05; max-width: 11ch; position: relative; z-index: 1; }
.bloco-jogo__texto { max-width: 30ch; position: relative; z-index: 1; }
.bloco-jogo__cta { margin-top: auto; display: inline-flex; align-items: center; gap: var(--esp-2); font-weight: 800; position: relative; z-index: 1; }
.bloco-jogo__cartas { position: absolute; right: -10px; bottom: -30px; width: 170px; height: 200px; opacity: 0.9; }
.bloco-jogo__cartas i { position: absolute; bottom: 0; right: 0; width: 100px; height: 140px; border-radius: 12px; border: 3px solid currentColor; }
.bloco-jogo__cartas i:nth-child(1) { transform: rotate(-18deg) translate(-60px, -10px); }
.bloco-jogo__cartas i:nth-child(2) { transform: rotate(-4deg) translate(-25px, -20px); background: var(--cor-fundo); }
.bloco-jogo__cartas i:nth-child(3) { transform: rotate(10deg) translate(10px, -10px); background: var(--cor-azul); }
.bloco-jogo--onepiece .bloco-jogo__cartas i:nth-child(3) { background: var(--cor-amarelo); }
@media (max-width: 420px) { .bloco-jogo__cartas { opacity: 0.35; } }

/* feito na loja */
.feito-loja { background: var(--cor-verde); color: #fff; padding-block: var(--esp-7); margin-block: var(--esp-4); }
.feito-loja__topo { display: grid; gap: var(--esp-4); margin-bottom: var(--esp-5); }
@media (min-width: 900px) { .feito-loja__topo { grid-template-columns: 1fr auto; align-items: end; } }
.feito-loja__topo p { max-width: 56ch; margin: 0; }
.feito-loja__rotulo { font-size: var(--texto-xs); font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cor-amarelo); margin-bottom: var(--esp-2) !important; }
.feito-loja__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-3); }
.feito-loja li.product { border-color: transparent; color: var(--cor-texto); }
.feito-loja .estado-vazio { color: var(--cor-texto); }

/* canal */
.canal { background: var(--cor-azul); color: #fff; padding-block: var(--esp-7); margin-top: var(--esp-4); }
.canal__grade { display: grid; gap: var(--esp-6); align-items: center; }
@media (min-width: 900px) { .canal__grade { grid-template-columns: 1fr 1.4fr; } }
.canal__rotulo { color: var(--cor-amarelo); font-weight: 800; margin-bottom: var(--esp-2); }
.canal h2 { font-size: var(--texto-3xl); max-width: 14ch; }
.canal__texto p { max-width: 44ch; }
.canal__links { display: flex; flex-wrap: wrap; gap: var(--esp-3); }
.canal__videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--esp-3); }
.video-vertical {
  aspect-ratio: 9 / 16;
  border-radius: var(--raio-card);
  border: 2px dashed rgba(255, 255, 255, 0.45);
  background: var(--cor-azul-escuro);
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--esp-2);
  padding: var(--esp-2);
  text-align: center;
  font-size: var(--texto-xs);
  color: #D5DBE6;
}
.video-vertical .icone-sm { width: 40px; height: 40px; color: var(--cor-amarelo); }

/* loja física */
.loja-fisica { display: grid; gap: var(--esp-6); }
@media (min-width: 900px) { .loja-fisica { grid-template-columns: 1fr 1.2fr; align-items: start; } }
.loja-fisica__rotulo { font-size: var(--texto-xs); font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cor-apoio); margin-bottom: var(--esp-2); }
.loja-fisica address { font-style: normal; font-size: var(--texto-lg); font-weight: 600; margin-bottom: var(--esp-3); }
.loja-fisica h3 { margin-top: var(--esp-5); }
.loja-fisica__mapa { border-radius: var(--raio-card); overflow: hidden; border: var(--borda); background: #fff; }
.loja-fisica__mapa iframe { display: block; width: 100%; height: 420px; border: 0; }
.eventos-lista { display: grid; gap: var(--esp-2); margin-bottom: var(--esp-4); }
.eventos-lista li { display: flex; gap: var(--esp-3); align-items: center; padding: var(--esp-3); background: #fff; border: var(--borda); border-radius: var(--raio-md); }
.eventos-lista__dia {
  flex: none;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: var(--raio-sm);
  background: var(--cor-amarelo);
  font-weight: 800;
  font-size: var(--texto-sm);
}

/* newsletter */
.newsletter { padding-block: var(--esp-6) 0; }
.newsletter__grade {
  display: grid;
  gap: var(--esp-4);
  align-items: center;
  padding: var(--esp-6);
  border-radius: var(--raio-card);
  background: var(--cor-amarelo);
}
@media (min-width: 900px) { .newsletter__grade { grid-template-columns: 1fr 1fr; padding: var(--esp-7); } }
.newsletter__grade p { margin: 0; }
.newsletter__form { display: grid; gap: var(--esp-3); }
@media (min-width: 560px) {
  .newsletter__form { grid-template-columns: 1fr auto; align-items: end; }
  .newsletter__form .campo { margin: 0; }
}
.newsletter__retorno { grid-column: 1 / -1; font-weight: 700; min-height: 1.5em; }
.newsletter .campo label { color: var(--cor-texto); }

/* =============================================== CATEGORIA */

.categoria-banner {
  margin-top: var(--esp-3);
  padding: var(--esp-5);
  border-radius: var(--raio-card);
  background: var(--cor-azul);
  color: #fff;
}
@media (min-width: 768px) { .categoria-banner { padding: var(--esp-6); } }
.categoria-banner--pokemon-tcg { background: var(--cor-jogo-pokemon); color: var(--cor-azul); }
.categoria-banner--one-piece-card-game { background: var(--cor-vermelho); }
.categoria-banner--impressao-3d { background: var(--cor-verde); }
.categoria-banner--dragon-ball-fusion-world { background: var(--cor-laranja-dbs); color: var(--cor-texto); }
.categoria-banner h1 { margin-bottom: var(--esp-2); }
.categoria-banner p { margin-bottom: var(--esp-4); max-width: 60ch; }
.categoria-banner .chips:empty { display: none; }
.categoria-banner__rotulo { font-size: var(--texto-xs); font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: var(--esp-2) !important; }

.categoria-layout { display: grid; gap: var(--esp-5); padding-block: var(--esp-5); }
@media (min-width: 1024px) { .categoria-layout { grid-template-columns: 260px minmax(0, 1fr); gap: var(--esp-6); } }

.barra-resultados {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--esp-3);
  margin-bottom: var(--esp-4);
}
.woocommerce-result-count { margin: 0; color: var(--cor-apoio); font-weight: 600; font-size: var(--texto-sm); }
.woocommerce-ordering { display: flex; align-items: center; gap: var(--esp-2); }
.woocommerce-ordering label { font-size: var(--texto-sm); font-weight: 600; white-space: nowrap; }
.woocommerce-ordering select.orderby { width: auto; min-height: 42px; padding-block: 0.4rem; border-radius: var(--raio-pill); }
.button.botao-filtrar { display: inline-flex; }
@media (min-width: 1024px) { .button.botao-filtrar { display: none; } }
.barra-resultados__acoes { display: flex; gap: var(--esp-2); align-items: center; flex-wrap: wrap; }

/* filtros: gaveta no celular, coluna no desktop */
.filtros__bloco { border-bottom: var(--borda); padding-block: var(--esp-3); margin: 0; border-inline: 0; border-top: 0; padding-inline: 0; min-width: 0; }
.filtros__bloco legend,
.filtros__titulo { font-weight: 800; font-size: var(--texto-sm); margin-bottom: var(--esp-2); padding: 0; float: left; width: 100%; }
.filtros__bloco > *:not(legend) { clear: both; }
.filtros__opcao { display: flex; align-items: center; gap: var(--esp-2); min-height: 36px; font-size: var(--texto-sm); cursor: pointer; }
.filtros__opcao input { width: 18px; height: 18px; accent-color: var(--cor-azul); flex: none; }
.filtros__opcao span:last-child { margin-left: auto; color: var(--cor-apoio); font-size: var(--texto-xs); }
.filtros__preco { display: grid; grid-template-columns: 1fr 1fr; gap: var(--esp-2); }
.filtros__preco .campo { margin: 0; }
.filtros__preco input { min-height: 40px !important; }
.filtros__limpar { margin-top: var(--esp-3); }

@media (min-width: 1024px) {
  .filtros.gaveta {
    position: static;
    transform: none;
    visibility: visible;
    width: auto;
    background: transparent;
    z-index: auto;
    display: block;
  }
  .filtros .gaveta__topo { padding: 0 0 var(--esp-2); border: 0; }
  .filtros .gaveta__topo .botao-icone,
  .filtros .gaveta__rodape { display: none; }
  .filtros .gaveta__corpo { padding: 0; overflow: visible; }
}

.filtros-ativos { display: flex; flex-wrap: wrap; gap: var(--esp-2); margin-bottom: var(--esp-4); }
.filtros-ativos:empty { display: none; }
.filtros-ativos button {
  display: inline-flex;
  align-items: center;
  gap: var(--esp-1);
  min-height: 34px;
  padding: 0.25rem 0.75rem;
  border: 1.5px solid var(--cor-azul);
  border-radius: var(--raio-pill);
  background: #fff;
  font-size: var(--texto-sm);
  font-weight: 700;
}

/* =============================================== PRODUTO */

.produto-layout { display: grid; gap: var(--esp-6); padding-block: var(--esp-4) var(--esp-6); }
@media (min-width: 900px) { .produto-layout { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--esp-7); align-items: start; } }

.woocommerce-product-gallery { display: grid; gap: var(--esp-3); }
@media (min-width: 900px) { .woocommerce-product-gallery { position: sticky; top: 150px; } }
.woocommerce-product-gallery__principal {
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: var(--raio-card);
  overflow: hidden;
  background: #fff;
  border: var(--borda);
}
.woocommerce-product-gallery__principal img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
@media (min-width: 900px) { .woocommerce-product-gallery__principal { max-height: calc(100vh - 190px); margin-inline: auto; width: 100%; } }
.woocommerce-product-gallery__principal .foto-placeholder { font-size: var(--texto-lg); }
.woocommerce-product-gallery__principal .foto-placeholder__inicial { width: 120px; height: 120px; font-size: 4rem; border-radius: 22px; }
.woocommerce-product-gallery__legenda {
  position: absolute;
  left: var(--esp-3);
  bottom: var(--esp-3);
  padding: 0.2rem 0.7rem;
  border-radius: var(--raio-pill);
  background: #fff;
  color: var(--cor-texto);
  font-size: var(--texto-xs);
  font-weight: 800;
  border: var(--borda);
}
.flex-control-thumbs { display: flex; gap: var(--esp-2); list-style: none; margin: 0; padding: 0; overflow-x: auto; }
.flex-control-thumbs button {
  display: grid;
  gap: 2px;
  padding: 4px;
  border: 2px solid var(--cor-borda);
  border-radius: var(--raio-md);
  background: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  width: 84px;
}
.flex-control-thumbs button[aria-current="true"] { border-color: var(--cor-azul); }
.flex-control-thumbs img,
.flex-control-thumbs .foto-placeholder { width: 72px; height: 72px; border-radius: 8px; object-fit: contain; }
.flex-control-thumbs .foto-placeholder { padding: 4px; font-size: 0.625rem; }
.flex-control-thumbs .foto-placeholder__inicial { width: 32px; height: 32px; font-size: 1rem; border-radius: 6px; }
.flex-control-thumbs .foto-placeholder > span:last-child { display: none; }

.summary .product_meta_topo {
  display: flex;
  flex-wrap: wrap;
  gap: var(--esp-1) var(--esp-2);
  font-size: var(--texto-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cor-apoio);
  margin-bottom: var(--esp-2);
}
.summary .product_meta_topo a { color: inherit; }
.summary .product_meta_topo span + span::before,
.summary .product_meta_topo a + a::before,
.summary .product_meta_topo a + span::before { content: "·"; margin-right: var(--esp-2); }
.product_title { font-size: var(--texto-3xl); margin-bottom: var(--esp-2); }
.sku_wrapper { font-size: var(--texto-sm); color: var(--cor-apoio); margin-bottom: var(--esp-4); }
.sku_wrapper .sku { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--cor-texto); }
.summary .selos { position: static; flex-direction: row; flex-wrap: wrap; margin-bottom: var(--esp-3); }

.bloco-preco {
  display: grid;
  gap: var(--esp-1);
  padding: var(--esp-4) var(--esp-5);
  border-radius: var(--raio-card);
  background: #fff;
  border: var(--borda);
  margin-bottom: var(--esp-5);
}
.bloco-preco .price { font-size: var(--texto-md); }
.bloco-preco .price-pix strong { font-size: var(--texto-3xl); }
.bloco-preco .pix-rotulo { font-size: var(--texto-md); }
.bloco-preco .parcelamento { font-size: var(--texto-sm); }
.bloco-preco__economia { font-size: var(--texto-sm); color: var(--cor-pix); font-weight: 700; }

.variations { display: grid; gap: var(--esp-4); margin-bottom: var(--esp-4); }
.variations fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.variations legend { font-weight: 800; font-size: var(--texto-sm); margin-bottom: var(--esp-2); padding: 0; }
.variations legend span { font-weight: 500; color: var(--cor-apoio); }
.variacao-opcoes { display: flex; flex-wrap: wrap; gap: var(--esp-2); }
.variacao-opcao {
  min-height: 44px;
  min-width: 56px;
  padding: 0.4rem 1rem;
  border: 1.5px solid var(--cor-borda-forte);
  border-radius: var(--raio-pill);
  background: #fff;
  font-weight: 700;
  font-size: var(--texto-sm);
}
.variacao-opcao:hover:not(:disabled) { border-color: var(--cor-azul); }
.variacao-opcao[aria-pressed="true"] { background: var(--cor-azul); border-color: var(--cor-azul); color: #fff; }
.variacao-opcao.is-outra-combinacao { border-style: dashed; }
.variacao-opcao:disabled { color: #6F737D; background: var(--cor-fundo); border-color: var(--cor-borda); text-decoration: line-through; }
.variacao-opcao small { display: block; font-weight: 500; font-size: 0.6875rem; }

.estoque-info { font-size: var(--texto-sm); font-weight: 700; margin-bottom: var(--esp-3); }
.estoque-info.in-stock { color: var(--cor-pix); }
.estoque-info.out-of-stock { color: var(--cor-vermelho); }
.aviso-ultima { margin-bottom: var(--esp-4); }

form.cart { display: grid; gap: var(--esp-3); margin-bottom: var(--esp-5); }
.cart__linha { display: flex; flex-wrap: wrap; gap: var(--esp-3); align-items: center; }
.cart__linha .single_add_to_cart_button { flex: 1; min-width: 200px; }
.comprar-agora { width: 100%; }

.frete-calculo { padding: var(--esp-4) var(--esp-5); border-radius: var(--raio-card); background: #fff; border: var(--borda); margin-bottom: var(--esp-5); }
.frete-calculo h2 { font-size: var(--texto-md); font-family: var(--fonte-texto); font-weight: 800; }
.frete-calculo__form { display: flex; gap: var(--esp-2); }
.frete-calculo__form .campo { flex: 1; margin: 0; }
.frete-calculo__form .button { align-self: end; }
.frete-opcoes { list-style: none; margin: var(--esp-3) 0 0; padding: 0; display: grid; gap: var(--esp-2); }
.frete-opcoes li { display: flex; justify-content: space-between; gap: var(--esp-3); font-size: var(--texto-sm); padding: var(--esp-2) 0; border-bottom: var(--borda); }
.frete-opcoes li:last-child { border-bottom: 0; }
.frete-calculo__retirada { display: flex; gap: var(--esp-2); align-items: flex-start; margin: var(--esp-3) 0 0; font-size: var(--texto-sm); color: var(--cor-apoio); }
.frete-calculo__retirada .icone-sm { color: var(--cor-verde); margin-top: 2px; }

.produto-detalhes { display: grid; gap: var(--esp-6); padding-block: var(--esp-5); border-top: var(--borda); }
@media (min-width: 900px) { .produto-detalhes { grid-template-columns: 1fr 1fr; } }
.shop_attributes { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--raio-card); overflow: hidden; border: var(--borda); }
.shop_attributes th,
.shop_attributes td { text-align: left; padding: var(--esp-3) var(--esp-4); border-bottom: var(--borda); font-size: var(--texto-sm); vertical-align: top; }
.shop_attributes tr:last-child th,
.shop_attributes tr:last-child td { border-bottom: 0; }
.shop_attributes th { width: 38%; color: var(--cor-apoio); font-weight: 700; }
.guia-condicao-link { display: flex; gap: var(--esp-3); align-items: center; padding: var(--esp-4); border-radius: var(--raio-md); background: var(--cor-amarelo-claro); margin-top: var(--esp-4); color: var(--cor-azul); font-weight: 700; text-decoration: none; }
.guia-condicao-link:hover { text-decoration: underline; color: var(--cor-azul); }

.related.products { padding-block: var(--esp-5); }

/* =============================================== CARRINHO */

.pagina-titulo { padding-block: var(--esp-4) var(--esp-2); }
.carrinho-layout { display: grid; gap: var(--esp-5); padding-bottom: var(--esp-6); }
@media (min-width: 1000px) { .carrinho-layout { grid-template-columns: minmax(0, 1fr) 380px; align-items: start; } }

.shop_table { width: 100%; border-collapse: collapse; background: #fff; border: var(--borda); border-radius: var(--raio-card); overflow: hidden; }
.shop_table th,
.shop_table td { padding: var(--esp-3) var(--esp-4); text-align: left; border-bottom: var(--borda); vertical-align: middle; }
.shop_table thead th { font-size: var(--texto-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--cor-apoio); background: var(--cor-fundo); }
.shop_table tr:last-child td { border-bottom: 0; }
.shop_table .product-thumbnail { width: 88px; }
.shop_table .product-thumbnail a { display: block; width: 72px; height: 72px; border-radius: var(--raio-sm); overflow: hidden; background: var(--cor-fundo); }
.shop_table .product-thumbnail img { width: 72px; height: 72px; object-fit: contain; }
.shop_table .product-thumbnail .foto-placeholder { padding: 4px; }
.shop_table .product-thumbnail .foto-placeholder__inicial { width: 36px; height: 36px; font-size: 1rem; border-radius: 6px; }
.shop_table .product-thumbnail .foto-placeholder > span:last-child { display: none; }
.shop_table .product-name a { font-weight: 700; color: var(--cor-texto); text-decoration: none; }
.shop_table .product-name a:hover { text-decoration: underline; }
.variation-info { display: block; font-size: var(--texto-xs); color: var(--cor-apoio); }
.shop_table .product-subtotal { font-weight: 800; white-space: nowrap; }
.shop_table .product-price { white-space: nowrap; }
.shop_table .remove { color: var(--cor-vermelho); }
.shop_table .remove:hover { background: #FBEAE8; }
.limite-estoque { display: block; font-size: var(--texto-xs); color: var(--cor-apoio); margin-top: 2px; }

@media (max-width: 767px) {
  .shop_table_responsive thead { display: none; }
  .shop_table_responsive tbody tr {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    grid-template-areas: "foto nome remover" "foto preco preco" "qtd qtd subtotal";
    gap: var(--esp-2) var(--esp-3);
    padding: var(--esp-4);
    border-bottom: var(--borda);
  }
  .shop_table_responsive tbody tr:last-child { border-bottom: 0; }
  .shop_table_responsive tbody td { display: block; padding: 0; border: 0; }
  .shop_table_responsive .product-thumbnail { grid-area: foto; width: auto; }
  .shop_table_responsive .product-name { grid-area: nome; }
  .shop_table_responsive .product-remove { grid-area: remover; }
  .shop_table_responsive .product-price { grid-area: preco; font-size: var(--texto-sm); color: var(--cor-apoio); }
  .shop_table_responsive .product-quantity { grid-area: qtd; }
  .shop_table_responsive .product-subtotal { grid-area: subtotal; align-self: center; }
  .shop_table_responsive .product-price::before { content: attr(data-title) ": "; }
}

.cart_totals { background: #fff; border: var(--borda); border-radius: var(--raio-card); padding: var(--esp-5); }
@media (min-width: 1000px) { .cart_totals { position: sticky; top: 150px; } }
.cart_totals h2 { font-size: var(--texto-xl); }
.totais-linha { display: flex; justify-content: space-between; gap: var(--esp-3); padding: var(--esp-2) 0; font-size: var(--texto-sm); }
.totais-linha--total { border-top: var(--borda); margin-top: var(--esp-2); padding-top: var(--esp-3); font-size: var(--texto-md); font-weight: 700; }
.totais-linha--pix { font-weight: 800; }
.totais-linha--pix strong { font-family: var(--fonte-titulo); font-size: var(--texto-xl); }
.totais-linha--pix .pix-rotulo { font-size: inherit; }
.totais-parcelas { font-size: var(--texto-xs); color: var(--cor-apoio); text-align: right; margin: 0 0 var(--esp-3); }

.progresso-frete { margin-bottom: var(--esp-4); }
.progresso-frete p { font-size: var(--texto-sm); margin-bottom: var(--esp-2); }
.progresso-frete__barra { height: 10px; border-radius: var(--raio-pill); background: var(--cor-fundo); border: var(--borda); overflow: hidden; }
.progresso-frete__barra span { display: block; height: 100%; background: var(--cor-verde); border-radius: var(--raio-pill); transition: width 300ms ease; }

.entrega-escolha { border: 0; padding: 0; margin: 0 0 var(--esp-4); }
.entrega-escolha legend { font-weight: 800; font-size: var(--texto-sm); margin-bottom: var(--esp-2); padding: 0; }
.entrega-escolha .opcao-radio { padding: var(--esp-3); font-size: var(--texto-sm); }
.cart_totals .frete-calculo__form { margin-top: var(--esp-3); }

.wc-proceed-to-checkout { display: grid; gap: var(--esp-2); margin-top: var(--esp-4); }

/* =============================================== CHECKOUT */

.woocommerce-checkout .checkout-layout { display: grid; gap: var(--esp-5); padding-bottom: var(--esp-6); }
@media (min-width: 1000px) { .woocommerce-checkout .checkout-layout { grid-template-columns: minmax(0, 1fr) 400px; align-items: start; } }
.checkout-etapa { background: #fff; border: var(--borda); border-radius: var(--raio-card); padding: var(--esp-5); margin: 0 0 var(--esp-4); min-width: 0; }
.checkout-etapa > legend,
.checkout-etapa > h2 {
  font-family: var(--fonte-titulo);
  font-weight: 800;
  font-size: var(--texto-xl);
  float: left;
  width: 100%;
  padding: 0;
  margin-bottom: var(--esp-4);
  display: flex;
  align-items: center;
  gap: var(--esp-3);
}
.checkout-etapa > legend + * { clear: both; }
.checkout-etapa__numero {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--cor-azul);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: var(--texto-sm);
  flex: none;
}
.wc_payment_methods { list-style: none; margin: 0; padding: 0; }
.payment_box { margin-top: var(--esp-3); padding: var(--esp-4); border-radius: var(--raio-md); background: var(--cor-fundo); }
.payment_box[hidden] { display: none; }
#order_review { background: #fff; border: var(--borda); border-radius: var(--raio-card); padding: var(--esp-5); }
@media (min-width: 1000px) { #order_review { position: sticky; top: 150px; } }
.woocommerce-checkout-review-order-table { border: 0; border-radius: 0; margin-bottom: var(--esp-3); }
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th { padding: var(--esp-2) 0; font-size: var(--texto-sm); }
.woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout-review-order-table th:last-child { text-align: right; white-space: nowrap; }
.woocommerce-checkout-review-order-table thead th { background: transparent; }
.aviso-simulacao { margin-bottom: var(--esp-4); }
#place_order { width: 100%; min-height: 54px; font-size: var(--texto-lg); }

.woocommerce-order { max-width: 760px; margin: var(--esp-5) auto var(--esp-6); }
.woocommerce-thankyou-order-received {
  text-align: center;
  padding: var(--esp-6) var(--esp-5);
  background: #fff;
  border: var(--borda);
  border-radius: var(--raio-card);
  margin-bottom: var(--esp-4);
}
.woocommerce-thankyou-order-received .icone { width: 56px; height: 56px; padding: 12px; border-radius: 50%; background: var(--cor-verde-claro); color: var(--cor-verde); margin: 0 auto var(--esp-3); }
.woocommerce-order-overview { list-style: none; margin: var(--esp-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--esp-3); text-align: left; }
.woocommerce-order-overview li { padding: var(--esp-3); border-radius: var(--raio-md); background: var(--cor-fundo); font-size: var(--texto-sm); }
.woocommerce-order-overview strong { display: block; font-size: var(--texto-md); }
.pix-codigo { display: grid; gap: var(--esp-3); padding: var(--esp-5); border-radius: var(--raio-card); background: #fff; border: 2px dashed var(--cor-verde); margin-bottom: var(--esp-4); }
.pix-codigo code { display: block; padding: var(--esp-3); border-radius: var(--raio-sm); background: var(--cor-fundo); word-break: break-all; font-size: var(--texto-sm); }

/* =============================================== INSTITUCIONAL E CONTA */

.institucional-layout { display: grid; gap: var(--esp-6); padding-block: var(--esp-4) var(--esp-6); }
@media (min-width: 900px) { .institucional-layout { grid-template-columns: 260px minmax(0, 1fr); } }
.institucional-nav { order: 2; }
@media (min-width: 900px) { .institucional-nav { order: 0; } }
.institucional-nav h2 { font-size: var(--texto-xs); font-family: var(--fonte-texto); letter-spacing: 0.1em; text-transform: uppercase; color: var(--cor-apoio); }
.institucional-nav ul { list-style: none; margin: 0 0 var(--esp-5); padding: 0; display: grid; gap: 2px; }
.institucional-nav a { display: block; padding: var(--esp-2) var(--esp-3); border-radius: var(--raio-sm); color: var(--cor-texto); text-decoration: none; font-weight: 600; font-size: var(--texto-sm); }
.institucional-nav a:hover { background: #fff; }
.institucional-nav a[aria-current="page"] { background: var(--cor-azul); color: #fff; }

.entry-content { background: #fff; border: var(--borda); border-radius: var(--raio-card); padding: var(--esp-5); max-width: 820px; }
@media (min-width: 768px) { .entry-content { padding: var(--esp-7); } }
.entry-content h1 { font-size: var(--texto-3xl); }
.entry-content h2 { font-size: var(--texto-xl); margin-top: var(--esp-6); }
.entry-content h3 { font-size: var(--texto-lg); margin-top: var(--esp-5); }
.entry-content ul,
.entry-content ol { padding-left: 1.25rem; margin: 0 0 var(--esp-4); }
.entry-content li { margin-bottom: var(--esp-2); }
.entry-content .lead { font-size: var(--texto-lg); color: var(--cor-apoio); }
.entry-content table { width: 100%; border-collapse: collapse; margin-bottom: var(--esp-4); font-size: var(--texto-sm); }
.entry-content th,
.entry-content td { text-align: left; padding: var(--esp-3); border-bottom: var(--borda); vertical-align: top; }
.entry-content th { background: var(--cor-fundo); }
.entry-content details { border-bottom: var(--borda); padding-block: var(--esp-3); }
.entry-content summary { font-weight: 700; cursor: pointer; }
.entry-content details p { margin: var(--esp-2) 0 0; }
.condicao-sigla { display: inline-grid; place-items: center; min-width: 40px; padding: 0.15rem 0.5rem; border-radius: var(--raio-pill); background: var(--cor-azul); color: #fff; font-weight: 800; font-size: var(--texto-xs); }

.conta-layout { display: grid; gap: var(--esp-5); padding-block: var(--esp-4) var(--esp-6); }
@media (min-width: 900px) { .conta-layout { grid-template-columns: 1fr 1fr; } }
.conta-layout .checkout-etapa { margin: 0; }
@media (max-width: 600px) {
  .entry-content { padding: var(--esp-4); }
  .entry-content table { display: block; overflow-x: auto; }
}
