/* ============================================================
   O BIZU — WooCommerce + WooCommerce Subscriptions
   Reskin em cima da marcação/classes padrão do plugin, sem depender
   de template overrides para cada tela (só login/conta/senha têm
   override de template — o resto é 100% CSS + hooks leves).
   ============================================================ */

/* ---------- Loja / grade de módulos ----------
   Cards de largura fixa + grid centralizado: com 1, 2 ou 3 módulos no
   catálogo (o normal por um bom tempo), "repeat(3, 1fr)" deixava o
   card sozinho grudado à esquerda e o resto da linha vazio — parecia
   catálogo abandonado. Com auto-fit + justify-content:center, os
   cards sempre ficam agrupados no centro, não importa quantos existam. */
ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 280px));
  justify-content: center;
  gap: 1.75rem;
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
}
ul.products li.product {
  background-color: var(--obizu-surface);
  border: 1px solid var(--obizu-border);
  border-radius: var(--obizu-radius-lg);
  padding: 2rem 1.5rem 1.75rem;
  text-align: center;
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
ul.products li.product:hover { border-color: var(--obizu-gold); transform: translateY(-4px); box-shadow: var(--obizu-shadow); }

/* Mesmo distintivo circular com brilho da página do produto — não uma
   foto retangular de e-commerce. Também esconde de graça qualquer
   fundo colado no arquivo original (fica cortado fora do círculo). */
ul.products li.product img {
  position: relative;
  width: 96px;
  height: 96px;
  margin: 0 auto 1.1rem;
  border-radius: 50%;
  object-fit: cover;
  background-color: var(--obizu-surface-2);
  border: 2px solid var(--obizu-gold);
}
ul.products li.product h2, ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.15rem; color: #fff; margin-bottom: 0.5rem;
}
ul.products li.product .price {
  display: block; font-family: var(--obizu-font-heading); font-weight: 700;
  font-size: 1.4rem; color: var(--obizu-gold); margin: 0.6rem 0;
}
ul.products li.product .price del { color: var(--obizu-tertiary-color); font-size: 1rem; opacity: 0.7; }
ul.products li.product .price ins { text-decoration: none; }
ul.products li.product .star-rating { margin: 0 auto 0.5rem; color: var(--obizu-gold); }

/* O botão dentro do card usava só a cor global (.woocommerce a.button)
   sem nenhum padding/peso próprio — por isso parecia texto realçado
   em vez de um botão de verdade. */
ul.products li.product .button {
  display: block;
  margin-top: 1.1rem;
  width: 100%;
  padding: 0.75rem 1rem !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-radius: var(--obizu-radius) !important;
}

span.onsale {
  position: absolute; top: 0.75rem; right: 0.75rem; left: auto;
  background: var(--obizu-gold); color: #000; font-weight: 700;
  text-transform: uppercase; font-size: 0.7rem; letter-spacing: 0.05em;
  border-radius: var(--obizu-radius-pill); padding: 0.3rem 0.75rem;
}
ul.products li.product { position: relative; }

.woocommerce-result-count, .woocommerce-ordering { color: var(--obizu-secondary-color); }
.woocommerce-ordering select { width: auto; display: inline-block; }
nav.woocommerce-pagination ul { display: flex; gap: 0.5rem; list-style: none; padding: 0; }
nav.woocommerce-pagination ul li { display: inline-block; }
nav.woocommerce-pagination a, nav.woocommerce-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; border-radius: var(--obizu-radius);
  border: 1px solid var(--obizu-border); color: var(--obizu-body-color);
}
nav.woocommerce-pagination .current { background: var(--obizu-gold); border-color: var(--obizu-gold); color: #000; }

/* "Plano em destaque" — marque o produto com a categoria "destaque"
   e ele ganha realce dourado automaticamente na grade. */
ul.products li.product.product_cat-destaque { border-color: var(--obizu-gold); box-shadow: 0 0 0 1px var(--obizu-gold); }
ul.products li.product.product_cat-destaque::before {
  content: "Mais popular"; display: block; margin: -1.75rem -1.5rem 1rem;
  background: var(--obizu-gold); color: #000; font-weight: 700; font-size: 0.75rem;
  text-transform: uppercase; letter-spacing: 0.05em; padding: 0.4rem 0;
  border-radius: var(--obizu-radius-lg) var(--obizu-radius-lg) 0 0;
}

/* ---------- Página de produto (detalhe do plano) ----------
   Uma coluna só, centralizada, como o hero da página de módulo do
   app (ícone pequeno acima do nome, depois o texto) — não a galeria +
   formulário lado a lado de uma página de produto de e-commerce
   comum. O ícone é só um selo de identificação do módulo, não o herói
   da página: pequeno, redondo (o corte circular também resolve o
   fundo escuro colado no arquivo da imagem — cai fora da moldura). */
.single-product div.product {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
}
/* align-items:center faz os filhos diretos encolherem pro tamanho do
   próprio conteúdo por padrão — sem isto, o .summary (que carrega os
   cards de plano) ficava mais estreito que os 760px disponíveis, e os
   3 cards quebravam em 2+1 em vez de ficar lado a lado. */
.single-product .summary.entry-summary { width: 100%; }

.single-product .woocommerce-product-gallery {
  position: relative;
  width: 120px;
  height: 120px;
  margin-bottom: 1.5rem;
  border-radius: 50%;
  overflow: hidden;
  background: var(--obizu-surface-2);
  border: 2px solid var(--obizu-gold);
}
.single-product .woocommerce-product-gallery::before {
  content: "";
  position: absolute;
  inset: -30%;
  background: radial-gradient(circle, rgba(212, 175, 55, 0.45), transparent 70%);
  filter: blur(14px);
  animation: obizu-badge-pulse 3.5s ease-in-out infinite;
  z-index: 0;
}
@keyframes obizu-badge-pulse {
  0%, 100% { opacity: 0.4; transform: scale(0.9); }
  50%      { opacity: 1;   transform: scale(1.08); }
}
.single-product .woocommerce-product-gallery img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  padding: 0;
}
/* A lupa de zoom já foi removida (ver inc/setup.php); isto é reforço
   caso algum plugin volte a injetar o link. */
.single-product .woocommerce-product-gallery a { pointer-events: none; }

.single-product .product_title { font-size: 1.9rem; }
.single-product .price { justify-content: center; font-family: var(--obizu-font-heading); font-size: 1.9rem; color: var(--obizu-gold); font-weight: 700; }
.single-product .woocommerce-product-details__short-description { color: var(--obizu-secondary-color); font-size: 1.05rem; }
.single-product form.cart { margin: 1.5rem 0; width: 100%; }
.single-product .quantity input { width: 70px; display: inline-block; }
.single-product .subscription-details, .single-product .woocommerce-subscription-details { color: var(--obizu-tertiary-color); font-size: 0.9rem; }
.single-product .obizu-plan-picker { text-align: left; }
.single-product .single_add_to_cart_button { max-width: 460px; margin: 0 auto; display: block; }
.single-product .product_meta { text-align: left; max-width: 460px; margin-left: auto; margin-right: auto; }

@media (prefers-reduced-motion: reduce) {
  .single-product .woocommerce-product-gallery::before { animation: none; opacity: 0.6; }
}

/* Tabela de variação (ex.: período Anual/Mensal/Semestral) — o
   WooCommerce gera uma <table class="variations"> nua, sem nenhuma
   classe de card/superfície do tema pra herdar estilo, então ficava
   com a cara padrão de tabela HTML no meio de uma página com marca. */
table.variations { width: 100%; border: none; margin: 1.25rem 0; }
table.variations tbody, table.variations tr { display: block; }
table.variations td { display: block; border: none; padding: 0; }
table.variations td.label { margin-bottom: 0.4rem; }
table.variations td.label label { font-weight: 500; color: var(--obizu-body-color); margin: 0; }
table.variations td.value { display: flex; align-items: center; gap: 0.75rem; }
table.variations td.value select { width: auto; min-width: 220px; }
a.reset_variations { font-size: 0.85rem; color: var(--obizu-tertiary-color); }
a.reset_variations:hover { color: var(--obizu-gold); }

/* Quando os cards de plano existem (ver
   woocommerce/single-product/add-to-cart/variable-subscription.php),
   a tabela nativa continua no DOM só pra o JS do WooCommerce
   funcionar — escondida visualmente, ainda acessível (não é
   display:none, então leitor de tela e navegação por teclado
   continuam enxergando a opção "crua" como alternativa aos cards). */
.obizu-plan-picker ~ table.obizu-variations-native {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Cards de plano — a peça central da decisão de compra, por isso o
   tratamento mais "premiado": borda dourada e selo "Economize X%" no
   mais vantajoso, brilho ao selecionar. */
.obizu-plan-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.obizu-plan-card {
  position: relative;
  background: var(--obizu-surface-2);
  border: 1px solid var(--obizu-border);
  border-radius: var(--obizu-radius-lg);
  padding: 1.5rem 1.1rem 1.25rem;
  text-align: center;
  cursor: pointer;
  color: var(--obizu-body-color);
  font-family: inherit;
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}
.obizu-plan-card:hover { border-color: var(--obizu-gold); transform: translateY(-3px); }
.obizu-plan-card.is-best { border-color: var(--obizu-gold-dark); }
.obizu-plan-card.is-selected {
  border-color: var(--obizu-gold);
  background: rgba(212, 175, 55, 0.1);
  box-shadow: 0 0 0 1px var(--obizu-gold), 0 10px 24px rgba(212, 175, 55, 0.2);
  transform: translateY(-3px);
}
.obizu-plan-badge {
  position: absolute;
  top: -11px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--obizu-gold);
  color: #000;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.3rem 0.75rem;
  border-radius: var(--obizu-radius-pill);
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}
.obizu-plan-period { display: block; font-weight: 600; margin-bottom: 0.6rem; }
.obizu-plan-price { display: block; font-family: var(--obizu-font-heading); font-size: 1.5rem; font-weight: 700; color: var(--obizu-gold); }
.obizu-plan-price small { font-size: 0.7rem; font-weight: 400; color: var(--obizu-tertiary-color); margin-left: 0.15rem; }
.obizu-plan-note { display: block; margin-top: 0.5rem; font-size: 0.75rem; color: var(--obizu-tertiary-color); }

.single_variation_wrap { margin: 1rem 0; }
.woocommerce-variation-add-to-cart { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.woocommerce-variation-price { color: var(--obizu-gold); }
.woocommerce-variation-availability { color: var(--obizu-secondary-color); }

.product_meta { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px dashed var(--obizu-border); color: var(--obizu-tertiary-color); font-size: 0.9rem; }
.product_meta span { display: block; margin-bottom: 0.3rem; }
.product_meta a { color: var(--obizu-tertiary-color); text-decoration: underline; }

/* Botão de assinar com uma leve resposta tátil ao passar o mouse —
   pequeno, mas é o tipo de detalhe que separa "formulário" de "compra
   com gosto de compra". */
/* O CTA principal da página de produto — precisa parecer o botão MAIS
   importante da tela, não um <button> de formulário qualquer: maior,
   com um pulso tipo "radar" chamando atenção sozinho, sem precisar de
   hover. */
.single-product .single_add_to_cart_button,
.woocommerce-variation-add-to-cart .single_add_to_cart_button {
  width: 100%;
  padding: 1.15rem 2rem !important;
  font-size: 1.05rem !important;
  border-radius: var(--obizu-radius) !important;
  position: relative;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  animation: obizu-btn-pulse 2.6s ease-in-out infinite;
}
.single-product .single_add_to_cart_button:hover { transform: translateY(-2px) scale(1.01); animation-play-state: paused; box-shadow: 0 10px 28px rgba(212, 175, 55, 0.35); }
.single-product .single_add_to_cart_button:active { transform: translateY(0) scale(0.99); }
@keyframes obizu-btn-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4); }
  70%  { box-shadow: 0 0 0 14px rgba(212, 175, 55, 0); }
  100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .single-product .single_add_to_cart_button { animation: none; }
}

/* Botões de formulário em geral (enviar avaliação, aplicar cupom
   etc.) — antes ficavam do tamanho da fonte, sem nenhuma presença. */
#respond input#submit,
.comment-form input[type="submit"],
.woocommerce-coupon-form button[name="apply_coupon"] {
  padding: 0.85rem 2rem !important;
  font-size: 1rem !important;
  border-radius: var(--obizu-radius) !important;
}

/* ---------- Confirmação de compra (página "pedido recebido") ---------- */
.obizu-success-banner {
  text-align: center;
  padding: 3.5rem 1.5rem 3rem;
  margin-bottom: 2.5rem;
  border-radius: var(--obizu-radius-lg);
  border: 1px solid var(--obizu-gold);
  background:
    radial-gradient(ellipse 80% 80% at 50% -10%, rgba(212, 175, 55, 0.35), transparent 70%),
    linear-gradient(160deg, var(--obizu-surface) 0%, var(--obizu-black) 100%);
  animation: obizu-success-glow 2.4s ease-in-out infinite alternate;
}
@keyframes obizu-success-glow {
  from { box-shadow: 0 0 30px rgba(212, 175, 55, 0.12); }
  to   { box-shadow: 0 0 65px rgba(212, 175, 55, 0.32); }
}

.obizu-success-check { width: 88px; height: 88px; margin: 0 auto 1.25rem; }
.obizu-success-check-circle {
  stroke: var(--obizu-gold);
  stroke-width: 2;
  stroke-dasharray: 151;
  stroke-dashoffset: 151;
  animation: obizu-draw-circle 0.6s ease-out forwards;
}
.obizu-success-check-mark {
  stroke: var(--obizu-gold);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 40;
  stroke-dashoffset: 40;
  animation: obizu-draw-check 0.35s 0.55s ease-out forwards;
}
@keyframes obizu-draw-circle { to { stroke-dashoffset: 0; } }
@keyframes obizu-draw-check { to { stroke-dashoffset: 0; } }

.obizu-success-title {
  font-size: clamp(1.75rem, 4vw, 2.4rem);
  text-transform: uppercase;
  margin: 0 0 0.5rem;
  opacity: 0;
  animation: obizu-pop-in 0.5s 0.45s ease-out forwards;
}
.obizu-success-subtitle {
  color: var(--obizu-secondary-color);
  font-size: 1.1rem;
  margin: 0 0 2rem;
  opacity: 0;
  animation: obizu-pop-in 0.5s 0.6s ease-out forwards;
}
.obizu-success-banner .btn {
  opacity: 0;
  animation: obizu-pop-in 0.5s 0.75s ease-out forwards;
}
@keyframes obizu-pop-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* O texto genérico do WooCommerce ("Obrigado. Seu pedido foi
   recebido.") some — o banner acima já cobre isso com mais alma — mas
   os detalhes do pedido (número, total, forma de pagamento) continuam
   visíveis logo abaixo. */
.woocommerce-order-received > p.woocommerce-notice,
.woocommerce-order-received .woocommerce-thankyou-order-received { display: none; }

@media (prefers-reduced-motion: reduce) {
  .obizu-success-banner,
  .obizu-success-check-circle,
  .obizu-success-check-mark,
  .obizu-success-title,
  .obizu-success-subtitle,
  .obizu-success-banner .btn {
    animation: none !important;
    opacity: 1 !important;
  }
}

.woocommerce-tabs ul.tabs { list-style: none; display: flex; gap: 0.5rem; padding: 0; border-bottom: 1px solid var(--obizu-border); margin: 2.5rem 0 0; }
.woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce-tabs ul.tabs li a { display: inline-block; padding: 0.75rem 1.25rem; color: var(--obizu-secondary-color); font-weight: 600; }
.woocommerce-tabs ul.tabs li a:hover { color: var(--obizu-gold-light); }
.woocommerce-tabs ul.tabs li.active a { color: var(--obizu-gold); border-bottom: 2px solid var(--obizu-gold); }

/* Largura de leitura confortável — a aba já ocupa a largura inteira do
   container (~1140px); um parágrafo esticado até lá sem limite virava
   uma linha de texto enorme e cansativa. */
.woocommerce-tabs .panel {
  max-width: 780px;
  padding: 2rem 0 2rem 1.5rem;
  border-left: 2px solid var(--obizu-border-translucent);
  font-size: 1.05rem;
  line-height: 1.85;
}
.woocommerce-tabs .panel h2 { font-size: 1.35rem; margin-top: 0; color: var(--obizu-gold); }
.woocommerce-tabs .panel strong { color: var(--obizu-gold-light); }
.woocommerce-tabs .panel p { margin-bottom: 1.25rem; }

.related.products, .upsells.products { margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid var(--obizu-border); }
.related.products > h2, .upsells.products > h2 { text-align: center; margin-bottom: 1.75rem; }

@media (max-width: 800px) { .single-product div.product { grid-template-columns: 1fr; } }

/* ---------- Carrinho ---------- */
table.shop_table, table.woocommerce-orders-table, table.subscription_details, table.woocommerce-table {
  width: 100%; border-collapse: collapse; margin-bottom: 1.5rem;
  background-color: var(--obizu-surface); border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius-lg); overflow: hidden;
}
table.shop_table th, table.woocommerce-orders-table th, table.woocommerce-table th {
  background-color: var(--obizu-surface-2); color: #fff; text-align: left; padding: 0.85rem 1rem; font-weight: 600;
}
table.shop_table td, table.woocommerce-orders-table td, table.woocommerce-table td {
  padding: 0.85rem 1rem; border-top: 1px solid var(--obizu-border);
}
.woocommerce-cart-form .product-thumbnail img { border-radius: var(--obizu-radius); width: 64px; }
.woocommerce-cart-form .quantity input { width: 60px; }
.cart-collaterals .cart_totals { background-color: var(--obizu-surface); border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius-lg); padding: 1.25rem; }
.cart-collaterals .cart_totals h2 { font-size: 1.2rem; }
.wc-proceed-to-checkout a.checkout-button { width: 100%; text-align: center; }
.woocommerce-shipping-calculator .shipping-calculator-button { color: var(--obizu-gold); }

/* Mini-carrinho (widget) */
.widget_shopping_cart_content ul.cart_list { list-style: none; margin: 0; padding: 0; }
.widget_shopping_cart_content ul.cart_list li { display: flex; gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px dashed var(--obizu-border); }
.widget_shopping_cart_content .total { font-weight: 700; color: var(--obizu-gold); margin-top: 0.75rem; }

/* ---------- Checkout ---------- */
.woocommerce-checkout-review-order-table, .woocommerce-checkout .col2-set { margin-bottom: 1.5rem; }
.woocommerce-billing-fields, .woocommerce-additional-fields, .woocommerce-checkout-payment {
  background-color: var(--obizu-surface); border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius-lg); padding: 1.5rem; margin-bottom: 1.5rem;
}
.woocommerce-checkout #payment { background-color: var(--obizu-surface-2); border-radius: var(--obizu-radius); }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; padding: 1rem; margin: 0; }
.woocommerce-checkout #payment div.payment_box { background-color: var(--obizu-surface-3); border-radius: var(--obizu-radius); padding: 1rem; margin-top: 0.5rem; color: var(--obizu-secondary-color); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--obizu-surface-3); }
#place_order { width: 100%; padding: 1rem; font-size: 1.05rem; }
.woocommerce-coupon-form .form-row { display: flex; gap: 0.75rem; }
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-noreviews,
.woocommerce-notice {
  list-style: none; margin: 0 0 1.5rem; padding: 1rem 1.25rem; border-radius: var(--obizu-radius);
  background-color: var(--obizu-surface); border: 1px solid var(--obizu-border); border-left: 4px solid var(--obizu-gold); color: var(--obizu-body-color);
}
.woocommerce-error, .woocommerce-notice--error { border-left-color: var(--obizu-danger); }
.woocommerce-message .button { float: none; margin-left: 1rem; }

/* Página de agradecimento */
ul.woocommerce-order-overview { list-style: none; display: flex; flex-wrap: wrap; gap: 1.5rem; padding: 1.5rem; background: var(--obizu-surface); border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius-lg); }
ul.woocommerce-order-overview li { flex: 1; min-width: 140px; }
ul.woocommerce-order-overview li strong { display: block; color: #fff; margin-top: 0.25rem; }

/* ---------- Minha conta (layout geral) ---------- */
.obizu-account-layout { display: grid; grid-template-columns: 240px 1fr; gap: 2rem; align-items: start; }
.obizu-account-nav ul { list-style: none; margin: 0; padding: 0; background: var(--obizu-surface); border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius-lg); overflow: hidden; }
.obizu-account-nav li { border-bottom: 1px solid var(--obizu-border); }
.obizu-account-nav li:last-child { border-bottom: none; }
.obizu-account-nav a { display: flex; align-items: center; gap: 0.6rem; padding: 0.85rem 1.1rem; color: var(--obizu-body-color); }
.obizu-account-nav li.is-active a, .obizu-account-nav a:hover { background: var(--obizu-surface-2); color: var(--obizu-gold); }
.obizu-account-content { min-width: 0; }
@media (max-width: 800px) { .obizu-account-layout { grid-template-columns: 1fr; } }

/* ---------- Login / registro / senha (form-login, form-lost-password, form-reset-password) ---------- */
.obizu-auth { max-width: 900px; margin: 2rem auto; }
.obizu-auth-brand { text-align: center; margin-bottom: 2rem; }
.obizu-auth-brand img { height: 64px; margin: 0 auto 1rem; }
.obizu-auth-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
.obizu-auth-single { max-width: 460px; margin: 0 auto; }
.obizu-auth-card h2 { font-size: 1.25rem; }
.obizu-auth .form-row { margin-bottom: 1rem; }
.obizu-auth .form-row-first, .obizu-auth .form-row-last { display: block; width: 100%; float: none; }
.obizu-auth .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 400; }
.obizu-auth .lost_password { margin-top: 1rem; text-align: center; }
.obizu-auth .required { color: var(--obizu-danger); }
@media (max-width: 700px) { .obizu-auth-columns { grid-template-columns: 1fr; } }

/* ---------- Dados da conta / troca de senha (form-edit-account) ---------- */
.obizu-form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.obizu-form .form-row { margin-bottom: 1rem; }
.obizu-fieldset { border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius); padding: 1.25rem; margin: 1.5rem 0; }
.obizu-fieldset legend { padding: 0 0.5rem; color: var(--obizu-gold); font-weight: 600; }
@media (max-width: 600px) { .obizu-form-row-2 { grid-template-columns: 1fr; } }

/* Indicador de força de senha (WordPress injeta #pass-strength-result) */
#pass-strength-result { border-radius: var(--obizu-radius); padding: 0.5rem 0.75rem; margin-top: 0.5rem; border: 1px solid var(--obizu-border); background: var(--obizu-surface-2); }
#pass-strength-result.bad { border-color: var(--obizu-danger); color: #ea868f; }
#pass-strength-result.good { border-color: var(--obizu-info); color: #6edff6; }
#pass-strength-result.strong { border-color: var(--obizu-success); color: #75b798; }
#pass-strength-result.short { border-color: var(--obizu-danger); color: #ea868f; }

/* ---------- Endereços (edit-address) ---------- */
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.woocommerce-Address { background: var(--obizu-surface); border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius-lg); padding: 1.5rem; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; }
.woocommerce-Address-title h3 { font-size: 1.05rem; margin: 0; }
@media (max-width: 700px) { .woocommerce-Addresses { grid-template-columns: 1fr; } }

/* ---------- Assinaturas (WooCommerce Subscriptions) ---------- */
table.subscription_details tr th, table.my_account_subscriptions th { background: var(--obizu-surface-2); }
mark.subscription-status, mark.order-status, .obizu-status {
  display: inline-block; padding: 0.3rem 0.8rem; border-radius: var(--obizu-radius-pill);
  font-size: 0.8rem; font-weight: 600; background: none; color: var(--obizu-body-color);
  border: 1px solid var(--obizu-border);
}
mark.subscription-status.status-active, .obizu-status.status-active,
mark.order-status.status-completed, mark.order-status.status-processing {
  border-color: var(--obizu-success); color: #75b798;
}
mark.subscription-status.status-on-hold, .obizu-status.status-on-hold,
mark.order-status.status-on-hold, mark.order-status.status-pending {
  border-color: var(--obizu-warning); color: var(--obizu-warning);
}
mark.subscription-status.status-pending-cancel, .obizu-status.status-pending-cancel {
  border-color: var(--obizu-info); color: #6edff6;
}
mark.subscription-status.status-cancelled, .obizu-status.status-cancelled,
mark.subscription-status.status-expired, .obizu-status.status-expired,
mark.order-status.status-cancelled, mark.order-status.status-failed,
mark.order-status.status-refunded {
  border-color: var(--obizu-danger); color: #ea868f;
}

.subscription_details .subscription-price, .woocommerce-subscription-totals-table .amount { color: var(--obizu-gold); font-weight: 700; }
.wcs_switch_link, .subscription_renewal_order, a.button.resubscribe, a.button.switch-subscription { white-space: nowrap; }

/* Página "Ver assinatura" (view-subscription) */
.woocommerce-subscription-details, .subscription-details { margin-bottom: 1.5rem; }

/* ---------- Downloads ---------- */
table.woocommerce-MyAccount-downloads .download-file a { color: var(--obizu-gold); font-weight: 600; }

/* ---------- Seção "Sobre o módulo" e Avaliações (largura total) ----------
   Substituem o sistema de abas do WooCommerce — cada uma ocupa a
   largura inteira do .container (não fica presa na coluna estreita
   da galeria/preço lá em cima). */
.obizu-product-story, .obizu-product-reviews-section {
  /* Essas seções ainda são filhas de div.product (o hook
     woocommerce_after_single_product_summary dispara antes de fechar
     esse container) — sem isso, herdam a grade de 2 colunas da
     galeria+preço lá em cima e ficam lado a lado em vez de empilhadas
     em largura total. */
  grid-column: 1 / -1;
  margin-top: 3.5rem;
  padding-top: 3.5rem;
  border-top: 1px solid var(--obizu-border);
}
.obizu-product-story .eyebrow, .obizu-product-reviews-section .eyebrow { display: block; text-align: center; margin-bottom: 0.5rem; }

.obizu-product-story .post-content {
  max-width: 820px;
  margin: 0 auto;
  font-size: 1.08rem;
  line-height: 1.85;
}
.obizu-product-story .post-content > h2:first-child,
.obizu-product-story .post-content > p:first-child { margin-top: 0; }
.obizu-product-story .post-content strong { color: var(--obizu-gold-light); }

/* Listas de benefícios viram uma grade de cartões com selo de check —
   bem mais "conquista desbloqueada" que uma lista de bullet solta. */
.obizu-product-story .post-content ul {
  list-style: none;
  margin: 2rem 0;
  padding: 0;
  max-width: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}
.obizu-product-story .post-content ul li {
  position: relative;
  background: var(--obizu-surface);
  border: 1px solid var(--obizu-border);
  border-radius: var(--obizu-radius-lg);
  padding: 1.1rem 1.25rem 1.1rem 3.1rem;
  font-size: 0.98rem;
  line-height: 1.6;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.obizu-product-story .post-content ul li:hover { border-color: var(--obizu-gold); transform: translateY(-2px); }
.obizu-product-story .post-content ul li::before {
  content: "\2713";
  position: absolute;
  left: 1.1rem;
  top: 1.15rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: var(--obizu-gold);
  color: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.8rem;
  flex: none;
}
.obizu-product-story .post-content ul li strong { display: block; color: var(--obizu-gold); margin-bottom: 0.2rem; }

.obizu-product-reviews-section #reviews { max-width: 820px; margin: 0 auto; }

/* ---------- Reviews ---------- */
#reviews #comments ol.commentlist { list-style: none; margin: 0; padding: 0; }
#reviews #comments ol.commentlist li { background: var(--obizu-surface); border: 1px solid var(--obizu-border); border-radius: var(--obizu-radius-lg); padding: 1.25rem 1.5rem; margin-bottom: 1rem; }
#reviews .comment-form-rating select { width: auto; }
#reviews .star-rating { color: var(--obizu-gold); }
#reviews .woocommerce-Reviews-title { font-size: 1.35rem; color: var(--obizu-gold); }

/* Estrelas clicáveis (ver assets/js/star-rating.js) — o <select> nativo
   continua no DOM (escondido, é ele que o WooCommerce lê no envio),
   essas 5 estrelas só encenam visualmente por cima. Brilho + leve
   "pulo" ao passar o mouse — a mesma linguagem de jogo do botão de
   assinar. */
.comment-form-rating label { display: block; margin-bottom: 0.5rem; }
/* O próprio JS do WooCommerce (não desativado — só a CSS dele foi)
   injeta seu próprio "<p class='stars'><a>1</a>...<a>5</a></p>" antes
   do <select>, sem nenhum estilo — daí o "1 2 3 4 5" cru que sobrava
   embaixo das nossas estrelas. Esconde a dele, mantém só a nossa. */
.comment-form-rating p.stars { display: none; }
.obizu-star-rating { display: inline-flex; gap: 0.4rem; margin: 0.25rem 0 1rem; }
.obizu-star {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: 1.9rem;
  line-height: 1;
  color: var(--obizu-border);
  transition: transform 0.15s ease, color 0.15s ease, filter 0.15s ease;
}
.obizu-star:hover,
.obizu-star:focus-visible,
.obizu-star.is-active {
  color: var(--obizu-gold);
  transform: scale(1.2) rotate(-6deg);
  filter: drop-shadow(0 0 8px rgba(212, 175, 55, 0.65));
}
.obizu-star:focus-visible { outline: 2px solid var(--obizu-gold); outline-offset: 3px; }
