/* =========================================================
   WooCommerce - Carrinho, Checkout e Minha Conta
   Restilizacao com a identidade Expansao Teologica.
   So carrega nas paginas do Woo (ver functions.php).
   ========================================================= */

.woocommerce, .woocommerce-page {
  font-family: var(--font-base);
  color: var(--color-text);
}

/* Container das paginas Woo herda o respiro do tema */
.woocommerce .container,
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content {
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--space-md);
}

/* ===== LAYOUT EM DUAS COLUNAS (desktop) ===== */
@media (min-width: 769px) {
  /* Checkout: formulario (largo) + resumo do pedido (coluna fixa)
     Posicionamento explicito por causa do titulo "Seu pedido" entre as colunas */
  .woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 400px);
    grid-template-rows: auto 1fr;
    column-gap: var(--space-xl);
    row-gap: var(--space-sm);
    align-items: start;
  }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #order_review_heading { width: auto; float: none; }
  .woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
  .woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; }
  .woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; }

  /* Carrinho: totais com largura controlada, alinhados a direita
     (robusto mesmo sem cross-sells, sem branco morto no meio) */
  .woocommerce-cart .cart-collaterals { display: block; }
  .woocommerce-cart .cart-collaterals .cross-sells { width: 100%; float: none; margin-bottom: var(--space-lg); }
  .woocommerce-cart .cart-collaterals .cart_totals {
    width: 100%; max-width: 400px;
    margin-left: auto; float: none;
  }

  /* Minha Conta: menu lateral fixo + conteudo no resto */
  .woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: minmax(200px, 240px) 1fr;
    gap: var(--space-xl);
    align-items: start;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
}

/* ===== BOTOES ===== */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.woocommerce #place_order,
.woocommerce .checkout-button,
.woocommerce .wc-proceed-to-checkout a.button {
  background: var(--color-cta) !important;
  color: var(--color-ink) !important;
  font-family: var(--font-base) !important;
  font-weight: var(--fw-semibold) !important;
  border: 0 !important;
  border-radius: var(--radius-sm) !important;
  padding: 0.85rem 1.6rem !important;
  text-transform: none !important;
  transition: background var(--transition), transform var(--transition) !important;
  box-shadow: var(--shadow-sm) !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce #place_order:hover,
.woocommerce .checkout-button:hover,
.woocommerce .wc-proceed-to-checkout a.button:hover {
  background: var(--color-cta-hover) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* Botao secundario (ex.: "Atualizar carrinho") */
.woocommerce button[name="update_cart"] {
  background: transparent !important;
  color: var(--color-primary) !important;
  border: 2px solid var(--color-primary) !important;
  box-shadow: none !important;
}
.woocommerce button[name="update_cart"]:hover {
  background: var(--color-primary) !important;
  color: #fff !important;
}

/* ===== TABELA DO CARRINHO (generico, usado tambem em pedidos da Minha Conta) ===== */
.woocommerce table.shop_table {
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  border-collapse: separate;
  overflow: hidden;
}
.woocommerce table.shop_table th {
  background: var(--color-bg);
  color: var(--color-ink);
  font-weight: var(--fw-semibold);
  padding: 1rem;
}
.woocommerce table.shop_table td { padding: 1rem; border-top: 1px solid var(--color-line); }
.woocommerce .cart_item .product-name a { color: var(--color-ink); font-weight: var(--fw-semibold); }
.woocommerce .product-remove a.remove {
  color: var(--color-text-muted) !important;
  border: 1px solid var(--color-line);
}
.woocommerce .product-remove a.remove:hover {
  background: var(--color-cta) !important;
  color: var(--color-ink) !important;
  border-color: var(--color-cta);
}

/* Precos */
.woocommerce .price,
.woocommerce .amount { color: var(--color-ink); font-weight: var(--fw-semibold); }
.woocommerce del .amount { color: var(--color-text-muted); font-weight: var(--fw-regular); }
.woocommerce ins { background: transparent; }

/* =========================================================
   CARRINHO: itens como cards (nao como tabela crua)
   ========================================================= */
.woocommerce-cart table.cart {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  border-collapse: separate;
}
.woocommerce-cart table.cart thead { display: none; }
.woocommerce-cart table.cart tbody { display: block; }

.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
  position: relative;
  display: grid;
  grid-template-columns: 88px 1fr auto auto;
  grid-template-areas:
    "thumb name qty subtotal"
    "thumb price qty subtotal";
  align-items: center;
  column-gap: var(--space-md);
  row-gap: 2px;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  margin-bottom: var(--space-sm);
  padding: var(--space-md);
  padding-right: calc(var(--space-md) + 32px);
  transition: box-shadow var(--transition);
}
.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item:hover { box-shadow: var(--shadow-sm); }
.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item td { padding: 0; border: 0; }

.woocommerce-cart .product-thumbnail { grid-area: thumb; }
.woocommerce-cart .product-thumbnail img {
  width: 88px; height: 66px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  display: block;
}
.woocommerce-cart .product-name { grid-area: name; align-self: end; }
.woocommerce-cart .product-name a {
  color: var(--color-ink); font-weight: var(--fw-semibold); font-size: 1.05rem;
}
.woocommerce-cart .product-name a:hover { color: var(--color-primary); }
.woocommerce-cart .product-name::before { display: none; } /* remove label mobile duplicado */
.woocommerce-cart .product-price { grid-area: price; align-self: start; }
.woocommerce-cart .product-price .amount { color: var(--color-text-muted); font-size: var(--fs-sm); font-weight: var(--fw-regular); }
.woocommerce-cart .product-quantity { grid-area: qty; }
.woocommerce-cart .product-subtotal { grid-area: subtotal; text-align: right; }
.woocommerce-cart .product-subtotal .amount { color: var(--color-ink); font-size: 1.15rem; font-weight: var(--fw-bold); }

/* Quantidade */
.woocommerce-cart .quantity .qty {
  width: 64px; height: 40px;
  border: 1px solid var(--color-line) !important;
  border-radius: var(--radius-sm) !important;
  text-align: center;
  font-family: var(--font-base) !important;
  color: var(--color-ink);
}
.woocommerce-cart .quantity .qty:focus { border-color: var(--color-primary) !important; outline: 0; }

/* Botao remover: X circular no canto superior direito do card */
.woocommerce-cart .product-remove { position: absolute; top: var(--space-sm); right: var(--space-sm); }
.woocommerce-cart .product-remove a.remove {
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 50%;
  font-size: 1.1rem; line-height: 1;
  border: 1px solid var(--color-line) !important;
}
.woocommerce-cart .product-remove a.remove:hover {
  background: #FBE9E7 !important;
  color: #C0392B !important;
  border-color: #F1C4BC !important;
}

/* Linha de acoes: cupom + atualizar carrinho, sem visual de tabela */
.woocommerce-cart table.cart td.actions {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--space-sm);
  background: transparent; border: 0; padding: var(--space-md) 0 0;
}
/* A linha de acoes (cupom/atualizar) nao tem classe propria: reseta qualquer
   <tr> que nao seja um item do carrinho, sem depender de :has() */
.woocommerce-cart table.cart tbody > tr:not(.woocommerce-cart-form__cart-item) {
  display: block; border: 0; background: transparent; padding: 0;
}

/* ===== CUPOM ===== */
.woocommerce form.checkout_coupon,
.woocommerce .coupon {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs);
  border: 1px dashed var(--color-line); border-radius: var(--radius-sm);
  padding: var(--space-xs); margin: 0;
}
.woocommerce .coupon::before {
  content: "";
  width: 20px; height: 20px; flex-shrink: 0;
  margin-left: var(--space-2xs);
  background: var(--color-gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M20.59 13.41 11 3.83A2 2 0 0 0 9.58 3.2L4 3a1 1 0 0 0-1 1l.2 5.58a2 2 0 0 0 .63 1.42l9.58 9.58a2 2 0 0 0 2.82 0l4.36-4.36a2 2 0 0 0 0-2.81z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M20.59 13.41 11 3.83A2 2 0 0 0 9.58 3.2L4 3a1 1 0 0 0-1 1l.2 5.58a2 2 0 0 0 .63 1.42l9.58 9.58a2 2 0 0 0 2.82 0l4.36-4.36a2 2 0 0 0 0-2.81z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce .coupon input#coupon_code {
  border: 0 !important; background: transparent; min-width: 160px; flex: 1 1 auto;
}
.woocommerce .coupon button[name="apply_coupon"] {
  background: transparent !important; color: var(--color-primary) !important;
  border: 1.5px solid var(--color-primary) !important; box-shadow: none !important;
  padding: 0.6rem 1.1rem !important; font-size: var(--fs-sm) !important;
}
.woocommerce .coupon button[name="apply_coupon"]:hover { background: var(--color-primary) !important; color: #fff !important; }
.woocommerce button[name="update_cart"] { padding: 0.6rem 1.1rem !important; font-size: var(--fs-sm) !important; }

/* ===== TOTAIS DO CARRINHO ===== */
.woocommerce .cart_totals,
.woocommerce-checkout #order_review {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: var(--space-lg);
}
.woocommerce .cart_totals h2,
.woocommerce-checkout h3 { color: var(--color-ink); margin-top: 0; }
.woocommerce .cart_totals .eyebrow { margin-bottom: 2px; }

.woocommerce .cart_totals table.shop_table {
  border: 0; box-shadow: none; border-radius: 0; margin: var(--space-sm) 0 0;
}
.woocommerce .cart_totals table.shop_table tr:first-child th,
.woocommerce .cart_totals table.shop_table tr:first-child td { border-top: 0; padding-top: 0; }
.woocommerce .cart_totals th { background: transparent; font-weight: var(--fw-regular); color: var(--color-text-muted); padding: 0.65rem 0; }
.woocommerce .cart_totals td { padding: 0.65rem 0; text-align: right; }
.woocommerce .cart_totals tr.order-total th,
.woocommerce .cart_totals tr.order-total td { border-top: 2px solid var(--color-line); padding-top: var(--space-sm); }
.woocommerce .cart_totals tr.order-total th { color: var(--color-ink); font-weight: var(--fw-semibold); font-size: 1.05rem; }
.woocommerce .cart_totals tr.order-total .amount { color: var(--color-ink); font-size: 1.4rem; font-weight: var(--fw-bold); }

.wc-proceed-to-checkout { margin-top: var(--space-md); }
.woocommerce .wc-proceed-to-checkout a.button.checkout-button {
  display: flex !important; align-items: center; justify-content: center; gap: 0.5rem;
  font-size: var(--fs-lead) !important;
}
.checkout-button__icon { width: 20px; height: 20px; transition: transform var(--transition); }
.woocommerce .checkout-button:hover .checkout-button__icon { transform: translateX(3px); }

.cart-totals__guarantee { margin-top: var(--space-md); }

/* ===== CAMPOS DE FORMULARIO (CHECKOUT / LOGIN) ===== */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection {
  border: 1px solid var(--color-line) !important;
  border-radius: var(--radius-sm) !important;
  padding: 0.7rem 0.9rem !important;
  font-family: var(--font-base) !important;
  background: var(--color-surface);
  transition: border-color var(--transition), box-shadow var(--transition);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(42,74,107,0.12) !important;
  outline: 0;
}
.woocommerce form .form-row label { font-weight: var(--fw-semibold); color: var(--color-ink); }

/* ===== AVISOS / MENSAGENS ===== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--color-gold) !important;
  border-radius: var(--radius-sm);
  background: var(--color-surface);
}
.woocommerce-message::before { color: var(--color-success); }
.woocommerce-info::before { color: var(--color-primary); }

/* ===== ABAS / MINHA CONTA ===== */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none; padding: 0;
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block; padding: 0.85rem 1rem;
  color: var(--color-text);
  border-bottom: 1px solid var(--color-line);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  background: var(--color-bg);
  color: var(--color-primary);
  font-weight: var(--fw-semibold);
  border-left: 3px solid var(--color-gold);
}

/* Paginas do Woo usam a largura total do container (sem o limite de leitura) */
.woocommerce-cart .page-article__content,
.woocommerce-checkout .page-article__content,
.woocommerce-account .page-article__content { max-width: none; }

/* ===== CARRINHO VAZIO (estado branded, com sugestao de curso) ===== */
.cart-empty-state {
  text-align: center;
  max-width: 560px;
  margin: var(--space-lg) auto;
  padding: var(--space-xl) var(--space-md);
}
.cart-empty-state__icon {
  width: 84px; height: 84px;
  margin: 0 auto var(--space-md);
  display: grid; place-items: center;
  background: var(--color-gold-10);
  color: var(--color-gold);
  border-radius: 50%;
}
.cart-empty-state__icon svg { width: 38px; height: 38px; }
.cart-empty-state__eyebrow { justify-content: center; }
.cart-empty-state__title { margin-bottom: var(--space-xs); }
.cart-empty-state__text { color: var(--color-text-muted); margin-bottom: var(--space-lg); max-width: 46ch; margin-inline: auto; }

/* Card do curso sugerido (adicionar ao carrinho em 1 clique) */
.cart-empty-course {
  display: flex; align-items: stretch; text-align: left;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs);
  overflow: hidden;
  margin-bottom: var(--space-lg);
  transition: box-shadow var(--transition-slow), transform var(--transition-slow);
}
.cart-empty-course:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.cart-empty-course__media {
  flex: 0 0 128px;
  background: linear-gradient(160deg, var(--color-ink), var(--color-deep));
}
.cart-empty-course__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cart-empty-course__body { flex: 1; padding: var(--space-md); display: flex; flex-direction: column; gap: var(--space-2xs); min-width: 0; }
.cart-empty-course__title { font-size: 1.05rem; margin: var(--space-2xs) 0 0; }
.cart-empty-course__title a { color: var(--color-ink); }
.cart-empty-course__title a:hover { color: var(--color-primary); }
.cart-empty-course__meta { color: var(--color-text-muted); font-size: var(--fs-xs); }
.cart-empty-course__foot { margin-top: auto; padding-top: var(--space-sm); display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); flex-wrap: wrap; }
.cart-empty-course__price { font-weight: var(--fw-bold); color: var(--color-ink); font-size: 1.1rem; }
.cart-empty-course__price del { color: var(--color-text-muted); font-weight: var(--fw-regular); font-size: 0.85em; margin-right: 4px; }

/* Beneficios rapidos */
.cart-empty-state__perks {
  list-style: none; padding: 0; margin: 0 0 var(--space-lg);
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-md);
}
.cart-empty-state__perks li {
  display: flex; align-items: center; gap: 0.4rem;
  color: var(--color-text-muted); font-size: var(--fs-sm);
}
.cart-empty-state__perks svg {
  width: 18px; height: 18px; flex-shrink: 0;
  color: var(--color-success);
  background: var(--color-success-10);
  border-radius: 50%; padding: 3px;
}

/* Link secundario para o catalogo completo */
.cart-empty-state__link {
  position: relative;
  display: inline-block;
  font-weight: var(--fw-semibold); font-size: var(--fs-sm);
  color: var(--color-primary);
}
.cart-empty-state__link::after {
  content: ""; display: block; height: 1px; background: var(--color-primary);
  transform: scaleX(0); transform-origin: left; transition: transform var(--transition);
}
.cart-empty-state__link:hover::after { transform: scaleX(1); }

/* Esconde o aviso padrao "cesta vazia" do Woo (substituido pelo estado acima) */
.woocommerce-cart .cart-empty.woocommerce-info { display: none; }

@media (max-width: 480px) {
  .cart-empty-course { flex-direction: column; }
  .cart-empty-course__media { flex-basis: auto; height: 140px; }
}

/* ===== RESPONSIVO ===== */
@media (max-width: 768px) {
  .woocommerce table.shop_table th { display: none; }
  .woocommerce-cart .cart-collaterals .cart_totals { width: 100%; float: none; }
}

/* Cards do carrinho: layout mais vertical em telas pequenas
   (4 colunas ficariam espremidas; quantidade/subtotal vao para linha propria) */
@media (max-width: 560px) {
  .woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
    grid-template-columns: 72px 1fr;
    grid-template-areas:
      "thumb name"
      "thumb price"
      "qty qty"
      "subtotal subtotal";
    row-gap: var(--space-xs);
  }
  .woocommerce-cart .product-thumbnail img { width: 72px; height: 54px; }
  .woocommerce-cart .product-quantity { margin-top: var(--space-2xs); }
  .woocommerce-cart .product-subtotal {
    text-align: left; padding-top: var(--space-xs); border-top: 1px solid var(--color-line);
  }
  .woocommerce-cart table.cart td.actions { flex-direction: column; align-items: stretch; }
  .woocommerce .coupon { width: 100%; }
}
