@charset "UTF-8";
/* =========================================================================
   OFF IMPORT — woocommerce.css
   Estilização completa da loja: grade, cartão de produto, arquivo, página do
   produto, carrinho, checkout, minha conta, widgets e mensagens.

   Depende de tokens.css (variáveis + reset) e components.css (formulários).
   Ordem de carregamento em functions.php:
     tokens.css → components.css → layout.css → woocommerce.css

   IMPORTANTE (enfileiramento):
   Este arquivo PRECISA ser impresso depois de 'woocommerce-general',
   'woocommerce-layout' e 'woocommerce-smallscreen'. É o que o functions.php
   garante, declarando os três como dependência do handle
   'offimport-woocommerce'. Toda a vitória sobre o CSS do core aqui vem de
   ordem na cascata, não de !important — se a dependência cair, a grade em
   float e a tabela do carrinho do Woo voltam a mandar.

   Dar dequeue nesses handles também funciona (nada aqui depende do CSS do
   core), mas não é necessário: os resets de float e o bloco do carrinho
   mobile deste arquivo já cobrem o que eles fazem.

   -------------------------------------------------------------------------
   CONTRATO DE MARCAÇÃO (templates em /woocommerce/ devem seguir)

   Loop — woocommerce/content-product.php:
     <li class="product …">
       <span class="onsale">Oferta</span>                    ← selo (opcional)
       <a class="woocommerce-LoopProduct-link" href="…">
         <span class="oi-loop-media">…thumbnail…</span>      ← recomendado: dá o zoom
         <h2 class="woocommerce-loop-product__title">…</h2>
         <span class="price">…</span>
         <span class="oi-installment">12x de R$ 1.041,67</span>  ← injetado pelo PHP
       </a>
       <a class="button …">Adicionar ao carrinho</a>
     </li>

   Sem o .oi-loop-media o cartão continua correto: a própria <img> recebe a
   caixa quadrada e o zoom acontece por variação de padding (ver seção CARTÃO).

   Arquivo — woocommerce/archive-product.php:
     <header class="oi-shop-head">
       <span class="oi-eyebrow">…</span><h1>…</h1><div class="oi-shop-head-text">…</div>
     </header>
     <div class="oi-shop-toolbar">…result-count… …ordering…</div>

   Single — woocommerce/single-product/…:
     <span class="oi-installment oi-installment--single">…</span>  ← após .price
     <div class="oi-product-trust">
       <div class="oi-product-trust-item"><svg/><div>
         <span class="oi-product-trust-title">Garantia</span>
         <span class="oi-product-trust-text">12 meses de fábrica</span>
       </div></div>  ×3
     </div>
   ========================================================================= */


/* == BASE: CONTÊINER E RESETS GERAIS DO WOO == */

.woocommerce,
.woocommerce-page {
  font-family: var(--oi-font-body);
  color: var(--oi-ink);
}

/* Casca padrão das páginas de loja (o template abre esta div). */
.oi-shop {
  width: 100%;
  max-width: var(--oi-container);
  margin-inline: auto;
  padding-inline: var(--oi-s5);
  padding-block: var(--oi-s6) var(--oi-s8);
}

@media (min-width: 640px) {
  .oi-shop {
    padding-inline: var(--oi-s6);
  }
}

@media (min-width: 900px) {
  .oi-shop {
    padding-block: var(--oi-s7) var(--oi-s9);
  }
}

@media (min-width: 1100px) {
  .oi-shop {
    padding-inline: var(--oi-s7);
  }
}

.oi-shop--narrow {
  max-width: 900px;
}

/* Clearfix herdado do Woo: some com a grade em CSS Grid. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce .col2-set::before,
.woocommerce .col2-set::after,
.woocommerce-page .col2-set::before,
.woocommerce-page .col2-set::after {
  content: none;
  display: none;
}

.woocommerce .woocommerce-breadcrumb::after,
.woocommerce div.product::after {
  content: none;
  display: none;
}


/* == BOTÕES DO WOOCOMMERCE == */

/* A cadeia abaixo espelha a do core (inclusive o #submit com peso de ID)
   para vencer por ordem de carregamento, sem !important. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.oi-shop .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--oi-s2);
  min-height: 48px;
  padding: .9rem 1.75rem;
  font-family: var(--oi-font-body);
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  color: var(--oi-graphite);
  background: transparent;
  background-image: none;
  border: 1px solid var(--oi-graphite);
  border-radius: var(--oi-radius);
  box-shadow: none;
  cursor: pointer;
  white-space: normal;
  transition: background-color var(--oi-t), color var(--oi-t),
              border-color var(--oi-t), box-shadow var(--oi-t);
  -webkit-appearance: none;
  appearance: none;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover,
.oi-shop .button:hover {
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}

/* Variante primária: tudo que o Woo marca como .alt (comprar, finalizar). */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce button.button.alt.disabled,
.woocommerce-page a.button.alt,
.woocommerce-page button.button.alt {
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce-page a.button.alt:hover,
.woocommerce-page button.button.alt:hover {
  color: var(--oi-white);
  background: var(--oi-ink);
  border-color: var(--oi-ink);
  box-shadow: var(--oi-shadow-md);
}

.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:focus-visible {
  outline: 2px solid var(--oi-gold);
  outline-offset: 2px;
}

.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button.disabled,
.woocommerce input.button:disabled {
  opacity: .42;
  cursor: not-allowed;
  padding: .9rem 1.75rem;
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}

.woocommerce a.button.disabled:hover,
.woocommerce button.button:disabled:hover,
.woocommerce button.button:disabled[disabled]:hover {
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}

/* Estado de carregamento do AJAX. */
.woocommerce a.button.loading,
.woocommerce button.button.loading,
.woocommerce input.button.loading {
  opacity: .7;
  pointer-events: none;
}

.woocommerce a.button.loading::after,
.woocommerce button.button.loading::after {
  content: "";
  width: 1em;
  height: 1em;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: oi-spin .7s linear infinite;
  font-family: inherit;
  top: auto;
  right: auto;
  position: static;
  margin-left: var(--oi-s1);
}

.woocommerce a.button.added::after {
  content: "";
  display: none;
}

/* Link "Ver carrinho" que o AJAX injeta depois do botão. */
.woocommerce a.added_to_cart {
  display: block;
  padding-top: var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: center;
  color: var(--oi-gold-ink);
  text-decoration: none;
  border-bottom: 0;
}

.woocommerce a.added_to_cart:hover {
  color: var(--oi-graphite);
}


/* == MENSAGENS: SUCESSO, AVISO E ERRO == */

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--oi-s3) var(--oi-s4);
  width: auto;
  margin: 0 0 var(--oi-s5);
  padding: var(--oi-s4) var(--oi-s5);
  font-family: var(--oi-font-body);
  font-size: .9375rem;
  line-height: 1.55;
  color: var(--oi-ink);
  background: var(--oi-cream-2);
  border: 1px solid var(--oi-line);
  border-top: 1px solid var(--oi-line);
  border-left: 3px solid var(--oi-gold);
  border-radius: var(--oi-radius);
  list-style: none;
  word-wrap: break-word;
}

/* Remove o ícone da fonte "WooCommerce" — a paleta faz o trabalho. */
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before,
.woocommerce-page .woocommerce-message::before,
.woocommerce-page .woocommerce-info::before,
.woocommerce-page .woocommerce-error::before {
  content: none;
  display: none;
}

.woocommerce .woocommerce-message {
  border-left-color: var(--oi-ok);
  background: rgba(47, 107, 79, .05);
}

.woocommerce .woocommerce-error {
  border-left-color: var(--oi-danger);
  background: rgba(163, 58, 42, .05);
  color: var(--oi-graphite);
}

.woocommerce .woocommerce-error li + li {
  margin-top: var(--oi-s2);
}

/* O botão que vem dentro da mensagem vai para a direita. */
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-error .button {
  margin-left: auto;
  min-height: 40px;
  padding: .55rem 1.2rem;
  font-size: .72rem;
}

.woocommerce-notices-wrapper:empty {
  display: none;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
  border-color: var(--oi-danger);
}

.woocommerce form .form-row.woocommerce-validated input.input-text {
  border-color: var(--oi-ok);
}

.woocommerce form .form-row .required {
  color: var(--oi-gold);
  text-decoration: none;
  border: 0;
}


/* == BREADCRUMB == */

.woocommerce .woocommerce-breadcrumb,
.oi-shop .woocommerce-breadcrumb {
  margin: 0 0 var(--oi-s5);
  padding: 0;
  font-family: var(--oi-font-body);
  font-size: .76rem;
  line-height: 1.6;
  letter-spacing: .04em;
  color: var(--oi-muted);
}

.woocommerce .woocommerce-breadcrumb a {
  color: var(--oi-muted);
  text-decoration: none;
  transition: color var(--oi-t);
}

.woocommerce .woocommerce-breadcrumb a:hover {
  color: var(--oi-gold-ink);
}

/* O separador vem como texto solto do Woo; só damos respiro. */
.woocommerce .woocommerce-breadcrumb {
  word-spacing: .12em;
}


/* == ARQUIVO: CABEÇALHO DA CATEGORIA == */

.oi-shop-head {
  max-width: 760px;
  margin: 0 auto var(--oi-s7);
  text-align: center;
}

.oi-shop-head .oi-eyebrow,
.oi-shop-head .woocommerce-products-header__eyebrow {
  display: block;
  margin-bottom: var(--oi-s3);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--oi-gold);
}

.oi-shop-head h1,
.oi-shop-head .page-title,
.woocommerce-products-header .woocommerce-products-header__title {
  margin: 0;
  font-family: var(--oi-font-display);
  font-size: clamp(2rem, 1.5rem + 2.2vw, 3.25rem);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -.01em;
  color: var(--oi-graphite);
  text-wrap: balance;
}

.oi-shop-head-text,
.woocommerce-products-header .term-description,
.woocommerce .term-description,
.oi-shop-head .taxonomy-description {
  max-width: 62ch;
  margin: var(--oi-s4) auto 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--oi-muted);
}

.oi-shop-head-text p + p,
.woocommerce .term-description p + p {
  margin-top: var(--oi-s3);
}

/* Filete dourado abaixo do título. */
.oi-shop-head::after {
  content: "";
  display: block;
  width: 44px;
  height: 1px;
  margin: var(--oi-s5) auto 0;
  background: var(--oi-gold-soft);
}

/* Imagem de capa opcional da categoria. */
.oi-shop-hero {
  position: relative;
  margin-bottom: var(--oi-s7);
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  overflow: hidden;
}

.oi-shop-hero img {
  width: 100%;
  aspect-ratio: 3 / 1;
  object-fit: cover;
}


/* == ARQUIVO: BARRA DE ORDENAÇÃO E CONTADOR == */

.oi-shop-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--oi-s3) var(--oi-s5);
  margin-bottom: var(--oi-s6);
  padding-bottom: var(--oi-s4);
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce .woocommerce-result-count,
.oi-shop-toolbar .woocommerce-result-count {
  float: none;
  margin: 0;
  font-family: var(--oi-font-body);
  font-size: .78rem;
  line-height: 1.5;
  letter-spacing: .04em;
  color: var(--oi-muted);
}

.woocommerce .woocommerce-ordering,
.oi-shop-toolbar .woocommerce-ordering {
  float: none;
  display: flex;
  align-items: center;
  gap: var(--oi-s3);
  margin: 0;
}

.woocommerce .woocommerce-ordering::before {
  content: "Ordenar";
  font-family: var(--oi-font-body);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--oi-gold);
  white-space: nowrap;
}

.woocommerce .woocommerce-ordering select,
.oi-shop-toolbar .woocommerce-ordering select {
  min-height: 42px;
  width: auto;
  min-width: 208px;
  padding: .5rem 2.5rem .5rem var(--oi-s4);
  font-size: .84rem;
  letter-spacing: .02em;
  color: var(--oi-graphite);
  background-color: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  cursor: pointer;
}

/* Fallback sem o wrapper .oi-shop-toolbar: o Woo joga os dois em float. */
.woocommerce .products ~ .woocommerce-result-count,
.woocommerce .woocommerce-result-count + .woocommerce-ordering {
  margin-bottom: var(--oi-s4);
}

@media (max-width: 639px) {
  .oi-shop-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .woocommerce .woocommerce-ordering select,
  .oi-shop-toolbar .woocommerce-ordering select {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
  }
}


/* == GRADE DE PRODUTOS ==
   Mobile 2 → 900px 3 → 1280px 4. A quarta coluna só entra quando o
   contêiner (1240px) comporta cartões de ~270px sem apertar o título. */

.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--oi-s5) var(--oi-s3);
  margin: 0 0 var(--oi-s7);
  padding: 0;
  list-style: none;
  clear: both;
}

@media (min-width: 640px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products {
    gap: var(--oi-s6) var(--oi-s4);
  }
}

@media (min-width: 900px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--oi-s6) var(--oi-s5);
  }
}

/* Grades secundárias (relacionados / upsells) seguem a mesma regra —
   as classes .columns-N do Woo são ignoradas de propósito. */
.woocommerce ul.products.columns-1,
.woocommerce ul.products.columns-2,
.woocommerce ul.products.columns-3,
.woocommerce ul.products.columns-5,
.woocommerce ul.products.columns-6 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 900px) {
  .woocommerce ul.products.columns-1,
  .woocommerce ul.products.columns-2,
  .woocommerce ul.products.columns-3,
  .woocommerce ul.products.columns-5,
  .woocommerce ul.products.columns-6 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .woocommerce ul.products.columns-1,
  .woocommerce ul.products.columns-2,
  .woocommerce ul.products.columns-3,
  .woocommerce ul.products.columns-5,
  .woocommerce ul.products.columns-6 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}


/* == CARTÃO DE PRODUTO == */

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
  /* Anula a grade em float do woocommerce-layout.css. */
  float: none;
  clear: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;

  position: relative;
  display: flex;
  flex-direction: column;
  text-align: left;
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  transition: border-color var(--oi-t), box-shadow var(--oi-t), transform var(--oi-t);
}

.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
  border-color: var(--oi-gold-soft);
  box-shadow: var(--oi-shadow-md);
  transform: translateY(-2px);
}

/* Link que embrulha imagem, título e preço. */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a.woocommerce-loop-product__link {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

/* --- Área da imagem --- */

.woocommerce ul.products li.product .oi-loop-media {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--oi-cream);
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce ul.products li.product img,
.woocommerce ul.products li.product .oi-loop-media img,
.woocommerce-page ul.products li.product img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  margin: 0;
  padding: var(--oi-s5);
  object-fit: contain;
  background: var(--oi-cream);
  border-bottom: 1px solid var(--oi-line);
  border-radius: 0;
  box-shadow: none;
  transition: transform 480ms cubic-bezier(.4, 0, .2, 1),
              padding 480ms cubic-bezier(.4, 0, .2, 1);
}

/* Com wrapper: a borda e o recorte ficam no wrapper, o zoom é transform. */
.woocommerce ul.products li.product .oi-loop-media img {
  border-bottom: 0;
}

.woocommerce ul.products li.product:hover .oi-loop-media img,
.woocommerce ul.products li.product:focus-within .oi-loop-media img {
  transform: scale(1.04);
}

/* Sem wrapper: o zoom vem da redução do padding — a imagem cresce dentro
   da caixa quadrada (object-fit: contain) sem vazar para o título. */
.woocommerce ul.products li.product:not(:has(.oi-loop-media)):hover img,
.woocommerce ul.products li.product:not(:has(.oi-loop-media)):focus-within img {
  padding: var(--oi-s3);
}

/* Placeholder do Woo quando o produto não tem foto. */
.woocommerce ul.products li.product img.woocommerce-placeholder {
  padding: var(--oi-s7);
  opacity: .45;
}

/* --- Selo de promoção --- */

.woocommerce ul.products li.product span.onsale,
.woocommerce span.onsale,
.woocommerce-page span.onsale {
  position: absolute;
  top: var(--oi-s3);
  left: var(--oi-s3);
  right: auto;
  z-index: 3;
  display: inline-block;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: .3rem .6rem;
  font-family: var(--oi-font-body);
  font-size: .62rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-align: center;
  color: var(--oi-white);
  background: var(--oi-gold);
  border-radius: var(--oi-radius);
}

/* --- Título --- */

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  padding: var(--oi-s4) var(--oi-s4) 0;
  font-family: var(--oi-font-display);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--oi-ink);
  text-wrap: pretty;
  min-height: calc(2 * 1.3em + var(--oi-s4));
  transition: color var(--oi-t);
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product:hover h2 {
  color: var(--oi-graphite);
}

/* --- Avaliação --- */

.woocommerce ul.products li.product .star-rating {
  margin: var(--oi-s2) var(--oi-s4) 0;
  font-size: .78em;
}

/* --- Preço --- */

.woocommerce ul.products li.product .price {
  display: block;
  margin: var(--oi-s3) 0 0;
  padding: 0 var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--oi-graphite);
}

.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price del .amount {
  display: inline-block;
  margin-right: var(--oi-s2);
  font-size: .82rem;
  font-weight: 400;
  color: var(--oi-muted);
  text-decoration: line-through;
  opacity: 1;
}

.woocommerce ul.products li.product .price ins,
.woocommerce ul.products li.product .price ins .amount {
  font-weight: 600;
  color: var(--oi-graphite);
  background: none;
  text-decoration: none;
}

.woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol {
  font-size: .78em;
  font-weight: 500;
  margin-right: .12em;
}

/* Faixa de preço de produto variável. */
.woocommerce ul.products li.product .price .from {
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--oi-muted);
}

/* --- Linha de parcelamento (injetada pelo PHP) --- */

.oi-installment {
  display: block;
  margin-top: var(--oi-s1);
  padding: 0 var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .01em;
  color: var(--oi-muted);
}

.oi-installment strong {
  font-weight: 600;
  color: var(--oi-ink);
}

.oi-installment--cash {
  color: var(--oi-ok);
}

/* --- Botão do cartão --- */

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product a.button.add_to_cart_button,
.woocommerce-page ul.products li.product .button {
  display: flex;
  width: auto;
  margin: auto var(--oi-s4) var(--oi-s4);
  min-height: 44px;
  padding: .7rem var(--oi-s3);
  font-size: .72rem;
  letter-spacing: .12em;
  color: var(--oi-graphite);
  background: transparent;
  border: 1px solid var(--oi-graphite);
  border-radius: var(--oi-radius);
}

/* O `margin-top: auto` acima é o que gruda o botão no rodapé do cartão e
   deixa todos os cartões da linha com a mesma altura. Não sobrescrever. */

/* No hover do cartão o botão secundário vira primário. */
.woocommerce ul.products li.product:hover .button,
.woocommerce ul.products li.product:focus-within .button,
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible {
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}

.woocommerce ul.products li.product a.added_to_cart {
  margin: 0 var(--oi-s4) var(--oi-s4);
}

/* Toque: sem hover, o botão fica sempre no estado legível e cheio de área. */
@media (hover: none) {
  .woocommerce ul.products li.product .button {
    min-height: 46px;
    color: var(--oi-cream);
    background: var(--oi-graphite);
    border-color: var(--oi-graphite);
  }
}

/* Produto fora de estoque no loop. */
.woocommerce ul.products li.product.outofstock .oi-loop-media,
.woocommerce ul.products li.product.outofstock img {
  opacity: .62;
}


/* == CARTÃO DE CATEGORIA (li.product-category) == */

.woocommerce ul.products li.product-category {
  border-color: transparent;
  background: var(--oi-cream);
}

.woocommerce ul.products li.product-category:hover {
  border-color: var(--oi-gold-soft);
}

.woocommerce ul.products li.product-category a {
  display: block;
  text-decoration: none;
}

.woocommerce ul.products li.product-category img {
  aspect-ratio: 4 / 5;
  padding: 0;
  object-fit: cover;
  border-bottom: 0;
}

.woocommerce ul.products li.product-category h2,
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
  min-height: 0;
  padding: var(--oi-s4);
  font-family: var(--oi-font-display);
  font-size: 1.25rem;
  font-weight: 400;
  text-align: center;
  color: var(--oi-graphite);
}

.woocommerce ul.products li.product-category h2 .count,
.woocommerce ul.products li.product-category mark.count {
  display: inline-block;
  margin-left: var(--oi-s2);
  padding: 0;
  font-family: var(--oi-font-body);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--oi-gold);
  background: none;
}


/* == PAGINAÇÃO == */

.woocommerce nav.woocommerce-pagination {
  margin: var(--oi-s7) 0 0;
  text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--oi-s2);
  margin: 0;
  padding: 0;
  border: 0;
  white-space: normal;
}

.woocommerce nav.woocommerce-pagination ul li {
  margin: 0;
  padding: 0;
  border: 0;
  border-right: 0;
  overflow: visible;
  float: none;
  display: inline-flex;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 var(--oi-s3);
  font-family: var(--oi-font-body);
  font-size: .82rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .04em;
  color: var(--oi-ink);
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  text-decoration: none;
  transition: color var(--oi-t), background-color var(--oi-t), border-color var(--oi-t);
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
  color: var(--oi-graphite);
  background: var(--oi-cream);
  border-color: var(--oi-gold-soft);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a.current {
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}

.woocommerce nav.woocommerce-pagination ul li span.dots {
  border-color: transparent;
  background: none;
  color: var(--oi-muted);
  min-width: 24px;
}

.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce nav.woocommerce-pagination ul li a.prev {
  padding: 0 var(--oi-s4);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}


/* == PÁGINA DO PRODUTO: LAYOUT EM 2 COLUNAS == */

.woocommerce div.product,
.woocommerce #content div.product,
.woocommerce-page div.product {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--oi-s6);
  margin-bottom: var(--oi-s8);
}

.woocommerce div.product > * {
  grid-column: 1 / -1;
  min-width: 0;
}

@media (min-width: 900px) {
  .woocommerce div.product,
  .woocommerce #content div.product {
    grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
    column-gap: var(--oi-s7);
    row-gap: var(--oi-s8);
    align-items: start;
  }

  .woocommerce div.product > div.images,
  .woocommerce div.product > .woocommerce-product-gallery,
  .woocommerce #content div.product > div.images {
    grid-column: 1;
    /* anula float/width do woocommerce-layout.css */
    float: none;
    width: auto;
    margin-bottom: 0;
  }

  .woocommerce div.product > .summary,
  .woocommerce div.product > div.summary.entry-summary,
  .woocommerce #content div.product > .summary {
    grid-column: 2;
    float: none;
    width: auto;
    margin-bottom: 0;
  }
}

@media (min-width: 1100px) {
  .woocommerce div.product,
  .woocommerce #content div.product {
    column-gap: var(--oi-s8);
  }
}


/* == PÁGINA DO PRODUTO: GALERIA == */

.woocommerce div.product div.images,
.woocommerce div.product div.images.woocommerce-product-gallery,
.woocommerce #content div.product div.images {
  position: relative;
  float: none;
  width: auto;
  opacity: 1;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .flex-viewport {
  margin: 0;
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  overflow: hidden;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image a,
.woocommerce div.product div.images .woocommerce-product-gallery__image {
  display: block;
}

.woocommerce div.product div.images img,
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  padding: var(--oi-s5);
  object-fit: contain;
  background: var(--oi-cream);
  box-shadow: none;
  border-radius: 0;
}

@media (min-width: 640px) {
  .woocommerce div.product div.images img,
  .woocommerce div.product div.images .woocommerce-product-gallery__image img {
    padding: var(--oi-s6);
  }
}

/* Botão de zoom da galeria. */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  position: absolute;
  top: var(--oi-s4);
  right: var(--oi-s4);
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-size: 0;
  color: var(--oi-graphite);
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  text-decoration: none;
  transition: border-color var(--oi-t), background-color var(--oi-t);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
  content: "";
  width: 13px;
  height: 13px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  background: none;
  position: static;
  top: auto;
  left: auto;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
  content: "";
  position: absolute;
  right: 11px;
  bottom: 11px;
  width: 7px;
  height: 1.5px;
  background: currentColor;
  transform: rotate(45deg);
  transform-origin: right center;
  border: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger:hover {
  border-color: var(--oi-gold-soft);
  background: var(--oi-cream);
}

/* --- Miniaturas --- */

.woocommerce div.product div.images .flex-control-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--oi-s2);
  margin: var(--oi-s3) 0 0;
  padding: 0;
  list-style: none;
  overflow: visible;
}

.woocommerce div.product div.images .flex-control-thumbs li {
  float: none;
  width: auto;
  margin: 0;
  list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
  width: 68px;
  height: 68px;
  aspect-ratio: 1 / 1;
  padding: var(--oi-s2);
  object-fit: contain;
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  opacity: .68;
  cursor: pointer;
  transition: opacity var(--oi-t), border-color var(--oi-t);
}

.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
  opacity: 1;
  border-color: var(--oi-gold);
}

/* Desktop: miniaturas em coluna à esquerda da imagem principal. */
@media (min-width: 900px) {
  .woocommerce div.product div.images.woocommerce-product-gallery {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    grid-template-rows: auto;
    column-gap: var(--oi-s3);
    align-items: start;
  }

  .woocommerce div.product div.images .flex-viewport,
  .woocommerce div.product div.images > .woocommerce-product-gallery__wrapper {
    grid-column: 2;
    grid-row: 1;
  }

  .woocommerce div.product div.images .flex-control-thumbs {
    grid-column: 1;
    grid-row: 1;
    flex-direction: column;
    flex-wrap: nowrap;
    margin: 0;
  }

  .woocommerce div.product div.images .flex-control-thumbs li img {
    width: 78px;
    height: 78px;
  }
}


/* == PÁGINA DO PRODUTO: RESUMO == */

.woocommerce div.product .summary,
.woocommerce div.product div.summary.entry-summary {
  float: none;
  width: auto;
}

.woocommerce div.product .product_title,
.woocommerce div.product h1.product_title {
  margin: 0 0 var(--oi-s3);
  padding: 0;
  font-family: var(--oi-font-display);
  font-size: clamp(1.9rem, 1.45rem + 1.9vw, 2.85rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -.012em;
  color: var(--oi-graphite);
  text-wrap: balance;
}

/* Eyebrow opcional acima do título (marca / linha). */
.oi-product-eyebrow {
  display: block;
  margin-bottom: var(--oi-s3);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--oi-gold);
}

.woocommerce div.product .woocommerce-product-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--oi-s3);
  margin: 0 0 var(--oi-s4);
  font-size: .82rem;
  color: var(--oi-muted);
}

.woocommerce div.product .woocommerce-product-rating .star-rating {
  float: none;
  margin: 0;
}

.woocommerce div.product .woocommerce-product-rating .woocommerce-review-link {
  color: var(--oi-muted);
  text-decoration: none;
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce div.product .woocommerce-product-rating .woocommerce-review-link:hover {
  color: var(--oi-gold-ink);
  border-bottom-color: var(--oi-gold-soft);
}

/* --- Preço --- */

.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce #content div.product p.price {
  display: block;
  margin: 0 0 var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: clamp(1.6rem, 1.35rem + 1vw, 2.1rem);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.015em;
  color: var(--oi-graphite);
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
  display: inline-block;
  margin-right: var(--oi-s3);
  font-size: .52em;
  font-weight: 400;
  color: var(--oi-muted);
  text-decoration: line-through;
  opacity: 1;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
  font-weight: 600;
  color: var(--oi-graphite);
  background: none;
  text-decoration: none;
}

.woocommerce div.product p.price .woocommerce-Price-currencySymbol {
  font-size: .62em;
  font-weight: 500;
  margin-right: .14em;
  vertical-align: .08em;
}

.woocommerce div.product .oi-installment,
.oi-installment--single {
  padding: 0;
  margin: 0 0 var(--oi-s5);
  font-size: .95rem;
  color: var(--oi-muted);
}

.woocommerce div.product .woocommerce-price-suffix {
  display: block;
  font-size: .8rem;
  font-weight: 400;
  color: var(--oi-muted);
}

/* --- Descrição curta --- */

.woocommerce div.product .woocommerce-product-details__short-description {
  margin: 0 0 var(--oi-s5);
  padding: var(--oi-s5) 0;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--oi-ink);
  border-top: 1px solid var(--oi-line);
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce div.product .woocommerce-product-details__short-description p + p {
  margin-top: var(--oi-s3);
}

.woocommerce div.product .woocommerce-product-details__short-description ul {
  margin: var(--oi-s3) 0 0;
  padding: 0;
  list-style: none;
}

.woocommerce div.product .woocommerce-product-details__short-description ul li {
  position: relative;
  padding-left: var(--oi-s5);
  margin-bottom: var(--oi-s2);
}

.woocommerce div.product .woocommerce-product-details__short-description ul li::before {
  content: "";
  position: absolute;
  top: .62em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--oi-gold);
}

/* --- Estoque --- */

.woocommerce div.product .stock,
.woocommerce .stock,
.woocommerce p.stock {
  display: inline-flex;
  align-items: center;
  gap: var(--oi-s2);
  margin: 0 0 var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--oi-ok);
}

.woocommerce div.product .stock::before,
.woocommerce p.stock::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.woocommerce div.product .stock.out-of-stock,
.woocommerce .stock.out-of-stock,
.woocommerce p.stock.out-of-stock {
  color: var(--oi-danger);
}

.woocommerce div.product .stock.available-on-backorder,
.woocommerce .stock.available-on-backorder {
  color: var(--oi-gold-ink);
}


/* == PÁGINA DO PRODUTO: VARIAÇÕES == */

.woocommerce div.product form.cart {
  margin: 0 0 var(--oi-s5);
}

.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart .variations {
  display: block;
  width: 100%;
  margin: 0 0 var(--oi-s5);
  border: 0;
  border-collapse: collapse;
}

.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
  display: block;
  width: auto;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
}

.woocommerce div.product form.cart .variations tr + tr {
  margin-top: var(--oi-s4);
}

.woocommerce div.product form.cart .variations th.label,
.woocommerce div.product form.cart .variations label {
  margin: 0 0 var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--oi-gold);
}

.woocommerce div.product form.cart .variations td.value {
  position: relative;
}

.woocommerce div.product form.cart .variations select {
  width: 100%;
  min-height: 50px;
  margin: 0;
  padding: .7rem 2.75rem .7rem var(--oi-s4);
  font-size: .95rem;
  color: var(--oi-graphite);
  background-color: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  cursor: pointer;
}

.woocommerce div.product form.cart .variations select:focus {
  border-color: var(--oi-gold);
  box-shadow: 0 0 0 3px rgba(168, 130, 60, .14);
}

.woocommerce div.product form.cart .reset_variations {
  display: inline-block;
  margin-top: var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--oi-muted);
  text-decoration: none;
  border-bottom: 1px solid var(--oi-line);
  transition: color var(--oi-t), border-color var(--oi-t);
}

.woocommerce div.product form.cart .reset_variations:hover {
  color: var(--oi-gold-ink);
  border-bottom-color: var(--oi-gold-soft);
}

.woocommerce div.product form.cart .woocommerce-variation-description,
.woocommerce div.product form.cart .woocommerce-variation-availability {
  margin-bottom: var(--oi-s3);
  font-size: .9rem;
  color: var(--oi-muted);
}

.woocommerce div.product form.cart .woocommerce-variation-price .price {
  font-size: 1.6rem;
  margin-bottom: var(--oi-s3);
}

.woocommerce div.product form.cart .single_variation_wrap {
  display: block;
}


/* == PÁGINA DO PRODUTO: QUANTIDADE E COMPRA == */

.woocommerce div.product form.cart .oi-buy-row,
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form):not(.grouped_form) {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--oi-s3);
}

/* A tabela de variações precisa ocupar a linha inteira do flex. */
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .single_variation_wrap,
.woocommerce div.product form.cart .woocommerce-grouped-product-list {
  flex: 1 1 100%;
}

.woocommerce div.product form.cart div.quantity,
.woocommerce .quantity {
  display: inline-flex;
  align-items: center;
  float: none;
  margin: 0;
}

.woocommerce div.product form.cart div.quantity .qty,
.woocommerce .quantity .qty,
.woocommerce table.cart .quantity .qty {
  width: 88px;
  min-height: 56px;
  padding: 0 var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  color: var(--oi-graphite);
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  -moz-appearance: textfield;
}

.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button {
  opacity: 1;
  height: 32px;
}

.woocommerce .quantity .qty:focus {
  border-color: var(--oi-gold);
  box-shadow: 0 0 0 3px rgba(168, 130, 60, .14);
}

.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button {
  flex: 1 1 auto;
  min-width: 220px;
  min-height: 56px;
  padding: 1rem 2rem;
  font-size: .84rem;
  font-weight: 600;
  letter-spacing: .14em;
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border: 1px solid var(--oi-graphite);
  border-radius: var(--oi-radius);
}

.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
  color: var(--oi-white);
  background: var(--oi-ink);
  border-color: var(--oi-ink);
  box-shadow: var(--oi-shadow-md);
}

.woocommerce div.product form.cart button.single_add_to_cart_button.disabled {
  opacity: .4;
}

@media (max-width: 639px) {
  .woocommerce div.product form.cart button.single_add_to_cart_button {
    min-width: 0;
    flex: 1 1 100%;
  }

  .woocommerce div.product form.cart div.quantity {
    flex: 1 1 100%;
  }

  .woocommerce div.product form.cart div.quantity .qty {
    width: 100%;
  }
}

/* Botão auxiliar (ex.: comprar pelo WhatsApp) — sempre via rota /whatsapp/. */
.oi-buy-whatsapp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--oi-s2);
  width: 100%;
  min-height: 52px;
  margin-top: var(--oi-s3);
  padding: .85rem 1.5rem;
  font-family: var(--oi-font-body);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--oi-graphite);
  background: transparent;
  border: 1px solid var(--oi-graphite);
  border-radius: var(--oi-radius);
  transition: background-color var(--oi-t), color var(--oi-t);
}

.oi-buy-whatsapp:hover {
  color: var(--oi-cream);
  background: var(--oi-graphite);
}

.oi-buy-whatsapp svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  fill: currentColor;
}

/* Produtos agrupados. */
.woocommerce div.product form.cart table.woocommerce-grouped-product-list {
  margin-bottom: var(--oi-s5);
  border: 1px solid var(--oi-line);
}

.woocommerce div.product form.cart table.woocommerce-grouped-product-list td {
  padding: var(--oi-s3) var(--oi-s4);
  border-bottom: 1px solid var(--oi-line);
  vertical-align: middle;
}

.woocommerce div.product form.cart table.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__label a {
  font-family: var(--oi-font-display);
  font-size: 1.05rem;
  color: var(--oi-graphite);
  text-decoration: none;
}


/* == PÁGINA DO PRODUTO: BLOCO DE CONFIANÇA == */

.oi-product-trust {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin-top: var(--oi-s5);
  border-top: 1px solid var(--oi-line);
  border-bottom: 1px solid var(--oi-line);
}

.oi-product-trust-item {
  display: flex;
  align-items: flex-start;
  gap: var(--oi-s3);
  padding: var(--oi-s4) 0;
}

.oi-product-trust-item + .oi-product-trust-item {
  border-top: 1px solid var(--oi-line);
}

@media (min-width: 640px) {
  .oi-product-trust {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .oi-product-trust-item {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--oi-s2);
    padding: var(--oi-s5) var(--oi-s4);
  }

  .oi-product-trust-item:first-child {
    padding-left: 0;
  }

  .oi-product-trust-item:last-child {
    padding-right: 0;
  }

  .oi-product-trust-item + .oi-product-trust-item {
    border-top: 0;
    border-left: 1px solid var(--oi-line);
  }
}

.oi-product-trust-item svg {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  color: var(--oi-gold);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oi-product-trust-title {
  display: block;
  font-family: var(--oi-font-body);
  font-size: .7rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--oi-graphite);
}

.oi-product-trust-text {
  display: block;
  margin-top: var(--oi-s1);
  font-size: .82rem;
  line-height: 1.55;
  color: var(--oi-muted);
}


/* == PÁGINA DO PRODUTO: META (SKU, CATEGORIAS) == */

.woocommerce div.product .product_meta {
  margin-top: var(--oi-s5);
  font-family: var(--oi-font-body);
  font-size: .8rem;
  line-height: 1.9;
  color: var(--oi-muted);
}

.woocommerce div.product .product_meta > span {
  display: block;
}

.woocommerce div.product .product_meta .sku_wrapper,
.woocommerce div.product .product_meta .posted_in,
.woocommerce div.product .product_meta .tagged_as {
  letter-spacing: .02em;
}

.woocommerce div.product .product_meta a {
  color: var(--oi-ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--oi-t), border-color var(--oi-t);
}

.woocommerce div.product .product_meta a:hover {
  color: var(--oi-gold-ink);
  border-bottom-color: var(--oi-gold-soft);
}


/* == PÁGINA DO PRODUTO: ABAS == */

.woocommerce div.product .woocommerce-tabs {
  margin-top: var(--oi-s4);
  padding-top: var(--oi-s6);
  border-top: 1px solid var(--oi-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--oi-s6);
  margin: 0 0 var(--oi-s6);
  padding: 0;
  list-style: none;
  overflow-x: auto;
  overflow-y: hidden;
  border-bottom: 1px solid var(--oi-line);
  scrollbar-width: thin;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
  content: none;
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  display: block;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  content: none;
  display: none;
  border: 0;
  box-shadow: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0 0 var(--oi-s3);
  margin-bottom: -1px;
  font-family: var(--oi-font-body);
  font-size: .74rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--oi-muted);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color var(--oi-t), border-color var(--oi-t);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--oi-graphite);
  border-bottom-color: var(--oi-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active > a {
  color: var(--oi-graphite);
  border-bottom-color: var(--oi-gold);
}

/* --- Conteúdo das abas --- */

.woocommerce div.product .woocommerce-tabs .panel {
  max-width: 72ch;
  margin: 0;
  padding: 0;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--oi-ink);
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
  /* O título "Descrição" duplica a aba ativa — o template deve remover;
     se vier, ele fica discreto em vez de gritar. */
  margin-top: 0;
  font-size: 1.6rem;
  font-weight: 300;
}

.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3,
.woocommerce div.product .woocommerce-tabs .panel h4 {
  margin: var(--oi-s6) 0 var(--oi-s3);
  font-family: var(--oi-font-display);
  color: var(--oi-graphite);
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-size: 1.75rem;
  font-weight: 300;
}

.woocommerce div.product .woocommerce-tabs .panel h3 {
  font-size: 1.35rem;
  font-weight: 400;
}

.woocommerce div.product .woocommerce-tabs .panel h4 {
  font-size: 1.15rem;
  font-weight: 500;
}

.woocommerce div.product .woocommerce-tabs .panel p {
  margin: 0 0 var(--oi-s4);
}

.woocommerce div.product .woocommerce-tabs .panel ul,
.woocommerce div.product .woocommerce-tabs .panel ol {
  margin: 0 0 var(--oi-s5);
  padding: 0;
  list-style: none;
}

.woocommerce div.product .woocommerce-tabs .panel ul li,
.woocommerce div.product .woocommerce-tabs .panel ol li {
  position: relative;
  margin-bottom: var(--oi-s2);
  padding-left: var(--oi-s5);
  line-height: 1.7;
}

.woocommerce div.product .woocommerce-tabs .panel ul li::before {
  content: "";
  position: absolute;
  top: .68em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--oi-gold);
}

.woocommerce div.product .woocommerce-tabs .panel ol {
  counter-reset: oi-ol;
}

.woocommerce div.product .woocommerce-tabs .panel ol li {
  counter-increment: oi-ol;
}

.woocommerce div.product .woocommerce-tabs .panel ol li::before {
  content: counter(oi-ol) ".";
  position: absolute;
  left: 0;
  font-family: var(--oi-font-body);
  font-size: .82rem;
  font-weight: 600;
  color: var(--oi-gold);
}

.woocommerce div.product .woocommerce-tabs .panel img {
  margin: var(--oi-s5) 0;
  border-radius: var(--oi-radius);
}

.woocommerce div.product .woocommerce-tabs .panel blockquote {
  margin: var(--oi-s5) 0;
}


/* == TABELA DE ATRIBUTOS == */

.woocommerce table.shop_attributes {
  width: 100%;
  margin: 0 0 var(--oi-s5);
  border: 1px solid var(--oi-line);
  border-collapse: collapse;
  border-radius: var(--oi-radius);
  overflow: hidden;
}

.woocommerce table.shop_attributes tr {
  border: 0;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
  padding: var(--oi-s3) var(--oi-s4);
  border: 0;
  border-bottom: 1px solid var(--oi-line);
  line-height: 1.6;
  vertical-align: top;
}

.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td {
  border-bottom: 0;
}

.woocommerce table.shop_attributes th {
  width: 36%;
  font-family: var(--oi-font-body);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: left;
  color: var(--oi-graphite);
  background: none;
}

.woocommerce table.shop_attributes td {
  font-family: var(--oi-font-body);
  font-size: .95rem;
  font-style: normal;
  color: var(--oi-ink);
}

.woocommerce table.shop_attributes td p {
  margin: 0;
  padding: 0;
}

/* Zebra suave. */
.woocommerce table.shop_attributes tr:nth-child(odd) th,
.woocommerce table.shop_attributes tr:nth-child(odd) td {
  background: var(--oi-cream-2);
}

.woocommerce table.shop_attributes tr:nth-child(even) th,
.woocommerce table.shop_attributes tr:nth-child(even) td {
  background: var(--oi-white);
}


/* == AVALIAÇÕES == */

.woocommerce .star-rating,
.woocommerce p.stars a {
  color: var(--oi-gold);
  letter-spacing: .06em;
}

.woocommerce .star-rating::before {
  color: var(--oi-line);
}

.woocommerce #reviews #comments h2 {
  margin: 0 0 var(--oi-s5);
  font-family: var(--oi-font-display);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--oi-graphite);
}

.woocommerce #reviews #comments ol.commentlist {
  margin: 0 0 var(--oi-s6);
  padding: 0;
  list-style: none;
}

.woocommerce #reviews #comments ol.commentlist li {
  margin: 0 0 var(--oi-s4);
  padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
  width: 44px;
  height: 44px;
  padding: 0;
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: 50%;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
  margin-left: 64px;
  padding: var(--oi-s5);
  background: var(--oi-cream-2);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta {
  margin-bottom: var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: .78rem;
  color: var(--oi-muted);
}

.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta strong {
  font-weight: 600;
  color: var(--oi-graphite);
}

.woocommerce #reviews #comments ol.commentlist li .comment-text .description p {
  margin: 0 0 var(--oi-s3);
  line-height: 1.75;
}

.woocommerce #review_form #respond .comment-reply-title {
  display: block;
  margin-bottom: var(--oi-s4);
  font-family: var(--oi-font-display);
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--oi-graphite);
}

.woocommerce #review_form #respond p.comment-form-rating label,
.woocommerce #review_form #respond .comment-form-author label,
.woocommerce #review_form #respond .comment-form-email label,
.woocommerce #review_form #respond .comment-form-comment label {
  display: block;
  margin-bottom: var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--oi-graphite);
}

.woocommerce .woocommerce-noreviews {
  padding: var(--oi-s5);
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  color: var(--oi-muted);
}


/* == RELACIONADOS E UPSELLS == */

.woocommerce .related,
.woocommerce .upsells,
.woocommerce .cross-sells {
  padding-top: var(--oi-s7);
  border-top: 1px solid var(--oi-line);
}

.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2,
.woocommerce section.related > h2 {
  margin: 0 0 var(--oi-s6);
  font-family: var(--oi-font-display);
  font-size: clamp(1.6rem, 1.35rem + 1vw, 2.25rem);
  font-weight: 300;
  line-height: 1.15;
  color: var(--oi-graphite);
  text-align: center;
}

/* Filete dourado sob o título das seções secundárias. */
.woocommerce .related > h2::after,
.woocommerce .upsells > h2::after,
.woocommerce .cross-sells > h2::after {
  content: "";
  display: block;
  width: 36px;
  height: 1px;
  margin: var(--oi-s4) auto 0;
  background: var(--oi-gold-soft);
}


/* == CARRINHO == */

.woocommerce table.shop_table,
.woocommerce-page table.shop_table {
  width: 100%;
  margin: 0 0 var(--oi-s6);
  border: 1px solid var(--oi-line);
  border-collapse: collapse;
  border-radius: var(--oi-radius);
  font-family: var(--oi-font-body);
}

.woocommerce table.shop_table th {
  padding: var(--oi-s4);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: left;
  color: var(--oi-graphite);
  background: var(--oi-cream);
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce table.shop_table td {
  padding: var(--oi-s4);
  font-size: .95rem;
  line-height: 1.6;
  color: var(--oi-ink);
  border-top: 1px solid var(--oi-line);
  vertical-align: middle;
}

.woocommerce table.shop_table tbody tr:first-child td {
  border-top: 0;
}

.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
  font-weight: 600;
  border-top: 1px solid var(--oi-line);
}

/* Larguras das colunas do carrinho: sem elas o algoritmo de tabela distribui
   por conteúdo e esmaga a coluna do nome do produto (a única que precisa
   sobrar). A da miniatura é obrigatória — sem width no <td> a coluna colapsa
   e o `max-width:100%` do reset encolhe a imagem junto. */
.woocommerce table.cart td.product-thumbnail,
.woocommerce table.shop_table td.product-thumbnail,
.woocommerce table.cart th.product-thumbnail {
  width: 92px;
}

.woocommerce table.cart td.product-remove,
.woocommerce table.cart th.product-remove {
  width: 54px;
  text-align: center;
}

.woocommerce table.cart td.product-price,
.woocommerce table.cart th.product-price,
.woocommerce table.cart td.product-subtotal,
.woocommerce table.cart th.product-subtotal {
  width: 124px;
  text-align: right;
}

.woocommerce table.cart td.product-quantity,
.woocommerce table.cart th.product-quantity {
  width: 112px;
}

.woocommerce table.cart td.product-name,
.woocommerce table.cart th.product-name {
  width: auto;
  min-width: 180px;
}

.woocommerce table.cart img,
.woocommerce table.shop_table td.product-thumbnail img {
  width: 74px;
  height: 74px;
  max-width: none;
  padding: var(--oi-s2);
  object-fit: contain;
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce table.cart td.product-name a,
.woocommerce table.shop_table td.product-name a {
  font-family: var(--oi-font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--oi-graphite);
  text-decoration: none;
}

.woocommerce table.cart td.product-name a:hover {
  color: var(--oi-gold-ink);
}

.woocommerce table.cart td.product-name .variation,
.woocommerce table.shop_table .variation {
  margin-top: var(--oi-s2);
  font-size: .8rem;
  line-height: 1.5;
  color: var(--oi-muted);
}

.woocommerce table.cart td.product-name .variation dt,
.woocommerce table.cart td.product-name .variation dd {
  display: inline;
  margin: 0;
  padding: 0;
  font-weight: 400;
}

.woocommerce table.cart td.product-name .variation dd::after {
  content: "";
  display: block;
}

.woocommerce table.cart td.product-price,
.woocommerce table.cart td.product-subtotal {
  font-weight: 600;
  color: var(--oi-graphite);
  white-space: nowrap;
}

/* Botão de remover item. */
.woocommerce a.remove,
.woocommerce table.cart a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1;
  color: var(--oi-muted);
  background: none;
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  text-decoration: none;
  transition: color var(--oi-t), border-color var(--oi-t), background-color var(--oi-t);
}

.woocommerce a.remove:hover,
.woocommerce table.cart a.remove:hover {
  color: var(--oi-white);
  background: var(--oi-danger);
  border-color: var(--oi-danger);
}

/* Cupom e ações. */
/* ATENÇÃO: não usar display:flex neste <td>. Ele carrega colspan="6" e, ao
   deixar de ser table-cell, o navegador o envolve numa célula anônima — o
   colspan é perdido e a linha encolhe para a largura da 1ª coluna.
   Por isso o alinhamento aqui é feito com float + clearfix. */
.woocommerce table.cart td.actions {
  padding: var(--oi-s4);
  background: var(--oi-cream-2);
  text-align: right;
}

.woocommerce table.cart td.actions::after {
  content: "";
  display: block;
  clear: both;
}

.woocommerce table.cart td.actions .coupon {
  display: flex;
  flex-wrap: wrap;
  gap: var(--oi-s3);
  float: none;
  margin-bottom: var(--oi-s4);
  padding: 0;
}

.woocommerce table.cart td.actions .coupon label {
  display: none;
}

.woocommerce table.cart td.actions .coupon .input-text,
.woocommerce table.cart td.actions .coupon #coupon_code {
  flex: 1 1 200px;
  width: auto;
  min-height: 48px;
  margin: 0;
  padding: .7rem var(--oi-s4);
  font-size: .95rem;
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce table.cart td.actions > .button {
  float: none;
  width: 100%;
}

@media (min-width: 640px) {
  .woocommerce table.cart td.actions .coupon {
    float: left;
    width: auto;
    max-width: 460px;
    margin-bottom: 0;
  }

  .woocommerce table.cart td.actions > .button {
    display: inline-flex;
    float: right;
    width: auto;
  }
}

/* Layout carrinho: tabela + resumo. */
@media (min-width: 1100px) {
  /* A tabela leva a maior parte porque tem 6 colunas; o resumo é estreito
     por natureza (rótulo + valor). */
  .oi-cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr);
    gap: var(--oi-s7);
    align-items: start;
  }
}

.woocommerce .cart-collaterals {
  width: auto;
}

.woocommerce .cart-collaterals .cart_totals {
  float: none;
  width: auto;
  padding: var(--oi-s5);
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

@media (min-width: 1100px) {
  .woocommerce .cart-collaterals .cart_totals {
    position: sticky;
    top: 120px;
  }
}

.woocommerce .cart_totals h2 {
  margin: 0 0 var(--oi-s4);
  font-family: var(--oi-font-display);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--oi-graphite);
}

.woocommerce .cart_totals table.shop_table {
  margin: 0 0 var(--oi-s4);
  border: 0;
  background: none;
}

.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td {
  padding: var(--oi-s3) 0;
  background: none;
  border-top: 0;
  border-bottom: 1px solid var(--oi-line);
  font-size: .92rem;
  text-transform: none;
  letter-spacing: 0;
}

.woocommerce .cart_totals table.shop_table th {
  width: 44%;
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--oi-muted);
}

.woocommerce .cart_totals table.shop_table td {
  text-align: right;
  font-weight: 500;
  color: var(--oi-ink);
}

.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td {
  border-bottom: 0;
  padding-top: var(--oi-s4);
  color: var(--oi-graphite);
}

.woocommerce .cart_totals .order-total td strong,
.woocommerce .cart_totals .order-total .amount {
  font-family: var(--oi-font-body);
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: -.015em;
}

.woocommerce .cart_totals .wc-proceed-to-checkout {
  padding: var(--oi-s4) 0 0;
}

.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  width: 100%;
  min-height: 56px;
  margin: 0;
  padding: 1rem 1.5rem;
  font-size: .82rem;
  letter-spacing: .14em;
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border: 1px solid var(--oi-graphite);
}

.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--oi-ink);
  border-color: var(--oi-ink);
  box-shadow: var(--oi-shadow-md);
}

/* Cálculo de frete no carrinho. */
.woocommerce .cart_totals .shipping-calculator-button {
  font-size: .8rem;
  color: var(--oi-gold-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--oi-gold-soft);
}

.woocommerce ul#shipping_method,
.woocommerce ul#shipping_method li {
  margin: 0;
  padding: 0;
  list-style: none;
  text-indent: 0;
}

.woocommerce ul#shipping_method li {
  display: flex;
  align-items: baseline;
  gap: var(--oi-s2);
  padding: var(--oi-s1) 0;
  font-size: .88rem;
}

.woocommerce ul#shipping_method li label {
  margin: 0;
  cursor: pointer;
}

/* == CARRINHO NO MOBILE: A TABELA VIRA LISTA ==
   Sem isto as 6 colunas do carrinho estouram a largura da tela. Usa os
   data-title que o Woo já imprime em cart.php e nas tabelas de pedido.

   O limite é 768px de propósito: é o mesmo do woocommerce-smallscreen.css.
   Se aquele arquivo continuar na fila (o functions.php o mantém como
   dependência, em vez de dar dequeue), os dois trechos cobrem exatamente a
   mesma faixa e este vence por vir depois. Com 767px sobraria uma fresta de
   1px em que o Woo empilha a tabela e as larguras de coluna daqui ainda
   valeriam.
   Este bloco precisa vir DEPOIS das larguras de coluna acima. */

@media (max-width: 768px) {
  .woocommerce table.shop_table_responsive,
  .woocommerce table.shop_table_responsive tbody,
  .woocommerce table.shop_table_responsive tr,
  .woocommerce table.shop_table_responsive td {
    display: block;
    width: auto;
  }

  .woocommerce table.shop_table_responsive thead {
    display: none;
  }

  .woocommerce table.shop_table_responsive tbody tr {
    position: relative;
    padding: var(--oi-s4);
    border-top: 1px solid var(--oi-line);
  }

  .woocommerce table.shop_table_responsive tbody tr:first-child {
    border-top: 0;
  }

  .woocommerce table.shop_table_responsive td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--oi-s4);
    padding: var(--oi-s2) 0;
    border: 0;
    text-align: right;
  }

  .woocommerce table.shop_table_responsive td::before {
    content: attr(data-title);
    flex: 0 0 auto;
    font-family: var(--oi-font-body);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-align: left;
    color: var(--oi-muted);
  }

  /* Anula as larguras de coluna do desktop. */
  .woocommerce table.cart td.product-name,
  .woocommerce table.cart td.product-thumbnail,
  .woocommerce table.cart td.product-price,
  .woocommerce table.cart td.product-subtotal,
  .woocommerce table.cart td.product-quantity {
    width: auto;
    min-width: 0;
    text-align: right;
  }

  .woocommerce table.shop_table_responsive td.product-thumbnail,
  .woocommerce table.shop_table_responsive td.product-name {
    justify-content: flex-start;
    text-align: left;
  }

  .woocommerce table.shop_table_responsive td.product-thumbnail::before,
  .woocommerce table.shop_table_responsive td.product-name::before,
  .woocommerce table.shop_table_responsive td.product-remove::before,
  .woocommerce table.shop_table_responsive td.actions::before {
    content: none;
  }

  /* O "×" vai para o canto do bloco do item. */
  .woocommerce table.cart td.product-remove {
    position: absolute;
    top: var(--oi-s3);
    right: var(--oi-s3);
    width: auto;
    padding: 0;
  }

  .woocommerce table.cart td.product-name {
    padding-right: var(--oi-s6);
  }

  .woocommerce table.cart td.product-quantity .qty {
    width: 96px;
  }

  .woocommerce table.shop_table_responsive td.actions {
    display: block;
    padding: var(--oi-s4) 0 0;
  }

  /* O resumo do carrinho também carrega .shop_table_responsive, mas já é uma
     tabela de 2 colunas (rótulo + valor) e deve continuar tabela. */
  .woocommerce .cart_totals table.shop_table_responsive {
    display: table;
  }

  .woocommerce .cart_totals table.shop_table_responsive tbody {
    display: table-row-group;
  }

  .woocommerce .cart_totals table.shop_table_responsive tr {
    display: table-row;
    padding: 0;
    border-top: 0;
  }

  .woocommerce .cart_totals table.shop_table_responsive th,
  .woocommerce .cart_totals table.shop_table_responsive td {
    display: table-cell;
    padding: var(--oi-s3) 0;
  }

  .woocommerce .cart_totals table.shop_table_responsive td::before {
    content: none;
  }
}

/* Carrinho vazio. */
.woocommerce .cart-empty,
.woocommerce .wc-empty-cart-message .cart-empty {
  padding: var(--oi-s6) var(--oi-s5);
  font-family: var(--oi-font-display);
  font-size: 1.5rem;
  font-weight: 300;
  text-align: center;
  color: var(--oi-graphite);
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce .return-to-shop {
  margin-top: var(--oi-s5);
  text-align: center;
}


/* == CHECKOUT == */

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
  border-left-color: var(--oi-gold-soft);
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
  margin: 0 0 var(--oi-s5);
  padding: var(--oi-s5);
  background: var(--oi-cream-2);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce form.checkout_coupon .form-row {
  padding: 0;
  margin-bottom: var(--oi-s3);
}

.woocommerce .col2-set,
.woocommerce-page .col2-set {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--oi-s6);
  width: auto;
}

.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 {
  float: none;
  width: auto;
}

.woocommerce-checkout h3,
.woocommerce .checkout h3,
.woocommerce-checkout #order_review_heading {
  margin: 0 0 var(--oi-s4);
  font-family: var(--oi-font-display);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--oi-graphite);
}

.woocommerce-checkout h3#ship-to-different-address {
  display: flex;
  align-items: center;
  gap: var(--oi-s3);
  font-size: 1.15rem;
}

.woocommerce-checkout h3#ship-to-different-address label {
  display: inline-flex;
  align-items: center;
  gap: var(--oi-s2);
  margin: 0;
  font-family: var(--oi-font-display);
  font-weight: 400;
  cursor: pointer;
}

/* Campos do checkout. */
.woocommerce form .form-row {
  display: flex;
  flex-direction: column;
  margin: 0 0 var(--oi-s4);
  padding: 0;
}

.woocommerce form .form-row label {
  margin-bottom: var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--oi-graphite);
}

.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row .woocommerce-form__label-checkbox {
  flex-direction: row;
  align-items: flex-start;
  gap: var(--oi-s2);
  font-size: .875rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--oi-ink);
  cursor: pointer;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text {
  width: 100%;
  min-height: 50px;
  padding: .75rem var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--oi-ink);
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  box-shadow: none;
}

.woocommerce form .form-row textarea {
  min-height: 120px;
  padding-block: var(--oi-s3);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--oi-gold);
  box-shadow: 0 0 0 3px rgba(168, 130, 60, .14);
  outline: none;
}

.woocommerce form .form-row .woocommerce-input-wrapper {
  width: 100%;
}

/* Select2 (país / estado) na mesma pele dos demais campos. */
.woocommerce .select2-container .select2-selection--single {
  height: 50px;
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  background: var(--oi-white);
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
  padding-left: var(--oi-s4);
  line-height: 48px;
  color: var(--oi-ink);
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
  height: 48px;
  right: var(--oi-s3);
}

.woocommerce .select2-container--open .select2-selection--single {
  border-color: var(--oi-gold);
}

.select2-dropdown {
  border-color: var(--oi-line);
  border-radius: var(--oi-radius);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--oi-cream);
  color: var(--oi-graphite);
}

/* Linhas lado a lado. */
@media (min-width: 640px) {
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last {
    width: calc(50% - (var(--oi-s4) / 2));
    float: left;
  }

  .woocommerce form .form-row-last {
    float: right;
  }

  .woocommerce form .form-row-wide,
  .woocommerce form .form-row-full {
    clear: both;
    width: 100%;
  }
}

/* --- Resumo do pedido em caixa creme --- */

.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
  padding: var(--oi-s5);
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce-checkout #order_review table.shop_table {
  margin: 0 0 var(--oi-s4);
  border: 0;
  background: none;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
  padding: var(--oi-s3) 0;
  background: none;
  border-top: 0;
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce-checkout #order_review table.shop_table thead th {
  font-size: .7rem;
  letter-spacing: .14em;
  color: var(--oi-muted);
}

.woocommerce-checkout #order_review table.shop_table td.product-name {
  font-size: .92rem;
  line-height: 1.5;
  color: var(--oi-ink);
}

.woocommerce-checkout #order_review table.shop_table .product-total,
.woocommerce-checkout #order_review table.shop_table td:last-child {
  text-align: right;
  white-space: nowrap;
}

.woocommerce-checkout #order_review table.shop_table .product-quantity {
  font-weight: 600;
  color: var(--oi-muted);
}

.woocommerce-checkout #order_review table.shop_table tfoot th {
  font-family: var(--oi-font-body);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--oi-muted);
}

.woocommerce-checkout #order_review table.shop_table tfoot .order-total th,
.woocommerce-checkout #order_review table.shop_table tfoot .order-total td {
  border-bottom: 0;
  padding-top: var(--oi-s4);
  color: var(--oi-graphite);
}

.woocommerce-checkout #order_review table.shop_table tfoot .order-total .amount {
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: -.015em;
}

/* --- Pagamento --- */

.woocommerce-checkout #payment,
.woocommerce-checkout #payment.woocommerce-checkout-payment {
  margin-top: var(--oi-s5);
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce-checkout #payment ul.payment_methods {
  margin: 0;
  padding: var(--oi-s4);
  border-bottom: 1px solid var(--oi-line);
  list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li {
  margin: 0;
  padding: var(--oi-s2) 0;
  list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li label {
  display: inline-flex;
  align-items: center;
  gap: var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: .92rem;
  font-weight: 500;
  letter-spacing: .01em;
  text-transform: none;
  color: var(--oi-graphite);
  cursor: pointer;
}

.woocommerce-checkout #payment ul.payment_methods li img {
  max-height: 24px;
  margin-left: var(--oi-s2);
}

.woocommerce-checkout #payment div.payment_box {
  margin: var(--oi-s3) 0 0;
  padding: var(--oi-s4);
  font-size: .875rem;
  line-height: 1.6;
  color: var(--oi-muted);
  background: var(--oi-cream-2);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce-checkout #payment div.payment_box::before {
  content: none;
  display: none;
}

.woocommerce-checkout #payment div.form-row.place-order {
  padding: var(--oi-s5);
  margin: 0;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
  margin-bottom: var(--oi-s4);
  font-size: .82rem;
  line-height: 1.6;
  color: var(--oi-muted);
}

.woocommerce-checkout #payment #place_order,
.woocommerce #payment #place_order {
  display: flex;
  width: 100%;
  min-height: 58px;
  float: none;
  padding: 1rem 2rem;
  font-size: .84rem;
  letter-spacing: .14em;
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border: 1px solid var(--oi-graphite);
}

.woocommerce-checkout #payment #place_order:hover {
  background: var(--oi-ink);
  border-color: var(--oi-ink);
  box-shadow: var(--oi-shadow-md);
}

/* Layout de duas colunas no checkout. */
@media (min-width: 900px) {
  .woocommerce form.checkout,
  .woocommerce-checkout form.woocommerce-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    column-gap: var(--oi-s7);
    row-gap: var(--oi-s5);
    align-items: start;
  }

  .woocommerce form.checkout > #customer_details {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .woocommerce form.checkout > h3#order_review_heading {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
  }

  .woocommerce form.checkout > #order_review {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    position: sticky;
    top: 120px;
  }

  .woocommerce .col2-set,
  .woocommerce-page .col2-set {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* == PEDIDO RECEBIDO / OBRIGADO == */

.woocommerce .woocommerce-order {
  max-width: 860px;
  margin-inline: auto;
}

.woocommerce .woocommerce-thankyou-order-received,
.woocommerce ul.order_details + p,
.woocommerce .woocommerce-order > p.woocommerce-notice--success {
  margin: 0 0 var(--oi-s5);
  padding: var(--oi-s5);
  font-family: var(--oi-font-display);
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1.3;
  text-align: center;
  color: var(--oi-graphite);
  background: rgba(47, 107, 79, .06);
  border: 1px solid var(--oi-line);
  border-left: 3px solid var(--oi-ok);
  border-radius: var(--oi-radius);
}

.woocommerce ul.order_details,
.woocommerce .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0;
  margin: 0 0 var(--oi-s6);
  padding: 0;
  list-style: none;
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce ul.order_details li {
  float: none;
  margin: 0;
  padding: var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.4;
  color: var(--oi-muted);
  border: 0;
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce ul.order_details li:last-child {
  border-bottom: 0;
}

.woocommerce ul.order_details li strong {
  display: block;
  margin-top: var(--oi-s2);
  font-family: var(--oi-font-body);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--oi-graphite);
}

@media (min-width: 640px) {
  .woocommerce ul.order_details li {
    border-bottom: 0;
    border-right: 1px solid var(--oi-line);
  }

  .woocommerce ul.order_details li:last-child {
    border-right: 0;
  }
}

.woocommerce .woocommerce-order-details h2,
.woocommerce .woocommerce-customer-details h2,
.woocommerce .woocommerce-column__title {
  margin: 0 0 var(--oi-s4);
  font-family: var(--oi-font-display);
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--oi-graphite);
}

.woocommerce .woocommerce-customer-details address {
  padding: var(--oi-s5);
  font-style: normal;
  line-height: 1.7;
  color: var(--oi-ink);
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}


/* == MINHA CONTA == */

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0;
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
  border-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: var(--oi-s3) var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--oi-ink);
  text-decoration: none;
  transition: background-color var(--oi-t), color var(--oi-t);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  background: var(--oi-cream);
  color: var(--oi-gold-ink);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  color: var(--oi-cream);
  background: var(--oi-graphite);
}

.woocommerce-account .woocommerce-MyAccount-content {
  min-width: 0;
}

.woocommerce-account .woocommerce-MyAccount-content p {
  margin-bottom: var(--oi-s4);
}

@media (min-width: 900px) {
  .woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: var(--oi-s7);
    align-items: start;
  }

  .woocommerce-account .woocommerce > * {
    grid-column: 1 / -1;
  }

  .woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
    grid-column: 1;
    float: none;
    width: auto;
  }

  .woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
    grid-column: 2;
    float: none;
    width: auto;
  }
}

/* Login / cadastro. */
.woocommerce #customer_login .col-1,
.woocommerce #customer_login .col-2 {
  padding: var(--oi-s6);
  background: var(--oi-cream-2);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce #customer_login h2 {
  margin: 0 0 var(--oi-s5);
  font-family: var(--oi-font-display);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--oi-graphite);
}

.woocommerce form.login .woocommerce-form-login__rememberme,
.woocommerce form.register .woocommerce-form-register__submit {
  margin-top: var(--oi-s3);
}

.woocommerce-form-login .lost_password a,
.woocommerce .lost_password a {
  font-size: .82rem;
  color: var(--oi-gold-ink);
}

@media (min-width: 900px) {
  .woocommerce #customer_login.col2-set {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* == BUSCA DE PRODUTOS == */

.woocommerce-product-search,
.woocommerce form.woocommerce-product-search {
  display: flex;
  flex-wrap: wrap;
  gap: var(--oi-s2);
}

.woocommerce-product-search .search-field,
.woocommerce-product-search input[type="search"] {
  flex: 1 1 180px;
  min-width: 0;
  min-height: 48px;
  padding: .7rem var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: .95rem;
  color: var(--oi-ink);
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce-product-search .search-field:focus {
  border-color: var(--oi-gold);
  box-shadow: 0 0 0 3px rgba(168, 130, 60, .14);
  outline: none;
}

.woocommerce-product-search button[type="submit"],
.woocommerce-product-search input[type="submit"] {
  flex: 0 0 auto;
  min-height: 48px;
  padding: .7rem var(--oi-s5);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border: 1px solid var(--oi-graphite);
  border-radius: var(--oi-radius);
  cursor: pointer;
  transition: background-color var(--oi-t), border-color var(--oi-t);
}

.woocommerce-product-search button[type="submit"]:hover {
  background: var(--oi-gold-ink);
  border-color: var(--oi-gold-ink);
}

/* Página de resultados sem produtos. */
.woocommerce .woocommerce-no-products-found,
.woocommerce-info.woocommerce-no-products-found {
  padding: var(--oi-s6) var(--oi-s5);
  text-align: center;
}

.oi-search-empty {
  max-width: 560px;
  margin: var(--oi-s6) auto;
  padding: var(--oi-s7) var(--oi-s5);
  text-align: center;
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.oi-search-empty h2 {
  margin: 0 0 var(--oi-s3);
  font-family: var(--oi-font-display);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--oi-graphite);
}

.oi-search-empty p {
  color: var(--oi-muted);
}


/* == WIDGETS DA LOJA == */

.woocommerce .widget,
.oi-shop-sidebar .widget {
  margin-bottom: var(--oi-s6);
  padding-bottom: var(--oi-s5);
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce .widget:last-child {
  border-bottom: 0;
}

.woocommerce .widget .widget-title,
.woocommerce .widget h2,
.oi-shop-sidebar .widget-title {
  margin: 0 0 var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--oi-gold);
}

.woocommerce .widget ul.product-categories,
.woocommerce .widget_product_categories ul,
.woocommerce .widget_layered_nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce .widget_product_categories ul li,
.woocommerce .widget_layered_nav ul li {
  padding: var(--oi-s2) 0;
  border: 0;
  list-style: none;
}

.woocommerce .widget_product_categories ul li a,
.woocommerce .widget_layered_nav ul li a {
  font-family: var(--oi-font-body);
  font-size: .9rem;
  color: var(--oi-ink);
  text-decoration: none;
  transition: color var(--oi-t);
}

.woocommerce .widget_product_categories ul li a:hover,
.woocommerce .widget_layered_nav ul li.chosen a {
  color: var(--oi-gold-ink);
}

.woocommerce .widget_product_categories ul li .count,
.woocommerce .widget_layered_nav ul li .count {
  font-size: .74rem;
  color: var(--oi-muted);
}

.woocommerce .widget_product_categories ul li.current-cat > a {
  font-weight: 600;
  color: var(--oi-graphite);
}

.woocommerce .widget_product_categories ul ul.children {
  margin: var(--oi-s2) 0 0 var(--oi-s4);
  padding-left: var(--oi-s3);
  border-left: 1px solid var(--oi-line);
}

/* Filtro por preço. */
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
  height: 3px;
  background: var(--oi-line);
  border-radius: 0;
}

.woocommerce .widget_price_filter .ui-slider .ui-slider-range {
  background: var(--oi-gold);
}

.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
  top: -6px;
  width: 15px;
  height: 15px;
  background: var(--oi-graphite);
  border: 2px solid var(--oi-white);
  border-radius: 50%;
  box-shadow: var(--oi-shadow-sm);
}

.woocommerce .widget_price_filter .price_slider_amount {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--oi-s3);
  margin-top: var(--oi-s4);
  font-size: .82rem;
  color: var(--oi-muted);
}

.woocommerce .widget_price_filter .price_slider_amount .button {
  order: 2;
  margin-left: auto;
  min-height: 38px;
  padding: .45rem 1rem;
  font-size: .68rem;
}

.woocommerce .widget_price_filter .price_label {
  order: 1;
  float: none;
}

/* Produtos em widget. */
.woocommerce ul.product_list_widget li {
  display: flex;
  align-items: center;
  gap: var(--oi-s3);
  padding: var(--oi-s3) 0;
  border-bottom: 1px solid var(--oi-line);
}

.woocommerce ul.product_list_widget li:last-child {
  border-bottom: 0;
}

.woocommerce ul.product_list_widget li img {
  float: none;
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  max-width: none;
  margin: 0;
  padding: var(--oi-s1);
  object-fit: contain;
  background: var(--oi-cream);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
}

.woocommerce ul.product_list_widget li a {
  font-family: var(--oi-font-display);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--oi-graphite);
  text-decoration: none;
}

.woocommerce ul.product_list_widget li .amount,
.woocommerce ul.product_list_widget li .woocommerce-Price-amount {
  font-family: var(--oi-font-body);
  font-size: .88rem;
  font-weight: 600;
  color: var(--oi-graphite);
}

.woocommerce ul.product_list_widget li del .amount {
  font-weight: 400;
  color: var(--oi-muted);
}

/* Mini carrinho. */
.woocommerce .widget_shopping_cart .total,
.woocommerce.widget_shopping_cart .total {
  padding: var(--oi-s3) 0;
  margin: var(--oi-s3) 0;
  border-top: 1px solid var(--oi-line);
  border-bottom: 1px solid var(--oi-line);
  font-family: var(--oi-font-body);
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--oi-muted);
}

.woocommerce .widget_shopping_cart .total strong {
  color: var(--oi-graphite);
}

.woocommerce .widget_shopping_cart .buttons {
  display: flex;
  flex-direction: column;
  gap: var(--oi-s2);
  margin: 0;
}

.woocommerce .widget_shopping_cart .buttons a {
  display: flex;
  width: 100%;
  margin: 0;
}

.woocommerce .widget_shopping_cart .buttons a.checkout {
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}


/* == LOJA COM BARRA LATERAL (OPCIONAL) == */

@media (min-width: 1100px) {
  .oi-shop--sidebar {
    display: grid;
    grid-template-columns: 244px minmax(0, 1fr);
    gap: var(--oi-s8);
    align-items: start;
  }

  .oi-shop--sidebar > .oi-shop-head,
  .oi-shop--sidebar > .woocommerce-breadcrumb,
  .oi-shop--sidebar > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
  }

  .oi-shop-sidebar {
    position: sticky;
    top: 120px;
  }
}


/* == BLOCOS DO WOOCOMMERCE (GUTENBERG) ==
   Alinhamento mínimo caso o cliente use blocos em páginas soltas. */

.wc-block-grid__product-title,
.wc-block-components-product-name {
  font-family: var(--oi-font-display);
  font-weight: 500;
  color: var(--oi-ink);
}

.wc-block-grid__product-price,
.wc-block-components-product-price {
  font-family: var(--oi-font-body);
  font-weight: 600;
  color: var(--oi-graphite);
}

.wc-block-components-button:not(.is-link) {
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-radius: var(--oi-radius);
}

.wc-block-components-button:not(.is-link):hover {
  background: var(--oi-ink);
}


/* == UTILITÁRIOS DE LOJA == */

.oi-shop-note {
  margin-top: var(--oi-s4);
  font-size: .8rem;
  line-height: 1.6;
  color: var(--oi-muted);
}

.oi-price-tag {
  display: inline-flex;
  align-items: baseline;
  gap: var(--oi-s2);
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.woocommerce .blockUI.blockOverlay {
  background: var(--oi-cream) !important; /* !important: o Woo aplica a cor
    do overlay via style inline no elemento durante o AJAX do carrinho. */
  opacity: .6 !important;
}


/* == MARCAÇÃO DOS TEMPLATES DE /woocommerce/ ==
   Regras que fecham a distância entre o que os templates em
   woocommerce/ e o functions.php realmente imprimem e o que as seções
   acima estilizam. Sem elas o cartão perde o alinhamento do botão, o
   parcelamento sai sem estilo e o seletor de quantidade fica cru.

   Fica no fim do arquivo de propósito: são ajustes de encaixe, e a
   ordem na cascata é o que os faz vencer sem !important. */


/* --- Corpo do cartão (.oi-card-body) ---
   O `margin-top: auto` do botão (seção CARTÃO) só empurra o botão para o
   rodapé se o PAI dele for uma coluna flex. Como o botão agora vive dentro
   de .oi-card-body, é este wrapper que precisa ser a coluna — senão os
   cartões da mesma linha param de terminar na mesma altura.

   Sem padding próprio: título, preço, parcelamento e botão já trazem o
   respiro lateral deles. */

.woocommerce ul.products li.product .oi-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

/* Link do título dentro do <h3>. */
.woocommerce ul.products li.product .oi-card-title__link {
  color: inherit;
  text-decoration: none;
  border-bottom: 0;
  transition: color var(--oi-t);
}

.woocommerce ul.products li.product .oi-card-title__link:hover {
  color: var(--oi-graphite);
}

.woocommerce ul.products li.product .oi-card-title__link:focus-visible {
  outline: 2px solid var(--oi-gold);
  outline-offset: 2px;
}

/* Área da foto: o wrapper é quem recebe a caixa e o recorte. */
.woocommerce ul.products li.product .oi-card-media__link {
  display: block;
}


/* --- Parcelamento (.oi-parcelamento) ---
   offimport_print_parcelamento() imprime um <p class="oi-parcelamento">, não
   o <span class="oi-installment"> previsto no contrato do topo deste arquivo.
   As duas grafias ficam válidas: aqui a de <p>, com a margem do parágrafo
   zerada. */

.oi-parcelamento {
  display: block;
  margin: var(--oi-s1) 0 0;
  padding: 0 var(--oi-s4);
  font-family: var(--oi-font-body);
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .01em;
  color: var(--oi-muted);
}

.oi-parcelamento .amount,
.oi-parcelamento bdi {
  font-weight: 600;
  color: var(--oi-ink);
}

.woocommerce div.product .oi-parcelamento--single {
  margin: 0 0 var(--oi-s5);
  padding: 0;
  font-size: .95rem;
}


/* --- Bloco de confiança do produto (.oi-buy-trust) ---
   Mesma leitura do .oi-product-trust, mas em <ul>/<li> e dentro do
   <form class="cart"> — que é flex, daí o flex-basis de 100% para ocupar a
   linha inteira em vez de disputar espaço com o botão de comprar. */

.woocommerce div.product form.cart .oi-buy-trust {
  flex: 1 1 100%;
}

.oi-buy-trust {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin: var(--oi-s5) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--oi-line);
  border-bottom: 1px solid var(--oi-line);
}

.oi-buy-trust__item {
  padding: var(--oi-s4) 0;
  list-style: none;
}

.oi-buy-trust__item + .oi-buy-trust__item {
  border-top: 1px solid var(--oi-line);
}

@media (min-width: 640px) {
  .oi-buy-trust {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .oi-buy-trust__item {
    padding: var(--oi-s5) var(--oi-s4);
  }

  .oi-buy-trust__item:first-child {
    padding-left: 0;
  }

  .oi-buy-trust__item:last-child {
    padding-right: 0;
  }

  .oi-buy-trust__item + .oi-buy-trust__item {
    border-top: 0;
    border-left: 1px solid var(--oi-line);
  }
}

.oi-buy-trust__title {
  display: block;
  font-family: var(--oi-font-body);
  font-size: .7rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--oi-graphite);
}

.oi-buy-trust__text {
  display: block;
  margin-top: var(--oi-s1);
  font-size: .82rem;
  line-height: 1.55;
  color: var(--oi-muted);
}


/* --- Seletor de quantidade (.oi-qty) ---
   Os botões nascem com [hidden] no template e o main.js os revela junto com
   a classe .oi-qty--enhanced. Enquanto o JS não roda, o que aparece é o
   <input type="number"> puro, com as setinhas nativas do navegador — por
   isso as setinhas só somem no estado "enhanced". */

.oi-qty {
  display: inline-flex;
  align-items: stretch;
}

.oi-qty__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  min-height: 56px;
  padding: 0;
  font-family: var(--oi-font-body);
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1;
  color: var(--oi-graphite);
  background: var(--oi-white);
  border: 1px solid var(--oi-line);
  border-radius: var(--oi-radius);
  cursor: pointer;
  transition: color var(--oi-t), background-color var(--oi-t), border-color var(--oi-t);
  -webkit-appearance: none;
  appearance: none;
}

/* Bordas encostadas: os três controles dividem a mesma linha. */
.oi-qty__btn--minus {
  margin-right: -1px;
}

.oi-qty__btn--plus {
  margin-left: -1px;
}

.oi-qty__btn:hover,
.oi-qty__btn:focus-visible {
  position: relative;
  z-index: 1;
  color: var(--oi-cream);
  background: var(--oi-graphite);
  border-color: var(--oi-graphite);
}

.oi-qty__btn:focus-visible {
  outline: 2px solid var(--oi-gold);
  outline-offset: 2px;
}

.oi-qty__btn[disabled] {
  opacity: .38;
  cursor: not-allowed;
}

.oi-qty__btn[disabled]:hover {
  color: var(--oi-graphite);
  background: var(--oi-white);
  border-color: var(--oi-line);
}

/* Campo mais estreito quando ladeado pelos botões. */
.woocommerce div.product form.cart div.quantity.oi-qty .qty,
.woocommerce .quantity.oi-qty .qty {
  width: 68px;
}

.oi-qty--enhanced .qty {
  -moz-appearance: textfield;
  appearance: textfield;
}

.oi-qty--enhanced .qty::-webkit-outer-spin-button,
.oi-qty--enhanced .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  height: auto;
  margin: 0;
  opacity: 0;
}

/* No carrinho o controle é menor: a célula da tabela é apertada. */
.woocommerce table.cart .oi-qty__btn,
.woocommerce-cart table.cart .oi-qty__btn {
  width: 40px;
  min-height: 44px;
}

.woocommerce table.cart .quantity.oi-qty .qty {
  width: 56px;
  min-height: 44px;
}

@media (max-width: 639px) {
  .woocommerce div.product form.cart div.quantity.oi-qty {
    display: flex;
  }

  .woocommerce div.product form.cart div.quantity.oi-qty .qty {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }
}


/* == MOVIMENTO REDUZIDO == */

@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product,
  .woocommerce ul.products li.product img,
  .woocommerce ul.products li.product .button {
    transition-duration: 1ms;
  }

  .woocommerce ul.products li.product:hover {
    transform: none;
  }

  .woocommerce ul.products li.product:hover .oi-loop-media img {
    transform: none;
  }
}


/* == IMPRESSÃO == */

@media print {
  .woocommerce .woocommerce-ordering,
  .woocommerce nav.woocommerce-pagination,
  .woocommerce .related,
  .woocommerce .upsells,
  .woocommerce a.button,
  .woocommerce button.button,
  .oi-buy-whatsapp {
    display: none;
  }

  .woocommerce div.product {
    display: block;
  }

  .woocommerce table.shop_table,
  .woocommerce ul.order_details {
    border-color: var(--oi-muted);
  }
}
