/**
Theme Name: Shanti Child
Author: Shanti · Alessa Brilhante
Description: Tema filho do Astra com o design system da Shanti (MIV 04 · site e-commerce v1). Tokens de cor, tipografia Fraunces + DM Sans, botões pill e estilização WooCommerce. Mobile first — 80% do tráfego é celular.
Version: 1.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tema-child
Template: astra
*/

/* ════════════════════════════════════════════
   01 · TOKENS — design system Shanti v1
   ════════════════════════════════════════════ */
:root {
  /* marca · estrutura */
  --shanti-rosa: #b5165e;
  --shanti-rosa-escuro: #8f1149;   /* hover do rosa */
  --shanti-rosa-mid: #e8b4cf;
  --shanti-rosa-light: #f7e8f0;
  --shanti-rose: #f8dfdf;          /* fundo de foto de produto */
  --shanti-preto: #111010;
  --shanti-cinza-escuro: #1e1e1e;
  --shanti-cinza: #666666;
  --shanti-creme: #fefcfa;
  --shanti-bege: #ede9e4;
  --shanti-bege-mid: #e0dbd5;
  /* novas · paleta 2026 */
  --shanti-verde: #123524;
  --shanti-verde-soft: #e7efe9;
  --shanti-salvia: #9cad9b;
  /* feedback */
  --shanti-ok: #1a7a4a;
  --shanti-atencao: #c8890a;
  --shanti-erro: #c0392b;
  /* tipografia */
  --shanti-serif: 'Fraunces', Georgia, serif;
  --shanti-sans: 'DM Sans', -apple-system, sans-serif;
  /* forma */
  --shanti-radius-card: 16px;
  --shanti-radius-bloco: 20px;
  --shanti-radius-pill: 100px;
  --shanti-sombra-hover: 0 14px 30px rgba(17, 16, 16, 0.09);
}

/* ════════════════════════════════════════════
   02 · BASE
   ════════════════════════════════════════════ */
body {
  background-color: var(--shanti-bege);
  font-family: var(--shanti-sans);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title {
  font-family: var(--shanti-serif);
  font-weight: 300;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

/* assinatura da marca: destaque itálico rosa dentro de títulos */
h1 em, h2 em, h3 em, h4 em,
.shanti-destaque {
  font-style: italic;
  color: var(--shanti-rosa);
}

/* label uppercase (categorias, eyebrows) */
.shanti-label {
  font-family: var(--shanti-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

a { transition: color 0.15s ease; }

/* ════════════════════════════════════════════
   03 · BOTÕES — pill em DM Sans (legibilidade)
   Fraunces fica para títulos e preços.
   (Astra, Elementor, WooCommerce e Gutenberg)
   ════════════════════════════════════════════ */
.ast-button,
.button,
.wp-block-button__link,
.elementor-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.wc-block-components-button {
  font-family: var(--shanti-sans) !important;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.02em;
  font-size: 15px;
  border-radius: var(--shanti-radius-pill) !important;
  padding: 14px 30px;
  line-height: 1.2;
  border: none;
  transition: transform 0.15s ease, background-color 0.15s ease, opacity 0.15s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.wp-block-button__link:hover,
.elementor-button:hover {
  transform: translateY(-1px);
}

/* primário rosa (compra) */
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce #respond input#submit.alt,
.wc-block-components-button:not(.is-style-outline) {
  background-color: var(--shanti-rosa);
  color: #fff;
}
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover {
  background-color: var(--shanti-rosa-escuro);
  color: #fff;
}

/* secundário preto — todo botão de card (sacola, ver opções, ler mais) */
.woocommerce ul.products li.product .button,
.woocommerce a.add_to_cart_button,
.woocommerce a.product_type_simple,
.woocommerce a.product_type_variable,
.woocommerce a.product_type_grouped,
.woocommerce a.product_type_external {
  background-color: var(--shanti-preto);
  color: #fff;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce a.add_to_cart_button:hover,
.woocommerce a.product_type_simple:hover,
.woocommerce a.product_type_variable:hover {
  background-color: var(--shanti-rosa);
  color: #fff;
}

/* desabilitado / esgotado */
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
  background-color: var(--shanti-bege-mid);
  color: #999;
}

@media (prefers-reduced-motion: reduce) {
  .ast-button, .button, .elementor-button,
  .woocommerce a.button, .woocommerce ul.products li.product {
    transition: none !important;
  }
}

/* ════════════════════════════════════════════
   04 · WOOCOMMERCE — vitrine e cards de produto
   ════════════════════════════════════════════ */

/* card do produto */
.woocommerce ul.products li.product {
  background: var(--shanti-creme);
  border: 1px solid var(--shanti-bege-mid);
  border-radius: var(--shanti-radius-card);
  overflow: hidden;
  padding-bottom: 18px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  text-align: left;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-3px);
  box-shadow: var(--shanti-sombra-hover);
}

/* foto do produto sobre fundo rosé (alternância de fundos via nth-child) */
.woocommerce ul.products li.product a img {
  background: var(--shanti-rose);
  margin-bottom: 0;
}
.woocommerce ul.products li.product:nth-child(3n+2) a img { background: var(--shanti-verde-soft); }
.woocommerce ul.products li.product:nth-child(3n) a img { background: var(--shanti-bege); }

/* conteúdo do card */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .astra-shop-summary-wrap .woocommerce-loop-product__title {
  font-family: var(--shanti-serif);
  font-weight: 300;
  font-size: 19px;
  letter-spacing: -0.01em;
  color: var(--shanti-preto);
  padding: 4px 18px 0;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap {
  padding: 10px 0 0;
}
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .astra-shop-summary-wrap .price {
  font-family: var(--shanti-serif);
  font-weight: 300;
  font-size: 22px;
  color: var(--shanti-preto);
  font-variant-numeric: tabular-nums;
  padding: 0 18px;
}
.woocommerce ul.products li.product .price del {
  font-size: 14px;
  color: #aaa;
  margin-right: 8px;
  opacity: 1;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none;
  font-weight: 300;
}
/* botão alinhado à esquerda, na mesma coluna do nome/preço (padding 18px) */
.woocommerce ul.products li.product .button {
  display: block;
  width: fit-content;
  margin: 12px 18px 0 !important;
  font-size: 15px;
  padding: 10px 26px;
  text-align: center;
}
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .ast-woo-shop-product-description {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--shanti-cinza);
  padding: 0 18px;
}

/* ícone de sacola sobre a foto: só a bolinha creme, sem caixa atrás */
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce ul.products li.product .ast-on-card-button:hover,
.woocommerce ul.products li.product a.ast-on-card-button.add_to_cart_button,
.woocommerce ul.products li.product a.ast-on-card-button.product_type_simple,
.woocommerce ul.products li.product a.ast-on-card-button.product_type_variable {
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  border-radius: 0 !important;
}
.woocommerce ul.products li.product .ast-on-card-button .ahfb-svg-iconset,
.woocommerce ul.products li.product .ast-on-card-button:hover .ahfb-svg-iconset {
  background: var(--shanti-creme);
  color: var(--shanti-preto);
  opacity: 1;
  box-shadow: 0 2px 10px rgba(17, 16, 16, 0.12);
}
/* tooltip do ícone: pill preto, tipografia da marca */
.woocommerce ul.products li.product .ast-card-action-tooltip {
  font-family: var(--shanti-sans);
  font-size: 12.5px;
  font-weight: 500;
  border-radius: var(--shanti-radius-pill);
}

/* selo de promoção — pill rosa (important vence o estilo do Astra) */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
body .woocommerce span.onsale,
.woocommerce .ast-onsale-card,
span.ast-on-card-button.ast-onsale-card {
  background: var(--shanti-rosa) !important;
  color: #fff !important;
  font-family: var(--shanti-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: var(--shanti-radius-pill);
  padding: 7px 15px;
  line-height: 1;
  min-height: 0;
  min-width: 0;
  top: 12px;
  left: 12px;
  right: auto;
  margin: 0;
}

/* selo "última peça" na vitrine e na página do produto */
.woocommerce ul.products li.product .ast-on-card-estoque {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  background: var(--shanti-preto);
  color: var(--shanti-creme);
}
.woocommerce div.product .ast-on-card-estoque {
  display: inline-flex;
  margin-bottom: 12px;
  background: var(--shanti-preto);
  color: var(--shanti-creme);
}
/* se houver desconto junto, o de promoção desce */
.woocommerce ul.products li.product .ast-on-card-estoque ~ .onsale,
.woocommerce ul.products li.product .ast-on-card-estoque ~ .ast-onsale-card { top: 46px; }

/* estrelas de avaliação — rosa (assinatura Shanti) */
.woocommerce .star-rating,
.woocommerce .star-rating::before,
.woocommerce p.stars a {
  color: var(--shanti-rosa);
}
.woocommerce ul.products li.product .star-rating {
  margin: 4px 18px;
  font-size: 12px;
}

/* ════════════════════════════════════════════
   05 · PÁGINA DE PRODUTO
   ════════════════════════════════════════════ */
.woocommerce div.product .product_title {
  font-family: var(--shanti-serif);
  font-weight: 300;
  font-size: clamp(28px, 5vw, 40px);
  letter-spacing: -0.02em;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--shanti-serif);
  font-weight: 300;
  font-size: clamp(26px, 4vw, 34px);
  color: var(--shanti-preto);
  font-variant-numeric: tabular-nums;
}
.woocommerce div.product p.price del { font-size: 0.55em; color: #aaa; }
.woocommerce div.product p.price ins { text-decoration: none; }

/* galeria com o fundo rosé da marca */
.woocommerce div.product div.images img {
  background: var(--shanti-rose);
  border-radius: var(--shanti-radius-bloco);
}

/* abas de descrição */
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--shanti-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ════════════════════════════════════════════
   06 · CARRINHO · CHECKOUT · CONTA · AVISOS
   ════════════════════════════════════════════ */
.woocommerce-message,
.woocommerce-info {
  border-top-color: var(--shanti-rosa);
  background: var(--shanti-rosa-light);
  color: var(--shanti-preto);
  border-radius: 12px;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--shanti-rosa); }
.woocommerce-error {
  border-top-color: var(--shanti-erro);
  border-radius: 12px;
}

/* campos de formulário */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
input[type="text"], input[type="email"], input[type="tel"],
input[type="password"], input[type="search"], textarea, select {
  border-radius: 12px;
  border: 1px solid var(--shanti-bege-mid);
  background: var(--shanti-creme);
  padding: 12px 16px;
  font-family: var(--shanti-sans);
}
.woocommerce form .form-row input.input-text:focus,
input[type="text"]:focus, input[type="email"]:focus,
input[type="search"]:focus, textarea:focus, select:focus {
  border-color: var(--shanti-rosa);
  outline: none;
  box-shadow: 0 0 0 3px var(--shanti-rosa-light);
}

/* tabela do carrinho */
.woocommerce table.shop_table {
  border: 1px solid var(--shanti-bege-mid);
  border-radius: var(--shanti-radius-card);
  background: var(--shanti-creme);
}
.woocommerce table.shop_table th {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--shanti-cinza);
}

/* ════════════════════════════════════════════
   07 · SELOS SHANTI (badges auxiliares p/ Elementor)
   ════════════════════════════════════════════ */
.shanti-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 7px 15px;
  border-radius: var(--shanti-radius-pill);
  line-height: 1;
}
.shanti-badge--novo { background: var(--shanti-rosa-light); color: var(--shanti-rosa); border: 1px solid var(--shanti-rosa-mid); }
.shanti-badge--off { background: var(--shanti-rosa); color: #fff; }
.shanti-badge--frete { background: var(--shanti-verde); color: #fff; }
.shanti-badge--ultimas { background: #fef7e6; color: var(--shanti-atencao); }
.shanti-badge--esgotado { background: var(--shanti-bege-mid); color: var(--shanti-cinza); }

/* ════════════════════════════════════════════
   07b · FAQ — acordeão nativo (sem JS)
   ════════════════════════════════════════════ */
.shanti-faq details {
  background: var(--shanti-creme);
  border: 1px solid var(--shanti-bege-mid);
  border-radius: var(--shanti-radius-card);
  padding: 18px 22px;
  margin-bottom: 12px;
}
.shanti-faq summary {
  font-family: var(--shanti-serif);
  font-weight: 300;
  font-size: 19px;
  letter-spacing: -0.01em;
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 34px;
}
.shanti-faq summary::-webkit-details-marker { display: none; }
.shanti-faq summary::after {
  content: '+';
  position: absolute;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--shanti-rosa);
  font-size: 24px;
  font-weight: 300;
  line-height: 1;
}
.shanti-faq details[open] summary::after { content: '−'; }
.shanti-faq details[open] summary { color: var(--shanti-rosa); }
.shanti-faq details p { margin: 12px 0 4px; color: var(--shanti-cinza); }

/* ════════════════════════════════════════════
   07d · HEADER — busca pill + carrinho + menu
   ════════════════════════════════════════════ */
/* campo de busca no formato pill do design system */
.ast-header-search .search-form .search-field,
.ast-header-search input.search-field {
  border-radius: var(--shanti-radius-pill);
  background: var(--shanti-bege);
  border: 1.5px solid transparent;
  padding: 10px 18px 10px 42px;
  font-size: 14px;
}
/* wrappers da busca sem fundo branco vazando nas bordas da pill */
.ast-header-search .ast-search-menu-icon,
.ast-header-search .ast-search-menu-icon.ast-inline-search,
.ast-header-search .search-form,
.ast-header-search .search-form label {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: var(--shanti-radius-pill);
}
.ast-header-search .search-form .search-field:focus {
  background: var(--shanti-creme);
  border-color: var(--shanti-rosa);
  box-shadow: 0 0 0 3px var(--shanti-rosa-light);
}
.ast-header-search .search-form { position: relative; }

/* menu: item ativo/hover em rosa */
.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link {
  color: var(--shanti-rosa);
}

/* sacola: ícone limpo (sem círculo/fundo), contador rosa */
.ast-header-woo-cart .ast-cart-menu-wrap,
.ast-header-woo-cart .ast-addon-cart-wrap,
.ast-site-header-cart .ast-site-header-cart-li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}
.ast-header-woo-cart .ast-icon-shopping-cart svg,
.ast-site-header-cart i.astra-icon {
  color: var(--shanti-preto);
}
/* ícone 'bag' do Astra: o .count é o corpo da sacola — preto, número em creme
   (mesmo visual no desktop e no celular) */
.ast-header-woo-cart .ast-cart-menu-wrap .count,
.ast-cart-menu-wrap .count,
.ast-header-woo-cart .ast-addon-cart-wrap .ast-count-text {
  background: var(--shanti-preto);
  color: var(--shanti-creme);
  border-color: var(--shanti-preto);
}
/* alça da sacola acompanha o corpo */
.ast-cart-menu-wrap .count::after,
.ast-cart-menu-wrap .count::before {
  border-color: var(--shanti-preto);
}
/* no celular a sacola vinha grande demais */
@media (max-width: 921px) {
  .ast-header-woo-cart .ast-cart-menu-wrap .count,
  .ast-cart-menu-wrap .count {
    transform: scale(0.8);
    transform-origin: center;
  }
}

/* ── dropdown da busca ao vivo ── */
.shanti-busca-drop {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  min-width: 300px;
  background: var(--shanti-creme);
  border: 1px solid var(--shanti-bege-mid);
  border-radius: var(--shanti-radius-card);
  box-shadow: 0 16px 40px rgba(17, 16, 16, 0.12);
  padding: 8px 0;
  z-index: 9999;
  max-height: 70vh;
  overflow-y: auto;
}
.shanti-busca-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  font-size: 14px;
  color: var(--shanti-preto);
  text-decoration: none;
}
.shanti-busca-item:hover,
.shanti-busca-item:focus-visible {
  background: var(--shanti-rosa-light);
  color: var(--shanti-preto);
}
.shanti-busca-thumb {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  object-fit: cover;
  background: var(--shanti-rose);
  flex-shrink: 0;
}
.shanti-busca-thumb--vazia { display: inline-block; }
.shanti-busca-nome { flex: 1; line-height: 1.3; }
.shanti-busca-nome em {
  font-style: normal;
  color: var(--shanti-rosa);
  font-weight: 600;
}
.shanti-busca-promo {
  display: inline-block;
  margin-left: 8px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  background: var(--shanti-rosa);
  border-radius: var(--shanti-radius-pill);
  padding: 3px 8px;
  vertical-align: middle;
}
.shanti-busca-preco {
  font-family: var(--shanti-serif);
  font-weight: 300;
  font-size: 16px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.shanti-busca-todos {
  display: block;
  padding: 12px 18px 6px;
  margin-top: 6px;
  border-top: 1px solid var(--shanti-bege);
  font-family: var(--shanti-serif);
  font-style: italic;
  font-size: 14.5px;
  color: var(--shanti-rosa);
  text-decoration: none;
}
.shanti-busca-vazia {
  padding: 16px 18px;
  font-size: 14px;
  color: var(--shanti-cinza);
}
.shanti-busca-vazia small { color: #aaa; }

/* ícone da lupa fica dentro da pill, à direita */
.ast-header-search .search-form .search-field {
  padding: 10px 46px 10px 18px;
}

/* linha divisória do header no tom do fundo (sem risco escuro) */
.main-header-bar,
.ast-below-header-bar,
.ast-above-header-bar {
  border-bottom-color: var(--shanti-bege-mid) !important;
}

/* mobile: busca em barra cheia abaixo do header */
@media (max-width: 921px) {
  .ast-below-header-bar .ast-header-search,
  .ast-below-header-bar .ast-builder-layout-element,
  .ast-below-header-bar .ast-header-search .ast-search-menu-icon,
  .ast-below-header-bar .ast-header-search .ast-search-menu-icon.ast-inline-search,
  .ast-below-header-bar .ast-header-search form.search-form,
  .ast-below-header-bar .ast-header-search .ast-search-menu-icon .search-form .search-field,
  .ast-below-header-bar .ast-header-search .search-field {
    width: 100% !important;
    max-width: 100% !important;
  }
  /* o Astra embrulha o input num <label> que não estica no flex */
  .ast-below-header-bar .ast-header-search .search-form label {
    flex: 1 1 auto !important;
    width: 100% !important;
  }
  .ast-below-header-bar form.search-form,
  .ast-below-header-bar .ast-search-menu-icon {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
  }
  .ast-below-header-bar { padding: 4px 16px 12px; }
  .ast-below-header-bar .search-submit,
  .ast-below-header-bar .ast-search-icon {
    right: 14px;
  }
}

/* ════════════════════════════════════════════
   07c · RODAPÉ SHANTI (design system · seção 06)
   ════════════════════════════════════════════ */
.shanti-footer {
  background: var(--shanti-preto);
  color: rgba(255, 255, 255, 0.55);
  margin-top: 64px;
}
.shanti-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 24px 24px;
}
.shanti-footer__cols {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 32px;
}
.shanti-footer__brand a {
  display: inline-block;
  color: var(--shanti-creme);
}
.shanti-footer-logo { width: auto; display: block; }
.shanti-footer__brand p {
  font-size: 15px;
  line-height: 1.6;
  max-width: 250px;
  margin-top: 14px;
}
.shanti-footer__col h2 {
  font-family: var(--shanti-sans);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--shanti-rosa-mid);
  margin: 0 0 14px;
}
.shanti-footer__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.shanti-footer__col a {
  color: rgba(255, 255, 255, 0.55);
  font-size: 15px;
  text-decoration: none;
}
.shanti-footer__col a:hover { color: var(--shanti-rosa-mid); }
.shanti-footer__col a:focus-visible {
  outline: 2px solid var(--shanti-rosa-mid);
  outline-offset: 2px;
}
.shanti-footer__legal {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: 36px;
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.38);
}
.shanti-footer__legal a {
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
}
.shanti-footer__legal a:hover { color: var(--shanti-rosa-mid); }

/* rodapé no celular: marca em cima, colunas de links lado a lado */
@media (max-width: 768px) {
  .shanti-footer__cols { grid-template-columns: 1fr 1fr; }
  .shanti-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 400px) {
  .shanti-footer__cols { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════
   08 · MOBILE FIRST — 80% do tráfego
   ════════════════════════════════════════════ */
/* celular: grade de 2 colunas garantida (o grid do Astra falha em alguns contextos) */
@media (max-width: 544px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100%;
  }
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
  }
  .woocommerce ul.products li.product { padding-bottom: 14px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 16px;
    padding: 4px 12px 0;
  }
  .woocommerce ul.products li.product .price {
    font-size: 16px;
    padding: 0 12px;
    display: block;
  }
  .woocommerce ul.products li.product .price del { font-size: 12px; display: block; margin: 0; }
  .woocommerce ul.products li.product .button {
    display: block;
    width: fit-content;
    max-width: calc(100% - 24px);
    margin: 10px 12px 0 !important;
    font-size: 13px;
    padding: 10px 18px;
    text-align: center;
  }
  .woocommerce ul.products li.product .star-rating { margin: 4px 12px; }
  .woocommerce ul.products li.product .ast-woo-product-category { padding: 0 12px; }
}

/* toque confortável: alvos ≥ 44px */
@media (max-width: 921px) {
  .woocommerce a.button, .woocommerce button.button,
  .ast-button, .elementor-button, .wp-block-button__link {
    min-height: 44px;
  }
  /* botões de compra em largura total no celular */
  .woocommerce div.product form.cart .single_add_to_cart_button {
    width: 100%;
  }
}

/* tabela do carrinho vira lista no celular (Woo já cuida, só refinamos) */
@media (max-width: 768px) {
  .woocommerce table.shop_table_responsive tr {
    border-bottom: 1px solid var(--shanti-bege-mid);
  }
}
