/* ============================================================
   Páginas da loja (WooCommerce) no visual da rede Propague
   Carrinho, finalizar compra, pedido recebido, minha conta, rastreio, loja e produtos.
   O plugin Propague Box carrega este arquivo sozinho nessas páginas (body.pbx-loja) e põe
   o topo da rede em cima delas. Vale para as páginas do WooCommerce normais e para os
   blocos do WooCommerce no Elementor (Carrinho, Finalizar compra, Minha conta).
   Dois temas: claro (o padrão: o cinza claro das ofertas do site, cartões brancos) e escuro (o grafite
   das páginas da Central). Troca em Editores do site > Páginas da loja. O amarelo #FAB600 vale nos dois.
   Os códigos de página da rede (Loja, Contato, Cupons...) e os blocos do Propague Ofertas têm o visual
   deles: as regras de campos, títulos, textos e botões daqui pulam o que está dentro deles (:not(...)).
   ============================================================ */

body.pbx-loja {
  --pl-cor: #FAB600;
  --pl-cor-texto: var(--pl-cor);
  --pl-sobre-cor: #141519;
  --pl-painel: #101115;
  --pl-face: #1a1b20;
  --pl-face-2: #23242a;
  --pl-borda: #31333b;
  --pl-texto: #f5f5f7;
  --pl-texto-2: #b0b3bd;
  --pl-campo: #0c0d10;
  --pl-apagado: #7d808b;
  --pl-seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FAB600' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --pl-alerta: #ff6b57;
  --pl-verde: #34d17a;
  --pl-raio: 18px;
  --pl-sombra: 0 1px 0 rgb(255 255 255 / 4%) inset, 0 18px 34px -22px rgb(0 0 0 / 95%);
  --pl-hexagono: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  /* As variáveis dos blocos do WooCommerce no Elementor (se o Elementor usar estes nomes, já pegam o tema). */
  --sections-background-color: var(--pl-face);
  --sections-border-color: var(--pl-borda);
  --sections-border-radius: var(--pl-raio);
  --sections-title-color: var(--pl-texto);
  --sections-descriptions-color: var(--pl-texto-2);
  --forms-fields-background-color: var(--pl-campo);
  --forms-fields-normal-color: var(--pl-texto);
  --forms-fields-border-color: var(--pl-borda);
  --forms-fields-focus-border-color: var(--pl-cor);
  --forms-labels-color: var(--pl-texto);
  --links-normal-color: var(--pl-cor);
  --purchase-button-normal-background-color: var(--pl-cor);
  --purchase-button-normal-text-color: var(--pl-sobre-cor);
  --button-normal-background-color: var(--pl-cor);
  --button-normal-text-color: var(--pl-sobre-cor);
  background: var(--pl-painel) !important;
  color: var(--pl-texto);
}

/* Tema claro (o padrão): o mesmo cinza claro das ofertas do site e do tema claro do sistema.
   O tema escuro fica valendo quando o plugin põe a classe pbx-loja--escuro (Editores do site > Páginas da loja). */
body.pbx-loja.pbx-loja--claro {
  --pl-cor-texto: color-mix(in srgb, var(--pl-cor) 48%, #000);
  --pl-painel: #e9ebf0;
  --pl-face: #ffffff;
  --pl-face-2: #eef0f4;
  --pl-borda: #d5d8e0;
  --pl-texto: #0e0f13;
  --pl-texto-2: #474a55;
  --pl-campo: #f7f8fa;
  --pl-apagado: #8a8f9c;
  --pl-alerta: #c2410c;
  --pl-verde: #128a43;
  --pl-sombra: 0 1px 2px rgb(20 21 25 / 7%), 0 14px 30px -18px rgb(20 21 25 / 30%);
  --pl-seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23785700' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
body.pbx-loja.pbx-loja--claro :is(.shop_table .product-thumbnail img, ul.products li.product img, div.product .woocommerce-product-gallery img, .wc-block-product-template > li img) { box-shadow: 0 0 0 1px var(--pl-borda); }

/* O fundo da página fica o do tema (cinza claro ou grafite), de ponta a ponta. As caixas do Elementor que guardam a loja ficam
   transparentes (as outras, como o cabeçalho e o rodapé do site, continuam como estão). */
body.pbx-loja :is(#page, .site, .site-content, #content, #primary, .site-main, main#main, .page-content, .content-area) { background-color: transparent !important; }
body.pbx-loja :is(.e-con, .elementor-section, .elementor-column, .elementor-widget-wrap):has(:is(div.woocommerce, div.product, ul.products, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout)) { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
body.pbx-loja :is(.e-con, .elementor-section, .elementor-column, .elementor-widget-wrap):has(:is(div.woocommerce, div.product, ul.products))::before { display: none !important; }

/* ---------- O espaço da loja: até 1440px, no meio, com respiro nos lados e embaixo (o padrão da rede) ---------- */
body.pbx-loja :is(.site-main, main) > :is(div.woocommerce, .woocommerce-notices-wrapper, div.product),
body.pbx-loja .entry-content > div.woocommerce,
body.pbx-loja .wp-block-post-content > div.woocommerce { max-width: 1440px; margin-left: auto; margin-right: auto; }
body.pbx-loja div.woocommerce { color: var(--pl-texto); font-size: 15px; line-height: 1.55; padding-bottom: 60px; }
body.pbx-loja div.woocommerce *, body.pbx-loja div.product * { box-sizing: border-box; }

/* ---------- Textos ---------- */
body.pbx-loja :is(div.woocommerce, div.product, .woocommerce-notices-wrapper, ul.products, .woocommerce-products-header, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { color: var(--pl-texto); }
body.pbx-loja :is(div.woocommerce, div.product, .related, .upsells, .cross-sells) :is(h2, h3):not(.woocommerce-loop-product__title):not(.product_title):not(.wc-block-components-product-name):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) {
  margin: 0 0 16px;
  color: var(--pl-texto) !important;
  font-family: 'Bungee', system-ui, sans-serif !important;
  font-size: clamp(16px, 1.6vw, 20px) !important;
  font-weight: 400 !important;
  letter-spacing: .01em;
  line-height: 1.2;
  text-transform: uppercase;
}
body.pbx-loja :is(div.woocommerce, div.product) :is(p, li, td, th, dt, dd, span, label, legend, address, small, strong, em, mark):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) { color: inherit; }
body.pbx-loja :is(div.woocommerce, div.product) a:not(.button):not(.wc-block-components-button):not([class*="product"]):not(.remove):not(.woocommerce-MyAccount-navigation-link a):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) { color: var(--pl-cor-texto); text-decoration: none; }
body.pbx-loja :is(div.woocommerce, div.product) a:not(.button):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *):hover { text-decoration: underline; text-underline-offset: 3px; }
body.pbx-loja :is(div.woocommerce, div.product) mark:not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) { background: transparent; color: var(--pl-cor-texto); font-weight: 800; }
body.pbx-loja :is(div.woocommerce, div.product) :is(.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper, .description, .lost_password, .woocommerce-LostPassword) { color: var(--pl-texto-2); font-size: 13.5px; }

/* ---------- Cartões: cada parte num cartão escuro (um cartão dentro do outro vira um só) ---------- */
body.pbx-loja :is(
  div.woocommerce .col2-set > .col-1, div.woocommerce .col2-set > .col-2,
  div.woocommerce #order_review, .e-checkout__order_review, .e-checkout__order_review-2, .e-coupon-box,
  div.woocommerce form.woocommerce-cart-form, div.woocommerce .cart_totals, div.woocommerce .cross-sells,
  div.woocommerce form.login, div.woocommerce form.register, div.woocommerce form.lost_reset_password, div.woocommerce form.track_order, div.woocommerce form.checkout_coupon,
  .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content,
  .woocommerce-order-details, .woocommerce-customer-details, .woocommerce-order-downloads,
  div.product .woocommerce-tabs .panel
) {
  float: none;
  width: auto;
  margin: 0 0 20px;
  padding: clamp(18px, 2.4vw, 28px) !important;
  border: 1px solid var(--pl-borda) !important;
  border-radius: var(--pl-raio) !important;
  background: radial-gradient(420px 220px at 0% 0%, color-mix(in srgb, var(--pl-cor) 6%, transparent), transparent 70%), var(--pl-face) !important;
  box-shadow: var(--pl-sombra) !important;
  color: var(--pl-texto);
}
body.pbx-loja :is(div.woocommerce .col2-set > .col-1, div.woocommerce .col2-set > .col-2, div.woocommerce #order_review, .e-checkout__order_review, .e-checkout__order_review-2, .e-coupon-box, div.woocommerce form.woocommerce-cart-form, div.woocommerce .cart_totals, div.woocommerce .cross-sells, .woocommerce-MyAccount-content, .woocommerce-order-details, .woocommerce-customer-details)
  :is(.col2-set > .col-1, .col2-set > .col-2, #order_review, .e-checkout__order_review, .e-checkout__order_review-2, form.woocommerce-cart-form, .cart_totals, .woocommerce-order-details, .woocommerce-customer-details, .woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, #payment, .woocommerce-checkout-review-order, form.login, form.register, form.checkout_coupon) {
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
/* As partes do Finalizar compra dentro do bloco do Elementor que já são cartões dele: só a cor. */
body.pbx-loja .elementor-widget-woocommerce-checkout-page :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, #payment) { color: var(--pl-texto); }

/* ---------- Campos ---------- */
body.pbx-loja :is(div.woocommerce, div.product, form.woocommerce-ordering, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], input[type="url"], input[type="date"], input.input-text, textarea, select):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) {
  width: 100%;
  min-height: 48px;
  padding: 11px 14px !important;
  border: 1px solid var(--pl-borda) !important;
  border-radius: 12px !important;
  background: var(--pl-campo) !important;
  color: var(--pl-texto) !important;
  font: inherit;
  font-size: 15px !important;
  line-height: 1.4;
  box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s;
}
body.pbx-loja :is(div.woocommerce, div.product, form.woocommerce-ordering) textarea:not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) { min-height: 110px; resize: vertical; }
body.pbx-loja :is(div.woocommerce, div.product, form.woocommerce-ordering) select:not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) { appearance: none; -webkit-appearance: none; padding-right: 40px !important; background-image: var(--pl-seta) !important; background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 16px !important; cursor: pointer; }
body.pbx-loja :is(div.woocommerce, div.product, form.woocommerce-ordering, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(input, textarea, select):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *)::placeholder { color: var(--pl-apagado) !important; opacity: 1; }
body.pbx-loja :is(div.woocommerce, div.product, form.woocommerce-ordering, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(input, textarea, select):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *):focus { outline: none !important; border-color: var(--pl-cor) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--pl-cor) 22%, transparent) !important; }
body.pbx-loja :is(div.woocommerce, div.product) .form-row.woocommerce-invalid :is(input, select, textarea, .select2-selection) { border-color: var(--pl-alerta) !important; }
body.pbx-loja :is(div.woocommerce, div.product) :is(input[type="checkbox"], input[type="radio"]):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) { accent-color: var(--pl-cor); width: 17px; height: 17px; min-height: 0; margin: 0 8px 0 0; vertical-align: -3px; }
body.pbx-loja div.woocommerce .form-row { margin: 0 0 14px; padding: 0; }
body.pbx-loja div.woocommerce :is(.form-row label, label):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *) { display: block; margin: 0 0 6px; color: var(--pl-texto) !important; font-size: 13.5px; font-weight: 700; line-height: 1.35; }
body.pbx-loja div.woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox, .woocommerce-form-login__rememberme, .wc_payment_method > label, #ship-to-different-address label) { display: inline-flex !important; align-items: center; margin: 0; font-weight: 600; cursor: pointer; }
body.pbx-loja div.woocommerce :is(.required, abbr.required) { color: var(--pl-cor-texto) !important; border: 0; text-decoration: none; font-weight: 800; }
body.pbx-loja div.woocommerce .optional { color: var(--pl-texto-2); font-weight: 500; }
body.pbx-loja div.woocommerce .woocommerce-input-wrapper .description { margin-top: 6px; padding: 8px 12px; border-radius: 10px; background: var(--pl-face-2); color: var(--pl-texto-2); }

/* A caixa de escolher (país, estado) do WooCommerce. */
body.pbx-loja .select2-container--default .select2-selection--single { display: flex !important; align-items: center; padding: 0 !important; height: 48px !important; border: 1px solid var(--pl-borda) !important; border-radius: 12px !important; background: var(--pl-campo) !important; }
body.pbx-loja .select2-container--default .select2-selection--single .select2-selection__rendered { flex: 1; padding: 0 40px 0 14px !important; color: var(--pl-texto) !important; line-height: 46px !important; }
body.pbx-loja .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0 !important; right: 10px !important; height: 46px !important; }
body.pbx-loja .select2-container--default .select2-selection--single .select2-selection__arrow b { border-top-color: var(--pl-cor) !important; }
body.pbx-loja .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { border-bottom-color: var(--pl-cor) !important; border-top-color: transparent !important; }
body.pbx-loja .select2-container--default.select2-container--focus .select2-selection--single,
body.pbx-loja .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--pl-cor) !important; }
body.pbx-loja .select2-dropdown { overflow: hidden; border: 1px solid var(--pl-borda) !important; border-radius: 12px !important; background: var(--pl-face) !important; color: var(--pl-texto) !important; box-shadow: 0 18px 40px -16px rgb(0 0 0 / 80%); }
body.pbx-loja .select2-search--dropdown .select2-search__field { padding: 8px 12px !important; border: 1px solid var(--pl-borda) !important; border-radius: 10px !important; background: var(--pl-campo) !important; color: var(--pl-texto) !important; }
body.pbx-loja .select2-results__option { padding: 9px 14px !important; color: var(--pl-texto) !important; }
body.pbx-loja .select2-container--default .select2-results__option--highlighted[aria-selected],
body.pbx-loja .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--pl-cor) !important; color: var(--pl-sobre-cor) !important; }
body.pbx-loja .select2-container--default .select2-results__option[aria-selected="true"],
body.pbx-loja .select2-container--default .select2-results__option[data-selected="true"] { background: var(--pl-face-2) !important; }

/* ---------- Botões: o principal amarelo com brilho, os outros escuros ---------- */
body.pbx-loja :is(div.woocommerce, div.product, ul.products, .woocommerce-notices-wrapper, .widget_shopping_cart) :is(a.button, button.button, input.button, input[type="submit"], button[type="submit"], .checkout-button, .single_add_to_cart_button, .added_to_cart):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *),
body.pbx-loja .wc-block-components-button:not(.is-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 24px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--pl-cor) !important;
  color: var(--pl-sobre-cor) !important;
  font-family: inherit;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: normal;
  line-height: 1.2 !important;
  text-align: center;
  text-decoration: none !important;
  text-transform: none !important;
  text-shadow: none !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--pl-cor) 14%, transparent), 0 12px 26px -12px color-mix(in srgb, var(--pl-cor) 85%, transparent) !important;
  cursor: pointer;
  transition: transform .2s, filter .2s, opacity .2s;
}
body.pbx-loja :is(div.woocommerce, div.product, ul.products, .woocommerce-notices-wrapper) :is(a.button, button.button, input.button, button[type="submit"], .checkout-button, .single_add_to_cart_button):not(:is(.pbs, .pbk, .pbu, .pbm, .pbz, .pbc, .pbg, .pbt, .pbo-bloco) *):hover,
body.pbx-loja .wc-block-components-button:not(.is-link):hover { transform: translateY(-2px); filter: brightness(1.06); }
/* Os de apoio (atualizar carrinho, aplicar cupom, ver pedido, editar endereço). */
body.pbx-loja div.woocommerce :is(button[name="update_cart"], button[name="apply_coupon"], .woocommerce-orders-table .button, .woocommerce-Address .edit, .woocommerce-button--previous, .woocommerce-button--next, a.button.wc-backward:not(.return-to-shop a), .woocommerce-MyAccount-downloads .button, button[name="calc_shipping"]),
body.pbx-loja .woocommerce-notices-wrapper .button {
  min-height: 42px;
  padding: 0 18px !important;
  border: 1px solid var(--pl-borda) !important;
  background: var(--pl-face-2) !important;
  color: var(--pl-texto) !important;
  box-shadow: none !important;
  font-size: 14px !important;
}
body.pbx-loja div.woocommerce :is(button, .button):is(:disabled, [disabled], .disabled) { opacity: .45 !important; transform: none !important; cursor: not-allowed; }
body.pbx-loja div.woocommerce .woocommerce-Address .edit { display: inline-flex; min-height: 34px; margin-top: 4px; }

/* ---------- Avisos (deu certo, atenção, erro) ---------- */
body.pbx-loja :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice, .wc-block-components-notice-banner) {
  position: relative;
  display: block;
  margin: 0 0 18px !important;
  padding: 14px 18px 14px 52px !important;
  border: 1px solid var(--pl-borda) !important;
  border-left: 4px solid var(--pl-cor) !important;
  border-radius: 14px !important;
  background: var(--pl-face) !important;
  color: var(--pl-texto) !important;
  font-size: 14.5px;
  line-height: 1.5;
  list-style: none;
  box-shadow: var(--pl-sombra);
}
body.pbx-loja :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice)::before {
  content: "" !important;
  position: absolute;
  top: 50% !important;
  left: 16px !important;
  width: 22px;
  height: 25px;
  margin-top: -12.5px;
  clip-path: var(--pl-hexagono);
  background: var(--pl-cor);
  font-family: inherit !important;
}
/* Os avisos dos temas de blocos já vêm com o próprio ícone. */
body.pbx-loja .wc-block-components-notice-banner { outline: none !important; display: flex !important; align-items: center; gap: 12px; padding-left: 16px !important; }
body.pbx-loja .wc-block-components-notice-banner::before { display: none !important; }
body.pbx-loja .wc-block-components-notice-banner > svg { flex-shrink: 0; padding: 3px; border-radius: 50%; background: var(--pl-cor) !important; fill: var(--pl-sobre-cor) !important; }
body.pbx-loja .wc-block-components-notice-banner.is-success { border-left-color: var(--pl-verde) !important; }
body.pbx-loja .wc-block-components-notice-banner.is-success > svg { background: var(--pl-verde) !important; }
body.pbx-loja .wc-block-components-notice-banner.is-error { border-left-color: var(--pl-alerta) !important; }
body.pbx-loja .wc-block-components-notice-banner.is-error > svg { background: var(--pl-alerta) !important; }
body.pbx-loja .wc-block-components-notice-banner__content { color: var(--pl-texto) !important; }
body.pbx-loja .woocommerce-message { border-left-color: var(--pl-verde) !important; }
body.pbx-loja .woocommerce-message::before { background: var(--pl-verde); }
body.pbx-loja .woocommerce-error { border-left-color: var(--pl-alerta) !important; }
body.pbx-loja .woocommerce-error::before { background: var(--pl-alerta); }
body.pbx-loja .woocommerce-error li { margin: 0; padding: 0; color: var(--pl-texto); }
body.pbx-loja :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--pl-cor-texto) !important; font-weight: 700; }
body.pbx-loja :is(.woocommerce-message, .woocommerce-info) .button { float: right; min-height: 34px !important; margin: -6px -6px -6px 14px; padding: 0 14px !important; }

/* ---------- Tabelas (carrinho, pedido, totais, pedidos da conta) ---------- */
body.pbx-loja div.woocommerce table.shop_table,
body.pbx-loja div.woocommerce table.woocommerce-table,
body.pbx-loja div.woocommerce .shop_table {
  width: 100%;
  margin: 0 0 8px !important;
  border: 0 !important;
  border-collapse: collapse !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--pl-texto);
}
body.pbx-loja div.woocommerce .shop_table :is(th, td) { padding: 14px 10px !important; border: 0 !important; border-bottom: 1px solid var(--pl-borda) !important; background: transparent !important; color: var(--pl-texto) !important; text-align: left; vertical-align: middle; }
body.pbx-loja div.woocommerce .shop_table thead th { padding-top: 0 !important; color: var(--pl-texto-2) !important; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
body.pbx-loja div.woocommerce .shop_table tfoot :is(th, td) { font-weight: 700; }
body.pbx-loja div.woocommerce .shop_table :is(tr:last-child > th, tr:last-child > td, tr.order-total > th, tr.order-total > td) { border-bottom: 0 !important; }
body.pbx-loja div.woocommerce .shop_table :is(.order-total, .order_total) :is(th, td, .amount) { color: var(--pl-texto) !important; font-size: 18px; font-weight: 800; }
body.pbx-loja div.woocommerce .shop_table .order-total .amount { color: var(--pl-cor-texto) !important; font-size: 20px; }
body.pbx-loja div.woocommerce .shop_table .product-name a { color: var(--pl-texto) !important; font-weight: 700; }
body.pbx-loja div.woocommerce .shop_table .product-name a:hover { color: var(--pl-cor-texto) !important; }
body.pbx-loja div.woocommerce .shop_table .product-thumbnail img { width: 64px !important; height: 64px; border-radius: 12px; object-fit: cover; background: #fff; }
body.pbx-loja div.woocommerce .shop_table .product-quantity { color: var(--pl-texto-2) !important; font-weight: 700; }
body.pbx-loja div.woocommerce .shop_table :is(.product-price, .product-subtotal, .product-total) { white-space: nowrap; font-weight: 700; }
body.pbx-loja div.woocommerce .shop_table .variation { margin: 4px 0 0; color: var(--pl-texto-2); font-size: 13px; }
body.pbx-loja div.woocommerce a.remove {
  display: grid !important;
  place-items: center;
  width: 30px !important;
  height: 34px !important;
  clip-path: var(--pl-hexagono);
  border-radius: 0 !important;
  background: var(--pl-face-2) !important;
  color: var(--pl-texto-2) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-decoration: none;
  transition: background .2s, color .2s;
}
body.pbx-loja div.woocommerce a.remove:hover { background: var(--pl-alerta) !important; color: #fff !important; }
body.pbx-loja div.woocommerce .quantity .qty { width: 76px !important; min-height: 42px; padding: 8px 6px !important; text-align: center; font-weight: 700 !important; }
body.pbx-loja div.woocommerce .shop_table td.actions { padding-top: 18px !important; border-bottom: 0 !important; }
body.pbx-loja div.woocommerce .shop_table td.actions .coupon { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
body.pbx-loja div.woocommerce .shop_table td.actions .coupon .input-text { width: 200px !important; min-height: 42px; margin: 0 !important; }
body.pbx-loja div.woocommerce .shop_table td.actions .coupon label { display: none; }
body.pbx-loja div.woocommerce .shop_table td.actions > .button { float: right; }
body.pbx-loja div.woocommerce .cart_totals .wc-proceed-to-checkout { padding: 16px 0 0 !important; }
body.pbx-loja div.woocommerce .cart_totals .checkout-button { display: flex; width: 100%; min-height: 54px; font-size: 16px !important; }
body.pbx-loja div.woocommerce :is(.woocommerce-shipping-methods, #shipping_method) { margin: 0; padding: 0; list-style: none; }
body.pbx-loja div.woocommerce .woocommerce-shipping-destination,
body.pbx-loja div.woocommerce .shipping-calculator-button { color: var(--pl-texto-2); font-size: 13.5px; }

/* ---------- Carrinho: os produtos à esquerda, os totais à direita (no computador) ---------- */
@media (min-width: 960px) {
  body.pbx-loja--carrinho div.woocommerce:has(> form.woocommerce-cart-form):not(:has(.e-cart__container)) {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr);
    column-gap: 24px;
    align-items: start;
  }
  body.pbx-loja--carrinho div.woocommerce:has(> form.woocommerce-cart-form) > :not(form.woocommerce-cart-form):not(.cart-collaterals) { grid-column: 1 / -1; }
  body.pbx-loja--carrinho div.woocommerce:has(> form.woocommerce-cart-form) > .cart-collaterals { position: sticky; top: 24px; }
}
body.pbx-loja div.woocommerce .cart-collaterals { width: auto; float: none; }
body.pbx-loja div.woocommerce .cart-collaterals :is(.cart_totals, .cross-sells) { float: none; width: auto; }
body.pbx-loja div.woocommerce .cart-collaterals::before, body.pbx-loja div.woocommerce .cart-collaterals::after { display: none; }
/* Carrinho vazio. */
body.pbx-loja div.woocommerce :is(.cart-empty, .wc-empty-cart-message .cart-empty) { padding: 22px 22px 22px 56px !important; font-size: 16px; font-weight: 700; }
body.pbx-loja div.woocommerce .return-to-shop { margin: 6px 0 0; }

/* ---------- Finalizar compra: os dados à esquerda, o pedido e o pagamento à direita (no computador) ---------- */
body.pbx-loja div.woocommerce form.checkout .col2-set { width: auto; float: none; }
body.pbx-loja div.woocommerce form.checkout .col2-set > :is(.col-1, .col-2) { float: none; width: auto; }
body.pbx-loja div.woocommerce form.checkout .col2-set::before, body.pbx-loja div.woocommerce form.checkout .col2-set::after { display: none; }
@media (min-width: 960px) {
  body.pbx-loja div.woocommerce form.checkout:not(:has(.e-checkout__container)) {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr);
    grid-template-areas: "avisos avisos" "dados titulo" "dados pedido";
    grid-template-rows: auto auto 1fr;
    column-gap: 24px;
    align-items: start;
  }
  body.pbx-loja div.woocommerce form.checkout:not(:has(.e-checkout__container)) > .woocommerce-NoticeGroup { grid-area: avisos; }
  body.pbx-loja div.woocommerce form.checkout:not(:has(.e-checkout__container)) > .col2-set { grid-area: dados; }
  body.pbx-loja div.woocommerce form.checkout:not(:has(.e-checkout__container)) > #order_review_heading { grid-area: titulo; }
  body.pbx-loja div.woocommerce form.checkout:not(:has(.e-checkout__container)) > #order_review { grid-area: pedido; position: sticky; top: 24px; }
}
body.pbx-loja div.woocommerce form.checkout #order_review_heading { margin: 0 0 14px !important; padding: 0 4px; }
body.pbx-loja div.woocommerce :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields) > h3 { margin-bottom: 18px !important; }
body.pbx-loja div.woocommerce #ship-to-different-address { margin: 18px 0 14px !important; font-family: inherit !important; font-size: 15px !important; text-transform: none !important; }
body.pbx-loja div.woocommerce .woocommerce-shipping-fields + .woocommerce-additional-fields,
body.pbx-loja div.woocommerce .col-2 .woocommerce-additional-fields { margin-top: 10px; }
/* O pagamento. */
body.pbx-loja div.woocommerce #payment { margin-top: 18px !important; border-radius: 0 !important; background: transparent !important; }
body.pbx-loja div.woocommerce #payment ul.payment_methods { margin: 0 !important; padding: 0 0 14px !important; border: 0 !important; border-bottom: 1px solid var(--pl-borda) !important; list-style: none; }
body.pbx-loja div.woocommerce #payment ul.payment_methods li { margin: 0 0 8px !important; padding: 12px 14px !important; border: 1px solid var(--pl-borda); border-radius: 14px; background: var(--pl-face-2) !important; color: var(--pl-texto) !important; list-style: none; }
body.pbx-loja div.woocommerce #payment ul.payment_methods li:has(> input:checked) { border-color: var(--pl-cor); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pl-cor) 16%, transparent); }
body.pbx-loja div.woocommerce #payment ul.payment_methods li img { max-height: 24px; margin: 0 0 0 8px; vertical-align: middle; }
body.pbx-loja div.woocommerce #payment div.payment_box { margin: 10px 0 0 !important; padding: 12px 14px !important; border-radius: 10px !important; background: var(--pl-campo) !important; color: var(--pl-texto-2) !important; font-size: 14px; }
body.pbx-loja div.woocommerce #payment div.payment_box::before { display: none !important; }
body.pbx-loja div.woocommerce #payment div.payment_box :is(p, span, label) { color: var(--pl-texto-2) !important; }
body.pbx-loja div.woocommerce #payment .place-order { margin: 0 !important; padding: 16px 0 0 !important; background: transparent !important; }
body.pbx-loja div.woocommerce #payment #place_order { float: none; display: flex; width: 100%; min-height: 56px; margin-top: 14px; font-size: 17px !important; }
body.pbx-loja div.woocommerce form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
body.pbx-loja div.woocommerce form.checkout_coupon p { margin: 0; color: var(--pl-texto-2); }
body.pbx-loja div.woocommerce form.checkout_coupon :is(.form-row-first, .form-row-last) { float: none; width: auto; margin: 0; }
body.pbx-loja div.woocommerce form.checkout_coupon .form-row-first { flex: 1 1 220px; }
body.pbx-loja div.woocommerce form.checkout_coupon .clear { display: none; }

/* ---------- Pedido recebido ---------- */
body.pbx-loja div.woocommerce .woocommerce-thankyou-order-received { display: none; }
body.pbx-loja div.woocommerce ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0 0 20px !important; padding: 0 !important; list-style: none; }
body.pbx-loja div.woocommerce ul.woocommerce-order-overview::before, body.pbx-loja div.woocommerce ul.woocommerce-order-overview::after { display: none; }
body.pbx-loja div.woocommerce ul.woocommerce-order-overview li { float: none; margin: 0 !important; padding: 14px 16px !important; border: 1px solid var(--pl-borda) !important; border-radius: 14px; background: var(--pl-face); color: var(--pl-texto-2) !important; font-size: 11px !important; font-weight: 800; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; }
body.pbx-loja div.woocommerce ul.woocommerce-order-overview li strong { display: block; margin-top: 4px; color: var(--pl-texto) !important; font-size: 16px; letter-spacing: normal; text-transform: none; overflow-wrap: anywhere; }
body.pbx-loja div.woocommerce ul.woocommerce-order-overview li.total strong { color: var(--pl-cor-texto) !important; }
body.pbx-loja div.woocommerce :is(.woocommerce-customer-details, .woocommerce-column) address { padding: 14px 16px; border: 1px solid var(--pl-borda) !important; border-radius: 14px; background: var(--pl-face-2); color: var(--pl-texto); font-style: normal; line-height: 1.6; }
body.pbx-loja div.woocommerce .woocommerce-customer-details .col2-set { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }

body.pbx-loja [class*="wp-block-woocommerce-order-confirmation"] a { color: var(--pl-texto) !important; }
body.pbx-loja [class*="wp-block-woocommerce-order-confirmation"] :is(table, th, td) { border-color: var(--pl-borda) !important; color: var(--pl-texto) !important; }

/* ---------- Minha conta ---------- */
body.pbx-loja div.woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 20px; align-items: start; }
body.pbx-loja div.woocommerce:has(> .woocommerce-MyAccount-navigation) > :not(.woocommerce-MyAccount-navigation):not(.woocommerce-MyAccount-content) { grid-column: 1 / -1; grid-row: 1; }
body.pbx-loja .woocommerce-MyAccount-navigation { float: none !important; width: auto !important; padding: 10px !important; grid-column: 1; grid-row: 2; order: 0 !important; }
body.pbx-loja .woocommerce-MyAccount-content { float: none !important; width: auto !important; min-width: 0; grid-column: 2; grid-row: 2; order: 0 !important; }
body.pbx-loja .woocommerce-MyAccount-navigation ul { display: flex; flex-direction: column; gap: 4px; margin: 0 !important; padding: 0 !important; list-style: none; }
body.pbx-loja .woocommerce-MyAccount-navigation li { margin: 0 !important; padding: 0 !important; border: 0 !important; list-style: none; }
body.pbx-loja .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 14px !important; border: 0 !important; border-radius: 12px; color: var(--pl-texto-2) !important; font-weight: 700; text-decoration: none !important; transition: background .2s, color .2s; }
body.pbx-loja .woocommerce-MyAccount-navigation li a:hover { background: var(--pl-face-2); color: var(--pl-texto) !important; }
body.pbx-loja .woocommerce-MyAccount-navigation li.is-active a { background: var(--pl-cor) !important; color: var(--pl-sobre-cor) !important; box-shadow: 0 10px 22px -12px color-mix(in srgb, var(--pl-cor) 90%, transparent); }
body.pbx-loja .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--pl-alerta) !important; }
body.pbx-loja .woocommerce-MyAccount-content > p:first-child { color: var(--pl-texto-2); }
body.pbx-loja .woocommerce-MyAccount-content > p:first-child strong { color: var(--pl-texto); }
body.pbx-loja div.woocommerce .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
body.pbx-loja div.woocommerce .woocommerce-Addresses::before, body.pbx-loja div.woocommerce .woocommerce-Addresses::after { display: none; }
body.pbx-loja div.woocommerce .woocommerce-Addresses .woocommerce-Address { float: none; width: auto; }
body.pbx-loja div.woocommerce .woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
body.pbx-loja div.woocommerce .woocommerce-Address-title :is(h2, h3) { margin: 0 !important; }
body.pbx-loja div.woocommerce .woocommerce-Address address { padding: 14px 16px; border: 1px solid var(--pl-borda); border-radius: 14px; background: var(--pl-face-2); font-style: normal; line-height: 1.6; }
/* Entrar e Criar conta, lado a lado. */
body.pbx-loja div.woocommerce #customer_login.col2-set { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
body.pbx-loja div.woocommerce #customer_login.col2-set::before, body.pbx-loja div.woocommerce #customer_login.col2-set::after { display: none; }
body.pbx-loja div.woocommerce #customer_login .col-1, body.pbx-loja div.woocommerce #customer_login .col-2 { float: none; width: auto; margin: 0; }
body.pbx-loja div.woocommerce :is(form.login, form.register) { margin: 0; }
body.pbx-loja div.woocommerce form.login > p:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
body.pbx-loja div.woocommerce .woocommerce-form-login__submit { order: 2; }
body.pbx-loja div.woocommerce form.lost_reset_password { max-width: 560px; }

/* ---------- Rastreio de pedidos ---------- */
body.pbx-loja--rastreio div.woocommerce form.track_order > p:first-child { display: none; }
body.pbx-loja div.woocommerce form.track_order { max-width: 760px; }
body.pbx-loja div.woocommerce form.track_order { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
body.pbx-loja div.woocommerce form.track_order > :is(p:not(.form-row), .clear, .form-row:has(button)) { grid-column: 1 / -1; }
body.pbx-loja div.woocommerce form.track_order :is(.form-row-first, .form-row-last) { float: none; width: auto; }
body.pbx-loja div.woocommerce form.track_order .clear { display: none; }
body.pbx-loja div.woocommerce form.track_order .form-row:has(button) { margin: 6px 0 0; }
body.pbx-loja div.woocommerce form.track_order button { min-width: 200px; }
body.pbx-loja div.woocommerce .order-info { padding: 16px 18px; border: 1px solid var(--pl-borda); border-left: 4px solid var(--pl-cor); border-radius: 14px; background: var(--pl-face); }
body.pbx-loja div.woocommerce .order-info mark { color: var(--pl-cor-texto); }

/* ---------- Loja: os produtos em cartões ---------- */
body.pbx-loja :is(.woocommerce-result-count, .woocommerce-breadcrumb) { color: var(--pl-texto-2) !important; }
body.pbx-loja .woocommerce-breadcrumb a { color: var(--pl-texto-2) !important; }
body.pbx-loja .woocommerce-breadcrumb a:hover { color: var(--pl-cor-texto) !important; }
body.pbx-loja form.woocommerce-ordering select { min-width: 220px; }
body.pbx-loja ul.products li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 12px 12px 16px !important;
  border: 1px solid var(--pl-borda) !important;
  border-radius: var(--pl-raio) !important;
  background: var(--pl-face) !important;
  box-shadow: var(--pl-sombra);
  color: var(--pl-texto);
  text-align: left;
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
body.pbx-loja ul.products li.product:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--pl-cor) 55%, var(--pl-borda)) !important; box-shadow: var(--pl-sombra), 0 0 0 3px color-mix(in srgb, var(--pl-cor) 12%, transparent); }
body.pbx-loja ul.products li.product a { color: inherit; text-decoration: none; }
body.pbx-loja ul.products li.product img { margin: 0 0 12px !important; border-radius: 12px !important; background: #fff; aspect-ratio: 1; object-fit: contain; }
body.pbx-loja ul.products li.product :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title, h2, h3) { margin: 0 0 8px !important; padding: 0 !important; color: var(--pl-texto) !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1.35 !important; }
body.pbx-loja ul.products li.product .price { display: block; margin: 0 0 12px !important; color: var(--pl-cor-texto) !important; font-size: 18px !important; font-weight: 800 !important; }
body.pbx-loja ul.products li.product .button { width: 100%; margin-top: auto !important; min-height: 44px; font-size: 14px !important; }
body.pbx-loja ul.products li.product .added_to_cart { width: 100%; margin-top: 8px; min-height: 38px; border: 1px solid var(--pl-borda) !important; background: var(--pl-face-2) !important; color: var(--pl-texto) !important; box-shadow: none !important; font-size: 13px !important; }
/* Preço riscado e o novo. */
body.pbx-loja :is(div.woocommerce, div.product, ul.products) .price del { color: var(--pl-texto-2) !important; font-size: .78em; font-weight: 600; opacity: .8; }
body.pbx-loja :is(div.woocommerce, div.product, ul.products) .price ins { background: transparent; color: var(--pl-cor-texto) !important; text-decoration: none; }
/* O selo de oferta, em hexágono. */
body.pbx-loja :is(ul.products, div.product) span.onsale {
  top: 18px !important;
  right: auto !important;
  left: 18px !important;
  z-index: 2;
  display: grid;
  place-items: center;
  min-width: 52px !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 0 6px !important;
  clip-path: var(--pl-hexagono);
  border-radius: 0 !important;
  background: var(--pl-cor) !important;
  color: var(--pl-sobre-cor) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  text-transform: uppercase;
}
body.pbx-loja .star-rating, body.pbx-loja .star-rating::before { color: var(--pl-cor-texto) !important; }
body.pbx-loja .woocommerce-pagination ul { display: inline-flex; gap: 6px; border: 0 !important; }
body.pbx-loja .woocommerce-pagination ul li { border: 0 !important; overflow: visible !important; }
body.pbx-loja .woocommerce-pagination ul li :is(a, span) { display: grid !important; place-items: center; min-width: 42px; height: 42px; padding: 0 10px !important; border: 1px solid var(--pl-borda) !important; border-radius: 12px; background: var(--pl-face) !important; color: var(--pl-texto) !important; font-weight: 700; }
body.pbx-loja .woocommerce-pagination ul li span.current { border-color: var(--pl-cor) !important; background: var(--pl-cor) !important; color: var(--pl-sobre-cor) !important; }

/* Os produtos nos blocos novos do WooCommerce (temas de blocos e o bloco "Coleção de produtos"). */
body.pbx-loja :is(.wc-block-product-template > li, li.wc-block-product, .wc-block-grid__product) {
  display: flex;
  flex-direction: column;
  padding: 12px 12px 16px !important;
  border: 1px solid var(--pl-borda) !important;
  border-radius: var(--pl-raio) !important;
  background: var(--pl-face) !important;
  box-shadow: var(--pl-sombra);
  color: var(--pl-texto);
  transition: transform .2s, border-color .2s;
}
body.pbx-loja :is(.wc-block-product-template > li, li.wc-block-product, .wc-block-grid__product):hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--pl-cor) 55%, var(--pl-borda)) !important; }
body.pbx-loja :is(.wc-block-product-template > li, li.wc-block-product, .wc-block-grid__product) img { border-radius: 12px !important; background: #fff; }
body.pbx-loja :is(.wc-block-product-template > li, li.wc-block-product, .wc-block-grid__product) :is(.wp-block-post-title, .wc-block-grid__product-title) { color: var(--pl-texto) !important; font-family: inherit !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1.35 !important; }
body.pbx-loja :is(.wc-block-product-template > li, li.wc-block-product, .wc-block-grid__product) :is(.wp-block-post-title, .wc-block-grid__product-title) a { color: inherit !important; text-decoration: none; }
body.pbx-loja :is(.wc-block-components-product-price, .wc-block-grid__product-price) { color: var(--pl-cor-texto) !important; font-weight: 800 !important; }
body.pbx-loja :is(.wc-block-components-product-price, .wc-block-grid__product-price) del { color: var(--pl-texto-2) !important; font-weight: 600; opacity: .8; }
body.pbx-loja :is(.wc-block-components-product-price, .wc-block-grid__product-price) ins { background: transparent; text-decoration: none; }
body.pbx-loja :is(.wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart .wp-block-button__link, .wp-block-woocommerce-product-button .wp-block-button__link) { width: 100%; min-height: 44px; border: 0 !important; border-radius: 999px !important; background: var(--pl-cor) !important; color: var(--pl-sobre-cor) !important; font-size: 14px !important; font-weight: 800 !important; text-decoration: none !important; box-shadow: 0 10px 22px -12px color-mix(in srgb, var(--pl-cor) 85%, transparent) !important; }
body.pbx-loja :is(.wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart .wp-block-button__link, .wp-block-woocommerce-product-button .wp-block-button__link) * { color: inherit !important; }
body.pbx-loja .wc-block-components-product-sale-badge { padding: 4px 10px !important; border: 0 !important; border-radius: 999px !important; background: var(--pl-cor) !important; color: var(--pl-sobre-cor) !important; font-size: 11px !important; font-weight: 800 !important; text-transform: uppercase; }

/* ---------- Página do produto ---------- */
body.pbx-loja div.product { color: var(--pl-texto); }
body.pbx-loja div.product .woocommerce-product-gallery img { border-radius: var(--pl-raio); background: #fff; }
body.pbx-loja div.product .product_title { margin: 0 0 10px; color: var(--pl-texto) !important; font-size: clamp(22px, 2.4vw, 32px) !important; font-weight: 800 !important; line-height: 1.2 !important; }
body.pbx-loja div.product .summary .price { margin: 0 0 16px !important; color: var(--pl-cor-texto) !important; font-size: clamp(22px, 2.4vw, 30px) !important; font-weight: 800 !important; }
body.pbx-loja div.product .woocommerce-product-details__short-description { color: var(--pl-texto-2); }
body.pbx-loja div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 18px 0 !important; }
body.pbx-loja div.product form.cart .quantity .qty { width: 84px !important; min-height: 50px; text-align: center; font-weight: 700 !important; }
body.pbx-loja div.product form.cart .single_add_to_cart_button { min-height: 52px; padding: 0 30px !important; font-size: 16px !important; }
body.pbx-loja div.product form.cart table.variations { margin: 0 0 8px; border: 0; }
body.pbx-loja div.product form.cart table.variations :is(th, td) { padding: 6px 8px 6px 0; border: 0; background: transparent; color: var(--pl-texto); }
body.pbx-loja div.product .product_meta { padding-top: 14px; border-top: 1px solid var(--pl-borda); color: var(--pl-texto-2); font-size: 13.5px; }
body.pbx-loja div.product .product_meta > span { display: block; margin-bottom: 4px; }
body.pbx-loja div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px !important; padding: 0 !important; border: 0 !important; overflow: visible; }
body.pbx-loja div.product .woocommerce-tabs ul.tabs::before, body.pbx-loja div.product .woocommerce-tabs ul.tabs li::before, body.pbx-loja div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.pbx-loja div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 999px !important; background: transparent !important; }
body.pbx-loja div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 10px 18px !important; border: 1px solid var(--pl-borda); border-radius: 999px; background: var(--pl-face); color: var(--pl-texto-2) !important; font-weight: 700; }
body.pbx-loja div.product .woocommerce-tabs ul.tabs li.active a { border-color: var(--pl-cor); background: var(--pl-cor); color: var(--pl-sobre-cor) !important; }
body.pbx-loja div.product .woocommerce-tabs .panel { color: var(--pl-texto-2); }
body.pbx-loja div.product :is(.related, .upsells) { clear: both; padding-top: 24px; }

/* ---------- Blocos novos do WooCommerce (Carrinho e Finalizar compra em blocos) ---------- */
body.pbx-loja :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-components-sidebar, .wc-block-components-main) { color: var(--pl-texto); }
body.pbx-loja :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-components-sidebar > *, .wc-block-checkout__main > .wc-block-components-checkout-step, .wc-block-cart-items) { padding: 20px !important; border: 1px solid var(--pl-borda) !important; border-radius: var(--pl-raio) !important; background: var(--pl-face) !important; }
body.pbx-loja :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select, textarea) { border: 1px solid var(--pl-borda) !important; border-radius: 12px !important; background: var(--pl-campo) !important; color: var(--pl-texto) !important; }
body.pbx-loja :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-components-text-input label, .wc-block-components-combobox label, .wc-blocks-components-select__label) { color: var(--pl-texto-2) !important; }
body.pbx-loja :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-components-title, .wc-block-components-checkout-step__title) { color: var(--pl-texto) !important; font-family: 'Bungee', system-ui, sans-serif !important; font-weight: 400 !important; text-transform: uppercase; }
body.pbx-loja :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--pl-cor-texto) !important; }
body.pbx-loja :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option) { border-color: var(--pl-borda) !important; }

/* ---------- Celular ---------- */
@media (max-width: 768px) {
  body.pbx-loja div.woocommerce { font-size: 14.5px; padding-bottom: 40px; }
  body.pbx-loja div.woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); }
  body.pbx-loja .woocommerce-MyAccount-content { grid-column: 1; grid-row: 3; }
  body.pbx-loja .woocommerce-MyAccount-navigation ul { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  body.pbx-loja .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
  body.pbx-loja .woocommerce-MyAccount-navigation li a { white-space: nowrap; }
  body.pbx-loja div.woocommerce form.track_order { grid-template-columns: minmax(0, 1fr); }
  body.pbx-loja div.woocommerce form.track_order button { width: 100%; }
  body.pbx-loja div.woocommerce :is(.form-row-first, .form-row-last) { float: none !important; width: 100% !important; }
  /* O carrinho vira uma lista de cartões. */
  body.pbx-loja div.woocommerce table.shop_table_responsive tr { display: block; padding: 10px 0; border-bottom: 1px solid var(--pl-borda); }
  body.pbx-loja div.woocommerce table.shop_table_responsive tbody th:not([data-title]) { display: none !important; }
  body.pbx-loja div.woocommerce table.shop_table_responsive tr :is(td, tbody th[data-title]) { display: block; padding: 7px 0 !important; border: 0 !important; text-align: right !important; background: transparent !important; overflow: hidden; }
  body.pbx-loja div.woocommerce table.shop_table_responsive tr :is(td, tbody th[data-title])::before { content: attr(data-title) ": "; float: left; margin-right: 12px; color: var(--pl-texto-2); font-size: 12px; font-weight: 800; letter-spacing: .05em; line-height: 2; text-transform: uppercase; }
  body.pbx-loja div.woocommerce table.shop_table_responsive tr td.product-thumbnail { display: block; text-align: left !important; }
  body.pbx-loja div.woocommerce table.shop_table_responsive tr :is(td.product-remove, td.product-thumbnail)::before { display: none; }
  body.pbx-loja div.woocommerce table.shop_table_responsive tr td.product-remove { float: right; padding-top: 6px !important; }
  body.pbx-loja div.woocommerce table.shop_table_responsive tr td.actions { display: block; text-align: left !important; }
  body.pbx-loja div.woocommerce table.shop_table_responsive tr td.actions::before { display: none; }
  body.pbx-loja div.woocommerce .shop_table td.actions .coupon .input-text { width: auto !important; flex: 1 1 160px; }
  body.pbx-loja div.woocommerce .shop_table td.actions .coupon .button { flex: 1 1 auto; }
  body.pbx-loja div.woocommerce .shop_table td.actions > .button { float: none; width: 100%; margin-top: 10px; }
  body.pbx-loja :is(.woocommerce-message, .woocommerce-info) .button { float: none; display: flex; margin: 10px 0 0; }
}
