/*
 Theme Name:   Astra Child
 Description:  Child theme do Astra — E-Carioca
 Template:     astra
 Version:      1.0.0
 Text Domain:  astra-child
*/

/* =============================================
   VARIÁVEIS GLOBAIS
   ============================================= */
:root {
  --shop-bg:       #f4f4f2;
  --card-bg:       #ffffff;
  --text-primary:  #1a1a1a;
  --text-muted:    #6b6b6b;
  --accent:        #013596;
  --accent-hover:  #387AFF;
  --border:        #e2e0db;
  --radius:        12px;
  --shadow:        0 2px 14px rgba(0,0,0,0.06);
  --shadow-hover:  0 10px 36px rgba(0,0,0,0.13);
  --transition:    0.26s cubic-bezier(0.4, 0, 0.2, 1);
  --font:          'Cabin', sans-serif;
}

* { font-family: var(--font) !important; }

/* Normaliza o fundo de todos os containers do Astra/WooCommerce */
body.woocommerce,
body.woocommerce-page,
.woocommerce-shop-wrapper,
.ast-woocommerce-container,
.woocommerce-page #primary,
.woocommerce-page #main,
.woocommerce-page .site-content,
.woocommerce #primary,
.woocommerce #main {
  background: var(--shop-bg) !important;
}

/* Remove o botão flutuante de "Adicionar ao carrinho" que o WooCommerce
   coloca sobre a imagem no hover — usamos nosso próprio botão no rodapé do card */
.woocommerce ul.products li.product .button.add_to_cart_button.ajax_add_to_cart[style*="position"],
.woocommerce ul.products li.product a.button:not(.add_to_cart_button),
.woocommerce-page ul.products li.product .button.add_to_cart_button.ajax_add_to_cart[style*="position"],
.woocommerce ul.products li.product .woocommerce-loop-product__link ~ .button,
.woocommerce-page ul.products li.product .woocommerce-loop-product__link ~ .button {
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
}

/* =============================================
   HERO FULL WIDTH
   ============================================= */
.woocommerce-shop-wrapper {
  background: var(--shop-bg);
  min-height: 100vh;
}

/* Garante que o hero não fique preso dentro do container do Astra */
.shop-hero {
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  height: 420px;
  overflow: hidden;
  display: flex;
  align-items: center;
  margin-bottom: 40px;
}

/* Imagem de fundo via Unsplash — tecnologia/digital */
.shop-hero__image {
  position: absolute;
  inset: 0;
  background-image: url('https://images.unsplash.com/photo-1519389950473-47ba0277781c?w=1600&q=80&auto=format&fit=crop');
  background-size: cover;
  background-position: center 40%;
  transform: scale(1.04);
  transition: transform 8s ease;
}

.shop-hero:hover .shop-hero__image {
  transform: scale(1.0);
}

/* Overlay escuro com gradiente lateral */
.shop-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(10, 30, 20, 0.88) 0%,
    rgba(10, 30, 20, 0.55) 55%,
    rgba(10, 30, 20, 0.18) 100%
  );
  z-index: 1;
}

/* Conteúdo do hero */
.shop-hero__content {
  position: relative;
  z-index: 2;
  padding: 0 60px;
  max-width: 680px;
}

.shop-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #74c69d;
  margin-bottom: 18px;
}

.shop-hero__title {
  font-size: clamp(2.4rem, 5vw, 3.8rem) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  color: #fff !important;
  margin: 0 0 16px !important;
  letter-spacing: -0.02em;
}

.shop-hero__subtitle {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.65);
  max-width: 420px;
  line-height: 1.6;
  margin: 0;
}

/* Elementos geométricos decorativos */
.shop-hero__geo {
  position: absolute;
  z-index: 1;
  border-radius: 50%;
  border: 1px solid rgba(116, 198, 157, 0.18);
}

.shop-hero__geo--1 {
  width: 380px; height: 380px;
  right: 8%;  top: -80px;
}

.shop-hero__geo--2 {
  width: 220px; height: 220px;
  right: 18%; bottom: -60px;
  border-color: rgba(116, 198, 157, 0.1);
}

.shop-hero__geo--3 {
  width: 80px; height: 80px;
  right: 32%; top: 30px;
  background: rgba(116, 198, 157, 0.06);
  border: none;
}

/* =============================================
   FILTROS E BUSCA
   ============================================= */
.shop-filters-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

/* Campo de busca */
.shop-search-wrap {
  display: flex;
  align-items: center;
  background: var(--card-bg);
  border: 1.5px solid var(--border);
  border-radius: 10px;
  padding: 0 4px 0 12px;
  gap: 6px;
  min-width: 220px;
  transition: border-color var(--transition), box-shadow var(--transition);
}

.shop-search-wrap:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(45,106,79,0.1);
}

.shop-search-icon {
  color: var(--text-muted);
  flex-shrink: 0;
}

.shop-search-wrap input[type="search"] {
  font-size: 1rem !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 10px 0 !important;
  flex: 1;
  color: var(--text-primary) !important;
  min-width: 0;
  -webkit-appearance: none;
}

.shop-search-wrap input[type="search"]::-webkit-search-cancel-button {
  display: none;
}

.shop-search-clear {
  background: none !important;
  border: none !important;
  padding: 6px 8px !important;
  cursor: pointer;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  border-radius: 6px !important;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition), color var(--transition), background var(--transition) !important;
  box-shadow: none !important;
}

.shop-search-clear:hover {
  color: var(--text-primary);
  background: var(--shop-bg) !important;
}

/* Badges de categoria */
.shop-category-filters {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  flex: 1;
}

.shop-cat-badge {
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  background: var(--card-bg);
  border: 1.5px solid var(--border);
  border-radius: 999px;
  padding: 8px 18px;
  text-decoration: none !important;
  transition: all var(--transition);
  white-space: nowrap;
  line-height: 1;
}

.shop-cat-badge:hover {
  border-color: var(--accent);
  color: var(--accent) !important;
}

.shop-cat-badge.active {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
}

/* =============================================
   BARRA DE CONTROLES
   ============================================= */
.shop-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0 16px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 28px;
  flex-wrap: wrap;
  gap: 10px;
}

.shop-result-count {
  font-size: 1rem;
  color: var(--text-muted);
  margin: 0;
}

.shop-controls .woocommerce-ordering select {
  font-size: 1rem !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 8px !important;
  padding: 10px 16px !important;
  background: var(--card-bg) !important;
  color: var(--text-primary) !important;
  cursor: pointer;
  outline: none;
  box-shadow: none !important;
  transition: border-color var(--transition);
}

.shop-controls .woocommerce-ordering select:focus {
  border-color: var(--accent) !important;
}

/* =============================================
   ESTADO VAZIO DA BUSCA
   ============================================= */
.shop-no-results {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 80px 20px;
  min-height: 340px;
  text-align: center;
  color: var(--text-muted);
}

.shop-no-results p {
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
}

.shop-no-results strong {
  color: var(--text-primary);
}

.shop-no-results button {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 10px 22px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: background var(--transition) !important;
  box-shadow: none !important;
}

.shop-no-results button:hover {
  background: var(--accent-hover) !important;
}

/* Remove botão flutuante do Astra sobre a imagem (add-to-cart overlay) */
.woocommerce ul.products li.product .ast-loop-product-image-btn-on-image,
.woocommerce ul.products li.product .astra-shop-overlay,
.woocommerce ul.products li.product .ast-shop-product-icon-wrap,
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce-page ul.products li.product .ast-loop-product-image-btn-on-image,
.woocommerce-page ul.products li.product .astra-shop-overlay,
.woocommerce-page ul.products li.product .ast-shop-product-icon-wrap,
.woocommerce-page ul.products li.product .ast-on-card-button {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* =============================================
   FIX CONTAINER DO ASTRA
   ============================================= */
.ast-woocommerce-container {
  max-width: 1000px !important;
  width: 100% !important;
}

/* =============================================
   GRID DE PRODUTOS
   ============================================= */

/* Neutraliza o sistema de float/width do Astra em todos os breakpoints
   para que nosso CSS Grid funcione corretamente */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none !important;
  clear: none !important;
}
/* Grid base — usa :where() para neutralizar especificidade
   das classes columns-N do Astra/WooCommerce.
   Assim qualquer media query com seletor simples consegue sobrescrever. */
:where(.woocommerce, .woocommerce-page) ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0 0 80px !important;
  float: none;
  width: 100%;
}

/* Sobrescreve regra do WooCommerce que adiciona margin extra */
.woocommerce-js .products ul,
.woocommerce-js ul.products {
  margin: 0 0 80px !important;
}

.woocommerce .products::before,
.woocommerce .products::after,
.woocommerce-page .products::before,
.woocommerce-page .products::after {
  display: none !important;
}

/* Card */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--card-bg) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow) !important;
  overflow: hidden !important;
  transition: box-shadow var(--transition), transform var(--transition), opacity var(--transition) !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: none !important;
  border: 1px solid var(--border) !important;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  box-shadow: var(--shadow-hover) !important;
  transform: translateY(-3px) !important;
  border-color: transparent !important;
}

/* Imagem — wrapper do Astra */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap {
  padding: 16px 16px 0 16px !important;
  display: block !important;
  overflow: hidden !important;
  border-radius: 8px 8px 0 0 !important;
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap a.woocommerce-loop-product__link,
.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap a.woocommerce-loop-product__link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  border-radius: 8px !important;
  background: var(--shop-bg) !important;
}

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.6s ease !important;
  margin: 0 !important;
  border-radius: 8px !important;
}

.woocommerce ul.products li.product:hover a img,
.woocommerce-page ul.products li.product:hover a img {
  transform: scale(1.04) !important;
}

/* Área de texto — wrapper do Astra */
.woocommerce ul.products li.product .astra-shop-summary-wrap,
.woocommerce-page ul.products li.product .astra-shop-summary-wrap {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  padding: 0 !important;
}

/* Título */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  margin: 22px 22px 10px !important;
  line-height: 1.4 !important;
  padding: 0 !important;
  transition: color var(--transition) !important;
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product:hover .woocommerce-loop-product__title {
  color: var(--accent) !important;
}

/* Preço */
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
  margin: 0 22px 22px !important;
  display: block !important;
  letter-spacing: -0.01em !important;
}

.woocommerce ul.products li.product .price del,
.woocommerce-page ul.products li.product .price del {
  font-size: 0.95rem !important;
  color: var(--text-muted) !important;
  font-weight: 400 !important;
  margin-right: 6px !important;
  letter-spacing: 0 !important;
}

.woocommerce ul.products li.product .price ins,
.woocommerce-page ul.products li.product .price ins {
  text-decoration: none !important;
}

/* Botão */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce-page ul.products li.product .button,
.woocommerce-page ul.products li.product .add_to_cart_button {
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 16px 22px !important;
  cursor: pointer !important;
  transition: background var(--transition) !important;
  text-align: center !important;
  display: block !important;
  width: calc(100% - 32px) !important;
  margin: auto 16px 16px !important;
  box-shadow: none !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover,
.woocommerce-page ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .add_to_cart_button:hover {
  background: var(--accent-hover) !important;
  color: #fff !important;
}

/* Badge sale */
.woocommerce ul.products li.product .onsale,
.woocommerce-page ul.products li.product .onsale {
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  background: #e63946 !important;
  color: #fff !important;
  border-radius: 6px !important;
  padding: 4px 10px !important;
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 2 !important;
  margin: 0 !important;
}

/* =============================================
   PAGINAÇÃO — minimalista
   ============================================= */
.woocommerce-pagination {
  display: flex !important;
  justify-content: center !important;
  margin: 8px 0 72px !important;
}

.woocommerce-pagination ul.page-numbers {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  list-style: none !important;
  padding: 6px !important;
  margin: 0 !important;
  background: var(--card-bg) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
}

.woocommerce-pagination ul.page-numbers li {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  list-style: none !important;
}

.woocommerce-pagination ul.page-numbers li a.page-numbers,
.woocommerce-pagination ul.page-numbers li span.page-numbers {
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 36px !important;
  height: 36px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;
  border: none !important;
  color: var(--text-muted) !important;
  text-decoration: none !important;
  transition: all var(--transition) !important;
  background: transparent !important;
}

.woocommerce-pagination ul.page-numbers li a.page-numbers:hover {
  background: var(--shop-bg) !important;
  color: var(--text-primary) !important;
}

.woocommerce-pagination ul.page-numbers li span.current,
.woocommerce-pagination ul.page-numbers li span.page-numbers.current {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.woocommerce-pagination ul.page-numbers li a.prev,
.woocommerce-pagination ul.page-numbers li a.next {
  color: var(--text-primary) !important;
  font-size: 1rem !important;
}

/* Mensagem sem produtos */
.woocommerce-info {
  background: var(--card-bg);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius);
  padding: 20px 24px;
  color: var(--text-primary);
}

/* =============================================
   RESPONSIVO — ARCHIVE PRODUCT
   ============================================= */

/* Tablet largo */
@media (max-width: 1024px) {
  .shop-hero__content { padding: 0 40px; }
}

/* Tablet */
@media (max-width: 900px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* Mobile landscape / tablet pequeno */
@media (max-width: 768px) {
  /* Zera o padding do ast-container que bloqueia o full width do hero */
  .ast-container {
    --ast-container-default-sm-padding: 0px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Hero full width — agora funciona pois o pai não tem padding */
  .shop-hero {
    height: 280px;
    width: 100% !important;
    left: 0 !important;
    right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    position: relative !important;
  }
  .shop-hero__content { padding: 0 24px; }
  .shop-hero__geo--1 { width: 240px; height: 240px; right: -40px; top: -40px; }
  .shop-hero__geo--2 { display: none; }
  .shop-hero__geo--3 { display: none; }

  /* Filtros e conteúdo — padding lateral de volta só para eles */
  .shop-filters-bar,
  .shop-controls,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce-pagination,
  .shop-no-results,
  #shop-search-page-notice,
  nav.woocommerce-breadcrumb {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Filtros — empilha busca em cima, badges com scroll horizontal embaixo */
  .shop-filters-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .shop-search-wrap { width: 100%; }

  .shop-category-filters {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 4px !important;
    scrollbar-width: none !important;
  }
  .shop-category-filters::-webkit-scrollbar { display: none; }

  /* Controles */
  .shop-controls {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
  }

  .shop-controls .woocommerce-ordering { margin: 0 !important; }
  .shop-controls .woocommerce-ordering select {
    font-size: 0.78rem !important;
    padding: 7px 10px !important;
  }

  #shop-search-page-notice { font-size: 0.72rem !important; }
}

/* Mobile retrato */
@media (max-width: 480px) {
  /* Hero full width — container pai já sem padding em mobile */
  .shop-hero {
    height: 220px !important;
    width: 100% !important;
    left: 0 !important;
    right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .shop-hero__content { padding: 0 20px; }

  .shop-hero__title {
    font-size: clamp(1.6rem, 7vw, 2.4rem) !important;
  }

  .shop-hero__subtitle { display: none; }

  /* Grid — 2 colunas em mobile */
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  /* Controles — contador e ordenação empilhados */
  .shop-controls {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .shop-controls .woocommerce-ordering {
    width: 100% !important;
  }

  .shop-controls .woocommerce-ordering select {
    width: 100% !important;
  }

  .shop-result-count { font-size: 0.8rem; }

  /* Badges menores */
  .shop-cat-badge {
    font-size: 0.72rem !important;
    padding: 5px 12px !important;
  }

  /* Filtros com padding lateral igual ao grid */
  .shop-filters-bar {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Estado vazio */
  .shop-no-results { padding: 48px 16px; min-height: 260px; }

  /* ===== Tipografia maior no mobile ===== */

  /* Breadcrumb */
  nav.woocommerce-breadcrumb,
  .woocommerce-breadcrumb {
    font-size: 1.15rem !important;
  }

  /* Campo de busca */
  .shop-search-wrap input[type="search"] {
    font-size: 1.2rem !important;
    padding: 18px 0 !important;
  }

  .shop-search-icon {
    width: 22px !important;
    height: 22px !important;
  }

  /* Badges de categoria */
  .shop-cat-badge {
    font-size: 1.1rem !important;
    padding: 12px 22px !important;
  }

  /* Contador de resultados */
  .shop-result-count {
    font-size: 1.15rem !important;
  }

  /* Ordenação */
  .shop-controls .woocommerce-ordering select {
    font-size: 1.15rem !important;
    padding: 14px 18px !important;
  }

  /* Cards de produto */
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    font-size: 1.35rem !important;
    margin: 20px 18px 10px !important;
    line-height: 1.35 !important;
  }

  .woocommerce ul.products li.product .price,
  .woocommerce-page ul.products li.product .price {
    font-size: 1.4rem !important;
    margin: 0 18px 20px !important;
  }

  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product .add_to_cart_button,
  .woocommerce-page ul.products li.product .button,
  .woocommerce-page ul.products li.product .add_to_cart_button {
    font-size: 1.05rem !important;
    padding: 18px 22px !important;
  }

  /* Estado vazio */
  .shop-no-results p {
    font-size: 1.35rem !important;
  }

  /* Aviso de busca por página */
  #shop-search-page-notice {
    font-size: 1.05rem !important;
    padding: 14px 18px !important;
  }
}

/* Telas muito pequenas (375px) */
@media (max-width: 390px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .shop-hero { height: 200px !important; }
}

/* =============================================
   MINI CART — SIDEBAR DO ELEMENTOR
   Seletores baseados no HTML real gerado
   ============================================= */

/* Painel principal — fundo transparente com blur cobrindo a tela toda */
.elementor-menu-cart__container {
  font-family: var(--font) !important;
  background: transparent !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  box-shadow: none !important;
  border: none !important;
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  right: 0 !important;
  left: auto !important;
}

/* Overlay escurecido atrás do painel */
.elementor-menu-cart__overlay {
  background: rgba(10, 20, 15, 0.5) !important;
  backdrop-filter: blur(3px) !important;
}

/* Painel interno — flex coluna para empurrar footer para baixo */
.elementor-menu-cart__main {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  overflow: hidden !important; /* scroll fica só na área de produtos */
  max-height: 100vh !important;
}

/* ---- Botão fechar (X) da sidebar ---- */
.elementor-menu-cart__close-button {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  cursor: pointer !important;
  z-index: 10 !important;
  width: 38px !important;
  height: 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #fff !important;
  border: 1.5px solid #2d6a4f !important;
  border-radius: 10px !important;
  transition: all var(--transition) !important;
}

.elementor-menu-cart__close-button:hover {
  transform: rotate(90deg) !important;
}

.elementor-menu-cart__close-button svg {
  width: 18px !important;
  height: 18px !important;
  color: #2d6a4f !important;
  transition: color var(--transition) !important;
}

/* ---- Wrapper do conteúdo ---- */
.widget_shopping_cart_content {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  padding-top: 64px !important; /* espaço para o botão fechar */
}

/* ---- Área de produtos (scroll) ---- */
.elementor-menu-cart__products {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 2rem 20px 16px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  /* Scrollbar discreta */
  scrollbar-width: thin !important;
  scrollbar-color: var(--border) transparent !important;
}

.elementor-menu-cart__products::-webkit-scrollbar {
  width: 4px;
}
.elementor-menu-cart__products::-webkit-scrollbar-track {
  background: transparent;
}
.elementor-menu-cart__products::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 4px;
}

/* ---- Item individual ---- */
.elementor-menu-cart__product {
  display: grid !important;
  grid-template-columns: 72px 1fr 28px !important;
  grid-template-rows: auto auto !important;
  column-gap: 14px !important;
  row-gap: 4px !important;
  align-items: start !important;
  padding: 14px !important;
  background: var(--shop-bg) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  transition: border-color var(--transition) !important;
}

.elementor-menu-cart__product:hover {
  border-color: var(--accent) !important;
}

/* Imagem */
.elementor-menu-cart__product-image {
  grid-row: 1 / 3 !important;
}

.elementor-menu-cart__product-image img {
  width: 72px !important;
  height: 72px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  display: block !important;
}

/* Nome */
.elementor-menu-cart__product-name {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

.elementor-menu-cart__product-name a {
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
  transition: color var(--transition) !important;
}

.elementor-menu-cart__product-name a:hover {
  color: var(--accent) !important;
}

/* Preço / Quantidade */
.elementor-menu-cart__product-price {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

.elementor-menu-cart__product-price .product-quantity {
  font-size: 0.78rem !important;
  color: var(--text-muted) !important;
  font-weight: 500 !important;
}

.elementor-menu-cart__product-price .woocommerce-Price-amount {
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
}

/* Botão remover — canto superior direito do card */
.elementor-menu-cart__product {
  position: relative !important;
  overflow: visible !important;
}

/* Classe pai — controla tamanho, forma, borda e posição */
.elementor-menu-cart__product-remove {
  position: absolute !important;
  top: -10px !important;
  right: -10px !important;
  z-index: 2 !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  border: 2.5px solid var(--card-bg) !important;
  background: #ff6b35 !important;
  box-shadow: 0 3px 10px rgba(255,107,53,0.45) !important;
  transition: all var(--transition) !important;
  cursor: pointer !important;
  /* Necessário para o <a> filho com inset:0 funcionar */
  isolation: isolate !important;
}

.elementor-menu-cart__product-remove:hover {
  background: #e85d04 !important;
  transform: scale(1.15) !important;
  box-shadow: 0 5px 16px rgba(255,107,53,0.6) !important;
}

/* Sobrepõe o <a> sobre o círculo inteiro — invisível mas clicável */
.elementor-menu-cart__product-remove a.elementor_remove_from_cart_button {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 3 !important;
  border-radius: 50% !important;
  font-size: 0 !important;
  color: transparent !important;
  background: transparent !important;
  display: block !important;
}

/* Esconde o segundo <a> duplicado do WooCommerce */
.elementor-menu-cart__product-remove a.remove_from_cart_button {
  display: none !important;
}

/* Cada linha do X — ::before e ::after são as duas barras */
.elementor-menu-cart__product-remove::before,
.elementor-menu-cart__product-remove::after {
  content: '' !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 12px !important;
  height: 2px !important;
  background: #fff !important; /* cor das linhas do X */
  border-radius: 2px !important;
  transition: transform var(--transition) !important;
}

.elementor-menu-cart__product-remove::before {
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

.elementor-menu-cart__product-remove::after {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}

.elementor-menu-cart__product-remove:hover::before {
  transform: translate(-50%, -50%) rotate(135deg) !important;
}

.elementor-menu-cart__product-remove:hover::after {
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

/* ---- Subtotal ---- */
.elementor-menu-cart__subtotal {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 16px 20px !important;
  border-top: 1px solid var(--border) !important;
  margin: 0 !important;
}

.elementor-menu-cart__subtotal strong {
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.elementor-menu-cart__subtotal .woocommerce-Price-amount {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
}

/* ---- Botões de ação ---- */
.elementor-menu-cart__footer-buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 16px 20px 24px !important;
  border-top: 1px solid var(--border) !important;
}

/* Botão base */
.elementor-menu-cart__footer-buttons .elementor-button {
  display: block !important;
  text-align: center !important;
  padding: 13px 20px !important;
  border-radius: var(--radius) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: all var(--transition) !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

/* "Ver carrinho" — outline */
.elementor-menu-cart__footer-buttons .elementor-button--view-cart {
  background: transparent !important;
  border: 2px solid var(--accent) !important;
  color: var(--accent) !important;
}

.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
  background: var(--accent) !important;
  color: #fff !important;
}

/* "Finalizar compra" — sólido */
.elementor-menu-cart__footer-buttons .elementor-button--checkout {
  background: var(--accent) !important;
  border: 2px solid var(--accent) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(45,106,79,0.25) !important;
}

.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
  background: var(--accent-hover) !important;
  border-color: var(--accent-hover) !important;
  box-shadow: 0 6px 20px rgba(45,106,79,0.35) !important;
}

/* ---- Responsivo mini cart ---- */

/* Tablet */
@media (max-width: 768px) {
  .elementor-menu-cart__products {
    padding: 1.5rem 16px 12px !important;
  }

  .elementor-menu-cart__subtotal {
    padding: 12px 16px !important;
  }

  .elementor-menu-cart__footer-buttons {
    padding: 12px 16px 20px !important;
    gap: 8px !important;
  }
}

/* Mobile retrato */
@media (max-width: 480px) {
  .elementor-menu-cart__products {
    padding: 1.5rem 14px 12px !important;
    gap: 10px !important;
  }

  /* Produto em grid menor */
  .elementor-menu-cart__product {
    grid-template-columns: 56px 1fr 28px !important;
    padding: 12px !important;
  }

  .elementor-menu-cart__product-image img {
    width: 56px !important;
    height: 56px !important;
  }

  .elementor-menu-cart__product-name a {
    font-size: 0.8rem !important;
  }

  .elementor-menu-cart__product-price .woocommerce-Price-amount {
    font-size: 0.8rem !important;
  }

  /* Subtotal e botões compactos */
  .elementor-menu-cart__subtotal {
    padding: 12px 14px !important;
  }

  .elementor-menu-cart__subtotal .woocommerce-Price-amount {
    font-size: 1rem !important;
  }

  .elementor-menu-cart__footer-buttons {
    padding: 12px 14px 20px !important;
    gap: 8px !important;
  }

  .elementor-menu-cart__footer-buttons .elementor-button {
    padding: 12px 16px !important;
    font-size: 0.72rem !important;
  }

  /* Botão fechar menor */
  .elementor-menu-cart__close-button {
    width: 34px !important;
    height: 34px !important;
    top: 12px !important;
    right: 12px !important;
  }
}

/* =============================================
   SINGLE PRODUCT — página de produto customizada
   ============================================= */

.single-product-wrapper {
  background: var(--shop-bg);
  padding: 32px 0 80px;
}

/* Animações de entrada */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.fade-in-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===== Container do produto ===== */
.single-product-custom {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ===== Top: galeria + info ===== */
.single-product__top {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  margin-bottom: 80px;
  align-items: start;
}

/* ---- Galeria ---- */
.single-product__gallery {
  position: sticky;
  top: 24px;
}

.single-product__gallery .woocommerce-product-gallery {
  width: 100% !important;
  max-width: 480px !important;
  margin: 0 auto !important;
  float: none !important;
}

.single-product__gallery .woocommerce-product-gallery__wrapper {
  border-radius: 16px;
  overflow: hidden;
  background: var(--card-bg);
  border: 1px solid var(--border);
  box-shadow: 0 4px 24px rgba(0,0,0,0.04);
}

.single-product__gallery .woocommerce-product-gallery img {
  border-radius: 16px;
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.6s ease;
}

.single-product__gallery .woocommerce-product-gallery:hover img {
  transform: scale(1.02);
}

.single-product__gallery .woocommerce-product-gallery__trigger {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  z-index: 2 !important;
  width: 44px !important;
  height: 44px !important;
  background: rgba(255,255,255,0.95) !important;
  backdrop-filter: blur(10px);
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
  transition: all var(--transition) !important;
}

.single-product__gallery .woocommerce-product-gallery__trigger:hover {
  transform: scale(1.1) !important;
  background: var(--accent) !important;
}

.single-product__gallery .woocommerce-product-gallery__trigger:hover img {
  filter: brightness(0) invert(1);
}

.single-product__gallery .woocommerce-product-gallery__trigger img {
  width: 18px !important;
  height: 18px !important;
  transition: filter var(--transition);
}

/* ---- Summary (info à direita) ---- */
.single-product__summary {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Breadcrumb */
.single-product__summary .woocommerce-breadcrumb {
  font-size: 0.85rem !important;
  color: var(--text-muted) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.single-product__summary .woocommerce-breadcrumb a {
  color: var(--text-muted) !important;
  text-decoration: none !important;
  transition: color var(--transition);
}

.single-product__summary .woocommerce-breadcrumb a:hover {
  color: var(--accent) !important;
}

/* Categoria como badge */
.single-product__category-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 6px 14px;
  background: rgba(1,53,150,0.08);
  color: var(--accent) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  border-radius: 999px;
  text-decoration: none !important;
  transition: all var(--transition);
}

.single-product__category-badge:hover {
  background: var(--accent);
  color: #fff !important;
}

/* Título */
.single-product__title {
  font-size: 2.6rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Preço */
.single-product__price {
  font-size: 2.2rem !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
  letter-spacing: -0.02em;
  padding: 4px 0 24px;
  border-bottom: 1px solid var(--border);
}

.single-product__price del {
  font-size: 1.3rem !important;
  color: var(--text-muted) !important;
  font-weight: 400 !important;
  margin-right: 12px !important;
}

.single-product__price ins {
  text-decoration: none !important;
}

/* Descrição curta */
.single-product__short-desc {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-primary);
}

.single-product__short-desc p {
  margin: 0 0 12px;
}

/* ---- Form de carrinho ---- */
.single-product__summary form.cart {
  display: flex !important;
  align-items: stretch !important;
  gap: 12px !important;
  margin: 8px 0 !important;
}

.single-product__summary .quantity {
  display: flex !important;
  align-items: stretch !important;
  margin: 0 !important;
}

.single-product__summary .quantity input.qty {
  width: 90px !important;
  height: 56px !important;
  padding: 0 12px !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 12px !important;
  background: var(--card-bg) !important;
  color: var(--text-primary) !important;
  outline: none !important;
  transition: border-color var(--transition) !important;
}

.single-product__summary .quantity input.qty:focus {
  border-color: var(--accent) !important;
}

.single-product__summary .single_add_to_cart_button {
  flex: 1 !important;
  height: 56px !important;
  padding: 0 32px !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  transition: all var(--transition) !important;
  box-shadow: 0 4px 16px rgba(1,53,150,0.25) !important;
  position: relative;
  overflow: hidden;
}

.single-product__summary .single_add_to_cart_button::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  transform: translateX(-100%);
  transition: transform 0.6s ease;
}

.single-product__summary .single_add_to_cart_button:hover {
  background: var(--accent-hover) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(1,53,150,0.35) !important;
}

.single-product__summary .single_add_to_cart_button:hover::before {
  transform: translateX(100%);
}

/* Estado loading */
.single-product__summary .single_add_to_cart_button.loading {
  background: var(--accent-hover) !important;
  cursor: wait !important;
  pointer-events: none;
}

.single-product__summary .single_add_to_cart_button.loading::after {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-left: 8px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  vertical-align: middle;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Estado sucesso */
.single-product__summary .single_add_to_cart_button.added {
  background: #10b981 !important;
  pointer-events: none;
  animation: pulseSuccess 0.4s ease;
}

@keyframes pulseSuccess {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); }
  100% { transform: scale(1); }
}

/* Botão "Ver carrinho" — injetado pelo WooCommerce após adicionar ao carrinho */
.single-product__summary .added_to_cart.wc-forward,
.single-product-custom .added_to_cart.wc-forward {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  height: 56px !important;
  padding: 0 28px !important;
  margin-left: 12px !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--card-bg) !important;
  color: var(--accent) !important;
  border: 2px solid var(--accent) !important;
  border-radius: 12px !important;
  text-decoration: none !important;
  transition: all var(--transition) !important;
  animation: fadeInUp 0.4s ease forwards;
}

.single-product__summary .added_to_cart.wc-forward::before,
.single-product-custom .added_to_cart.wc-forward::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23013596' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 002 1.61h9.72a2 2 0 002-1.61L23 6H6'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: filter var(--transition);
}

.single-product__summary .added_to_cart.wc-forward:hover,
.single-product-custom .added_to_cart.wc-forward:hover {
  background: var(--accent) !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(1,53,150,0.25) !important;
}

.single-product__summary .added_to_cart.wc-forward:hover::before,
.single-product-custom .added_to_cart.wc-forward:hover::before {
  filter: brightness(0) invert(1);
}

/* Mobile — botão Ver carrinho ocupa largura total abaixo */
@media (max-width: 600px) {
  .single-product__summary .added_to_cart.wc-forward,
  .single-product-custom .added_to_cart.wc-forward {
    display: flex !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-top: 12px !important;
  }
}

/* ---- Trust badges ---- */
.single-product__trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 20px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-top: 8px;
}

.trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
  line-height: 1.3;
}

.trust-item svg {
  color: var(--accent);
  flex-shrink: 0;
}

/* ---- Meta ---- */
.single-product__meta {
  font-size: 0.85rem;
  color: var(--text-muted);
  padding-top: 16px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.single-product__meta .meta-label {
  font-weight: 600;
  color: var(--text-primary);
}

.single-product__meta a {
  color: var(--accent) !important;
  text-decoration: none !important;
  font-weight: 600;
}

.single-product__meta a:hover {
  text-decoration: underline !important;
}

/* WCFM enquiry — esconde por padrão (botão de pergunta isolado) */
.single-product-custom .wcfm_ele_wrapper {
  display: none !important;
}

/* ===== Descrição em destaque ===== */
.single-product__description-section {
  max-width: 820px;
  margin: 0 auto 80px;
  padding: 48px 24px;
  background: var(--card-bg);
  border-radius: 20px;
  border: 1px solid var(--border);
  box-shadow: 0 4px 24px rgba(0,0,0,0.04);
}

.single-product__description-header {
  text-align: center;
  margin-bottom: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--border);
}

.section-eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--accent);
  margin-bottom: 8px;
}

.section-title {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  margin: 0 !important;
  letter-spacing: -0.02em !important;
}

.single-product__description-content {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--text-primary);
}

.single-product__description-content p {
  margin: 0 0 20px;
}

.single-product__description-content p:last-child {
  margin-bottom: 0;
}

/* Realça os labels em <b> dentro da descrição */
.single-product__description-content b,
.single-product__description-content strong {
  display: inline-block;
  font-weight: 700;
  color: var(--accent);
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-right: 8px;
}

.single-product__description-content h2,
.single-product__description-content h3,
.single-product__description-content h4 {
  font-weight: 700;
  color: var(--text-primary);
  margin: 32px 0 16px;
  letter-spacing: -0.01em;
}

.single-product__description-content h2 { font-size: 1.5rem; }
.single-product__description-content h3 { font-size: 1.25rem; }

.single-product__description-content ul,
.single-product__description-content ol {
  margin: 0 0 20px;
  padding-left: 24px;
}

.single-product__description-content li {
  margin-bottom: 8px;
}

.single-product__description-content blockquote {
  border-left: 4px solid var(--accent);
  padding: 16px 24px;
  margin: 24px 0;
  background: var(--shop-bg);
  border-radius: 8px;
  font-style: italic;
  color: var(--text-muted);
}

/* ===== Tabs customizadas ===== */
.single-product__tabs-section {
  max-width: 1000px;
  margin: 0 auto 80px;
  padding: 0 24px;
}

.single-product__tabs {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
}

.custom-tabs__nav {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0 !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--border);
  background: var(--shop-bg);
}

.custom-tabs__nav::before,
.custom-tabs__nav::after {
  display: none !important;
}

.custom-tabs__tab {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  list-style: none !important;
  flex: 1;
  text-align: center;
}

.custom-tabs__tab::before,
.custom-tabs__tab::after {
  display: none !important;
}

.custom-tabs__tab a {
  display: block !important;
  padding: 18px 24px !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  text-decoration: none !important;
  border-bottom: 3px solid transparent !important;
  margin-bottom: -1px !important;
  transition: all var(--transition) !important;
  cursor: pointer;
}

.custom-tabs__tab a:hover {
  color: var(--text-primary) !important;
  background: rgba(0,0,0,0.02);
}

.custom-tabs__tab.active a {
  color: var(--accent) !important;
  border-bottom-color: var(--accent) !important;
  background: var(--card-bg);
}

.custom-tabs__panels {
  padding: 32px;
}

.custom-tabs__panel {
  display: none;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-primary);
  animation: fadeInUp 0.4s ease forwards;
}

.custom-tabs__panel.active {
  display: block;
}

.custom-tabs__panel h2 {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--text-primary);
}

/* Reviews */
.custom-tabs__panel .woocommerce-noreviews {
  background: var(--shop-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  color: var(--text-muted);
  font-size: 0.95rem;
}

/* Form de review */
.custom-tabs__panel #review_form .comment-reply-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
  display: block;
  margin-bottom: 16px;
}

.custom-tabs__panel #review_form .comment-form label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
  display: block;
  margin-bottom: 6px;
}

.custom-tabs__panel #review_form .comment-form input[type="text"],
.custom-tabs__panel #review_form .comment-form input[type="email"],
.custom-tabs__panel #review_form .comment-form textarea {
  width: 100%;
  padding: 12px 14px;
  font-size: 0.95rem;
  font-family: var(--font);
  border: 1.5px solid var(--border);
  border-radius: 10px;
  background: var(--card-bg);
  color: var(--text-primary);
  outline: none;
  transition: border-color var(--transition);
}

.custom-tabs__panel #review_form .comment-form input:focus,
.custom-tabs__panel #review_form .comment-form textarea:focus {
  border-color: var(--accent);
}

.custom-tabs__panel #review_form .submit {
  padding: 14px 28px;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: background var(--transition);
}

.custom-tabs__panel #review_form .submit:hover {
  background: var(--accent-hover);
}

.custom-tabs__panel .stars a {
  color: #ffb700;
  text-decoration: none;
}

/* ===== Produtos relacionados ===== */
.single-product-custom .related.products {
  margin: 80px 0 0;
  padding: 0;
  width: 100%;
}

/* Garante que o grid dos produtos relacionados ocupe a largura total
   do container e não tenha margin extra herdada */
.single-product-custom .related.products ul.products {
  margin: 0 !important;
  width: 100% !important;
}

/* Imagens menores nos produtos relacionados — ficam mais compactas */
.single-product-custom .related.products ul.products li.product .astra-shop-thumbnail-wrap {
  padding: 12px 12px 0 12px !important;
}

.single-product-custom .related.products ul.products li.product a img {
  max-width: 200px !important;
  margin: 0 auto !important;
}

.single-product-custom .related.products ul.products li.product .astra-shop-thumbnail-wrap a.woocommerce-loop-product__link {
  background: var(--shop-bg) !important;
}

.single-product-custom .related.products > h2 {
  font-size: 1.8rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  margin: 0 0 32px !important;
  letter-spacing: -0.02em !important;
  text-align: center;
  position: relative;
  padding-bottom: 16px;
}

.single-product-custom .related.products > h2::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background: var(--accent);
  border-radius: 2px;
}

/* =============================================
   SINGLE PRODUCT — RESPONSIVO
   ============================================= */

/* ----- Tablet largo (≤1024px) ----- */
@media (max-width: 1024px) {
  .single-product-custom {
    padding: 0 20px;
  }

  .single-product__top {
    gap: 40px !important;
    margin-bottom: 60px !important;
  }

  .single-product__title {
    font-size: 2.2rem !important;
  }

  .single-product__price {
    font-size: 1.9rem !important;
  }
}

/* ----- Tablet (≤768px) ----- */
@media (max-width: 768px) {
  /* Zera padding lateral do container do Astra */
  .ast-container {
    --ast-container-default-sm-padding: 0px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Top empilha: galeria em cima, info embaixo */
  .single-product__top {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    margin-bottom: 48px !important;
  }

  /* Galeria perde sticky no mobile */
  .single-product__gallery {
    position: static !important;
  }

  .single-product__gallery .woocommerce-product-gallery {
    max-width: 380px !important;
  }

  .single-product__gallery .woocommerce-product-gallery img {
    border-radius: 12px;
  }

  /* Tipografia */
  .single-product__title {
    font-size: 1.9rem !important;
  }

  .single-product__price {
    font-size: 1.7rem !important;
    padding-bottom: 20px;
  }

  .section-title {
    font-size: 1.6rem !important;
  }

  /* Trust badges 3 colunas ainda cabe */
  .single-product__trust {
    padding: 16px;
    gap: 8px;
  }

  .trust-item {
    font-size: 0.72rem;
  }

  .trust-item svg {
    width: 18px;
    height: 18px;
  }

  /* Descrição com menos padding */
  .single-product__description-section {
    padding: 40px 24px;
    margin-bottom: 60px;
  }

  /* Tabs: scroll horizontal */
  .custom-tabs__nav {
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    scrollbar-width: none !important;
  }

  .custom-tabs__nav::-webkit-scrollbar {
    display: none;
  }

  .custom-tabs__tab {
    flex: 0 0 auto !important;
  }

  .custom-tabs__panels {
    padding: 28px 24px;
  }

  /* Produtos relacionados */
  .single-product-custom .related.products {
    margin-top: 60px !important;
  }

  .single-product-custom .related.products > h2 {
    font-size: 1.5rem !important;
  }
}

/* ----- Mobile (≤600px) ----- */
@media (max-width: 600px) {
  .single-product-wrapper {
    padding: 16px 0 48px;
  }

  .single-product-custom {
    padding: 0 16px;
  }

  .single-product__top {
    gap: 24px !important;
    margin-bottom: 40px !important;
  }

  /* Tipografia */
  .single-product__title {
    font-size: 1.6rem !important;
    line-height: 1.2 !important;
  }

  .single-product__price {
    font-size: 1.5rem !important;
    padding-bottom: 16px;
  }

  /* Categoria badge menor */
  .single-product__category-badge {
    font-size: 0.68rem !important;
    padding: 5px 12px;
  }

  /* Form de carrinho empilhado */
  .single-product__summary form.cart {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .single-product__summary .quantity {
    width: 100% !important;
    display: block !important;
  }

  .single-product__summary .quantity input.qty {
    width: 100% !important;
    height: 52px !important;
    min-height: 52px !important;
    box-sizing: border-box !important;
  }

  .single-product__summary .single_add_to_cart_button {
    width: 100% !important;
    flex: none !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 14px 24px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Trust badges em coluna única */
  .single-product__trust {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 16px !important;
  }

  .trust-item {
    flex-direction: row !important;
    text-align: left !important;
    justify-content: flex-start;
    gap: 12px;
    font-size: 0.85rem;
  }

  /* Descrição */
  .single-product__description-section {
    padding: 32px 20px;
    border-radius: 14px;
    margin-bottom: 48px;
  }

  .single-product__description-header {
    margin-bottom: 24px;
    padding-bottom: 24px;
  }

  .section-eyebrow {
    font-size: 0.68rem;
  }

  .section-title {
    font-size: 1.4rem !important;
  }

  .single-product__description-content {
    font-size: 1rem;
    line-height: 1.7;
  }

  .single-product__description-content h2 { font-size: 1.3rem; }
  .single-product__description-content h3 { font-size: 1.15rem; }

  /* Tabs */
  .single-product__tabs-section {
    padding: 0 16px;
  }

  .custom-tabs__tab a {
    padding: 14px 18px !important;
    font-size: 0.85rem !important;
  }

  .custom-tabs__panels {
    padding: 24px 20px !important;
  }

  /* Produtos relacionados — herda padding do .single-product-custom */
  .single-product-custom .related.products {
    margin-top: 48px !important;
  }

  .single-product-custom .related.products ul.products {
    padding: 0 !important;
  }

  .single-product-custom .related.products > h2 {
    font-size: 1.3rem !important;
    margin-bottom: 24px !important;
  }
}

/* ----- Mobile pequeno (≤390px) ----- */
@media (max-width: 390px) {
  .single-product__title {
    font-size: 1.4rem !important;
  }

  .single-product__price {
    font-size: 1.35rem !important;
  }

  .single-product__description-section {
    padding: 24px 16px;
  }

  .section-title {
    font-size: 1.25rem !important;
  }

  .custom-tabs__tab a {
    padding: 12px 14px !important;
    font-size: 0.8rem !important;
  }
}

/* =============================================
   CARRINHO — página de carrinho customizada
   ============================================= */

.cart-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 24px 80px;
}

/* Esconde o título padrão "Carrinho" da página WP */
body.woocommerce-cart .entry-header,
body.woocommerce-cart .entry-title {
  display: none !important;
}

/* Header customizado */
.cart-header {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--border);
}

.cart-header__title {
  font-size: 2.4rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 8px !important;
  line-height: 1.1 !important;
}

.cart-header__subtitle {
  font-size: 0.95rem;
  color: var(--text-muted);
  margin: 0;
}

/* Layout 2 colunas */
.cart-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 32px;
  align-items: start;
}

/* ===== Coluna esquerda: itens ===== */
.cart-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Card do produto */
.cart-item-card {
  display: grid;
  grid-template-columns: 100px 1fr 130px 140px 140px;
  align-items: center;
  gap: 20px;
  padding: 20px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  position: relative;
  transition: all var(--transition);
}

.cart-item-card:hover {
  border-color: rgba(1,53,150,0.15);
  box-shadow: 0 4px 16px rgba(0,0,0,0.04);
}

/* Botão remover */
.cart-item__remove {
  position: absolute !important;
  top: -10px !important;
  right: -10px !important;
  z-index: 2;
  width: 28px !important;
  height: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ff6b35 !important;
  border: 2.5px solid var(--card-bg) !important;
  border-radius: 50% !important;
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: 0 3px 10px rgba(255,107,53,0.45);
  transition: all var(--transition) !important;
}

.cart-item__remove:hover {
  background: #e85d04 !important;
  transform: scale(1.15) rotate(90deg) !important;
  box-shadow: 0 5px 16px rgba(255,107,53,0.6);
}

.cart-item__remove svg {
  width: 14px;
  height: 14px;
}

/* Thumbnail */
.cart-item__thumb {
  width: 100px;
  height: 100px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--shop-bg);
}

.cart-item__thumb a,
.cart-item__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
}

/* Info */
.cart-item__info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.cart-item__name {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

.cart-item__name a {
  color: var(--text-primary) !important;
  text-decoration: none !important;
  transition: color var(--transition);
}

.cart-item__name a:hover {
  color: var(--accent) !important;
}

.cart-item__price-mobile {
  display: none;
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-top: 4px;
}

.cart-item__price-mobile .label {
  font-weight: 500;
}

/* Preço unitário (desktop) */
.cart-item__price {
  font-size: 0.95rem;
  color: var(--text-muted);
  text-align: center;
}

.cart-item__price .woocommerce-Price-amount {
  font-weight: 600;
  color: var(--text-primary);
}

/* Quantidade */
.cart-item__quantity {
  display: flex;
  justify-content: center;
}

.cart-item__quantity .quantity {
  margin: 0 !important;
}

.cart-item__quantity input.qty {
  width: 80px !important;
  height: 44px !important;
  padding: 0 8px !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  background: var(--card-bg) !important;
  color: var(--text-primary) !important;
  outline: none !important;
  transition: border-color var(--transition) !important;
}

.cart-item__quantity input.qty:focus {
  border-color: var(--accent) !important;
}

/* Subtotal */
.cart-item__subtotal {
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.cart-item__subtotal .label {
  display: none;
  font-size: 0.78rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}

.cart-item__subtotal .value {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--accent);
}

/* ===== Barra de ações (cupom + atualizar) ===== */
.cart-actions-bar {
  display: flex;
  gap: 12px;
  align-items: stretch;
  padding: 20px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.cart-coupon {
  display: flex;
  flex: 1;
  min-width: 280px;
  gap: 8px;
}

.cart-coupon__input {
  flex: 1 !important;
  height: 44px !important;
  padding: 0 14px !important;
  font-size: 0.9rem !important;
  font-family: var(--font) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  background: var(--shop-bg) !important;
  color: var(--text-primary) !important;
  outline: none !important;
  transition: border-color var(--transition) !important;
}

.cart-coupon__input:focus {
  border-color: var(--accent) !important;
  background: var(--card-bg) !important;
}

.cart-coupon__button {
  height: 44px !important;
  padding: 0 20px !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  background: transparent !important;
  border: 1.5px solid var(--accent) !important;
  border-radius: 10px !important;
  color: var(--accent) !important;
  cursor: pointer !important;
  transition: all var(--transition) !important;
}

.cart-coupon__button:hover {
  background: var(--accent) !important;
  color: #fff !important;
}

.cart-update-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  height: 44px !important;
  padding: 0 20px !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  background: var(--shop-bg) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  color: var(--text-muted) !important;
  cursor: pointer !important;
  transition: all var(--transition) !important;
}

.cart-update-btn:hover:not([disabled]),
.cart-update-btn.is-pending {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
}

.cart-update-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed !important;
}

.cart-update-btn.is-pending svg {
  animation: spin 1s linear infinite;
}

/* ===== Coluna direita: resumo ===== */
.cart-summary {
  position: sticky;
  top: 24px;
}

.cart-totals-custom {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.04);
}

.cart-totals__title {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  margin: 0 0 20px !important;
  letter-spacing: -0.01em !important;
}

.cart-totals__rows {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}

.cart-totals__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.95rem;
  color: var(--text-primary);
}

.cart-totals__row.cart-discount {
  color: #10b981;
}

.cart-totals__row.cart-discount .cart-totals__value {
  color: #10b981;
  font-weight: 600;
}

.cart-totals__label {
  color: var(--text-muted);
}

.cart-totals__value {
  font-weight: 600;
  color: var(--text-primary);
}

.cart-totals__row.order-total {
  padding-top: 16px;
  border-top: 1px solid var(--border);
  margin-top: 4px;
  font-size: 1rem !important;
}

.cart-totals__row.order-total .cart-totals__label {
  font-size: 0.85rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.cart-totals__row.order-total .cart-totals__value {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: -0.01em;
}

/* Botão checkout */
.cart-totals-custom .wc-proceed-to-checkout {
  margin: 0 !important;
  padding: 0 !important;
}

.cart-totals-custom .checkout-button,
.cart-totals-custom .wc-proceed-to-checkout a.button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 56px !important;
  padding: 0 24px !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  text-decoration: none !important;
  box-shadow: 0 4px 16px rgba(1,53,150,0.25) !important;
  transition: all var(--transition) !important;
}

.cart-totals-custom .checkout-button:hover,
.cart-totals-custom .wc-proceed-to-checkout a.button:hover {
  background: var(--accent-hover) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(1,53,150,0.35) !important;
}

/* ===== Carrinho vazio ===== */
.cart-empty,
.woocommerce-info {
  background: var(--card-bg) !important;
  border: 1px solid var(--border) !important;
  border-radius: 16px !important;
  padding: 48px 32px !important;
  text-align: center !important;
  color: var(--text-primary) !important;
  font-size: 1rem !important;
}

.return-to-shop {
  margin-top: 20px !important;
  text-align: center !important;
}

.return-to-shop .button,
.return-to-shop a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 48px !important;
  padding: 0 28px !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--accent) !important;
  color: #fff !important;
  border-radius: 12px !important;
  text-decoration: none !important;
  transition: background var(--transition) !important;
}

.return-to-shop .button:hover,
.return-to-shop a.button:hover {
  background: var(--accent-hover) !important;
}

/* ===== Responsivo ===== */
@media (max-width: 968px) {
  .cart-layout {
    grid-template-columns: 1fr !important;
  }

  .cart-summary {
    position: static !important;
  }
}

@media (max-width: 768px) {
  /* Zera o padding do ast-container do Astra para o carrinho ocupar a largura toda */
  body.woocommerce-cart .ast-container {
    --ast-container-default-sm-padding: 0px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Astra page-builder template — força width 100% para o conteúdo */
  body.woocommerce-cart .ast-single-post.ast-page-builder-template .site-main > article,
  body.woocommerce-cart .woocommerce.ast-page-builder-template .site-main,
  .ast-single-post.ast-page-builder-template .site-main > article,
  .woocommerce.ast-page-builder-template .site-main {
    width: 100% !important;
    max-width: 100% !important;
  }

  .cart-wrapper {
    padding: 20px 12px 60px !important;
  }

  .cart-header {
    margin-bottom: 20px;
    padding-bottom: 16px;
  }

  .cart-header__title {
    font-size: 1.6rem !important;
  }

  .cart-header__subtitle {
    font-size: 0.85rem;
  }

  .cart-layout {
    gap: 16px !important;
  }

  .cart-items {
    gap: 12px !important;
  }

  /* Cards em layout vertical com padding menor */
  .cart-item-card {
    grid-template-columns: 70px 1fr !important;
    grid-template-areas:
      "thumb info"
      "thumb info"
      "qty subtotal" !important;
    gap: 10px 14px !important;
    padding: 14px !important;
    border-radius: 12px !important;
  }

  .cart-item__thumb {
    width: 70px;
    height: 70px;
    grid-area: thumb;
  }

  .cart-item__info {
    grid-area: info;
  }

  .cart-item__price {
    display: none;
  }

  .cart-item__price-mobile {
    display: block;
  }

  .cart-item__quantity {
    grid-area: qty;
    justify-content: flex-start;
  }

  .cart-item__subtotal {
    grid-area: subtotal;
    text-align: right;
  }

  .cart-item__subtotal .label {
    display: block;
  }

  /* Cupom + atualizar empilhados */
  .cart-actions-bar {
    flex-direction: column;
    padding: 14px !important;
    gap: 10px !important;
    border-radius: 12px !important;
  }

  .cart-coupon {
    width: 100%;
    min-width: 0;
  }

  .cart-update-btn {
    width: 100%;
  }

  .cart-totals-custom {
    padding: 20px !important;
    border-radius: 12px !important;
  }
}

@media (max-width: 480px) {
  .cart-header__title {
    font-size: 1.5rem !important;
  }

  .cart-item__name {
    font-size: 0.9rem !important;
  }

  .cart-item__quantity input.qty {
    width: 70px !important;
  }

  .cart-totals__row.order-total .cart-totals__value {
    font-size: 1.35rem;
  }

  .cart-totals-custom .checkout-button {
    height: 52px !important;
    font-size: 0.85rem !important;
  }
}

/* =============================================
   CHECKOUT — finalizar compra
   Estiliza via CSS sem mexer no template
   ============================================= */

/* Esconde o título "Finalizar compra" padrão */
body.woocommerce-checkout .entry-header,
body.woocommerce-checkout .entry-title {
  display: none !important;
}

/* Wrapper geral */
body.woocommerce-checkout .ast-container {
  --ast-container-default-sm-padding: 0px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.woocommerce-checkout .site-main,
body.woocommerce-checkout .site-content,
body.woocommerce-checkout #primary {
  background: var(--shop-bg) !important;
}

body.woocommerce-checkout .ast-single-post.ast-page-builder-template .site-main > article,
body.woocommerce-checkout .woocommerce.ast-page-builder-template .site-main {
  width: 100% !important;
  max-width: 100% !important;
}

body.woocommerce-checkout article.post-34 {
  background: var(--shop-bg);
  padding: 32px 0 80px;
}

body.woocommerce-checkout .entry-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Header customizado com pseudo-element */
body.woocommerce-checkout .entry-content::before {
  content: 'Finalizar compra';
  display: block;
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  line-height: 1.1;
}

body.woocommerce-checkout .entry-content::after {
  content: '';
  display: block;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--border);
}

/* ===== Toggles (Já é cliente / Cupom) ===== */
.woocommerce-form-login-toggle,
.woocommerce-form-coupon-toggle {
  margin-bottom: 16px !important;
}

.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info {
  background: var(--card-bg) !important;
  border: 1.5px dashed var(--border) !important;
  border-left: 4px solid var(--accent) !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  color: var(--text-primary) !important;
  font-size: 0.95rem !important;
  margin: 0 !important;
  list-style: none !important;
}

.woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-form-coupon-toggle .woocommerce-info::before {
  display: none !important;
}

.woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-form-coupon-toggle .woocommerce-info a {
  color: var(--accent) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.woocommerce-form-login-toggle .woocommerce-info a:hover,
.woocommerce-form-coupon-toggle .woocommerce-info a:hover {
  text-decoration: underline !important;
}

/* Forms colapsáveis (login + cupom) */
.woocommerce-form-login,
.checkout_coupon {
  background: var(--card-bg) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  padding: 24px !important;
  margin-bottom: 16px !important;
}

/* ===== Container principal — layout vertical =====
   Customer details em cima, "Seu pedido" + order_review embaixo.
   O WC aplica width 48% nos itens, então forçamos width 100%. */
form.checkout {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
}

form.checkout #customer_details,
form.checkout #order_review,
form.checkout #order_review_heading {
  width: 100% !important;
  float: none !important;
  clear: none !important;
}

/* Título "Seu pedido" antes do resumo */
form.checkout #order_review_heading {
  margin: 8px 0 0 !important;
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  letter-spacing: -0.01em !important;
}

/* Resumo do pedido sem sticky */
form.checkout #order_review {
  position: static !important;
  width: 100% !important;
}

form #order_review:not(.elementor-widget-woocommerce-checkout-page #order_review) {
  padding: 2rem !important;
}

/* Esconde col-2 vazio do customer_details */
form.checkout #customer_details .col-2:empty {
  display: none !important;
}

/* Reset do col2-set — vira display block para o grid controlar */
form.checkout .col2-set {
  display: block !important;
  width: 100% !important;
  float: none !important;
}

form.checkout .col2-set .col-1 {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

form.checkout .col2-set .col-2 {
  width: 100% !important;
  float: none !important;
}

/* ===== Cards das seções (cobrança / informação adicional) ===== */
.woocommerce-billing-fields,
.woocommerce-additional-fields {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px;
  margin-bottom: 16px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.04);
}

.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3 {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: var(--text-primary) !important;
  margin: 0 0 20px !important;
  letter-spacing: -0.01em !important;
}

/* ===== Form rows ===== */
.woocommerce-checkout .form-row,
.woocommerce form.checkout .form-row {
  margin: 0 0 16px !important;
  padding: 0 !important;
}

/* Wrapper dos campos: Grid 2 colunas
   IMPORTANTE: dentro de Grid, os filhos NUNCA usam width 50% — o grid
   já calcula a largura via grid-template-columns. Width 50% num filho
   de grid 1fr 1fr daria 25% da largura total. */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px 16px !important;
}

/* Filhos do grid: width auto/100% pra ocupar a célula completa.
   Anula o width 47% que o WooCommerce aplica em form-row-first/last */
.woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce-additional-fields__field-wrapper > .form-row {
  margin: 0 !important;
  width: 100% !important;
  float: none !important;
  clear: none !important;
}

.woocommerce-billing-fields__field-wrapper > .form-row.form-row-wide,
.woocommerce-additional-fields__field-wrapper > .form-row.form-row-wide {
  grid-column: 1 / -1 !important;
}

/* Esconde campos display:none injetados pelo plugin */
.woocommerce-billing-fields__field-wrapper > .form-row[style*="display: none"] {
  display: none !important;
}

/* Labels */
.woocommerce-checkout .form-row label,
.woocommerce form.checkout .form-row label {
  display: block !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  margin-bottom: 6px !important;
}

.woocommerce-checkout .form-row label .required {
  color: #e63946 !important;
  margin-left: 2px;
}

.woocommerce-checkout .form-row label .optional {
  color: var(--text-muted) !important;
  font-weight: 400;
  font-size: 0.78rem;
  margin-left: 4px;
}

.woocommerce-checkout .form-row label abbr.required {
  display: none !important;
}

/* Inputs e textareas */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce form.checkout .form-row input.input-text,
.woocommerce form.checkout .form-row textarea,
.woocommerce-form-login .input-text,
.checkout_coupon .input-text {
  width: 100% !important;
  height: 46px !important;
  padding: 0 14px !important;
  font-size: 0.95rem !important;
  font-family: var(--font) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  background: var(--card-bg) !important;
  color: var(--text-primary) !important;
  outline: none !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout .form-row textarea,
.woocommerce form.checkout .form-row textarea {
  height: auto !important;
  min-height: 100px !important;
  padding: 12px 14px !important;
  resize: vertical !important;
  line-height: 1.5 !important;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce form.checkout .form-row input.input-text:focus,
.woocommerce form.checkout .form-row textarea:focus {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(1,53,150,0.1) !important;
}

/* Estados de validação */
.woocommerce-invalid input.input-text,
.woocommerce-invalid select {
  border-color: #e63946 !important;
}

.woocommerce-validated input.input-text {
  border-color: var(--border) !important;
}

/* ===== Select2 — padroniza com o resto ===== */

/* Force width 100% no container do Select2 dentro de form-row
   (o WC/Brazilian Market injeta width inline em px que quebra o layout) */
.woocommerce-js form .form-row .select2-container,
.woocommerce-checkout .form-row .select2-container,
.woocommerce form.checkout .form-row .select2-container {
  width: 100% !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single,
.woocommerce form.checkout .select2-container--default .select2-selection--single {
  height: 46px !important;
  padding: 0 14px !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  background: var(--card-bg) !important;
  outline: none !important;
  transition: border-color var(--transition) !important;
  display: flex !important;
  align-items: center !important;
}

.woocommerce-checkout .select2-container--default .select2-selection__rendered {
  padding: 0 !important;
  font-size: 0.95rem !important;
  color: var(--text-primary) !important;
  line-height: 1 !important;
  font-family: var(--font) !important;
}

.woocommerce-checkout .select2-container--default .select2-selection__placeholder {
  color: var(--text-muted) !important;
}

.woocommerce-checkout .select2-container--default .select2-selection__arrow {
  height: 100% !important;
  top: 0 !important;
  right: 12px !important;
}

.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(1,53,150,0.1) !important;
}

/* Dropdown do Select2 */
.select2-dropdown {
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;
  overflow: hidden !important;
}

.select2-search--dropdown .select2-search__field {
  border: 1.5px solid var(--border) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  font-family: var(--font) !important;
}

.select2-results__option {
  padding: 10px 14px !important;
  font-size: 0.9rem !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  background: var(--accent) !important;
  color: #fff !important;
}

/* ===== Checkbox "Criar uma conta" ===== */
.woocommerce-account-fields {
  margin-top: 16px !important;
}

.woocommerce-account-fields .create-account label {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  cursor: pointer !important;
}

.woocommerce-account-fields .create-account input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  cursor: pointer;
  accent-color: var(--accent);
}

.woocommerce-account-fields .create-account[style*="display: none"] {
  display: none !important;
}

/* ===== Coluna direita: resumo do pedido ===== */
#order_review {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.04);
}

/* Tabela do resumo */
.woocommerce-checkout-review-order-table {
  width: 100% !important;
  margin: 0 0 20px !important;
  border-collapse: collapse !important;
  background: transparent !important;
}

.woocommerce-checkout-review-order-table thead th {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  color: var(--text-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0 0 12px !important;
  border-bottom: 1px solid var(--border) !important;
  background: transparent !important;
}

.woocommerce-checkout-review-order-table tbody td,
.woocommerce-checkout-review-order-table tbody th {
  padding: 12px 0 !important;
  font-size: 0.9rem !important;
  color: var(--text-primary) !important;
  border-bottom: 1px solid var(--border) !important;
  background: transparent !important;
  vertical-align: top !important;
}

.woocommerce-checkout-review-order-table .product-name {
  font-weight: 600 !important;
  padding-right: 12px !important;
}

.woocommerce-checkout-review-order-table .product-quantity {
  display: inline-block;
  margin-left: 4px;
  font-weight: 500 !important;
  color: var(--text-muted) !important;
  font-size: 0.85rem;
}

.woocommerce-checkout-review-order-table .product-total {
  text-align: right !important;
  white-space: nowrap !important;
}

/* Totals */
.woocommerce-checkout-review-order-table tfoot tr {
  background: transparent !important;
}

.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
  padding: 12px 0 !important;
  font-size: 0.9rem !important;
  color: var(--text-muted) !important;
  font-weight: 500 !important;
  background: transparent !important;
  border: none !important;
}

.woocommerce-checkout-review-order-table tfoot td {
  text-align: right !important;
  color: var(--text-primary) !important;
  font-weight: 600 !important;
}

.woocommerce-checkout-review-order-table tfoot tr.order-total th {
  padding-top: 16px !important;
  border-top: 1px solid var(--border) !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-weight: 700 !important;
}

.woocommerce-checkout-review-order-table tfoot tr.order-total td {
  padding-top: 16px !important;
  border-top: 1px solid var(--border) !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
  letter-spacing: -0.01em !important;
}

/* ===== Payment box (PagSeguro) ===== */
#payment {
  background: transparent !important;
  margin-top: 4px !important;
}

#payment .payment_methods {
  background: var(--shop-bg) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  padding: 16px !important;
  margin: 0 0 16px !important;
  list-style: none !important;
}

#payment .payment_methods > li {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

#payment .payment_methods > li > label {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  cursor: pointer !important;
  padding: 8px 0 !important;
}

#payment .payment_methods > li > label img {
  max-height: 32px !important;
  width: auto !important;
  vertical-align: middle !important;
}

#payment .payment_box {
  background: var(--card-bg) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  padding: 16px !important;
  margin-top: 12px !important;
  font-size: 0.9rem !important;
  color: var(--text-primary) !important;
}

#payment .payment_box::before {
  display: none !important;
}

#payment .payment_box p {
  margin: 0 0 12px !important;
}

/* Esconde o "Pagar com PagSeguro" duplicado (vem antes do fieldset) */
#payment .payment_box > p:first-child {
  display: none !important;
}

/* ===== PagSeguro tabs (cartão / débito / boleto) ===== */
#pagseguro-payment-methods {
  display: flex !important;
  gap: 4px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 20px !important;
  border-bottom: 1px solid var(--border) !important;
  flex-wrap: nowrap !important;
}

#pagseguro-payment-methods li {
  margin: 0 !important;
  padding: 0 !important;
  flex: 1 1 auto !important;
  text-align: center;
  list-style: none !important;
  background: transparent !important;
  border: none !important;
}

#pagseguro-payment-methods li::before,
#pagseguro-payment-methods li::after {
  display: none !important;
}

#pagseguro-payment-methods li label {
  display: block !important;
  padding: 12px 8px !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  cursor: pointer !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -1px !important;
  transition: all var(--transition) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#pagseguro-payment-methods li label:hover {
  color: var(--text-primary) !important;
}

#pagseguro-payment-methods li.active label {
  color: var(--accent) !important;
  border-bottom-color: var(--accent) !important;
}

#pagseguro-payment-methods li input[type="radio"] {
  display: none !important;
}

/* Form de cartão de crédito do PagSeguro — sobrescreve estilos inline */
.pagseguro-method-form .form-row {
  margin-bottom: 16px !important;
}

/* PagSeguro form: 2 colunas via Grid (consistente com o resto) */
.pagseguro-method-form {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}

.pagseguro-method-form > .clear {
  display: none !important;
}

.pagseguro-method-form > p {
  margin: 0 !important;
}

.pagseguro-method-form .form-row.form-row-first,
.pagseguro-method-form .form-row.form-row-last {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

.pagseguro-method-form input[type="text"],
.pagseguro-method-form input[type="tel"],
.pagseguro-method-form select {
  width: 100% !important;
  height: 46px !important;
  padding: 0 14px !important;
  font-size: 0.95rem !important;
  font-family: var(--font) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  background: var(--card-bg) !important;
  color: var(--text-primary) !important;
  outline: none !important;
  transition: border-color var(--transition) !important;
  box-sizing: border-box !important;
}

.pagseguro-method-form input:focus,
.pagseguro-method-form select:focus {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(1,53,150,0.1) !important;
}

.pagseguro-method-form label {
  display: block !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  margin-bottom: 6px !important;
}

.pagseguro-method-form label small {
  font-weight: 400 !important;
  color: var(--text-muted) !important;
  font-size: 0.75rem !important;
}

.pagseguro-method-form label .required {
  color: #e63946 !important;
}

/* "Esta compra está sendo feita no Brasil" */
#pagseguro-payment-form > p:last-of-type {
  font-size: 0.78rem !important;
  color: var(--text-muted) !important;
  text-align: center !important;
  padding: 12px !important;
  background: var(--shop-bg) !important;
  border-radius: 8px !important;
  margin: 16px 0 0 !important;
}

/* ===== Política de privacidade ===== */
.woocommerce-terms-and-conditions-wrapper {
  margin: 16px 0 !important;
  padding: 14px 16px !important;
  background: var(--shop-bg) !important;
  border-radius: 10px !important;
  font-size: 0.78rem !important;
  color: var(--text-muted) !important;
  line-height: 1.5 !important;
}

.woocommerce-privacy-policy-text p {
  margin: 0 !important;
}

.woocommerce-privacy-policy-link {
  color: var(--accent) !important;
  font-weight: 600;
}

/* ===== Botão Realizar pagamento ===== */
#place_order,
.woocommerce-checkout #place_order {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 56px !important;
  padding: 0 24px !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  box-shadow: 0 4px 16px rgba(1,53,150,0.25) !important;
  transition: all var(--transition) !important;
  margin-top: 8px !important;
}

#place_order:hover,
.woocommerce-checkout #place_order:hover {
  background: var(--accent-hover) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(1,53,150,0.35) !important;
}

/* Botões de cupom/login */
.woocommerce-form-login__submit,
.checkout_coupon button.button {
  height: 44px !important;
  padding: 0 24px !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: background var(--transition) !important;
}

.woocommerce-form-login__submit:hover,
.checkout_coupon button.button:hover {
  background: var(--accent-hover) !important;
}

/* Form de login: 2 colunas via Grid */
.woocommerce-form-login {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}

.woocommerce-form-login > p {
  margin: 0 !important;
}

.woocommerce-form-login > p:not(.form-row-first):not(.form-row-last),
.woocommerce-form-login > .clear,
.woocommerce-form-login > .lost_password {
  grid-column: 1 / -1 !important;
}

.woocommerce-form-login .form-row-first,
.woocommerce-form-login .form-row-last {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

.woocommerce-form-login__rememberme {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 0.9rem !important;
}

.woocommerce-form-login__rememberme input {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--accent);
}

.lost_password a {
  color: var(--accent) !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
}

.lost_password a:hover {
  text-decoration: underline !important;
}

/* Form de cupom: input + button lado a lado via Grid */
.checkout_coupon {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 12px !important;
  align-items: end !important;
}

.checkout_coupon > p {
  margin: 0 !important;
}

.checkout_coupon .form-row-first,
.checkout_coupon .form-row-last {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

.checkout_coupon > .clear {
  display: none !important;
}

/* Notificações de erro */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  border-radius: 10px !important;
  padding: 14px 18px !important;
  font-size: 0.9rem !important;
  margin-bottom: 16px !important;
}

.woocommerce-error {
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  border-left: 4px solid #e63946 !important;
  color: #991b1b !important;
  list-style: none !important;
}

/* ===== Responsivo ===== */

@media (max-width: 768px) {
  body.woocommerce-checkout article.post-34 {
    padding: 20px 0 60px;
  }

  body.woocommerce-checkout .entry-content {
    padding: 0 16px;
  }

  body.woocommerce-checkout .entry-content::before {
    font-size: 1.8rem;
  }

  .woocommerce-billing-fields,
  .woocommerce-additional-fields,
  #order_review {
    padding: 20px !important;
    border-radius: 12px !important;
  }

  .woocommerce-billing-fields__field-wrapper {
    grid-template-columns: 1fr !important;
  }

  /* Login, cupom e PagSeguro: 1 coluna no mobile */
  .woocommerce-form-login,
  .checkout_coupon,
  .pagseguro-method-form {
    grid-template-columns: 1fr !important;
  }

  #pagseguro-payment-methods {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    scrollbar-width: none;
  }

  #pagseguro-payment-methods::-webkit-scrollbar {
    display: none;
  }

  #pagseguro-payment-methods li {
    flex: 0 0 auto;
  }

  #pagseguro-payment-methods li label {
    white-space: nowrap;
    padding: 12px 16px !important;
  }
}

@media (max-width: 480px) {
  body.woocommerce-checkout .entry-content::before {
    font-size: 1.5rem;
  }

  .woocommerce-checkout-review-order-table tfoot tr.order-total td {
    font-size: 1.2rem !important;
  }

  #place_order {
    height: 52px !important;
    font-size: 0.85rem !important;
  }
}