/* Presente de Deus — UI E-commerce
   Paleta: --pd-primary var(--pd-primary) | --pd-secondary var(--pd-secondary) | --pd-accent var(--pd-accent) | --pd-burnt var(--pd-secondary-dark)
*/
:root {
  /* Paleta Vaticano + angelical */
  --pd-primary: #1F2A3A;          /* azul-noite suave (texto principal, headings) */
  --pd-secondary: #B8924A;        /* dourado papal (marca, CTAs, preços) */
  --pd-secondary-dark: #9A7836;   /* dourado escuro (hover) */
  --pd-secondary-light: #D4B871;  /* dourado claro (gradients, hover suave) */
  --pd-accent: #3B5C7E;           /* azul mariano (links, accent) */
  --pd-oliva: #7A8B5C;            /* verde oliva (paz, oliveira) */
  --pd-marfim: #FAF6EC;           /* fundo geral devocional */
  --pd-text: #1F2A3A;
  --pd-muted: #6B7A8C;            /* azul-cinza pra textos secundários */
  --pd-bg-soft: #FAF6EC;          /* mesmo marfim */
  --pd-border: #E8DBC0;           /* dourado bem suave */
  --pd-border-soft: rgba(184, 146, 74, 0.18); /* dourado quase invisível */
  --pd-success: #5A7A4A;          /* verde olivado em vez de verde puro */
  --pd-danger: #A94A3D;            /* vermelho terra suave */
  --pd-shadow: 0 4px 20px rgba(31, 42, 58, 0.06);
  --pd-shadow-hover: 0 8px 32px rgba(31, 42, 58, 0.1);
  --pd-radius: 14px;
  --pd-radius-sm: 8px;
  /* Tipografia: serifa devocional + sans clean */
  --pd-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --pd-font-serif: "Cormorant Garamond", "Cardo", Georgia, serif;
  --pd-transition: 500ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ====== BADGES ============================================ */
.hepres-badges {
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 3;
  pointer-events: none;
}
.hepres-badge {
  font-family: var(--pd-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 999px;
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.hepres-badge--sale      { background: var(--pd-secondary); }
.hepres-badge--new       { background: var(--pd-accent); }
.hepres-badge--low-stock { background: var(--pd-danger); }
.hepres-badge--free-ship { background: var(--pd-success); }

/* ====== PREÇO EXTRAS (parcelamento + pix) ================= */
.hepres-price-extras { margin-top: 4px; }
.hepres-installments,
.hepres-pix-price {
  font-family: var(--pd-font);
  font-size: 13px;
  color: var(--pd-muted);
  margin: 2px 0;
  line-height: 1.4;
}
.hepres-installments strong { color: var(--pd-text); font-weight: 700; }
.hepres-pix-price strong    { color: var(--pd-success); font-weight: 700; }
.hepres-pix-tag {
  display: inline-block;
  background: var(--pd-success);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 4px;
  vertical-align: 1px;
}

/* ====== CARD (compatível com Listing Item JetEngine + Loop Item EP) ========= */
.hepres-card,
.elementor-loop-item--product .e-loop-item-template,
ul.products li.product {
  position: relative;
}
.hepres-card { transition: transform .25s ease, box-shadow .25s ease; }
.hepres-card:hover { transform: translateY(-2px); box-shadow: var(--pd-shadow); }

/* O container Elementor do card-media usa display:flex + static por padrão,
   o que faz badges/wishlist absolute escaparem. Forço position:relative aqui. */
.hepres-card .hepres-card__media,
.hepres-card .e-con.hepres-card__media {
  position: relative !important;
  overflow: hidden;
  border-radius: 14px 14px 0 0;
}
.hepres-card__imglink {
  display: block;
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background: #f4ede5;
}
.hepres-card__img {
  width: 100%; height: 100%; object-fit: cover;
  display: block;
  transition: opacity .35s ease, transform .5s ease;
}
.hepres-card__img--alt {
  position: absolute; inset: 0;
  opacity: 0;
}
.hepres-card:hover .hepres-card__img--alt { opacity: 1; }
.hepres-card:hover .hepres-card__img:not(.hepres-card__img--alt) { transform: scale(1.04); }

.hepres-card__cat {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--pd-secondary-dark);
  margin: 0 0 4px;
}
.hepres-card__cat a { color: inherit; text-decoration: none; }
.hepres-card__cat a:hover { color: var(--pd-secondary); }

.hepres-card__title {
  margin: 0 0 4px;
  font-size: 16px;
  line-height: 1.3;
  font-weight: 600;
  color: var(--pd-text);
}
.hepres-card__title a { color: inherit; text-decoration: none; }
.hepres-card__title a:hover { color: var(--pd-secondary-dark); }

/* Título no single */
.hepres-single__title {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 8px;
  color: var(--pd-text);
}
.hepres-single__title a {
  color: inherit;
  text-decoration: none;
  pointer-events: none; /* já estamos no single, link não faz sentido */
}

/* CTA principal do card (Adicionar / Ver opções)
   !important justificado: WooCommerce 10.7 declara
   ".woocommerce :where(...) a.button { background:#E9E6ED }" com especificidade
   maior que .hepres-card__cta, sobrescrevendo o tema. */
.hepres-card .hepres-card__cta,
a.hepres-card__cta,
.woocommerce a.hepres-card__cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 12px 18px !important;
  background: var(--pd-secondary) !important;
  background-color: var(--pd-secondary) !important;
  color: #fff !important;
  border: 1px solid var(--pd-secondary-dark) !important;
  border-radius: 999px !important;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none !important;
  cursor: pointer;
  transition: background .15s ease, transform .1s ease;
  text-shadow: none !important;
}
.hepres-card .hepres-card__cta:hover,
a.hepres-card__cta:hover,
.woocommerce a.hepres-card__cta:hover {
  background: var(--pd-secondary-dark) !important;
  background-color: var(--pd-secondary-dark) !important;
  color: #fff !important;
}
.hepres-card__cta:active { transform: scale(.98); }
.hepres-card__cta.added,
.hepres-card__cta.loading { opacity: .9; }

/* Esconde o "added_to_cart" auto-link verde do WC abaixo do botão */
.hepres-card .added_to_cart { display: none !important; }

/* Garante altura uniforme dos cards no grid */
.jet-listing-grid__item, .jet-listing-grid__items > * { display: flex; }
.hepres-card { flex: 1 1 auto; display: flex; flex-direction: column; }
.hepres-card > .e-con:last-child { flex: 1 1 auto; }
.hepres-card .elementor-widget-html:has(.hepres-card__cta) { margin-top: auto; }

/* ====== WISHLIST ========================================== */
.hepres-wl-toggle {
  appearance: none;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--pd-border);
  width: 38px; height: 38px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  color: var(--pd-text);
  z-index: 3;
  transition: transform .15s ease, color .2s ease, background .2s ease;
}
/* O coração e os badges são entregues por shortcodes dentro de widgets HTML
   do Elementor; o widget HTML em si vira nosso "ancorador" absoluto no card.
   Usa :has() (suportado em browsers atuais) pra capturar o wrapper certo. */
.hepres-card__media .elementor-widget-html:has(.hepres-wl-toggle) {
  position: absolute !important;
  top: 10px; right: 10px;
  width: auto !important;
  z-index: 3;
  pointer-events: auto;
}
.hepres-card__media .elementor-widget-html:has(.hepres-badges) {
  position: absolute !important;
  top: 10px; left: 10px;
  width: auto !important;
  z-index: 3;
  pointer-events: none;
}
.hepres-wl-toggle:hover { transform: scale(1.06); }
.hepres-wl-toggle.is-active { color: var(--pd-secondary); background: #fff; }
.hepres-wl-toggle.is-active svg path { fill: var(--pd-secondary); stroke: var(--pd-secondary); }

.hepres-wl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 18px;
}
.hepres-wl-item {
  position: relative;
  background: #fff;
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius);
  padding: 16px;
  text-decoration: none;
  color: var(--pd-text);
  display: flex; flex-direction: column; gap: 8px;
  transition: box-shadow .2s;
}
.hepres-wl-item:hover { box-shadow: var(--pd-shadow); }
.hepres-wl-item img   { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: var(--pd-radius-sm); }
.hepres-wl-item h3    { font-size: 15px; margin: 4px 0; line-height: 1.3; }
.hepres-wl-price      { font-size: 14px; color: var(--pd-secondary-dark); font-weight: 700; }
.hepres-wl-empty      { color: var(--pd-muted); padding: 24px 0; text-align: center; }

/* ====== WHATSAPP BUTTON =================================== */
.hepres-wa {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  font-family: var(--pd-font);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none !important;
  padding: 11px 16px;
  border-radius: 999px;
  transition: all .2s;
  white-space: nowrap;
}
a.hepres-wa.hepres-wa--ghost,
.hepres-card a.hepres-wa--ghost {
  color: #128C7E !important;
  background: rgba(18, 140, 126, .08) !important;
  border: 1px solid rgba(18, 140, 126, .35) !important;
}
a.hepres-wa.hepres-wa--ghost:hover,
.hepres-card a.hepres-wa--ghost:hover {
  background: rgba(18, 140, 126, .15) !important;
  color: #128C7E !important;
}
a.hepres-wa.hepres-wa--solid,
.hepres-card a.hepres-wa--solid {
  color: #fff !important;
  background: #25D366 !important;
  border: 1px solid #128C7E !important;
}
a.hepres-wa.hepres-wa--solid:hover,
.hepres-card a.hepres-wa--solid:hover {
  background: #128C7E !important;
  color: #fff !important;
}
.hepres-wa__icon { flex: 0 0 auto; }

/* ====== TRUST SEALS ======================================== */
.hepres-seals {
  list-style: none; margin: 24px 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.hepres-seal {
  display: flex; align-items: center; gap: 10px;
  background: var(--pd-bg-soft);
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius-sm);
  padding: 12px 14px;
  color: var(--pd-text);
}
.hepres-seal svg { color: var(--pd-secondary); flex: 0 0 auto; }
.hepres-seal strong { display: block; font-size: 13px; line-height: 1.2; }
.hepres-seal span   { display: block; font-size: 12px; color: var(--pd-muted); }

/* ====== SHIPPING CALCULATOR =============================== */
.hepres-shipcalc {
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius);
  padding: 16px 18px;
  margin: 18px 0;
  background: var(--pd-bg-soft);
}
.hepres-shipcalc h3 { margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.hepres-shipcalc__row { display: flex; gap: 8px; }
.hepres-shipcalc__row input {
  flex: 1; padding: 11px 12px; border: 1px solid var(--pd-border); border-radius: var(--pd-radius-sm);
  background: #fff; font: inherit;
}
.hepres-shipcalc__btn {
  background: var(--pd-secondary); color: #fff; border: 0;
  padding: 0 18px; border-radius: var(--pd-radius-sm);
  font-weight: 700; cursor: pointer; transition: background .15s;
}
.hepres-shipcalc__btn:hover { background: var(--pd-secondary-dark); }
.hepres-shipcalc__help {
  font-size: 12px;
  color: var(--pd-secondary-dark) !important;
  display: inline-block;
  margin-top: 6px;
  text-decoration: underline;
  text-decoration-color: rgba(145,71,37,.4);
  text-underline-offset: 2px;
}
.hepres-shipcalc__help:hover { color: var(--pd-secondary) !important; text-decoration-color: var(--pd-secondary); }
.hepres-shipcalc__result { margin-top: 12px; }
.hepres-shipcalc__rates { list-style: none; margin: 0; padding: 0; }
.hepres-shipcalc__rates li {
  display: flex; justify-content: space-between; padding: 8px 0;
  border-bottom: 1px dashed var(--pd-border); font-size: 14px;
}
.hepres-shipcalc__rates li:last-child { border: 0; }
.hepres-shipcalc__rates strong { color: var(--pd-secondary-dark); }
.hepres-shipcalc__none, .hepres-shipcalc__loading { color: var(--pd-muted); font-size: 14px; }

/* ====== FREE SHIPPING BAR ================================= */
.hepres-fsb {
  background: var(--pd-bg-soft);
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius);
  padding: 14px 18px;
  margin-bottom: 18px;
}
.hepres-fsb p { margin: 0 0 8px; font-size: 14px; color: var(--pd-text); }
.hepres-fsb strong { color: var(--pd-secondary-dark); }
.hepres-fsb__track {
  height: 8px; background: #e8ddd1; border-radius: 999px; overflow: hidden;
}
.hepres-fsb__fill {
  height: 100%; background: linear-gradient(90deg, var(--pd-secondary), var(--pd-secondary-dark));
  transition: width .35s ease;
}
.hepres-fsb--won {
  background: #e9f5ec; border-color: #c9e4cf; color: var(--pd-success);
  font-weight: 700; text-align: center;
}

/* ====== SWATCHES (woo-variation-swatches BUTTON) ========== */
.variations .woo-variation-swatches .variable-items-wrapper {
  gap: 6px !important;
}
.variations .woo-variation-swatches .variable-item {
  border-radius: 8px !important;
  border: 1px solid var(--pd-border) !important;
  background: #fff !important;
  color: var(--pd-text) !important;
  font-weight: 600 !important;
  min-width: 42px !important;
  min-height: 38px !important;
  padding: 0 10px !important;
  transition: all .15s ease !important;
}
.variations .woo-variation-swatches .variable-item:hover {
  border-color: var(--pd-secondary) !important;
  color: var(--pd-secondary-dark) !important;
}
.variations .woo-variation-swatches .variable-item.selected {
  background: var(--pd-secondary) !important;
  border-color: var(--pd-secondary-dark) !important;
  color: #fff !important;
  box-shadow: 0 0 0 3px rgba(198,113,74,.18) !important;
}

/* ====== BUTTON GLOBAIS WC =================================
   WooCommerce 10+ usa :where(:not(.has-button-styles)) que reduz especificidade,
   então temos que sobrescrever com seletores explícitos + !important. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button,
.woocommerce ul.products li.product .button,
.woocommerce-page #respond input#submit.alt,
.woocommerce-page button.button.alt {
  background: var(--pd-secondary) !important;
  background-color: var(--pd-secondary) !important;
  border: 1px solid var(--pd-secondary-dark) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
  padding: 11px 22px !important;
  text-shadow: none !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce ul.products li.product .button:hover {
  background: var(--pd-secondary-dark) !important;
  background-color: var(--pd-secondary-dark) !important;
  color: #fff !important;
}

/* Cards padrão WC nos relacionados/upsells */
.woocommerce ul.products li.product {
  background: #fff;
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius);
  padding: 14px;
  transition: box-shadow .2s ease;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--pd-shadow); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 15px !important;
  font-weight: 600 !important;
  margin: 6px 0 !important;
  color: var(--pd-text);
}
.woocommerce ul.products li.product .price {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--pd-secondary-dark) !important;
}
.woocommerce ul.products li.product img {
  border-radius: 10px;
  aspect-ratio: 1;
  object-fit: cover;
}
.woocommerce ul.products li.product .added_to_cart { display: none; }

/* ====== CART (shortcode clássico — visual moderno) ======== */
.woocommerce-cart .woocommerce {
  display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 28px; align-items: start;
}
@media (max-width: 900px) {
  .woocommerce-cart .woocommerce { grid-template-columns: 1fr; }
}
.woocommerce-cart table.cart {
  border: 1px solid var(--pd-border); border-collapse: separate; border-spacing: 0;
  border-radius: var(--pd-radius); overflow: hidden;
}
.woocommerce-cart table.cart th { background: var(--pd-bg-soft); }
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart_totals {
  background: #fff; border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius); padding: 18px 20px;
  position: sticky; top: 24px;
  box-shadow: var(--pd-shadow);
}
.woocommerce-cart .cart_totals h2 { margin-top: 0; }
.woocommerce .coupon { display: flex; gap: 8px; }
.woocommerce .coupon input[type=text] {
  flex: 1; border: 1px solid var(--pd-border); border-radius: var(--pd-radius-sm); padding: 10px 12px;
}

/* ====== CHECKOUT (shortcode clássico) ===================== */
.woocommerce-checkout form.checkout {
  display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 28px;
}
@media (max-width: 900px) {
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
}
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
  background: #fff; border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius); padding: 18px 20px;
  box-shadow: var(--pd-shadow);
}
.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  border: 1px solid var(--pd-border); border-radius: var(--pd-radius-sm); padding: 11px 12px;
  background: #fff;
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline: none; border-color: var(--pd-secondary); box-shadow: 0 0 0 3px rgba(198,113,74,.15);
}
.woocommerce-checkout #payment { background: var(--pd-bg-soft); border-radius: var(--pd-radius); padding: 12px 16px; }
.woocommerce-checkout #payment ul.payment_methods { background: transparent; padding: 0; border: 0; }

/* ====== WIDGET CART ELEMENTOR PRO 4.x ===================== */
.elementor-widget-woocommerce-cart .woocommerce {
  display: block !important;
  width: 100%;
}
.elementor-widget-woocommerce-cart .e-cart__container {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 360px !important;
  gap: 28px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
}
@media (max-width: 900px) {
  .elementor-widget-woocommerce-cart .e-cart__container {
    grid-template-columns: 1fr !important;
  }
}
.elementor-widget-woocommerce-cart .e-cart__container > * {
  min-width: 0 !important;
}
.elementor-widget-woocommerce-cart .woocommerce-cart-form,
.elementor-widget-woocommerce-cart .e-cart-section--main {
  width: 100% !important;
  min-width: 0 !important;
}
.elementor-widget-woocommerce-cart .cart-collaterals,
.elementor-widget-woocommerce-cart .e-cart-section--totals {
  width: 100% !important;
  position: sticky;
  top: 24px;
  background: #fff;
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius);
  padding: 18px;
  box-shadow: var(--pd-shadow);
}
.elementor-widget-woocommerce-cart table.cart {
  border: 1px solid var(--pd-border);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: var(--pd-radius);
  overflow: hidden;
  width: 100% !important;
  table-layout: auto !important;
}
.elementor-widget-woocommerce-cart table.cart th {
  background: var(--pd-bg-soft);
  padding: 12px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}
.elementor-widget-woocommerce-cart table.cart td {
  padding: 14px 12px;
  vertical-align: middle;
  white-space: normal !important;
  word-break: normal !important;
}
.elementor-widget-woocommerce-cart table.cart td.product-name a {
  font-weight: 600;
  color: var(--pd-text);
  text-decoration: none;
}
/* Miniatura do produto na tabela do carrinho — forçar 80x80 (TD + A + IMG) */
.woocommerce-cart-form td.product-thumbnail,
.elementor-widget-woocommerce-cart td.product-thumbnail,
body.woocommerce-cart .woocommerce-cart-form table.cart td.product-thumbnail {
  width: 100px !important;
  min-width: 100px !important;
  padding: 12px !important;
}
.woocommerce-cart-form td.product-thumbnail a,
.elementor-widget-woocommerce-cart td.product-thumbnail a,
body.woocommerce-cart .woocommerce-cart-form table.cart td.product-thumbnail a {
  display: inline-block !important;
  width: 80px !important;
  height: 80px !important;
  line-height: 0 !important;
}
.woocommerce-cart-form td.product-thumbnail img,
.elementor-widget-woocommerce-cart td.product-thumbnail img,
.elementor-widget-woocommerce-cart .product-thumbnail img,
body.woocommerce-cart .woocommerce-cart-form table.cart td.product-thumbnail img {
  width: 80px !important;
  height: 80px !important;
  max-width: 80px !important;
  min-width: 80px !important;
  border-radius: 8px !important;
  object-fit: cover !important;
  display: block !important;
}
.elementor-widget-woocommerce-cart .coupon {
  display: flex; gap: 8px; margin-top: 12px;
}
.elementor-widget-woocommerce-cart .coupon input[type=text] {
  flex: 1; border: 1px solid var(--pd-border); border-radius: var(--pd-radius-sm);
  padding: 10px 12px;
}

/* ====== WIDGET CHECKOUT ELEMENTOR PRO ===================== */
.elementor-widget-woocommerce-checkout-page table.shop_table {
  table-layout: auto !important;
  width: 100% !important;
}
.elementor-widget-woocommerce-checkout-page table.shop_table td,
.elementor-widget-woocommerce-checkout-page table.shop_table th {
  padding: 12px 10px !important;
  white-space: normal !important;
  word-break: normal !important;
  vertical-align: top;
}
.elementor-widget-woocommerce-checkout-page table.shop_table .product-name {
  width: 65%;
  font-weight: 600;
  color: var(--pd-text);
}
.elementor-widget-woocommerce-checkout-page table.shop_table .product-total {
  white-space: nowrap !important;
  font-weight: 600;
}
.elementor-widget-woocommerce-checkout-page #order_review {
  background: #fff;
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius);
  padding: 18px;
  box-shadow: var(--pd-shadow);
  position: sticky;
  top: 24px;
}
.elementor-widget-woocommerce-checkout-page .form-row input[type=text],
.elementor-widget-woocommerce-checkout-page .form-row input[type=email],
.elementor-widget-woocommerce-checkout-page .form-row input[type=tel],
.elementor-widget-woocommerce-checkout-page .form-row select,
.elementor-widget-woocommerce-checkout-page .form-row textarea,
.elementor-widget-woocommerce-checkout-page .select2-selection,
.elementor-widget-woocommerce-checkout-page .form-row .input-text {
  border: 1px solid var(--pd-border) !important;
  border-radius: var(--pd-radius-sm) !important;
  padding: 11px 12px !important;
  background: #fff !important;
  font-size: 14px !important;
}
.elementor-widget-woocommerce-checkout-page .form-row input:focus,
.elementor-widget-woocommerce-checkout-page .form-row select:focus,
.elementor-widget-woocommerce-checkout-page .form-row textarea:focus {
  outline: none !important;
  border-color: var(--pd-secondary) !important;
  box-shadow: 0 0 0 3px rgba(198,113,74,.15) !important;
}
.elementor-widget-woocommerce-checkout-page .checkout_coupon {
  background: var(--pd-bg-soft);
  border: 1px solid var(--pd-border);
  border-radius: var(--pd-radius-sm);
  padding: 14px;
}

/* Tabela do Resumo do pedido — força layout horizontal */
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table {
  table-layout: auto !important;
}
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table tbody tr {
  display: table-row !important;
}
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table .product-name {
  width: auto !important;
  min-width: 60% !important;
  white-space: normal !important;
  word-break: normal !important;
}
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table .cart-subtotal td,
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table .order-total td,
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table .product-total {
  white-space: nowrap !important;
  text-align: right;
}
/* Linha de entrega tem texto longo ("Digite seu endereço para ver...") — precisa quebrar */
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table .shipping td {
  white-space: normal !important;
  text-align: right;
  font-size: 13px;
  color: #5a5a5a;
}
.elementor-widget-woocommerce-checkout-page .shop_table.woocommerce-checkout-review-order-table tfoot th {
  text-align: left;
  font-weight: 700;
}

/* Garante que produto no Resumo do pedido (cart e checkout) ocupe largura razoável */
.elementor-widget-woocommerce-cart .shop_table .product-name,
.elementor-widget-woocommerce-checkout-page .shop_table .product-name,
.elementor-widget-woocommerce-cart .shop_table tbody td.product-name,
.elementor-widget-woocommerce-checkout-page .shop_table tbody td.product-name {
  width: 70% !important;
  white-space: normal !important;
  word-break: keep-all !important;
}
.elementor-widget-woocommerce-cart .shop_table .product-total,
.elementor-widget-woocommerce-checkout-page .shop_table .product-total,
.elementor-widget-woocommerce-cart .shop_table .product-subtotal,
.elementor-widget-woocommerce-checkout-page .shop_table .product-subtotal {
  width: 30% !important;
  text-align: right !important;
  white-space: nowrap !important;
}

/* === Checkout layout (Elementor Pro WooCommerce Checkout widget) ===
   form.checkout tem só 1 filho (.e-checkout__container), então o grid
   precisa ir DENTRO do container, não na form. As colunas reais são
   .e-checkout__column-start (esquerda — campos) e .e-checkout__column-end
   (direita — resumo do pedido). */
@media (min-width: 901px) {
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid !important;
    grid-template-columns: minmax(0, 1.6fr) minmax(340px, 0.9fr) !important;
    gap: 28px !important;
    align-items: start !important;
  }
  /* Colunas reais como flex/block normais — anula qualquer largura fixa do Elementor */
  .elementor-widget-woocommerce-checkout-page .e-checkout__column-start,
  .elementor-widget-woocommerce-checkout-page .e-checkout__column-end {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  /* Coluna direita gruda enquanto a esquerda rola */
  .elementor-widget-woocommerce-checkout-page .e-checkout__column-end {
    position: sticky;
    top: 24px;
    align-self: start;
  }
  /* Form principal não pode forçar grid (tem só 1 filho) */
  .elementor-widget-woocommerce-checkout-page form.checkout {
    display: block !important;
  }
}

/* Cartão único pro bloco principal de cada coluna (sem duplicar borda externa).
   - Esquerda: cartão é o .col-1 (Dados do comprador), gerado pelo WooCommerce.
   - Direita: cartões são .e-checkout__order_review (Resumo + tabela) e
     .e-coupon-box (cupom). O .e-checkout__order_review-2 (pagamento + botão)
     fica solto sem cartão pra dar peso visual ao "Finalizar pedido". */
.elementor-widget-woocommerce-checkout-page .col2-set .col-1,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review,
.elementor-widget-woocommerce-checkout-page .e-coupon-box {
  background: #fff !important;
  border: 1px solid var(--pd-border) !important;
  border-radius: 14px !important;
  padding: 22px 24px !important;
  box-shadow: 0 2px 6px rgba(54, 54, 54, 0.04) !important;
  margin-bottom: 14px !important;
}
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review-2 {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}
.elementor-widget-woocommerce-checkout-page #order_review_heading {
  font-size: 18px;
  font-weight: 700;
  color: var(--e-global-color-primary, var(--pd-primary));
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--pd-border) !important;
  margin-bottom: 14px !important;
}
.elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields h3,
.elementor-widget-woocommerce-checkout-page #ship-to-different-address {
  font-size: 16px;
  font-weight: 700;
  color: var(--e-global-color-primary, var(--pd-primary));
  margin-bottom: 14px;
}

/* Mobile: tudo empilhado, sem cartão sticky */
@media (max-width: 900px) {
  .elementor-widget-woocommerce-checkout-page .e-checkout__column-start,
  .elementor-widget-woocommerce-checkout-page .e-checkout__column-end {
    padding: 18px 16px;
  }
}

/* JetEngine listing: tags <style> dentro do .jet-listing-grid__items
   herdam display:flex/block do container grid (rede após AJAX do JSF)
   e aparecem como texto na página. Força display:none. */
.jet-listing-grid__items > style,
.jet-listing-grid__items style,
.jet-listing-grid > style,
.jet-listing > style {
  display: none !important;
}

/* Calculadoras de frete bloqueadas até variação escolhida */
.hepres-shipcalc.hepres-shipcalc--locked,
#woocommerce-correios-calculo-de-frete-na-pagina-do-produto.hepres-shipcalc--locked {
  position: relative;
  opacity: 0.55;
  pointer-events: none;
  filter: grayscale(0.4);
  cursor: not-allowed;
  transition: opacity .2s ease, filter .2s ease;
}
.hepres-shipcalc.hepres-shipcalc--locked input,
.hepres-shipcalc.hepres-shipcalc--locked button,
#woocommerce-correios-calculo-de-frete-na-pagina-do-produto.hepres-shipcalc--locked input,
#woocommerce-correios-calculo-de-frete-na-pagina-do-produto.hepres-shipcalc--locked button {
  pointer-events: none;
}
.hepres-shipcalc.hepres-shipcalc--locked::after,
#woocommerce-correios-calculo-de-frete-na-pagina-do-produto.hepres-shipcalc--locked::after {
  content: 'Selecione um tamanho para calcular o frete';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.65);
  font-size: 13px;
  font-weight: 600;
  color: var(--e-global-color-primary, var(--pd-primary));
  text-align: center;
  padding: 12px;
  border-radius: inherit;
  pointer-events: auto;
}

/* WooCommerce/Brazilian Market injetam .col-1 / .col-2 com background+border próprio
   dentro do widget Elementor — neutraliza pra não duplicar cartões. */
.elementor-widget-woocommerce-checkout-page .col2-set,
.elementor-widget-woocommerce-checkout-page .col2-set .col-1,
.elementor-widget-woocommerce-checkout-page .col2-set .col-2,
.elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields__field-wrapper,
.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Dentro do widget Elementor de checkout, #order_review_heading e #order_review
   recebem cartão do CSS legado "shortcode clássico". Como aqui o cartão único
   já está em .e-checkout__order_review, resetamos os internos. */
.elementor-widget-woocommerce-checkout-page #order_review_heading,
.elementor-widget-woocommerce-checkout-page #order_review {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.elementor-widget-woocommerce-checkout-page #order_review_heading {
  font-size: 18px;
  font-weight: 700;
  color: var(--e-global-color-primary, var(--pd-primary));
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--pd-border) !important;
  margin-bottom: 14px !important;
}

/* Inputs do checkout: garante altura/box-sizing consistente — o select de
   "Tipo de Pessoa" e "País" estavam sendo squashados a 24px pelo legado. */
.elementor-widget-woocommerce-checkout-page .form-row select:not(.select2-hidden-accessible),
.elementor-widget-woocommerce-checkout-page .form-row input[type="text"],
.elementor-widget-woocommerce-checkout-page .form-row input[type="email"],
.elementor-widget-woocommerce-checkout-page .form-row input[type="tel"],
.elementor-widget-woocommerce-checkout-page .form-row input[type="number"],
.elementor-widget-woocommerce-checkout-page .form-row input[type="password"],
.elementor-widget-woocommerce-checkout-page .form-row textarea {
  box-sizing: border-box !important;
  min-height: 44px !important;
  width: 100% !important;
  display: block !important;
  appearance: auto;
}
/* Estilo do Select2 (substitui o select nativo do "Tipo de Pessoa", "Estado" etc.) */
.elementor-widget-woocommerce-checkout-page .select2-container {
  width: 100% !important;
}
.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
  min-height: 44px !important;
  height: 44px !important;
  border: 1px solid var(--pd-border) !important;
  border-radius: 6px !important;
  padding: 0 12px !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
}
.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 1.4 !important;
  padding: 0 !important;
  color: var(--pd-text) !important;
}
.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  top: 0 !important;
  right: 8px !important;
}
.elementor-widget-woocommerce-checkout-page .select2-container--default.select2-container--focus .select2-selection--single,
.elementor-widget-woocommerce-checkout-page .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--pd-secondary) !important;
  box-shadow: 0 0 0 3px rgba(198, 113, 74, 0.15) !important;
}
.elementor-widget-woocommerce-checkout-page .form-row textarea {
  min-height: 84px !important;
}

/* "(3x sem juros)" ao lado do parcelamento com juros */
.hepres-installments__hint {
  margin-left: 6px;
  color: #1e7e34;
  font-size: 0.85em;
  font-weight: 600;
  white-space: nowrap;
}

/* =====================================================
   FASE 1 — Refinamentos angelicais (Vaticano + calmo)
   Data: 2026-04-28
   ===================================================== */

/* Body branco — fotos com fundo branco encaixam sem borda visível.
   Marfim entra como ACCENT em blocos específicos (header, sidebar, footer). */
body {
  background-color: #fff;
}

/* Marfim em blocos específicos — efeito de calmaria devocional sem brigar com fotos */

/* 1. Header (containers do Elementor após o top utility bar marrom) — fundo marfim sutil */

/* Logo branca → vira dourada papal usando filtro CSS */

/* 2. Sidebar dos filtros (categoria) — fundo marfim com padding pra parecer um cartão */
.elementor-widget-jet-smart-filters-checkboxes,
.elementor-widget-jet-smart-filters-color-image,
.elementor-widget-jet-smart-filters-radio,
.elementor-widget-jet-smart-filters-select {
  background-color: transparent;
}
/* Engloba os filtros num "card" se estiverem dentro de uma coluna lateral */
[class*="archive-products"] .elementor-element[class*="column"][data-id]:has(.elementor-widget-jet-smart-filters-checkboxes),
[class*="archive-products"] .elementor-element[class*="column"][data-id]:has(.elementor-widget-jet-smart-filters-color-image) {
  background: var(--pd-marfim);
  border-radius: var(--pd-radius);
  padding: 24px 20px !important;
}

/* 3. Banner do título da página (breadcrumb + h1 da categoria) — faixa marfim */
.woocommerce-products-header,
.woocommerce-breadcrumb {
  /* leves se forem usados no archive woocommerce padrão */
}
.elementor-widget-woocommerce-archive-page > .elementor-widget-container > h1,
.elementor-element[data-id]:has(> .elementor-widget-container > .elementor-heading-title:first-child) {
  /* não quero generalizar demais aqui */
}

/* 4. Footer — fundo marfim (separa visualmente do corpo branco) */

/* 5. Single produto — área de breadcrumb/título também ganha um sutil banner marfim */
.elementor-location-single .elementor-widget-woocommerce-breadcrumb,
.elementor-location-single .product .product_title {
  /* marfim aplicado no container, não no widget */
}

/* Cards: borda dourada hairline + sombra azul suave + transição lenta */
.hepres-card,
.elementor-widget-jet-engine-listing-grid .jet-listing-grid__item,
.elementor-widget-woocommerce-products .product {
  background: #fff;
  border: 1px solid var(--pd-border-soft) !important;
  border-radius: var(--pd-radius);
  box-shadow: var(--pd-shadow);
  transition: transform var(--pd-transition), box-shadow var(--pd-transition), border-color var(--pd-transition);
}
.hepres-card:hover,
.elementor-widget-jet-engine-listing-grid .jet-listing-grid__item:hover,
.elementor-widget-woocommerce-products .product:hover {
  transform: translateY(-4px);
  border-color: rgba(184, 146, 74, 0.45) !important;
  box-shadow: var(--pd-shadow-hover);
}

/* Categoria do card (CAMISETAS, TERÇOS) — dourado discreto, espaçamento elegante */
.hepres-card__cat,
.hepres-card__cat a,
.product_meta .posted_in a {
  font-family: var(--pd-font);
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--pd-secondary) !important;
}
.hepres-card__cat a:hover,
.product_meta .posted_in a:hover {
  color: var(--pd-secondary-dark) !important;
}

/* Título do card: serifa devocional, azul-noite */
.hepres-card__title,
.hepres-card__title a,
.product .woocommerce-loop-product__title,
.elementor-widget-jet-engine-listing-grid h1,
.elementor-widget-jet-engine-listing-grid h2,
.elementor-widget-jet-engine-listing-grid h3 {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
}
.hepres-card__title a:hover {
  color: var(--pd-secondary) !important;
}

/* Preço: dourado papal destacado */
.hepres-card__price,
.hepres-card__price .amount,
.price .amount,
.product-price .amount {
  color: var(--pd-secondary) !important;
  font-weight: 700;
}

/* Botão CTA principal: dourado fundo, hover dourado escuro, transição lenta */
.hepres-cta-primary,
.hepres-card__cta,
.button.alt,
.single_add_to_cart_button,
.checkout-button,
.elementor-button-link.elementor-button {
  background-color: var(--pd-secondary) !important;
  border-color: var(--pd-secondary) !important;
  color: #fff !important;
  font-family: var(--pd-font) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  transition: background-color var(--pd-transition), transform var(--pd-transition), box-shadow var(--pd-transition) !important;
  border-radius: var(--pd-radius-sm) !important;
}
.hepres-cta-primary:hover,
.hepres-card__cta:hover,
.button.alt:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover,
.elementor-button-link.elementor-button:hover {
  background-color: var(--pd-secondary-dark) !important;
  border-color: var(--pd-secondary-dark) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(184, 146, 74, 0.3);
}

/* WhatsApp como CTA secundário (ghost) — verde oliva pra harmonizar */
.hepres-card__whatsapp,
.hepres-whatsapp-btn,
.hepres-whatsapp-button {
  background: transparent !important;
  border: 1px solid var(--pd-oliva) !important;
  color: var(--pd-oliva) !important;
}
.hepres-card__whatsapp:hover,
.hepres-whatsapp-btn:hover {
  background: var(--pd-oliva) !important;
  color: #fff !important;
}

/* Coração wishlist: dourado outline, preenche dourado quando ativo */
.hepres-wl-toggle,
.hepres-wishlist-toggle {
  color: var(--pd-secondary) !important;
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid var(--pd-border-soft) !important;
  transition: all var(--pd-transition) !important;
}
.hepres-wl-toggle:hover,
.hepres-wl-toggle.is-active,
.hepres-wishlist-toggle.is-active {
  color: var(--pd-secondary-dark) !important;
  background: #fff !important;
  border-color: var(--pd-secondary) !important;
}

/* Headings da página: serifa em todos h1/h2/h3 */
.elementor-heading-title,
.woocommerce-Tabs-panel h2,
.related.products > h2,
.upsells.products > h2,
.cross-sells > h2,
h1.product_title,
.woocommerce-products-header__title,
#order_review_heading {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary);
  letter-spacing: -0.01em;
  font-weight: 600;
}

/* Body em Inter pra todo o conteúdo de loja */
.woocommerce,
.woocommerce-page,
.elementor-widget-woocommerce-products,
.elementor-widget-woocommerce-cart,
.elementor-widget-woocommerce-checkout-page,
.elementor-widget-jet-engine-listing-grid,
.elementor-widget-jet-smart-filters-checkboxes,
.hepres-card {
  font-family: var(--pd-font);
}

/* Selos de confiança (compra segura, envio 24h, etc): line-art dourado */
.hepres-trust-seals,
.hepres-trust-seal {
  color: var(--pd-primary);
}
.hepres-trust-seal svg,
.hepres-trust-seal i {
  color: var(--pd-secondary) !important;
}

/* Filtros laterais (Bolas, Cores, Tamanhos): título serifa, item Inter */
.elementor-widget-jet-smart-filters-checkboxes label,
.elementor-widget-jet-smart-filters-color-image label {
  font-family: var(--pd-font);
  color: var(--pd-text);
}

/* Inputs do checkout/forms: foco dourado */
.elementor-widget-woocommerce-checkout-page .form-row input:focus,
.elementor-widget-woocommerce-checkout-page .form-row select:focus,
.elementor-widget-woocommerce-checkout-page .form-row textarea:focus,
.elementor-widget-woocommerce-checkout-page .select2-container--default.select2-container--focus .select2-selection--single,
.elementor-widget-woocommerce-checkout-page .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--pd-secondary) !important;
  box-shadow: 0 0 0 3px rgba(184, 146, 74, 0.15) !important;
}

/* Resumo do pedido: borda dourado-fraca */
.elementor-widget-woocommerce-checkout-page .col2-set .col-1,
.elementor-widget-woocommerce-checkout-page .e-checkout__order_review,
.elementor-widget-woocommerce-checkout-page .e-coupon-box {
  border: 1px solid var(--pd-border-soft) !important;
  background: #fff !important;
}

/* Divider ornamentado (cruz central) — pode ser usado em widget HTML */
.hepres-divider-cross {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 32px 0;
  color: var(--pd-secondary);
}
.hepres-divider-cross::before,
.hepres-divider-cross::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--pd-border-soft);
}
.hepres-divider-cross::before { background: linear-gradient(to right, transparent, var(--pd-border-soft)); }
.hepres-divider-cross::after  { background: linear-gradient(to left, transparent, var(--pd-border-soft)); }

/* Hint "(3x sem juros)" do parcelamento — verde oliva em vez de verde puro */
.hepres-installments__hint {
  color: var(--pd-oliva);
}

/* Animações lentas em qualquer elemento que use transition */
.elementor-button,
.elementor-widget-image img,
.hepres-card * {
  transition-duration: 500ms !important;
}

/* =========================================================
   Header: corrigir cores de texto/ícones que eram brancos
   (foram desenhados pro fundo terracota; agora marfim)
   ========================================================= */

/* Aplica em todos os containers do header EXCETO o primeiro (top utility bar marrom) */

/* Search input — fundo branco com borda dourado-fraco */

/* Ícones do header (Central de Atendimento, conta, lupa) — dourado papal */

/* Carrinho (Menu Cart Elementor) — ícone dourado, texto azul-noite */

/* Hover em qualquer link/ícone do header — dourado escuro */

/* Menu nav principal (CAMISETAS, IMAGENS...) — azul-noite, hover dourado */

/* =========================================================
   Fixes pós-Fase 1 (full-width header + cards brancos)
   ========================================================= */

/* Header marfim full-width — aplica no location-header inteiro.
   O primeiro child (top utility bar marrom) já tem bg próprio,
   então cobre por cima onde precisa. */

/* Reverter marfim dos containers internos pra não duplicar */

/* Footer full-width marfim com mesma técnica */

/* CARDS — corrigir: o card real é .jet-listing-grid__item (não .hepres-card).
   E o wrapper da imagem .hepres-card__imglink estava com cream #F4EDE5. */
.jet-listing-grid__item,
.elementor-widget-jet-engine-listing-grid .jet-listing-grid__item,
.hepres-card {
  background-color: #fff !important;
  border: 1px solid var(--pd-border-soft) !important;
  border-radius: var(--pd-radius);
  box-shadow: var(--pd-shadow);
  overflow: hidden;
  transition: transform var(--pd-transition), box-shadow var(--pd-transition), border-color var(--pd-transition);
}
.jet-listing-grid__item:hover {
  transform: translateY(-4px);
  border-color: rgba(184, 146, 74, 0.45) !important;
  box-shadow: var(--pd-shadow-hover);
}

/* Wrapper da imagem do produto — fundo branco puro pra fotos com fundo branco encaixarem */
.hepres-card__imglink,
.hepres-card__media,
.jet-listing-grid__item .hepres-card__imglink,
.jet-listing-grid__item a[class*="imglink"],
.jet-listing-grid__item .e-loop-item__media,
.jet-listing-grid__item .product-image,
.jet-listing-grid__item img {
  background-color: #fff !important;
}

/* Coração wishlist — z-index e contraste */
.hepres-wl-toggle {
  z-index: 5 !important;
  background: #fff !important;
  border: 1px solid var(--pd-border-soft) !important;
  color: var(--pd-secondary) !important;
  box-shadow: 0 2px 6px rgba(31, 42, 58, 0.08);
}
.hepres-wl-toggle:hover {
  background: var(--pd-marfim) !important;
  color: var(--pd-secondary-dark) !important;
  border-color: var(--pd-secondary) !important;
}

/* Botão "Escolher opções" — garantir cor dourada cheia, não esmaecida */
.hepres-card__cta,
a.hepres-card__cta,
.hepres-card .button {
  background-color: var(--pd-secondary) !important;
  color: #fff !important;
  border: 1px solid var(--pd-secondary) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
.hepres-card__cta:hover,
a.hepres-card__cta:hover,
.hepres-card .button:hover {
  background-color: var(--pd-secondary-dark) !important;
  color: #fff !important;
  border-color: var(--pd-secondary-dark) !important;
}

/* WhatsApp ghost — verde oliva sólido no contraste */
.hepres-wa,
.hepres-wa--ghost {
  border: 1px solid var(--pd-oliva) !important;
  color: var(--pd-oliva) !important;
  background: transparent !important;
  font-weight: 500 !important;
}
.hepres-wa:hover {
  background: var(--pd-oliva) !important;
  color: #fff !important;
}

/* Esconde o coração de wishlist (cliente decidiu remover) */
.hepres-wl-toggle,
.hepres-wishlist-toggle {
  display: none !important;
}

/* =========================================================
   Footer: textos escuros no fundo marfim (eram brancos)
   ========================================================= */

/* Links do footer (Quem somos, Política, Fale conosco etc) */

/* Ícones do footer (redes sociais, telefone, e-mail) — dourado papal */

/* Headings do footer em serifa */

/* =========================================================
   Preço à vista mais evidente (cards + single)
   ========================================================= */

/* CARDS — preço maior em serifa Cormorant, casando com a paleta angelical */
.hepres-card__price,
.hepres-card .price,
.jet-listing-grid__item .hepres-card__price,
.jet-listing-grid__item .price,
.jet-listing-grid__item .amount {
  font-family: var(--pd-font-serif) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  color: var(--pd-secondary) !important;
  line-height: 1.2 !important;
  letter-spacing: 0;
  margin: 6px 0 2px !important;
}
.hepres-card__price .amount,
.jet-listing-grid__item .price .amount {
  font-size: inherit !important;
  color: inherit !important;
  font-weight: inherit !important;
}

/* O parcelamento abaixo do preço fica menor pra contrastar */
.hepres-card .hepres-installments,
.jet-listing-grid__item .hepres-installments {
  font-size: 12px !important;
  color: var(--pd-muted) !important;
  margin-top: 2px !important;
}
.hepres-card .hepres-installments strong,
.jet-listing-grid__item .hepres-installments strong {
  color: var(--pd-text) !important;
}

/* SINGLE — preço destacado em serifa Cormorant */
.elementor-location-single .product .price,
.elementor-location-single .product .price .amount,
.elementor-widget-woocommerce-product-price .price,
.elementor-widget-woocommerce-product-price .price .amount,
.summary > .price,
.summary .woocommerce-Price-amount {
  font-family: var(--pd-font-serif) !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  color: var(--pd-secondary) !important;
  line-height: 1.1 !important;
  letter-spacing: 0;
  margin: 12px 0 6px !important;
  display: block !important;
}
.elementor-location-single .product .price .amount,
.summary .woocommerce-Price-amount {
  font-size: inherit !important;
  color: inherit !important;
}

/* Símbolo R$ um pouco menor que o número pra ficar elegante */
.elementor-location-single .price .woocommerce-Price-currencySymbol,
.summary .woocommerce-Price-currencySymbol,
.hepres-card__price .woocommerce-Price-currencySymbol {
  font-size: 0.7em;
  font-weight: 600;
  margin-right: 4px;
  vertical-align: 2px;
}

/* O parcelamento abaixo no single fica mais discreto pra destacar o à vista */
.elementor-location-single .hepres-installments,
.elementor-location-single .hepres-price-extras {
  font-size: 14px !important;
  margin-top: 8px !important;
}

/* =========================================================
   Título do produto no single — força serifa Cormorant
   (renderizado via shortcode dentro de widget HTML, escapa
    do seletor genérico .product_title).
   ========================================================= */
.elementor-location-single h1,
.elementor-location-single h2.product_title,
.elementor-location-single .product_title,
.elementor-location-single .elementor-widget-html h1,
.elementor-location-single .elementor-widget-text-editor h1,
.elementor-location-single .elementor-heading-title,
.elementor-location-single .summary > h1,
.elementor-location-single .summary > h2,
.elementor-widget-theme-post-title h1,
.elementor-widget-woocommerce-product-title h1,
.elementor-widget-woocommerce-product-title h2 {
  font-family: var(--pd-font-serif) !important;
  font-weight: 600 !important;
  color: var(--pd-primary) !important;
  letter-spacing: -0.015em;
  line-height: 1.15;
}

/* =========================================================
   MOBILE — hamburger menu reposicionado pro topo direito
   + corrige icone ficando branco ao tocar
   ========================================================= */
@media (max-width: 1024px) {
  /* Move o widget de menu pra position fixed top-right (acima de tudo) */
  
  

  /* Ícone hamburger sempre dourado papal (não fica branco em nenhum state) */
  
  
  

  /* O dropdown do menu (quando abre) — fundo branco, links azul-noite */
  
  
  
}

/* =========================================================
   Card title — tamanho aumentado (~19–23px) + 2-line clamp
   ========================================================= */
.hepres-card__title,
.hepres-card__title a,
.product .woocommerce-loop-product__title {
  font-size: clamp(1.2rem, 2.2vw, 1.45rem) !important;
  line-height: 1.3 !important;
}
.hepres-card__title {
  /* Título inteiro visível — sem clamp pra não cortar nomes longos */
  display: block;
  overflow: visible;
  min-height: 2.6em;
  word-break: normal;
  overflow-wrap: break-word;
}

/* =========================================================
   Single produto — padding lateral no mobile
   (galeria, breadcrumb, título, preço, descrição não devem
    encostar nas bordas da tela)
   ========================================================= */
@media (max-width: 1024px) {
  body.single-product .elementor-location-single {
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }
  body.single-product .elementor-location-single .elementor-section.elementor-section-full_width,
  body.single-product .elementor-location-single .e-con.e-con-full {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* Galeria principal não deve estourar pra fora do padding */
  body.single-product .elementor-location-single .woocommerce-product-gallery,
  body.single-product .elementor-location-single .flex-viewport,
  body.single-product .elementor-location-single .woocommerce-product-gallery__image img {
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* =========================================================
   Menu de categorias — fundo marfim integrado ao header
   (era uma barra branca separada; agora visualmente une-se
    ao bloco bege do topo)
   ========================================================= */

/* Itens do menu na fonte nova (Inter) e cor azul-noite, hover dourado */

/* =========================================================
   Tabs do single — layout limpo, marfim, dourado
   (cliente dispensou reviews — Avaliações é escondida)
   ========================================================= */

/* Esconde tab de avaliações em qualquer markup (Elementor widget ou WooCommerce nativo) */
.elementor-location-single .reviews_tab,
.elementor-location-single li.reviews_tab,
.elementor-location-single [aria-controls*="review"],
.elementor-location-single [data-tab*="review"],
.elementor-location-single .e-tabs-content-wrapper [id*="review"],
.elementor-location-single #tab-reviews,
.elementor-location-single .woocommerce-Tabs-panel--reviews,
.woocommerce-tabs .reviews_tab {
  display: none !important;
}

/* Container das tabs — limpa fundo lilás default e empilhamento ruim */
.elementor-location-single .woocommerce-tabs,
.elementor-location-single .e-tabs,
.elementor-location-single .elementor-widget-woocommerce-product-data-tabs,
.elementor-location-single .elementor-widget-tabs {
  background: transparent !important;
  margin-top: 24px;
}

/* Lista de tabs (botões em linha) */
.elementor-location-single .woocommerce-tabs ul.tabs,
.elementor-location-single .e-tabs-wrapper,
.elementor-location-single .elementor-tabs-wrapper {
  display: flex !important;
  flex-wrap: wrap;
  gap: 4px;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
  list-style: none !important;
  background: transparent !important;
  border-bottom: 1px solid var(--pd-border) !important;
}
.elementor-location-single .woocommerce-tabs ul.tabs::before,
.elementor-location-single .woocommerce-tabs ul.tabs::after { display: none !important; }

/* Tab item individual */
.elementor-location-single .woocommerce-tabs ul.tabs li,
.elementor-location-single .e-tab-title,
.elementor-location-single .elementor-tab-title {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  list-style: none !important;
}
.elementor-location-single .woocommerce-tabs ul.tabs li::before,
.elementor-location-single .woocommerce-tabs ul.tabs li::after { display: none !important; }

.elementor-location-single .woocommerce-tabs ul.tabs li a,
.elementor-location-single .e-tab-title > a,
.elementor-location-single .elementor-tab-title > a,
.elementor-location-single .e-tab-title-text,
.elementor-location-single .elementor-tab-title {
  display: inline-block;
  padding: 10px 18px !important;
  background: transparent !important;
  color: var(--pd-muted) !important;
  font-family: var(--pd-font) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  transition: color .2s ease, border-color .2s ease;
}

.elementor-location-single .woocommerce-tabs ul.tabs li:hover a,
.elementor-location-single .e-tab-title:hover,
.elementor-location-single .elementor-tab-title:hover {
  color: var(--pd-primary) !important;
  border-bottom-color: var(--pd-secondary-light) !important;
}

.elementor-location-single .woocommerce-tabs ul.tabs li.active a,
.elementor-location-single .e-tab-title.e-active,
.elementor-location-single .e-tab-title[aria-selected="true"],
.elementor-location-single .elementor-tab-title.elementor-active,
.elementor-location-single .elementor-tab-title[aria-selected="true"] {
  color: var(--pd-secondary) !important;
  border-bottom: 2px solid var(--pd-secondary) !important;
}

/* Painel de conteúdo */
.elementor-location-single .woocommerce-Tabs-panel,
.elementor-location-single .e-tab-content,
.elementor-location-single .elementor-tab-content {
  padding: 16px 0 !important;
  background: transparent !important;
  font-family: var(--pd-font);
  color: var(--pd-text);
  line-height: 1.6;
}
.elementor-location-single .woocommerce-Tabs-panel h2,
.elementor-location-single .woocommerce-Tabs-panel h3 {
  font-family: var(--pd-font-serif);
  color: var(--pd-primary);
  font-weight: 600;
  margin-top: 0;
}

/* Esconde label técnica "Category" do widget de meta (se aparecer separado) */
.elementor-location-single .product_meta .posted_in::before {
  content: "";
}
.elementor-location-single .product-category-label,
.elementor-location-single [class*="category-label"] {
  display: none !important;
}

/* Mobile: tabs scrolláveis horizontalmente em vez de empilhar */
@media (max-width: 768px) {
  .elementor-location-single .woocommerce-tabs ul.tabs,
  .elementor-location-single .e-tabs-wrapper,
  .elementor-location-single .elementor-tabs-wrapper {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .elementor-location-single .woocommerce-tabs ul.tabs::-webkit-scrollbar,
  .elementor-location-single .e-tabs-wrapper::-webkit-scrollbar,
  .elementor-location-single .elementor-tabs-wrapper::-webkit-scrollbar { display: none; }
  .elementor-location-single .woocommerce-tabs ul.tabs li,
  .elementor-location-single .e-tab-title,
  .elementor-location-single .elementor-tab-title { flex: 0 0 auto; }
}

/* =========================================================
   Cross-sells / Upsells / Related — cards do carrinho e single
   (template default do WooCommerce — alinhar visualmente
    com os cards do arquivo)
   ========================================================= */
.woocommerce .cross-sells,
.woocommerce .up-sells,
.woocommerce .related {
  margin-top: 32px;
}
.woocommerce .cross-sells > h2,
.woocommerce .up-sells > h2,
.woocommerce .related > h2 {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary) !important;
  font-weight: 600 !important;
  font-size: clamp(1.4rem, 2.4vw, 1.75rem);
  margin: 0 0 20px;
  letter-spacing: -0.01em;
}

/* Reset herança de grid do layout cart 2-cols (pega só onde rola xsell em widget html) */
.elementor-widget-html .woocommerce,
.elementor-widget-html .woocommerce.columns-4 {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
}

/* Toggle do mini-cart: remove borda padrão cinza do .elementor-button (Elementor base) */
.elementor-location-header .elementor-menu-cart__toggle_button,
.elementor-location-header a.elementor-menu-cart__toggle_button,
.elementor-location-header .elementor-menu-cart__toggle_button.elementor-button,
.elementor-location-header a.elementor-menu-cart__toggle_button.elementor-button {
  border: 0 !important;
  box-shadow: none !important;
}

/* Anula clearfix ::before/::after do WooCommerce que ocupava células do grid */
.elementor-widget-html ul.products::before,
.elementor-widget-html ul.products::after,
.woocommerce .cross-sells ul.products::before,
.woocommerce .cross-sells ul.products::after,
.woocommerce .up-sells ul.products::before,
.woocommerce .up-sells ul.products::after,
.woocommerce .related ul.products::before,
.woocommerce .related ul.products::after {
  display: none !important;
  content: none !important;
}

.woocommerce .cross-sells ul.products,
.woocommerce .up-sells ul.products,
.woocommerce .related ul.products,
.elementor-widget-html ul.products,
.elementor-widget-html .woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100% !important;
}
@media (max-width: 1024px) {
  .woocommerce .cross-sells ul.products,
  .woocommerce .up-sells ul.products,
  .woocommerce .related ul.products,
  .elementor-widget-html ul.products,
  .elementor-widget-html .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 768px) {
  .woocommerce .cross-sells ul.products,
  .woocommerce .up-sells ul.products,
  .woocommerce .related ul.products,
  .elementor-widget-html ul.products,
  .elementor-widget-html .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
}

.woocommerce .cross-sells ul.products li.product,
.woocommerce .up-sells ul.products li.product,
.woocommerce .related ul.products li.product,
.elementor-widget-html ul.products li.product,
.elementor-widget-html .woocommerce ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 14px !important;
  background: #fff !important;
  border: 1px solid var(--pd-border-soft) !important;
  border-radius: var(--pd-radius);
  box-shadow: var(--pd-shadow);
  display: flex !important;
  flex-direction: column;
  gap: 10px;
  transition: transform var(--pd-transition), box-shadow var(--pd-transition), border-color var(--pd-transition);
}
.woocommerce .cross-sells ul.products li.product:hover,
.woocommerce .up-sells ul.products li.product:hover,
.woocommerce .related ul.products li.product:hover {
  transform: translateY(-3px);
  border-color: rgba(184, 146, 74, 0.45) !important;
  box-shadow: var(--pd-shadow-hover);
}

/* Imagem do produto */
.woocommerce .cross-sells ul.products li.product a img,
.woocommerce .up-sells ul.products li.product a img,
.woocommerce .related ul.products li.product a img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: var(--pd-bg-soft);
  border-radius: var(--pd-radius-sm);
  margin: 0 !important;
}

/* Título — serifa, sem clamp pra nome inteiro visível */
.woocommerce .cross-sells ul.products li.product .woocommerce-loop-product__title,
.woocommerce .up-sells ul.products li.product .woocommerce-loop-product__title,
.woocommerce .related ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary) !important;
  font-weight: 600 !important;
  font-size: clamp(1rem, 1.6vw, 1.15rem) !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  padding: 0 !important;
  letter-spacing: -0.01em;
  display: block;
  overflow: visible;
  min-height: 2.6em;
  word-break: normal;
  overflow-wrap: break-word;
}

/* Preço — dourado papal */
.woocommerce .cross-sells ul.products li.product .price,
.woocommerce .up-sells ul.products li.product .price,
.woocommerce .related ul.products li.product .price {
  color: var(--pd-secondary) !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--pd-font) !important;
}
.woocommerce .cross-sells ul.products li.product .price del,
.woocommerce .up-sells ul.products li.product .price del,
.woocommerce .related ul.products li.product .price del {
  color: var(--pd-muted) !important;
  font-weight: 400;
  margin-right: 6px;
}

/* Botão "Adicionar / Selecionar opções" — dourado consistente */
.woocommerce .cross-sells ul.products li.product .button,
.woocommerce .up-sells ul.products li.product .button,
.woocommerce .related ul.products li.product .button,
.woocommerce .cross-sells ul.products li.product a.added_to_cart,
.woocommerce .up-sells ul.products li.product a.added_to_cart,
.woocommerce .related ul.products li.product a.added_to_cart {
  background: var(--pd-secondary) !important;
  color: #fff !important;
  border: 1px solid var(--pd-secondary-dark) !important;
  border-radius: 999px !important;
  padding: 10px 16px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  width: 100% !important;
  text-align: center !important;
  margin-top: auto !important;
  transition: background .15s ease;
}
.woocommerce .cross-sells ul.products li.product .button:hover,
.woocommerce .up-sells ul.products li.product .button:hover,
.woocommerce .related ul.products li.product .button:hover {
  background: var(--pd-secondary-dark) !important;
}

/* Esconde "added_to_cart" verde duplicado abaixo do botão default */
.woocommerce .cross-sells ul.products li.product .added_to_cart.wc-forward,
.woocommerce .up-sells ul.products li.product .added_to_cart.wc-forward,
.woocommerce .related ul.products li.product .added_to_cart.wc-forward {
  display: none !important;
}

/* Mobile: 2 colunas */
@media (max-width: 600px) {
  .woocommerce .cross-sells ul.products,
  .woocommerce .up-sells ul.products,
  .woocommerce .related ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .woocommerce .cross-sells ul.products li.product,
  .woocommerce .up-sells ul.products li.product,
  .woocommerce .related ul.products li.product {
    padding: 10px !important;
  }
}

/* =========================================================
   Cross-sells / Upsells / Related — correções
   - força line-clamp do título
   - botão em uma linha só, padding ajustado
   ========================================================= */
.woocommerce .cross-sells ul.products li.product .woocommerce-loop-product__title,
.woocommerce .up-sells ul.products li.product .woocommerce-loop-product__title,
.woocommerce .related ul.products li.product .woocommerce-loop-product__title {
  /* Título inteiro — sem clamp */
  display: block !important;
  overflow: visible !important;
  min-height: 2.6em !important;
  font-size: 0.95rem !important;
  line-height: 1.3 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.woocommerce .cross-sells ul.products li.product .button,
.woocommerce .up-sells ul.products li.product .button,
.woocommerce .related ul.products li.product .button {
  white-space: nowrap !important;
  padding: 9px 14px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Garante alinhamento bottom do preço + botão */
.woocommerce .cross-sells ul.products li.product,
.woocommerce .up-sells ul.products li.product,
.woocommerce .related ul.products li.product {
  justify-content: flex-start;
}
.woocommerce .cross-sells ul.products li.product .price,
.woocommerce .up-sells ul.products li.product .price,
.woocommerce .related ul.products li.product .price {
  margin-top: auto !important;
}

/* =========================================================
   Mobile fixes — seals 2x2, tabs cabendo, label "Category"
   ========================================================= */
@media (max-width: 768px) {
  /* Selos informativos: 2 colunas em vez de 1 por linha */
  .hepres-seals {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }
  .hepres-seal {
    padding: 10px 12px !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
  .hepres-seal strong { font-size: 12px !important; line-height: 1.25 !important; }
  .hepres-seal span   { font-size: 11px !important; line-height: 1.3 !important; }
  .hepres-seal svg { width: 20px !important; height: 20px !important; }

  /* Tabs: caber duas/três tabs sem corte */
  .elementor-location-single .e-tab-title,
  .elementor-location-single .elementor-tab-title,
  .elementor-location-single .woocommerce-tabs ul.tabs li {
    flex: 1 1 auto !important;
    text-align: center;
    max-width: 50%;
  }
  .elementor-location-single .e-tab-title > a,
  .elementor-location-single .elementor-tab-title > a,
  .elementor-location-single .e-tab-title-text,
  .elementor-location-single .woocommerce-tabs ul.tabs li a,
  .elementor-location-single .elementor-tab-title {
    padding: 10px 8px !important;
    font-size: 11px !important;
    letter-spacing: 0.04em !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }
}

/* Esconde a label "Category" (em inglês) que aparece solta no single
   — mantém o nome da categoria ("IMAGENS") visível.                */
.elementor-location-single .elementor-widget-woocommerce-product-meta .posted_in > span:first-child,
.elementor-location-single .product_meta .posted_in,
.elementor-location-single .elementor-widget [class*="product-meta"] dt,
.elementor-location-single .elementor-heading-title:has(+ * .posted_in),
.elementor-location-single h1:has-text("Category"),
.elementor-location-single h2:has-text("Category"),
.elementor-location-single h3:has-text("Category") {
  /* nada — usar abordagem JS abaixo */
}

/* Versão segura: esconde texto que diz literalmente "Category" no single */
.elementor-location-single [class*="meta"] dt {
  display: none !important;
}

/* =========================================================
   Cross-sells (CARRINHO Elementor) — override agressivo
   ========================================================= */
[class*="cross-sells"] ul.products,
[class*="up-sells"] ul.products,
.elementor-widget-woocommerce-cart .cross-sells ul.products,
.e-cart-cross-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  gap: 18px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Cada card */
[class*="cross-sells"] ul.products li.product,
[class*="up-sells"] ul.products li.product,
.elementor-widget-woocommerce-cart .cross-sells li.product,
.e-cart-cross-sells li.product {
  display: flex !important;
  flex-direction: column !important;
  width: auto !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 14px !important;
  gap: 10px !important;
  background: #fff !important;
  border: 1px solid var(--pd-border-soft) !important;
  border-radius: var(--pd-radius) !important;
  box-shadow: var(--pd-shadow) !important;
  list-style: none !important;
  float: none !important;
  clear: none !important;
}
[class*="cross-sells"] ul.products li.product::before,
[class*="cross-sells"] ul.products li.product::after,
[class*="up-sells"] ul.products li.product::before,
[class*="up-sells"] ul.products li.product::after { display: none !important; }

/* Título — sem line-clamp pra mostrar nome inteiro */
[class*="cross-sells"] li.product h2,
[class*="cross-sells"] li.product h3,
[class*="cross-sells"] li.product .woocommerce-loop-product__title,
[class*="cross-sells"] li.product [class*="loop-product__title"],
[class*="up-sells"] li.product h2,
[class*="up-sells"] li.product h3,
[class*="up-sells"] li.product .woocommerce-loop-product__title,
.elementor-widget-woocommerce-cart .cross-sells li.product h2,
.elementor-widget-woocommerce-cart .cross-sells li.product h3,
.e-cart-cross-sells li.product h2,
.e-cart-cross-sells li.product h3 {
  font-family: var(--pd-font-serif) !important;
  font-size: 0.95rem !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
  color: var(--pd-primary) !important;
  margin: 0 !important;
  padding: 0 !important;
  letter-spacing: -0.01em !important;
  display: block !important;
  overflow: visible !important;
  min-height: 2.6em !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* Preço empurrado pra base junto com botão */
[class*="cross-sells"] li.product .price,
[class*="up-sells"] li.product .price,
.elementor-widget-woocommerce-cart .cross-sells li.product .price,
.e-cart-cross-sells li.product .price {
  margin: auto 0 0 !important;
  padding: 0 !important;
  color: var(--pd-secondary) !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  font-family: var(--pd-font) !important;
  line-height: 1.3 !important;
}

/* Botão — UMA linha. Override total. */
[class*="cross-sells"] li.product a.button,
[class*="cross-sells"] li.product .button,
[class*="up-sells"] li.product a.button,
[class*="up-sells"] li.product .button,
.elementor-widget-woocommerce-cart .cross-sells li.product a.button,
.elementor-widget-woocommerce-cart .cross-sells li.product .button,
.e-cart-cross-sells li.product a.button,
.e-cart-cross-sells li.product .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 9px 10px !important;
  background: var(--pd-secondary) !important;
  background-color: var(--pd-secondary) !important;
  color: #fff !important;
  border: 1px solid var(--pd-secondary-dark) !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.2 !important;
  flex-direction: row !important;
}
[class*="cross-sells"] li.product a.button:hover,
[class*="cross-sells"] li.product .button:hover,
[class*="up-sells"] li.product a.button:hover,
[class*="up-sells"] li.product .button:hover {
  background: var(--pd-secondary-dark) !important;
  background-color: var(--pd-secondary-dark) !important;
}

/* Esconde "Visualizado" / "added_to_cart" verde duplicado */
[class*="cross-sells"] li.product a.added_to_cart,
[class*="up-sells"] li.product a.added_to_cart,
.elementor-widget-woocommerce-cart .cross-sells li.product a.added_to_cart {
  display: none !important;
}

/* Mobile 2 colunas */
@media (max-width: 600px) {
  [class*="cross-sells"] ul.products,
  [class*="up-sells"] ul.products,
  .elementor-widget-woocommerce-cart .cross-sells ul.products,
  .e-cart-cross-sells ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
  [class*="cross-sells"] li.product,
  [class*="up-sells"] li.product { padding: 10px !important; }
}

/* =========================================================
   RESPONSIVIDADE GERAL — pass de correções
   ========================================================= */

/* 1. Nada estoura a viewport */
html, body { overflow-x: hidden; max-width: 100%; }
img, video { max-width: 100%; height: auto; }

/* 2. Cross-sells / Related / Upsells — grade enxuta em todos os breakpoints */
@media (max-width: 1024px) {
  [class*="cross-sells"] ul.products,
  [class*="up-sells"] ul.products,
  .related ul.products,
  .e-cart-cross-sells ul.products,
  .elementor-widget-woocommerce-cart .cross-sells ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
}
@media (max-width: 768px) {
  [class*="cross-sells"] ul.products,
  [class*="up-sells"] ul.products,
  .related ul.products,
  .e-cart-cross-sells ul.products,
  .elementor-widget-woocommerce-cart .cross-sells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  [class*="cross-sells"] li.product,
  [class*="up-sells"] li.product,
  .related li.product {
    padding: 10px !important;
    gap: 8px !important;
    min-width: 0 !important;
  }
  [class*="cross-sells"] li.product h2,
  [class*="cross-sells"] li.product h3,
  [class*="cross-sells"] li.product .woocommerce-loop-product__title,
  [class*="up-sells"] li.product h2,
  [class*="up-sells"] li.product h3,
  .related li.product h2,
  .related li.product h3,
  .related li.product .woocommerce-loop-product__title {
    font-size: 0.9rem !important;
    line-height: 1.25 !important;
    min-height: 2.5em !important;
  }
  [class*="cross-sells"] li.product .price,
  [class*="up-sells"] li.product .price,
  .related li.product .price {
    font-size: 0.95rem !important;
  }
  [class*="cross-sells"] li.product a.button,
  [class*="cross-sells"] li.product .button,
  [class*="up-sells"] li.product a.button,
  [class*="up-sells"] li.product .button,
  .related li.product a.button,
  .related li.product .button {
    font-size: 11px !important;
    padding: 8px 6px !important;
    letter-spacing: -0.01em !important;
  }
}

/* 3. Cards do arquivo (home, categorias) — garante 2 cols mobile */
@media (max-width: 768px) {
  .jet-listing-grid__items,
  .elementor-widget-jet-engine-listing-grid .jet-listing-grid__items {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .jet-listing-grid__item,
  .hepres-card { min-width: 0 !important; }
  .hepres-card__title {
    font-size: clamp(0.95rem, 3.5vw, 1.1rem) !important;
    min-height: 2.4em !important;
  }
  .hepres-card a.hepres-card__cta,
  .woocommerce a.hepres-card__cta {
    font-size: 12px !important;
    padding: 9px 10px !important;
    white-space: normal !important;
    line-height: 1.2 !important;
    min-height: 36px !important;
  }
  .hepres-card a.hepres-wa--ghost,
  .hepres-card a.hepres-wa--solid {
    font-size: 11px !important;
    padding: 7px 8px !important;
  }
}

/* 4. Single produto — galeria + summary em coluna */
@media (max-width: 900px) {
  .single-product .product,
  .woocommerce div.product {
    display: block !important;
  }
  .single-product .product .images,
  .single-product .product .summary,
  .woocommerce div.product .images,
  .woocommerce div.product .summary {
    width: 100% !important;
    float: none !important;
    margin: 0 0 16px !important;
  }
}

/* 5. Carrinho 2-col → stack mobile */
@media (max-width: 900px) {
  .woocommerce-cart-form,
  .cart-collaterals,
  .cart_totals {
    width: 100% !important;
    float: none !important;
    position: static !important;
  }
  .elementor-widget-woocommerce-cart .e-cart-section,
  .elementor-widget-woocommerce-cart .e-cart__container > * {
    width: 100% !important;
    flex: 1 1 100% !important;
  }
  .elementor-widget-woocommerce-cart .e-cart__container {
    flex-direction: column !important;
    gap: 16px !important;
  }
}

/* 6. Tabela do carrinho mobile-friendly */
@media (max-width: 600px) {
  .woocommerce-cart-form table.cart thead { display: none; }
  .woocommerce-cart-form table.cart,
  .woocommerce-cart-form table.cart tbody,
  .woocommerce-cart-form table.cart tr,
  .woocommerce-cart-form table.cart td {
    display: block !important;
    width: 100% !important;
  }
  .woocommerce-cart-form table.cart tr {
    border: 1px solid var(--pd-border-soft);
    border-radius: var(--pd-radius-sm);
    margin-bottom: 12px;
    padding: 10px;
    background: #fff;
  }
  .woocommerce-cart-form table.cart td {
    border: none !important;
    padding: 6px 0 !important;
    text-align: left !important;
  }
  .woocommerce-cart-form table.cart td.product-thumbnail img {
    max-width: 80px;
  }
}

/* 7. Checkout: forms full-width em mobile */
@media (max-width: 768px) {
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout .col-1,
  .woocommerce-checkout .col-2,
  .elementor-widget-woocommerce-checkout-page .col-1,
  .elementor-widget-woocommerce-checkout-page .col-2,
  .elementor-widget-woocommerce-checkout-page #order_review,
  .elementor-widget-woocommerce-checkout-page #order_review_heading {
    width: 100% !important;
    float: none !important;
  }
  .form-row-first, .form-row-last { width: 100% !important; float: none !important; }
}

/* 8. Selos de confiança (já tinha 2x2 - reforço com min-width) */
@media (max-width: 768px) {
  .hepres-seals { min-width: 0; }
  .hepres-seal { min-width: 0; }
}

/* 9. Botão flutuante WhatsApp não cobre conteúdo */
@media (max-width: 600px) {
  .hepres-wa-float,
  [class*="whatsapp-float"],
  .elementor-widget [class*="wa-float"] {
    bottom: 12px !important;
    right: 12px !important;
  }
}

/* 10. Containers Elementor: nunca menores que viewport, nunca maiores */
.elementor-section, .e-con, .elementor-container {
  max-width: 100%;
}

/* =========================================================
   Checkout — fixes mobile
   ========================================================= */
@media (max-width: 768px) {
  /* Breadcrumb sem barra solta no início */
  .elementor-location-single .elementor-widget-woocommerce-breadcrumb,
  .woocommerce-checkout .woocommerce-breadcrumb {
    font-size: 13px !important;
  }

  /* Heading "Finalizar pedido" mais compacto */
  .woocommerce-checkout h1,
  .woocommerce-checkout h2,
  .elementor-widget-woocommerce-checkout-page h1,
  .elementor-widget-woocommerce-checkout-page h2 {
    font-size: clamp(1.6rem, 5vw, 2.2rem) !important;
    line-height: 1.15 !important;
    margin-bottom: 8px !important;
  }

  /* Form inputs full width, padding consistente */
  .elementor-widget-woocommerce-checkout-page .form-row,
  .woocommerce-checkout .form-row {
    width: 100% !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
  }
  .elementor-widget-woocommerce-checkout-page input[type="text"],
  .elementor-widget-woocommerce-checkout-page input[type="email"],
  .elementor-widget-woocommerce-checkout-page input[type="tel"],
  .elementor-widget-woocommerce-checkout-page input[type="number"],
  .elementor-widget-woocommerce-checkout-page select,
  .elementor-widget-woocommerce-checkout-page textarea,
  .woocommerce-checkout input[type="text"],
  .woocommerce-checkout input[type="email"],
  .woocommerce-checkout input[type="tel"],
  .woocommerce-checkout select,
  .woocommerce-checkout textarea {
    width: 100% !important;
    padding: 12px 14px !important;
    font-size: 16px !important; /* evita zoom no iOS ao focar */
  }

  /* Resumo do pedido empilhado abaixo do form */
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout .col-1,
  .woocommerce-checkout .col-2,
  .elementor-widget-woocommerce-checkout-page #order_review,
  .elementor-widget-woocommerce-checkout-page #order_review_heading,
  .elementor-widget-woocommerce-checkout-page .e-checkout__order_review,
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    width: 100% !important;
    float: none !important;
    margin-bottom: 16px !important;
  }
}

/* =========================================================
   Cross-sells/related — fix definitivo nos botões e título
   (nuclear: aplica também em descendentes do button)
   ========================================================= */
[class*="cross-sells"] li.product .button,
[class*="cross-sells"] li.product .button *,
[class*="cross-sells"] li.product a.button,
[class*="cross-sells"] li.product a.button *,
[class*="up-sells"] li.product .button,
[class*="up-sells"] li.product .button *,
[class*="up-sells"] li.product a.button,
[class*="up-sells"] li.product a.button *,
.related li.product .button,
.related li.product .button *,
.related li.product a.button,
.related li.product a.button *,
.elementor-widget-woocommerce-cart [class*="cross-sells"] .button,
.elementor-widget-woocommerce-cart [class*="cross-sells"] .button * {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

[class*="cross-sells"] li.product h2,
[class*="cross-sells"] li.product h3,
[class*="cross-sells"] li.product [class*="title"],
[class*="up-sells"] li.product h2,
[class*="up-sells"] li.product h3,
[class*="up-sells"] li.product [class*="title"],
.related li.product h2,
.related li.product h3,
.related li.product [class*="title"] {
  display: block !important;
  overflow: visible !important;
  word-break: normal;
  overflow-wrap: break-word;
}

/* =========================================================
   Padding lateral em mobile pra páginas que estão coladas
   nas bordas (checkout, carrinho, conta, página genérica)
   ========================================================= */
@media (max-width: 1024px) {
  

  /* Inputs/cards internos — garante box-sizing pra não estourar */
  body.woocommerce-checkout input,
  body.woocommerce-checkout select,
  body.woocommerce-checkout textarea,
  body.woocommerce-checkout .form-row,
  body.woocommerce-checkout .e-checkout__order_review,
  body.woocommerce-checkout .e-coupon-box,
  body.woocommerce-cart input,
  body.woocommerce-cart .cart_totals,
  body.woocommerce-cart .woocommerce-cart-form {
    box-sizing: border-box !important;
    max-width: 100% !important;
  }

  /* Cancela margem negativa de seções "full width" do Elementor
     dentro dessas páginas (que estouravam o padding) */
  body.woocommerce-checkout .elementor-section.elementor-section-full_width,
  body.woocommerce-checkout .e-con.e-con-full,
  body.woocommerce-cart .elementor-section.elementor-section-full_width,
  body.woocommerce-cart .e-con.e-con-full {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* Reforço: containers Elementor nunca estouram a tela */
@media (max-width: 1024px) {
  .elementor-widget-woocommerce-checkout-page,
  .elementor-widget-woocommerce-cart {
    max-width: 100% !important;
    overflow-x: hidden;
  }
}

/* =========================================================
   Checkout mobile — STRICT: campos não podem extravasar
   ========================================================= */
@media (max-width: 1024px) {
  /* Body trava overflow horizontal */
  body.woocommerce-checkout {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }

  /* Containers do widget de checkout: full width sem padding extra */
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page,
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page > .elementor-widget-container,
  body.woocommerce-checkout .woocommerce,
  body.woocommerce-checkout form.checkout,
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout .col-1,
  body.woocommerce-checkout .col-2,
  body.woocommerce-checkout .e-checkout__order_review,
  body.woocommerce-checkout .e-coupon-box,
  body.woocommerce-checkout .e-checkout-section,
  body.woocommerce-checkout .e-checkout__container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Form rows: stack, sem float, sem largura fixa */
  body.woocommerce-checkout .form-row,
  body.woocommerce-checkout .form-row-first,
  body.woocommerce-checkout .form-row-last,
  body.woocommerce-checkout .form-row-wide,
  body.woocommerce-checkout p.form-row,
  body.woocommerce-checkout .e-form__row {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* Inputs/select/textarea: NUNCA estouram. Usa box-sizing border-box */
  body.woocommerce-checkout input[type="text"],
  body.woocommerce-checkout input[type="email"],
  body.woocommerce-checkout input[type="tel"],
  body.woocommerce-checkout input[type="number"],
  body.woocommerce-checkout input[type="password"],
  body.woocommerce-checkout input[type="search"],
  body.woocommerce-checkout select,
  body.woocommerce-checkout textarea,
  body.woocommerce-checkout .select2-container,
  body.woocommerce-checkout .select2-container--default .select2-selection--single {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding: 12px 14px !important;
    font-size: 16px !important;
    margin: 0 !important;
  }

  /* Wrappers de input que tinham largura específica */
  body.woocommerce-checkout .input-text,
  body.woocommerce-checkout .woocommerce-input-wrapper,
  body.woocommerce-checkout .e-form__field {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Tabela de revisão do pedido (resumo) */
  body.woocommerce-checkout .shop_table,
  body.woocommerce-checkout .woocommerce-checkout-review-order-table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-checkout .shop_table th,
  body.woocommerce-checkout .shop_table td {
    padding: 8px 6px !important;
    font-size: 13px !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Botão "Finalizar pedido" full width */
  body.woocommerce-checkout #place_order,
  body.woocommerce-checkout .place-order .button {
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Métodos de pagamento e shipping: full width */
  body.woocommerce-checkout .woocommerce-checkout-payment,
  body.woocommerce-checkout #payment,
  body.woocommerce-checkout .wc_payment_methods,
  body.woocommerce-checkout .woocommerce-shipping-fields,
  body.woocommerce-checkout .woocommerce-billing-fields {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   CHECKOUT MOBILE — STRICT v2: TUDO cabe, sem exceções
   ========================================================= */
@media (max-width: 1024px) {
  /* Body trava overflow */
  body.woocommerce-checkout {
    overflow-x: hidden !important;
  }

  /* Wrapper principal com padding lateral aplicado uma vez só */
  

  /* TUDO dentro do main do checkout: max 100%, box-sizing border-box.
     Resolve o caso de input/wrapper estourar pq tem padding+border
     sobre width:100% sem box-sizing. */
  

  /* Inputs/select/textarea: width 100% e sem min-width plotando overflow */
  body.woocommerce-checkout input,
  body.woocommerce-checkout select,
  body.woocommerce-checkout textarea,
  body.woocommerce-checkout .select2-container,
  body.woocommerce-checkout .select2-container--default .select2-selection--single,
  body.woocommerce-checkout .input-text,
  body.woocommerce-checkout .woocommerce-input-wrapper {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Containers Elementor + form rows: nunca largura fixa que estoura */
  body.woocommerce-checkout .elementor-widget,
  body.woocommerce-checkout .elementor-widget-container,
  body.woocommerce-checkout .elementor-section,
  body.woocommerce-checkout .e-con,
  body.woocommerce-checkout .form-row,
  body.woocommerce-checkout .e-form__row,
  body.woocommerce-checkout .col-1,
  body.woocommerce-checkout .col-2,
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout .e-checkout__order_review,
  body.woocommerce-checkout .e-checkout-section,
  body.woocommerce-checkout .e-coupon-box {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
  }

  /* Tabela de revisão do pedido — tabular sem estourar */
  body.woocommerce-checkout .shop_table {
    width: 100% !important;
    table-layout: fixed !important;
  }
  body.woocommerce-checkout .shop_table th,
  body.woocommerce-checkout .shop_table td {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }
}

/* =========================================================
   Cards do arquivo com markup .hepres-card via override do
   content-product.php — overlays absolutos sem precisar do
   wrapper .elementor-widget-html
   ========================================================= */
.hepres-card .hepres-card__media {
  position: relative;
  overflow: hidden;
}
.hepres-card .hepres-card__overlay-tl {
  position: absolute;
  top: 10px; left: 10px;
  z-index: 3;
  pointer-events: none;
  display: flex; flex-direction: column; gap: 6px;
}
.hepres-card .hepres-card__overlay-tr {
  position: absolute;
  top: 10px; right: 10px;
  z-index: 3;
  pointer-events: auto;
}
.hepres-card .hepres-card__body {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1 1 auto;
}
.hepres-card .hepres-card__cta-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: auto;
}
.hepres-card--xsell .hepres-card__price {
  margin: 0 !important;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--pd-secondary);
}

/* No mobile o overlay pode ser menor */
@media (max-width: 480px) {
  .hepres-card .hepres-card__overlay-tl,
  .hepres-card .hepres-card__overlay-tr {
    top: 6px; left: 6px; right: 6px;
  }
  .hepres-card .hepres-card__body {
    padding: 10px;
    gap: 6px;
  }
}

/* =========================================================
   HEADER MOBILE — versão limpa final
   Esconde topbar marrom (social + endereço), encolhe header
   principal, telefone numa linha, layout natural Elementor
   ========================================================= */
@media (max-width: 1024px) {
  /* Esconde a primeira section do header (topbar marrom com
     facebook/instagram/whatsapp/endereço) — economiza espaço */
  

  /* Header principal: padding compacto */
  

  /* Logo: tamanho razoável */
  

  /* Telefone (heading widget): UMA linha, fonte sans-serif menor
     (a serifa Cormorant fica horrível em número de telefone) */
  
}

/* =========================================================
   Cards xsell/related — botões cabem no card estreito
   ========================================================= */
.hepres-card--xsell .hepres-card__cta,
.hepres-card--xsell a.hepres-card__cta,
.hepres-card--xsell .hepres-wa,
.hepres-card--xsell .hepres-wa--ghost,
.hepres-card--xsell .hepres-wa--solid,
.hepres-card.hepres-card--xsell .hepres-wa,
.hepres-card.hepres-card--xsell .hepres-wa--ghost,
.hepres-card.hepres-card--xsell .hepres-wa--solid {
  font-size: 12px !important;
  padding: 10px 14px !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  text-align: center !important;
  line-height: 1.2 !important;
  height: auto !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  width: 100% !important;
  /* Border-radius 24px ao invés de 999px pra não virar círculo quando texto quebra em 2 linhas */
  border-radius: 24px !important;
  gap: 6px !important;
}
/* Ícone WhatsApp visível nos cards xsell, dimensão consistente */
.hepres-card--xsell .hepres-wa svg,
.hepres-card--xsell .hepres-wa__icon,
.hepres-card.hepres-card--xsell .hepres-wa svg,
.hepres-card.hepres-card--xsell .hepres-wa__icon,
.hepres-card--xsell a.hepres-wa svg,
.hepres-card--xsell a.hepres-wa > svg:first-child {
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  flex: 0 0 18px !important;
}

.hepres-card--xsell .hepres-card__cat,
.hepres-card--xsell .hepres-card__cat a {
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
}

.hepres-card--xsell .hepres-card__title {
  font-size: clamp(0.95rem, 1.4vw, 1.05rem) !important;
  line-height: 1.25 !important;
  /* Título inteiro visível — sem corte por line-clamp */
  display: block !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  overflow: visible !important;
  text-overflow: clip !important;
  min-height: 0 !important;
  max-height: none !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.hepres-card--xsell .hepres-installments,
.hepres-card--xsell .hepres-pix-price {
  font-size: 11px !important;
  margin: 2px 0 !important;
}

.hepres-card--xsell .hepres-card__cta-row {
  gap: 6px !important;
}

@media (max-width: 768px) {
  .hepres-card--xsell {
    font-size: 14px;
  }
  /* 1 coluna no mobile = mais espaço, fontes maiores */
  .hepres-card--xsell .hepres-card__cat,
  .hepres-card--xsell .hepres-card__cat a {
    font-size: 13px !important;
    letter-spacing: 0.14em !important;
  }
  .hepres-card--xsell .hepres-card__title,
  .hepres-card--xsell .hepres-card__title a {
    font-size: 1.6rem !important;
    line-height: 1.2 !important;
  }
  .hepres-card--xsell .hepres-card__price,
  .hepres-card--xsell .hepres-card__price .amount,
  .hepres-card--xsell .hepres-card__price *,
  .hepres-card--xsell .price,
  .hepres-card--xsell .price .amount,
  .hepres-card--xsell .price * {
    font-size: 2rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
  }
  .hepres-card--xsell .hepres-installments {
    font-size: 14px !important;
    line-height: 1.4 !important;
  }
  .hepres-card--xsell .hepres-installments strong,
  .hepres-card--xsell .hepres-installments b {
    font-size: 16px !important;
  }
  .hepres-card--xsell .hepres-pix-price {
    font-size: 14px !important;
  }
  /* Botões xsell mobile: MESMA ALTURA, mesma forma de pílula, font igual.
     Seletor universal pega TODOS os filhos diretos do cta-row (Escolher + WhatsApp) */
  .hepres-card--xsell .hepres-card__cta-row > a,
  .hepres-card--xsell .hepres-card__cta-row > button,
  .hepres-card.hepres-card--xsell .hepres-card__cta-row > a,
  .hepres-card.hepres-card--xsell .hepres-card__cta-row > button,
  .hepres-card--xsell .hepres-wa,
  .hepres-card--xsell a.hepres-wa,
  .hepres-card--xsell .hepres-wa--ghost,
  .hepres-card--xsell .hepres-wa--solid,
  .hepres-card.hepres-card--xsell .hepres-wa,
  .hepres-card.hepres-card--xsell .hepres-wa--ghost,
  .hepres-card.hepres-card--xsell .hepres-wa--solid,
  .hepres-card--xsell .hepres-card__cta,
  .hepres-card--xsell a.hepres-card__cta,
  .hepres-card.hepres-card--xsell .hepres-card__cta,
  .hepres-card.hepres-card--xsell a.hepres-card__cta {
    gap: 10px !important;
    padding: 0 24px !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    border-radius: 999px !important;
    border-width: 1px !important;
    text-align: center !important;
    white-space: normal !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 !important;
  }
  /* Ícone WhatsApp maior, bem dimensionado */
  .hepres-card--xsell .hepres-wa svg,
  .hepres-card--xsell .hepres-wa__icon,
  .hepres-card.hepres-card--xsell .hepres-wa svg,
  .hepres-card--xsell a.hepres-wa svg,
  .hepres-card--xsell a.hepres-wa > svg:first-child {
    display: inline-block !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    flex: 0 0 22px !important;
  }
  /* Mobile/tablet estreito: texto quebra em 2 linhas pra não cortar.
     Inclui overrides com alta especificidade pra vencer regras genéricas
     com nowrap (linhas 1810, 2280, etc) que aplicam ao .button e .button * */
  .hepres-card--xsell .hepres-card__cta,
  .hepres-card--xsell a.hepres-card__cta,
  .hepres-card--xsell .hepres-wa,
  .hepres-card--xsell .hepres-wa--ghost,
  .hepres-card--xsell .hepres-wa--solid,
  .hepres-card--xsell .hepres-card__cta *,
  .hepres-card--xsell .hepres-wa *,
  .related ul.products li.product.hepres-card--xsell .button,
  .related ul.products li.product.hepres-card--xsell .button *,
  .related ul.products li.product.hepres-card--xsell a.button,
  .related ul.products li.product.hepres-card--xsell a.button *,
  [class*="cross-sells"] li.product.hepres-card--xsell .button,
  [class*="cross-sells"] li.product.hepres-card--xsell .button *,
  [class*="up-sells"] li.product.hepres-card--xsell .button,
  [class*="up-sells"] li.product.hepres-card--xsell .button *,
  .woocommerce .related ul.products li.product.hepres-card--xsell .button,
  .woocommerce .related ul.products li.product.hepres-card--xsell .button *,
  .woocommerce .cross-sells ul.products li.product.hepres-card--xsell .button,
  .woocommerce .cross-sells ul.products li.product.hepres-card--xsell .button *,
  .woocommerce .up-sells ul.products li.product.hepres-card--xsell .button,
  .woocommerce .up-sells ul.products li.product.hepres-card--xsell .button * {
    font-size: 11px !important;
    padding: 7px 6px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.2 !important;
    min-height: 36px !important;
    height: auto !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
}

/* =========================================================
   Cross-sells movidos pra fora do widget de cart (via JS)
   Dão full width na página
   ========================================================= */
body.woocommerce-cart .cross-sells.hepres-xsells-relocated {
  width: 100%;
  max-width: 1200px;
  margin: 40px auto 32px;
  padding: 0 16px;
  box-sizing: border-box;
}
body.woocommerce-cart .cross-sells.hepres-xsells-relocated > h2 {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary) !important;
  font-weight: 600 !important;
  font-size: clamp(1.4rem, 2.4vw, 1.75rem);
  margin: 0 0 20px;
  letter-spacing: -0.01em;
}

/* =========================================================
   Alinhamento dos 3 ícones (telefone, login, carrinho)
   ========================================================= */

/* Padroniza tamanho de cada ícone visual */

/* O cart pode ter o "0" badge — mantém visível ao lado */

/* =========================================================
   Cross-sells movidos pra <main> level — full page width
   ========================================================= */
.cross-sells.hepres-xsells-fullwidth {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 24px !important;
  margin: 48px 0 32px !important;
  box-sizing: border-box !important;
  display: block !important;
  clear: both;
}
.cross-sells.hepres-xsells-fullwidth > h2 {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary) !important;
  font-weight: 600 !important;
  font-size: clamp(1.4rem, 2.4vw, 1.75rem);
  margin: 0 0 20px;
  letter-spacing: -0.01em;
  text-align: left;
}
.cross-sells.hepres-xsells-fullwidth ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  gap: 18px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}
@media (max-width: 768px) {
  .cross-sells.hepres-xsells-fullwidth {
    padding: 0 16px !important;
  }
  .cross-sells.hepres-xsells-fullwidth ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

/* =========================================================
   Cross-sells — BREAK-OUT 100vw definitivo
   (independe de quão estreito é o container pai)
   ========================================================= */
.cross-sells.hepres-xsells-fullwidth,
.cross-sells.hepres-xsells-relocated {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 40px max(16px, calc((100vw - 1400px) / 2)) !important;
  box-sizing: border-box !important;
}

/* Body sem scroll horizontal pra esse 100vw funcionar limpo */
body.woocommerce-cart {
  overflow-x: hidden !important;
}

/* removed: agora feito via Elementor widget settings */

/* =========================================================
   FIX 2 — cross-sells: auto-FIT em vez de auto-FILL
   pra os cards expandirem e preencherem toda a viewport
   ========================================================= */
.cross-sells.hepres-xsells-fullwidth ul.products,
.cross-sells.hepres-xsells-relocated ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

@media (max-width: 768px) {
  .cross-sells.hepres-xsells-fullwidth ul.products,
  .cross-sells.hepres-xsells-relocated ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

/* =========================================================
   Remove borda preta ao redor do mini-cart no header
   ========================================================= */

/* =========================================================
   Remove borda preta do mini-cart (v2 — pega o button real)
   ========================================================= */

/* =========================================================
   MOBILE — header compacto: só ícones, alinhados, no mesmo tamanho
   ========================================================= */
@media (max-width: 768px) {
  /* Esconde labels textuais ("Central de Atendimento", "Entrar ou cadastrar")
     no mobile — só os ícones aparecem */
  

  /* Mini-cart: mostra SÓ o ícone, esconde o texto "R$ X,XX" */
  

  /* Garante que o ÍCONE do mini-cart aparece (svg/i visíveis) */
  

  /* Padroniza tamanho dos 3 (phone, user, cart) — todos 40x40 */
  

  /* SVG dos icon-boxes (phone, user) */
  

  /* Container dos 3 widgets em linha horizontal compacta */
  

  /* Wrapper do icon-box: centra ícone */
  
}

/* Mobile bem pequeno — gap menor */

/* =========================================================
   Side cart (Elementor menu cart) — fundo sólido
   ========================================================= */

/* Painel lateral (conteúdo do carrinho): fundo branco sólido */

/* Header / footer interno do side cart */

/* Lightbox/overlay atrás do side cart: escuro semi-transparente */

/* Texto interno do side cart: cor da marca */

/* Botões do side cart (Ver carrinho / Finalização) */

/* =========================================================
   ============================================================
   MOBILE TIGHTENING + CROSS-SELLS LAYOUT — sessão 2026-04-28
   ============================================================
   Patch consolidado:
   - Cross-sells: NOVO layout centralizado (max-width 1400px),
     anula break-out 100vw que prendia bloco à esquerda.
   - My-account (login): inputs com altura/padding sano.
   - Checkout cartão (Mercado Pago): label não quebra, bandeiras
     comprimidas, padding em cascata reduzido.
   - Carrinho: produto na tabela mobile sem aninhamento exagerado.
   - Cross-sells em mobile <=480px: 1 coluna horizontal pra
     botões "Adicionar ao carrinho" / "Comprar pelo WhatsApp"
     caberem inteiros (era cortado: "onar ao car", "mprar pelo W").
   - Headings de página em mobile: tamanho enxuto.
   ========================================================= */

/* =========================================================
   1) CROSS-SELLS — desktop: bloco centralizado, 4 colunas iguais
   Override do break-out 100vw (frágil) por layout centrado limpo.
   O JS agora move pro filho direto do <body>, então pegamos
   `body > .cross-sells.hepres-xsells-fullwidth`.
   ========================================================= */
body > .cross-sells.hepres-xsells-fullwidth,
body > .cross-sells.hepres-xsells-relocated {
  /* anula o break-out 100vw que estava sendo aplicado antes */
  position: static !important;
  width: 100% !important;
  max-width: 1400px !important;
  margin: 56px auto 40px !important;
  padding: 0 24px !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  box-sizing: border-box !important;
  display: block !important;
  clear: both;
}

body > .cross-sells.hepres-xsells-fullwidth > h2,
body > .cross-sells.hepres-xsells-relocated > h2 {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary) !important;
  font-weight: 600 !important;
  font-size: clamp(1.4rem, 2.4vw, 1.75rem) !important;
  margin: 0 0 24px !important;
  letter-spacing: -0.01em;
  text-align: left;
}

body > .cross-sells.hepres-xsells-fullwidth ul.products,
body > .cross-sells.hepres-xsells-relocated ul.products {
  display: grid !important;
  /* Sempre 4 colunas iguais no desktop pra ficar visualmente
     equilibrado mesmo com 1 ou 2 produtos */
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Tablet: 3 colunas */
@media (max-width: 1024px) {
  body > .cross-sells.hepres-xsells-fullwidth ul.products,
  body > .cross-sells.hepres-xsells-relocated ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  body > .cross-sells.hepres-xsells-fullwidth,
  body > .cross-sells.hepres-xsells-relocated {
    padding: 0 20px !important;
    margin: 40px auto 32px !important;
  }
}

/* Mobile médio: 2 colunas */
@media (max-width: 768px) {
  body > .cross-sells.hepres-xsells-fullwidth ul.products,
  body > .cross-sells.hepres-xsells-relocated ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  body > .cross-sells.hepres-xsells-fullwidth,
  body > .cross-sells.hepres-xsells-relocated {
    padding: 0 16px !important;
    margin: 32px auto 24px !important;
  }
}

/* Mobile pequeno: 1 coluna em layout HORIZONTAL (foto à esquerda,
   info+botões à direita) — assim os botões caem em largura
   confortável e o texto "Adicionar ao carrinho" / "Comprar pelo
   WhatsApp" aparece COMPLETO, sem corte */
@media (max-width: 480px) {
  body > .cross-sells.hepres-xsells-fullwidth ul.products,
  body > .cross-sells.hepres-xsells-relocated ul.products {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* Card xsell em layout horizontal: foto 110px + dados flex */
  body > .cross-sells.hepres-xsells-fullwidth li.product.hepres-card--xsell,
  body > .cross-sells.hepres-xsells-relocated li.product.hepres-card--xsell,
  .hepres-card.hepres-card--xsell {
    display: grid !important;
    grid-template-columns: 110px 1fr !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  .hepres-card.hepres-card--xsell .hepres-card__media {
    aspect-ratio: 1 / 1 !important;
    height: 100% !important;
    margin: 0 !important;
  }
  .hepres-card.hepres-card--xsell .hepres-card__media .hepres-card__img,
  .hepres-card.hepres-card--xsell .hepres-card__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .hepres-card.hepres-card--xsell .hepres-card__body {
    padding: 10px 12px !important;
    gap: 6px !important;
    justify-content: space-between !important;
    min-width: 0 !important;
  }
  .hepres-card.hepres-card--xsell .hepres-card__cat,
  .hepres-card.hepres-card--xsell .hepres-card__cat a {
    font-size: 9px !important;
    margin: 0 !important;
  }
  .hepres-card.hepres-card--xsell .hepres-card__title {
    font-size: 0.95rem !important;
    line-height: 1.25 !important;
    -webkit-line-clamp: unset !important;
    display: block !important;
    overflow: visible !important;
    min-height: 0 !important;
    margin: 0 !important;
  }
  .hepres-card.hepres-card--xsell .hepres-card__price {
    font-size: 0.95rem !important;
    margin: 0 !important;
  }
  .hepres-card.hepres-card--xsell .hepres-installments,
  .hepres-card.hepres-card--xsell .hepres-pix-price {
    font-size: 10px !important;
    line-height: 1.2 !important;
    margin: 0 !important;
  }
  /* Botões empilhados verticalmente — agora cabe o texto inteiro */
  .hepres-card.hepres-card--xsell .hepres-card__cta-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    margin-top: 4px !important;
  }
  .hepres-card.hepres-card--xsell .hepres-card__cta,
  .hepres-card.hepres-card--xsell a.hepres-card__cta,
  .hepres-card.hepres-card--xsell .hepres-wa,
  .hepres-card.hepres-card--xsell .hepres-wa--ghost,
  .hepres-card.hepres-card--xsell .hepres-wa--solid {
    width: 100% !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 11px !important;
    padding: 8px 10px !important;
    /* texto pode quebrar em 2 linhas pra não cortar */
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    text-align: center !important;
    line-height: 1.2 !important;
    min-height: 36px !important;
    height: auto !important;
  }
}

/* =========================================================
   2) MY-ACCOUNT — login/cadastro/dashboard
   Inputs gigantes resolvidos: altura sana, padding controlado.
   Heading "Entrar" enxuto em mobile.
   ========================================================= */
body.woocommerce-account .elementor-widget-woocommerce-my-account,
body.woocommerce-account .e-my-account-tab,
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Heading "Entrar" / "Cadastrar" / "Minha conta" */
body.woocommerce-account .e-my-account-tab h1,
body.woocommerce-account .e-my-account-tab h2,
body.woocommerce-account .woocommerce-form-login + h2,
body.woocommerce-account .woocommerce-MyAccount-content h1,
body.woocommerce-account .woocommerce-MyAccount-content h2 {
  font-family: var(--pd-font-serif) !important;
  color: var(--pd-primary) !important;
  font-weight: 600 !important;
  font-size: clamp(1.5rem, 5vw, 2rem) !important;
  line-height: 1.2 !important;
  margin: 0 0 16px !important;
  letter-spacing: -0.01em;
}

/* Form rows do my-account — sem padding/float, margin saudável */
body.woocommerce-account .form-row,
body.woocommerce-account p.form-row,
body.woocommerce-account .woocommerce-form-row {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Labels sobre o input (não inline, não gigante) */
body.woocommerce-account .form-row > label,
body.woocommerce-account .woocommerce-form-row > label {
  display: block !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--pd-primary) !important;
  line-height: 1.3 !important;
}

/* INPUTS — fix dos campos gigantes */
body.woocommerce-account input[type="text"],
body.woocommerce-account input[type="email"],
body.woocommerce-account input[type="tel"],
body.woocommerce-account input[type="password"],
body.woocommerce-account input[type="number"],
body.woocommerce-account input[type="search"],
body.woocommerce-account input.input-text,
body.woocommerce-account select,
body.woocommerce-account textarea {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 44px !important;
  max-height: 48px !important;
  padding: 10px 12px !important;
  font-size: 16px !important; /* anti-zoom iOS */
  line-height: 1.4 !important;
  box-sizing: border-box !important;
  border: 1px solid var(--pd-border-soft) !important;
  border-radius: 6px !important;
  background: #fff !important;
  margin: 0 !important;
  color: var(--pd-text) !important;
  font-family: var(--pd-font) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
body.woocommerce-account textarea {
  min-height: 88px !important;
  max-height: none !important;
}

/* Container que mostra olho da senha (password-input wrapper) */
body.woocommerce-account .password-input,
body.woocommerce-account .woocommerce-Input--text {
  display: block !important;
  width: 100% !important;
  position: relative;
}

/* Foco com cor da marca */
body.woocommerce-account input:focus,
body.woocommerce-account select:focus,
body.woocommerce-account textarea:focus {
  outline: none !important;
  border-color: var(--pd-secondary) !important;
  box-shadow: 0 0 0 3px rgba(184, 146, 74, 0.15) !important;
}

/* Botão "Acessar" / "Cadastrar" */
body.woocommerce-account .woocommerce-button,
body.woocommerce-account .woocommerce-form-login__submit,
body.woocommerce-account .woocommerce-form-register__submit,
body.woocommerce-account button[type="submit"],
body.woocommerce-account .button {
  display: inline-block !important;
  width: auto !important;
  min-width: 160px !important;
  padding: 12px 28px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  margin-top: 4px !important;
  box-sizing: border-box !important;
  background: var(--pd-secondary) !important;
  color: #fff !important;
  border: 1px solid var(--pd-secondary-dark) !important;
  border-radius: 999px !important;
  letter-spacing: 0.02em;
}
body.woocommerce-account .woocommerce-button:hover,
body.woocommerce-account button[type="submit"]:hover {
  background: var(--pd-secondary-dark) !important;
}

/* Em mobile o botão vai full width */
@media (max-width: 600px) {
  body.woocommerce-account .woocommerce-button,
  body.woocommerce-account button[type="submit"],
  body.woocommerce-account .button {
    width: 100% !important;
  }
}

/* Checkbox "Lembre-me" — alinhado e do tamanho certo */
body.woocommerce-account .woocommerce-form-login__rememberme,
body.woocommerce-account .woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 14px !important;
  margin: 8px 0 12px !important;
  font-weight: 400 !important;
  color: var(--pd-text) !important;
}
body.woocommerce-account .woocommerce-form__input-checkbox {
  width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
}

/* Link "Perdeu sua senha?" — discreto, com espaço */
body.woocommerce-account .woocommerce-LostPassword,
body.woocommerce-account .lost_password {
  margin: 12px 0 0 !important;
  font-size: 14px !important;
}
body.woocommerce-account .woocommerce-LostPassword a {
  color: var(--pd-secondary) !important;
}

/* =========================================================
   3) CHECKOUT — payment_box (cartão Mercado Pago)
   Reduz padding em cascata, label não quebra, bandeiras
   comprimidas em UMA linha.
   ========================================================= */
@media (max-width: 768px) {
  /* Container do método de pagamento — sem padding extra do
     "card dentro de card" */
  body.woocommerce-checkout #payment,
  body.woocommerce-checkout .woocommerce-checkout-payment {
    padding: 12px !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-checkout #payment ul.payment_methods,
  body.woocommerce-checkout .wc_payment_methods {
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }
  body.woocommerce-checkout #payment ul.payment_methods li,
  body.woocommerce-checkout .wc_payment_methods li {
    padding: 8px 0 !important;
    margin: 0 !important;
    border-bottom: 1px solid var(--pd-border-soft);
  }
  body.woocommerce-checkout #payment ul.payment_methods li:last-child {
    border-bottom: none;
  }

  /* Bandeiras — comprimidas, em 1 linha */
  body.woocommerce-checkout .payment_box img,
  body.woocommerce-checkout .wc_payment_method img,
  body.woocommerce-checkout label[for*="payment_method_"] img,
  body.woocommerce-checkout #payment .payment_methods img {
    max-height: 24px !important;
    max-width: 36px !important;
    width: auto !important;
    height: auto !important;
    margin: 0 4px 0 0 !important;
    vertical-align: middle !important;
    display: inline-block !important;
    object-fit: contain !important;
  }

  /* Caixa do método (form do cartão) */
  body.woocommerce-checkout .payment_box,
  body.woocommerce-checkout .wc_payment_method .payment_box {
    padding: 12px !important;
    margin: 8px 0 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 8px !important;
  }

  /* Labels dentro do payment_box ("Número do cartão", "Vencimento")
     — não quebrar em 2 linhas, fonte enxuta */
  body.woocommerce-checkout .payment_box label,
  body.woocommerce-checkout .payment_box .form-row label,
  body.woocommerce-checkout .wc_payment_method .payment_box label {
    display: block !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    margin: 0 0 4px !important;
    word-break: keep-all !important;
    white-space: normal !important;
    font-weight: 500 !important;
  }

  /* Fields dentro do payment_box: ocupam 100% sem padding lateral
     herdado do .col-1 / .col-2 */
  body.woocommerce-checkout .payment_box input[type="text"],
  body.woocommerce-checkout .payment_box input[type="tel"],
  body.woocommerce-checkout .payment_box input[type="number"],
  body.woocommerce-checkout .payment_box input[type="password"],
  body.woocommerce-checkout .payment_box select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 10px 12px !important;
    font-size: 16px !important;
    min-height: 44px !important;
    margin: 0 0 10px !important;
  }

  /* Cancela padding lateral em cascata: col2-set, col-1, col-2,
     billing/shipping/additional, payment NÃO podem somar padding */
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout .col-1,
  body.woocommerce-checkout .col-2,
  body.woocommerce-checkout .woocommerce-billing-fields,
  body.woocommerce-checkout .woocommerce-additional-fields,
  body.woocommerce-checkout .woocommerce-shipping-fields {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* =========================================================
   4) CARRINHO mobile — produto na tabela com aninhamento limpo
   ========================================================= */
@media (max-width: 768px) {
  /* Heading "Meu carrinho" enxuto */
  body.woocommerce-cart h1,
  body.woocommerce-cart .elementor-widget-woocommerce-cart h1,
  body.woocommerce-cart .elementor-widget-woocommerce-cart h2:first-of-type {
    font-size: clamp(1.5rem, 5vw, 2rem) !important;
    line-height: 1.2 !important;
    margin: 0 0 16px !important;
  }

  /* Tabela do cart: linhas como cards horizontais limpos */
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item,
  body.woocommerce-cart .elementor-widget-woocommerce-cart table.cart tr.cart_item {
    display: grid !important;
    grid-template-columns: 80px 1fr !important;
    grid-template-areas:
      "thumb name"
      "thumb price"
      "thumb qty"
      "thumb subtotal";
    column-gap: 12px !important;
    row-gap: 4px !important;
    padding: 12px !important;
    border: 1px solid var(--pd-border-soft) !important;
    border-radius: var(--pd-radius-sm, 8px) !important;
    margin-bottom: 12px !important;
    background: #fff !important;
    position: relative;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td {
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
    text-align: left !important;
    font-size: 14px !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-thumbnail {
    grid-area: thumb;
    width: 80px !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-thumbnail img {
    width: 80px !important;
    max-width: 80px !important;
    height: auto !important;
    border-radius: 6px !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-name {
    grid-area: name;
    font-weight: 600 !important;
    color: var(--pd-primary) !important;
    line-height: 1.3 !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-price {
    grid-area: price;
    color: var(--pd-muted) !important;
    font-size: 13px !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-quantity {
    grid-area: qty;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-subtotal {
    grid-area: subtotal;
    color: var(--pd-secondary) !important;
    font-weight: 700 !important;
    font-size: 15px !important;
  }
  /* Botão remover (✕) — canto superior direito do card */
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-remove {
    position: absolute !important;
    top: 6px !important;
    right: 6px !important;
    width: auto !important;
    grid-area: unset !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-remove a.remove {
    width: 24px !important;
    height: 24px !important;
    line-height: 22px !important;
    font-size: 16px !important;
    border-radius: 50% !important;
    text-align: center !important;
    display: inline-block !important;
  }
  /* Input de quantidade compacto */
  body.woocommerce-cart .woocommerce-cart-form table.cart .quantity .qty {
    width: 64px !important;
    min-width: 0 !important;
    padding: 6px 8px !important;
    font-size: 15px !important;
    height: 36px !important;
    min-height: 36px !important;
  }

  /* Resumo do pedido / cart_totals — ar interno reduzido */
  body.woocommerce-cart .cart_totals,
  body.woocommerce-cart .e-cart-section--totals {
    padding: 16px !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-cart .cart_totals h2 {
    font-size: 1.15rem !important;
    margin: 0 0 12px !important;
  }
  body.woocommerce-cart .cart_totals table.shop_table th,
  body.woocommerce-cart .cart_totals table.shop_table td {
    padding: 8px 4px !important;
    font-size: 14px !important;
  }

  /* Cupom: campo + botão alinhados, cabem na largura */
  body.woocommerce-cart .coupon {
    display: flex !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
  }
  body.woocommerce-cart .coupon input[type="text"] {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
  }
  body.woocommerce-cart .coupon button.button {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
  }
}

/* Mobile pequeno (<= 380px) — produto no cart ainda mais compacto */
@media (max-width: 380px) {
  body.woocommerce-cart .woocommerce-cart-form table.cart tr.cart_item {
    grid-template-columns: 64px 1fr !important;
    column-gap: 10px !important;
    padding: 10px !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-thumbnail {
    width: 64px !important;
  }
  body.woocommerce-cart .woocommerce-cart-form table.cart td.product-thumbnail img {
    width: 64px !important;
    max-width: 64px !important;
  }
}

/* =========================================================
   5) HEADINGS de página em mobile — desligar serifa pesada
   que estava ocupando 1/3 da tela em "Entrar" e "Meu carrinho"
   ========================================================= */
@media (max-width: 600px) {
  body.woocommerce-account .e-my-account-tab h1,
  body.woocommerce-account .e-my-account-tab h2,
  body.woocommerce-account .woocommerce h2,
  body.woocommerce-cart h1,
  body.woocommerce-cart h2 {
    font-size: 1.5rem !important;
    line-height: 1.2 !important;
    margin: 0 0 12px !important;
  }
}

/* =========================================================
   6) Anti-overflow horizontal global em mobile (defensivo)
   ========================================================= */
@media (max-width: 768px) {
  body.woocommerce-cart,
  body.woocommerce-checkout,
  body.woocommerce-account {
    overflow-x: hidden !important;
  }
  body.woocommerce-cart .elementor,
  body.woocommerce-checkout .elementor,
  body.woocommerce-account .elementor {
    max-width: 100% !important;
  }
}

/* =========================================================
   ============================================================
   MOBILE TIGHTENING v2 — sessão 2026-04-28 (segundo passe)
   ============================================================
   Resolve queixas após v1:
   - Header com search-form quebrando em linha extra
   - Gap gigante entre pares label/input (Brazilian Market +
     Elementor field-group default padding-bottom 30px+)
   - Bandeiras Master/Visa/Elo/Amex/Hipercard em 2 linhas
   - Section headings ("Dados do comprador", "Resumo do pedido"
     etc) com padding-top que empurrava tudo
   ========================================================= */

/* =========================================================
   HEADER mobile — esconde search-form em <=480px (volta o
   header pra 3 ícones compactos) — mantém em tablet+
   ========================================================= */
@media (max-width: 600px) {
  
  /* Também esconde widgets de heading sem texto / decorativos
     que ficaram soltos no header em mobile (línea estourada) */
  
}

/* =========================================================
   CHECKOUT mobile — APERTAR ESPAÇAMENTO (gap gigante entre
   pares label/input causado por Elementor field-group)
   ========================================================= */
@media (max-width: 1024px) {
  /* Heading "Finalizar pedido" enxuto */
  body.woocommerce-checkout h1,
  body.woocommerce-checkout .elementor-widget-heading h1,
  body.woocommerce-checkout .elementor-widget-heading h2,
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page h1,
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page h2,
  body.woocommerce-checkout #order_review_heading {
    font-size: clamp(1.4rem, 5vw, 1.8rem) !important;
    line-height: 1.2 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
  }

  /* Subtítulo "Confira seus dados..." */
  body.woocommerce-checkout .elementor-widget-text-editor p,
  body.woocommerce-checkout .woocommerce-notices-wrapper {
    font-size: 14px !important;
    line-height: 1.4 !important;
    margin: 0 0 16px !important;
  }

  /* Section headings ("Dados do comprador", "Resumo do pedido",
     "Cartão de crédito") — sem padding-top inflado */
  body.woocommerce-checkout .woocommerce-billing-fields h3,
  body.woocommerce-checkout .woocommerce-shipping-fields h3,
  body.woocommerce-checkout .woocommerce-additional-fields h3,
  body.woocommerce-checkout #ship-to-different-address,
  body.woocommerce-checkout fieldset legend,
  body.woocommerce-checkout h3#order_review_heading {
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    line-height: 1.3 !important;
  }

  /* Form rows — APERTA o margin-bottom (era ~30px+) */
  body.woocommerce-checkout .form-row,
  body.woocommerce-checkout p.form-row,
  body.woocommerce-checkout .e-form__row,
  body.woocommerce-checkout .elementor-field-group,
  body.woocommerce-checkout .woocommerce-form-row {
    margin: 0 0 10px !important;
    padding: 0 !important;
  }

  /* Labels: peso médio, fonte 13px, margin-bottom 4px */
  body.woocommerce-checkout .form-row label,
  body.woocommerce-checkout .e-form__row label,
  body.woocommerce-checkout .elementor-field-group label,
  body.woocommerce-checkout .form-row > label,
  body.woocommerce-checkout p.form-row label {
    display: block !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    color: var(--pd-primary, #363636) !important;
  }

  /* Inputs: altura compacta */
  body.woocommerce-checkout .form-row input[type="text"],
  body.woocommerce-checkout .form-row input[type="email"],
  body.woocommerce-checkout .form-row input[type="tel"],
  body.woocommerce-checkout .form-row input[type="number"],
  body.woocommerce-checkout .form-row input[type="password"],
  body.woocommerce-checkout .form-row select,
  body.woocommerce-checkout .form-row textarea,
  body.woocommerce-checkout .form-row .input-text,
  body.woocommerce-checkout .select2-container--default .select2-selection--single {
    min-height: 42px !important;
    max-height: 46px !important;
    height: 44px !important;
    padding: 8px 12px !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-checkout .form-row textarea {
    height: auto !important;
    min-height: 72px !important;
    max-height: none !important;
    padding: 10px 12px !important;
  }
  body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 28px !important;
    padding: 0 !important;
  }
  body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100% !important;
    top: 0 !important;
  }

  /* Cancela qualquer wrapper interno do Elementor que adiciona
     padding-bottom enorme (.elementor-field-group costuma ter
     padding via configuração do Form widget, não CSS herdado) */
  body.woocommerce-checkout .elementor-field-group,
  body.woocommerce-checkout .e-form__field {
    padding-bottom: 0 !important;
  }

  /* Resumo do pedido — heading + tabela compactos */
  body.woocommerce-checkout #order_review,
  body.woocommerce-checkout .e-checkout__order_review,
  body.woocommerce-checkout .woocommerce-checkout-review-order {
    padding: 16px !important;
    margin: 16px 0 !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table {
    margin: 0 !important;
  }
  body.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table th,
  body.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table td {
    padding: 8px 4px !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
  }

  /* Cupom box "Tem um cupom? Clique aqui pra inserir" */
  body.woocommerce-checkout .woocommerce-form-coupon-toggle,
  body.woocommerce-checkout .e-coupon-anchor,
  body.woocommerce-checkout .e-coupon-box {
    margin: 0 0 12px !important;
    padding: 12px !important;
    font-size: 14px !important;
  }
  body.woocommerce-checkout .checkout_coupon {
    padding: 12px !important;
    margin: 12px 0 !important;
  }

  /* =========================================================
     Cartão de crédito — bandeiras em 1 LINHA SÓ
     (Master/Visa/Elo/Amex/Hipercard)
     ========================================================= */
  body.woocommerce-checkout #payment img,
  body.woocommerce-checkout .payment_box img,
  body.woocommerce-checkout .wc_payment_method img,
  body.woocommerce-checkout label[for*="payment_method"] img,
  body.woocommerce-checkout .mp-checkout-form-flag,
  body.woocommerce-checkout .mp-card-flag-image,
  body.woocommerce-checkout [class*="flag-image"],
  body.woocommerce-checkout [class*="card-icon"] {
    max-height: 22px !important;
    max-width: 32px !important;
    height: auto !important;
    width: auto !important;
    margin: 0 3px 0 0 !important;
    vertical-align: middle !important;
    display: inline-block !important;
    object-fit: contain !important;
  }
  /* Container das bandeiras — força nowrap ou flex compacto */
  body.woocommerce-checkout .payment_box .mp-card-flags,
  body.woocommerce-checkout .payment_box [class*="card-flags"],
  body.woocommerce-checkout .payment_box [class*="card-list"],
  body.woocommerce-checkout .payment_box .mp-card-icons,
  body.woocommerce-checkout #payment-card-flags-container {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 4px 0 12px !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* Inputs do cartão (Mercado Pago supertoken) */
  body.woocommerce-checkout .payment_box .mp-form-control,
  body.woocommerce-checkout .payment_box .mp-input,
  body.woocommerce-checkout .payment_box input.mp-input,
  body.woocommerce-checkout .payment_box [class*="card-number"] input,
  body.woocommerce-checkout .payment_box [class*="card-name"] input,
  body.woocommerce-checkout .payment_box [class*="expiration"] input,
  body.woocommerce-checkout .payment_box [class*="security-code"] input {
    min-height: 40px !important;
    max-height: 44px !important;
    height: 42px !important;
    padding: 8px 12px !important;
    font-size: 16px !important;
    margin: 0 0 8px !important;
    box-sizing: border-box !important;
    width: 100% !important;
  }

  /* Labels específicos do form do cartão */
  body.woocommerce-checkout .payment_box .mp-checkout-label,
  body.woocommerce-checkout .payment_box [class*="form-label"] {
    font-size: 13px !important;
    margin: 0 0 4px !important;
    line-height: 1.3 !important;
    word-break: keep-all !important;
    white-space: normal !important;
  }

  /* "Os seus dados pessoais serão utilizados..." (text-editor
     do gateway) — fonte menor pra não ocupar 5 linhas */
  body.woocommerce-checkout .woocommerce-privacy-policy-text,
  body.woocommerce-checkout .privacy-policy-text {
    font-size: 12px !important;
    line-height: 1.4 !important;
    margin: 8px 0 12px !important;
    color: var(--pd-muted, #888);
  }

  /* Botão "Finalizar pedido" — full width compacto */
  body.woocommerce-checkout #place_order,
  body.woocommerce-checkout .place-order .button {
    width: 100% !important;
    padding: 14px 20px !important;
    font-size: 15px !important;
    margin-top: 8px !important;
  }

  /* Padding lateral do widget de checkout — reduz pra 12px só
     (estava 16px main + algum padding interno do widget = 32px+) */
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page > .elementor-widget-container,
  body.woocommerce-checkout .e-checkout__container {
    padding: 0 !important;
  }
}

/* =========================================================
   Mobile pequeno (≤380px) — bandeiras menores ainda
   ========================================================= */
@media (max-width: 380px) {
  body.woocommerce-checkout #payment img,
  body.woocommerce-checkout .payment_box img,
  body.woocommerce-checkout label[for*="payment_method"] img {
    max-height: 18px !important;
    max-width: 28px !important;
    margin: 0 2px 0 0 !important;
  }
}

/* =========================================================
   Defensive: apaga padding-bottom de QUALQUER widget Elementor
   filho do checkout que esteja inflando spacing entre fields
   ========================================================= */
@media (max-width: 1024px) {
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .elementor-widget,
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .elementor-element {
    margin-bottom: 0 !important;
  }
}

/* =========================================================
   ============================================================
   MOBILE TIGHTENING v3 — sessão 2026-04-28 (terceiro passe)
   ============================================================
   Foco: header bagunçado em /finalizar-compra/ + form-rows
   ainda com gap entre pares (selectors mais agressivos)
   ========================================================= */

/* =========================================================
   HEADER em mobile — esconde search widget Elementor
   (classe real: .elementor-widget-search NÃO -search-form)
   ========================================================= */
@media (max-width: 1024px) {
  
  /* Topbar (social + endereço) — primeiro container do header */
  
}

/* =========================================================
   CHECKOUT — FORM ROWS APERTADOS DE VEZ
   Seletor ainda mais específico pra vencer Elementor inline
   styles e plugins de checkout
   ========================================================= */
@media (max-width: 1024px) {
  /* Spacing entre form-rows: zero margin/padding extra */
  body.woocommerce-checkout form.checkout p.form-row,
  body.woocommerce-checkout #customer_details p.form-row,
  body.woocommerce-checkout .woocommerce-billing-fields p.form-row,
  body.woocommerce-checkout .woocommerce-shipping-fields p.form-row,
  body.woocommerce-checkout .woocommerce-additional-fields p.form-row,
  body.woocommerce-checkout #order_review p.form-row,
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page p.form-row {
    margin: 0 0 8px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* Wrapper interno do input (span) */
  body.woocommerce-checkout .woocommerce-input-wrapper {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
  }

  /* Label + input grudados */
  body.woocommerce-checkout p.form-row > label,
  body.woocommerce-checkout p.form-row label.required_field {
    display: block !important;
    margin: 0 0 3px !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
  }

  /* Container <h3> "Detalhes de cobrança", "Enviar para outro
     endereço?", "Seu pedido" — sem padding-top inflado */
  body.woocommerce-checkout .woocommerce-billing-fields > h3,
  body.woocommerce-checkout .woocommerce-shipping-fields > h3,
  body.woocommerce-checkout #ship-to-different-address,
  body.woocommerce-checkout h3#order_review_heading {
    margin: 0 0 12px !important;
    padding: 0 !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
  }
  /* Wrapper field (.woocommerce-billing-fields__field-wrapper) */
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* col-1, col-2 sem padding desnecessário */
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout .col-1,
  body.woocommerce-checkout .col-2 {
    margin: 0 0 16px !important;
    padding: 0 !important;
  }

  /* Espaço entre fieldset/sections */
  body.woocommerce-checkout fieldset,
  body.woocommerce-checkout .woocommerce-billing-fields,
  body.woocommerce-checkout .woocommerce-shipping-fields,
  body.woocommerce-checkout .woocommerce-additional-fields {
    margin: 0 0 16px !important;
    padding: 0 !important;
    border: none !important;
  }
}

/* =========================================================
   Mercado Pago "supertoken" form (cartão) — classes REAIS
   .mp-checkout-custom-card-form, .mp-checkout-custom-card-row,
   .mp-checkout-custom-card-input, .mp-checkout-custom-card-flags
   ========================================================= */
@media (max-width: 1024px) {
  /* Form do cartão — sem padding extra */
  body.woocommerce-checkout .mp-checkout-custom-card-form,
  body.woocommerce-checkout .mp-checkout-container,
  body.woocommerce-checkout .mp-checkout-custom-container {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Cada linha do form (Número, Nome, Vencimento+CVV) */
  body.woocommerce-checkout .mp-checkout-custom-card-row {
    margin: 0 0 10px !important;
    padding: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  body.woocommerce-checkout .mp-checkout-custom-card-row.mp-checkout-custom-dual-column-row {
    display: flex !important;
    gap: 10px !important;
  }
  body.woocommerce-checkout .mp-checkout-custom-card-column {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }

  /* Inputs do MP — altura compacta, padding sano */
  body.woocommerce-checkout .mp-checkout-custom-card-input,
  body.woocommerce-checkout input.mp-checkout-custom-card-input,
  body.woocommerce-checkout .mp-card-holder-name,
  body.woocommerce-checkout #form-checkout__cardNumber-container,
  body.woocommerce-checkout #form-checkout__securityCode-container,
  body.woocommerce-checkout .mp-checkout-custom-security-code-input {
    min-height: 40px !important;
    max-height: 44px !important;
    height: 42px !important;
    padding: 8px 12px !important;
    font-size: 16px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
  }

  /* Labels do MP form */
  body.woocommerce-checkout label[for^="mp-"],
  body.woocommerce-checkout label[for="form-checkout__cardNumber"],
  body.woocommerce-checkout label[for="form-checkout__cardholderName"],
  body.woocommerce-checkout label[for="form-checkout__expirationDate"],
  body.woocommerce-checkout label[for="form-checkout__securityCode"] {
    display: block !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    word-break: keep-all !important;
    white-space: normal !important;
  }

  /* Helper texts ("Preencha o nome como está no cartão.") */
  body.woocommerce-checkout [id$="-helper"],
  body.woocommerce-checkout [class*="helper-info"] {
    font-size: 11px !important;
    line-height: 1.3 !important;
    margin: 2px 0 0 !important;
    color: var(--pd-muted, #888) !important;
  }

  /* Bandeiras: container flex compacto, 5 imagens em 1 linha */
  body.woocommerce-checkout .mp-checkout-custom-card-flags,
  body.woocommerce-checkout .mp-checkout-custom-card-flags-list,
  body.woocommerce-checkout [class*="card-flags"] {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  body.woocommerce-checkout .mp-checkout-custom-card-flags img,
  body.woocommerce-checkout .mp-checkout-custom-card-flags-list img,
  body.woocommerce-checkout [class*="card-flags"] img {
    max-height: 22px !important;
    max-width: 32px !important;
    height: auto !important;
    width: auto !important;
    margin: 0 !important;
    object-fit: contain !important;
    display: inline-block !important;
    flex: 0 0 auto !important;
  }
}

/* =========================================================
   ZERO defensivo: nenhum filho do checkout pode ter
   margin-bottom > 12px no mobile
   ========================================================= */
@media (max-width: 1024px) {
  body.woocommerce-checkout form.checkout > *,
  body.woocommerce-checkout #customer_details > *,
  body.woocommerce-checkout #order_review > *,
  body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .elementor-widget-container > * {
    max-width: 100% !important;
  }
}

/* =========================================================
   ============================================================
   HEADER FIX v4 — sessão 2026-04-28 (quarto passe)
   ============================================================
   PROBLEMA: no /finalizar-compra/ os 3 ícones (tel, user, cart)
   ficavam EMPILHADOS em coluna gigantes no centro da tela.
   CAUSA: o container .e-con dos 3 ícones tava com flex-direction
   column herdado do Elementor responsive setting.
   FIX: forçar flex-direction: row + width: auto em todos os
   containers do header em mobile (≤1024px), com seletores que
   vencem qualquer override do widget Elementor.
   ========================================================= */

@media (max-width: 1024px) {
  /* PRINCIPAL: containers `.e-con` filhos do header — TODOS em
     flex row com wrap, pra logo+ícones ficarem em UMA linha */
  

  /* Containers `.e-con e-child` que envolvem cada icon-box —
     viram inline-flex auto-width (não mais full-width column) */
  

  /* Logo: encolhe e fica à esquerda */
  
  

  /* Cada widget (tel, user, cart) — width auto, sem flex-grow */
  

  /* Ícones em si (svg / a) — tamanho controlado */
  
  
  

  /* Esconde labels textuais ("Central de Atendimento", "Entrar
     ou cadastrar") em mobile — só ícones */
  

  /* Search widget escondido — refresh do v3 */
  

  /* Mini-cart Elementor — só ícone, sem texto/preço */
  
  
  
}

/* =========================================================
   Mobile pequeno (≤480px) — header ainda mais compacto
   ========================================================= */

/* =========================================================
   Topbar (social/endereço) — sempre escondida em mobile
   ========================================================= */

/* =========================================================
   ============================================================
   HEADER FIX v5 — sessão 2026-04-28 (quinto passe)
   ============================================================
   - Trio de ícones (tel, user, cart): alinhar à DIREITA
     (estavam à esquerda após v4)
   - Hambúrguer: tirar o "círculo estourado" (background
     redondo branco) — deixar só as 3 linhas dourados, inline
     com os outros ícones, no canto superior direito
   - Ajustar tamanho do logo pra balancear visualmente
   ========================================================= */

@media (max-width: 1024px) {
  /* TRIO de ícones empurrado pra DIREITA via margin-left: auto.
     Isso vence qualquer justify-content do parent. O container
     `.e-con.e-child` que envolve os 3 ícones (cart está direto
     sem wrapper extra) precisa ficar à direita */
  

  /* Para o caso em que os 3 ícones são wrapper containers (tel
     wrapper, user wrapper, cart direto): TODOS empurrados pra
     direita sem perder o flex inline */
  

  /* Logo: fica à esquerda, com margin-right: auto pra empurrar
     os ícones pra direita */
  

  /* Container dos ícones: width auto, sem ocupar linha cheia */
  

  /* =========================================================
     HAMBURGER — sem círculo, sem fundo branco "estourado"
     ========================================================= */
  
  

  /* Botão do hambúrguer em si — quadrado simples 40x40 com
     ícone dourado, sem fundo */
  
  
  /* Hover/active: cor dourada escura, sem fundo */
  

  /* =========================================================
     Header background "elipse estourada" — header tem o fundo
     marfim com border-radius muito alto que em mobile fica como
     elipse exagerada. Reduz/remove o radius em mobile.
     ========================================================= */
  

  /* Margin-right: trio precisa de ESPAÇO pro hambúrguer fixo
     (44px do hamb + 14px right) — adiciona 50px de margin-right
     no trio pra não passar por baixo do hambúrguer */
  
}

/* =========================================================
   Mobile pequeno (≤480px) — ajuste fino
   ========================================================= */

/* =========================================================
   ============================================================
   SIDE CART FIX v6 — sessão 2026-04-28 (sexto passe)
   ============================================================
   Painel do mini-cart Elementor (clicar no ícone 🛒 no header)
   continua com fundo transparente — vê a página atrás.
   E os botões "Ver carrinho" / "Finalização de compra" caem
   como texto solto sem estilo de botão.
   ========================================================= */

/* =========================================================
   1) PAINEL — fundo branco sólido em todas as camadas
   ========================================================= */

/* O painel SIDE em si — width fixa e altura full pra não
   parecer "flutuante" sobre o conteúdo */

/* Mobile: side cart ocupa 90vw, deixa um pouco de overlay
   à esquerda pra fechar tocando fora */

/* Overlay (área escura atrás do painel): semi-transparente */

/* =========================================================
   2) CLOSE BUTTON (✕) — visível e clicável
   ========================================================= */

/* =========================================================
   3) ITEMS DA LISTA — espaçamento, scroll, divisores limpos
   ========================================================= */

/* Botão remover (✕) — discreto à direita */

/* =========================================================
   4) FOOTER (subtotal + botões) — fundo branco, botões dourado
   ========================================================= */

/* Container dos botões — flex column, sticky no bottom */

/* Botões: "Ver carrinho" (outline) + "Finalização de compra"
   (sólido dourado) */

/* "Ver carrinho" — outline dourado */

/* "Finalização de compra" — sólido dourado */

/* Carrinho vazio — texto centralizado */

/* =========================================================
   ============================================================
   SIDE CART FIX v7 — sessão 2026-04-28 (sétimo passe)
   ============================================================
   REVERTE as regras de v6 que forçaram position: fixed,
   width: 420px e height: 100vh no painel. Isso quebrava o
   sistema de posicionamento próprio do Elementor (que usa
   transform pra animar) e fazia conteúdo extravasar.
   Mantém só: background branco sólido + estilo dos botões.
   ========================================================= */

/* Cancela tudo que foi forçado na v6 — deixa Elementor controlar
   posição, tamanho e animação do painel */

/* =========================================================
   SOMENTE: fundo branco sólido + estilos dos botões
   (sem mexer em layout/posicionamento do painel)
   ========================================================= */

/* Painel: fundo branco sólido sem brigar com layout Elementor */

/* Garante box-sizing border-box em TODOS descendentes do painel
   pra padding não somar largura e empurrar pra fora */

/* Items internos: `max-width: 100%` defensivo pra nada extravasar */

/* Botões: width 100% RELATIVO ao painel (graças ao box-sizing) */

/* "Ver carrinho" — outline dourado */

/* "Finalização de compra" — sólido dourado */

/* Subtotal */

/* Items do carrinho — padding e flex sano */

/* Carrinho vazio */

/* =========================================================
   ============================================================
   DESKTOP HEADER FIX v8 — sessão 2026-04-28 (oitavo passe)
   ============================================================
   PROBLEMA: header desktop estava ENORME — ícones (Central de
   Atendimento, Entrar ou cadastrar) no topo direito, logo e
   search bar no meio-esquerda, com gap vertical gigante. O
   `.e-con-inner` da segunda section estava com flex-direction
   column ou flex-wrap quebrando logo/search/ícones em linhas
   separadas.
   FIX: forçar flex-direction row + nowrap + max-height saudável
   só pro desktop (≥1025px), sem afetar regras mobile.
   ========================================================= */

@media (min-width: 1025px) {
  /* Topbar (social + endereço) — compacto, max 38px de altura */
  
  

  /* MAIN section (logo + search + ícones): UMA LINHA horizontal */
  
  

  /* Logo: tamanho controlado, alinhado à esquerda */
  
  

  /* Search widget: ocupa o meio (flex-grow) com max-width sano */
  

  /* Containers `.e-con.e-child` (trio dos ícones): inline auto */
  

  /* Cada widget icon-box ou cart: width auto, sem flex-grow */
  

  /* Icon-box: layout HORIZONTAL (ícone à esquerda + label à direita) */
  
  
  
  
  
  
  

  /* Mini-cart: alinhado, ícone visível */
  
  
}

/* =========================================================
   ============================================================
   DESKTOP HEADER FIX v9 — sessão 2026-04-28 (nono passe)
   ============================================================
   PROBLEMA: o widget Elementor "search.default" tem `.e-search`
   com classe `hidden` por padrão (modo popup/trigger). Sem JS
   pra abrir, fica como caixa branca pequena. E o flex do
   .e-con-inner não estava deixando os 3 ícones (tel, user,
   cart) visíveis em uma linha como na referência.
   FIX: força .e-search visível, estiliza input como pill, e
   garante layout horizontal com todos elementos.
   ========================================================= */

@media (min-width: 1025px) {
  /* =========================================================
     1) SEARCH WIDGET — sempre visível e em pill
     ========================================================= */
  
  /* Override classe `.e-search.hidden` — força visível */
  
  /* Form wrapper — flex pill */
  
  
  /* Label invisível (só pra screen reader) */
  
  
  /* Input wrapper */
  
  /* Input em si — sem borda, fundo transparente */
  
  
  /* Esconde o ícone de "fechar" (X) que só faz sentido em modo popup */
  
  /* Botão submit (lupa) */
  
  

  /* =========================================================
     2) GARANTE 3 ÍCONES VISÍVEIS — força display flex e
     visibilidade explícita em toda hierarquia .e-con.e-child
     ========================================================= */
  

  /* Cada widget icon-box e cart: visível, auto-width */
  

  /* Icon-box: ícone + label inline */
  
  
  
  
  
  
  

  /* Cart: ícone + valor visíveis */
  
  
  
  
  /* Badge "2" do carrinho */
  
}

/* =========================================================
   ============================================================
   HEADER FIX v10 — sessão 2026-04-28 (décimo passe)
   ============================================================
   1) Search placeholder cortado pela lupa — adicionar padding
      ou margin direito no input pra texto respirar
   2) Trio de ícones (📞 👤 🛒) sumindo no desktop — encolher
      a max-width do search e forçar trio com flex-shrink: 0
      pra sempre caber
   ========================================================= */

@media (min-width: 1025px) {
  /* =========================================================
     1) SEARCH — não invadir a lupa
     ========================================================= */
  

  
  
  
  
  

  /* =========================================================
     2) TRIO DE ÍCONES (📞 👤 🛒) — sempre visível, sempre cabe
     ========================================================= */

  /* Trio container (.e-con.e-child com 3 filhos) — força largura
     mínima e flex-shrink: 0 pra nunca colapsar */
  

  /* Wrappers internos (.e-con.e-child level 2: tel-wrapper, user-wrapper) */
  

  /* Cart widget (filho direto do trio container) */
  

  /* Icon-box dentro dos wrappers */
  

  /* Container do icon-box (.elementor-widget-container) — não estoura */
  

  /* =========================================================
     3) RESET defensivo — remove `display: none` herdado do
     mobile que pode estar leakando pro desktop em alguma regra
     ========================================================= */
  
  

  /* Cart toggle button */
  
}

/* =========================================================
   Quando viewport entre 1025-1280, search ainda menor pra
   liberar espaço pro trio
   ========================================================= */

/* =========================================================
   ============================================================
   HEADER FIX v11 — sessão 2026-04-28 (décimo primeiro passe)
   ============================================================
   Os fix anteriores com flex não estavam dando layout previsí-
   vel: trio + search sobrepondo. Vou usar CSS GRID com 3
   colunas explícitas (auto | 1fr | auto) — Logo | Search | Trio.
   Grid é mais previsível e não depende de flex-grow/shrink.
   ========================================================= */

@media (min-width: 1025px) {
  /* =========================================================
     LAYOUT GRID 3 colunas no .e-con-inner da MAIN section
     ========================================================= */
  

  /* LOGO: coluna 1, fica esquerda, tamanho próprio */
  
  

  /* SEARCH: coluna 2, ocupa o meio (1fr) com max-width controlado */
  

  /* TRIO: coluna 3, fica direita, tamanho próprio */
  

  /* Filhos do trio (tel-wrapper, user-wrapper, cart): inline-flex
     auto width, sem grid (já tá dentro de flex container) */
  

  /* Wrapper level 2 (.e-con.e-child dentro do trio) */
  

  /* Garantir icon-box visível com layout horizontal */
  
  
  
  

  /* =========================================================
     Topbar (primeira section) — também grid horizontal
     ========================================================= */
  
}

/* =========================================================
   Viewport médio (1025-1280px) — search ainda menor
   ========================================================= */

/* =========================================================
   ============================================================
   HEADER FIX v12 — sessão 2026-04-28 (décimo segundo passe)
   ============================================================
   REVERT TOTAL dos desktop header rules de v8-v11.
   Eles estavam batendo em MÚLTIPLAS sections (topbar, main,
   sticky-nav, hidden) porque `:not(:first-child)` matched todas
   except topbar. Resultado: nav menu OK mas main row sumiu.
   AGORA: revert tudo + APENAS faz o search widget visível
   inline. Deixa o Elementor controlar o layout default.
   ========================================================= */

@media (min-width: 1025px) {
  /* =========================================================
     RESET — desfaz TUDO que v8/v9/v10/v11 escreveram
     ========================================================= */

  /* Container — anula display:grid/flex agressivos */
  

  /* Widgets/containers internos — anula grid-column, flex,
     justify-self, etc */
  

  /* Logo image — só limita altura, deixa Elementor controlar
     resto */
  

  /* Anula reset do icon-box wrapper (estava em flex row forçado) */
  

  /* =========================================================
     ÚNICA INTERVENÇÃO: search widget visível inline com pill
     ========================================================= */
  

  
  
  
  
  
  
  
  
  
}

/* =========================================================
   ============================================================
   HEADER FIX v13 — sessão 2026-04-28 (décimo terceiro passe)
   ============================================================
   Targeting CIRÚRGICO via data-id Elementor específico.
   - data-id="e4ae312" = main row (logo + search + trio)
   - data-id="fb27a2c" = trio container
   - data-ids="f3b7a1e/3e2588e/3280f9a" = wrappers tel/user/cart
   Não toca em outras sections (topbar, nav, hidden).
   ========================================================= */

@media (min-width: 1025px) {
  /* =========================================================
     1) MAIN ROW do header — flex row horizontal
     ========================================================= */
  
  

  /* =========================================================
     2) TRIO CONTAINER (fb27a2c) — 3 ícones em linha à direita
     ========================================================= */
  

  /* Wrappers do trio (tel, user, cart) */
  

  /* =========================================================
     3) LOGO — tamanho controlado
     ========================================================= */
  
  

  /* =========================================================
     4) SEARCH WIDGET (29573d8) — visível inline + pill
     ========================================================= */
  

  /* Destrava .e-search.hidden — mostra inline */
  

  /* Pill style */
  
  
  
  
  
  
  
  
  

  /* =========================================================
     5) ICON-BOX (Central de Atendimento, Entrar ou cadastrar)
     ========================================================= */
  
  
  
  
  
  
  
  

  /* =========================================================
     6) MINI-CART (0feee7a) — ícone + valor + badge
     ========================================================= */
  
  
  
  
  
  
}

/* =========================================================
   Viewport médio (1025-1280) — search reduzido pra trio caber
   ========================================================= */

/* =========================================================
   ============================================================
   HEADER FIX v14 — sessão 2026-04-28 (décimo quarto passe)
   ============================================================
   v13 não foi suficiente. Vou usar `html body` pra max
   specificity + wrapper container com display:flex forçado
   com `position: relative; z-index: 1` defensivo.
   ============================================================ */

@media (min-width: 1025px) {
  /* =========================================================
     1) Container main row e4ae312 — SEMPRE flex row
     ========================================================= */
  

  

  /* =========================================================
     2) LOGO — bloco esquerda
     ========================================================= */
  
  

  /* =========================================================
     3) SEARCH — meio
     ========================================================= */
  

  /* =========================================================
     4) TRIO container fb27a2c — DIREITA, flex row
     ========================================================= */
  

  /* Wrappers level 2 */
  

  /* =========================================================
     5) Icon-box + cart widgets — inline-flex visible
     ========================================================= */
  

  /* Container interno do icon-box (.elementor-widget-container) */
  

  /* Icon-box wrapper (icon + content row) */
  

  /* Icon */
  
  
  

  /* Content (label) */
  
  
  

  /* Cart toggle button */
  
  
  
  
  
  
}

/* Viewport médio */

/* =========================================================
   ============================================================
   HEADER FIX v15 — sessão 2026-04-28 (RESET TOTAL)
   ============================================================
   Reverte TODAS as regras de v8-v14 que estavam quebrando
   layout do header desktop. Volta ao Elementor default.
   Mantém APENAS:
   - Mobile rules (max-width: 1024) que estavam funcionando
   - Override visibilidade do search.e-search.hidden
   ========================================================= */

@media (min-width: 1025px) {
  /* Reset TOTAL — volta tudo ao Elementor default */
  

  /* APENAS mantém: search inline (.e-search.hidden destravado) */
  

  /* APENAS mantém: pill style do search form pra ficar bonito */
  
  
  
  
}

/* =========================================================
   ============================================================
   MOBILE HEADER v16 — sessão 2026-04-28 (mobile responsivo)
   ============================================================
   Desktop está OK (v15 reset + Elementor default + search pill).
   Mobile precisa: 3 ícones compactos (sem labels longos),
   carrinho só ícone (sem R$), search escondido (ou trigger).
   ========================================================= */

@media (max-width: 1024px) {
  /* 1) Esconde labels dos icon-boxes — só os ícones aparecem */
  

  /* 2) Carrinho só ícone — esconde "R$ X,XX" */
  

  /* 3) Search escondido em mobile (volta ao click-to-open original
     de desktop OU some entirely se não trigger) — espaço pros 3 ícones */
  

  /* 4) Topbar (social + endereço) escondida em mobile */
  

  /* 5) Cada icon-box e cart: compacto, 40x40 quadrado */
  
  
  
  
  
  /* Badge do carrinho ainda visível */
  

  /* 6) Logo: max-height controlado */
  

  /* 7) Hambúrguer: top-right fixo (mantém regra existente) */
  
  
  
  
}

/* ============================================================
   MICROINTERAÇÕES — polimento profissional sutil
   ============================================================ */

/* Cards: hover suave com elevação + sombra mais profunda */
.hepres-card,
.jet-listing-grid__item,
.products li.product {
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 220ms cubic-bezier(0.4, 0, 0.2, 1),
              border-color 220ms cubic-bezier(0.4, 0, 0.2, 1) !important;
  will-change: transform;
}
.hepres-card:hover,
.jet-listing-grid__item:hover,
.products li.product:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 16px 40px -12px rgba(105, 51, 24, 0.18),
              0 4px 16px -4px rgba(105, 51, 24, 0.10) !important;
}

/* Imagem do card: zoom suave no hover */
.hepres-card__media,
.hepres-card__imglink,
.jet-listing-grid__item .product-image,
.products li.product .attachment-woocommerce_thumbnail {
  overflow: hidden !important;
}
.hepres-card__media img,
.hepres-card__imglink img,
.jet-listing-grid__item .product-image img,
.products li.product img.attachment-woocommerce_thumbnail {
  transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.hepres-card:hover .hepres-card__media img,
.hepres-card:hover .hepres-card__imglink img,
.jet-listing-grid__item:hover img.attachment-woocommerce_thumbnail,
.products li.product:hover img.attachment-woocommerce_thumbnail {
  transform: scale(1.06) !important;
}

/* Botões: efeito de brilho passando ao hover */
.elementor-button,
a.button,
.hepres-card__cta,
.hepres-wa,
.single_add_to_cart_button {
  transition: background-color 200ms ease,
              color 200ms ease,
              border-color 200ms ease,
              transform 200ms ease,
              box-shadow 200ms ease !important;
  position: relative;
  overflow: hidden;
}
.elementor-button:hover,
a.button:hover,
.hepres-card__cta:hover,
.hepres-wa:hover,
.single_add_to_cart_button:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px -4px rgba(198, 113, 74, 0.35);
}
.elementor-button:active,
a.button:active,
.hepres-card__cta:active,
.hepres-wa:active {
  transform: translateY(0);
}

/* Links do menu: underline animado */
.elementor-nav-menu > li > a,
.elementor-nav-menu .menu-item > a {
  position: relative;
  transition: color 200ms ease !important;
}
.elementor-nav-menu > li > a::after,
.elementor-nav-menu .menu-item > a::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 4px;
  width: 0;
  height: 2px;
  background: var(--pd-secondary, #C6714A);
  transition: width 250ms ease, left 250ms ease;
}
.elementor-nav-menu > li > a:hover::after,
.elementor-nav-menu .menu-item > a:hover::after,
.elementor-nav-menu > li.current-menu-item > a::after {
  width: 70%;
  left: 15%;
}

/* Ícones do header (telefone, perfil, cart): leve scale ao hover */
.elementor-location-header .elementor-icon,
.elementor-location-header .elementor-menu-cart__toggle_button,
.elementor-location-header .elementor-icon-list-item {
  transition: transform 200ms ease, color 200ms ease !important;
}
.elementor-location-header .elementor-icon:hover,
.elementor-location-header .elementor-menu-cart__toggle_button:hover,
.elementor-location-header .elementor-icon-list-item:hover {
  transform: scale(1.08);
}

/* Inputs: foco com borda terracota e leve sombra */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="password"],
textarea,
select {
  transition: border-color 180ms ease,
              box-shadow 180ms ease !important;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
  border-color: var(--pd-secondary, #C6714A) !important;
  box-shadow: 0 0 0 3px rgba(198, 113, 74, 0.15) !important;
  outline: none !important;
}

/* Smooth scroll global */
html {
  scroll-behavior: smooth;
}

/* Fade-in suave dos cards do listing quando aparecem na tela */
@media (prefers-reduced-motion: no-preference) {
  .hepres-card,
  .jet-listing-grid__item {
    animation: hepres-fade-in 500ms cubic-bezier(0.4, 0, 0.2, 1) backwards;
  }
  .hepres-card:nth-child(1), .jet-listing-grid__item:nth-child(1) { animation-delay: 0ms; }
  .hepres-card:nth-child(2), .jet-listing-grid__item:nth-child(2) { animation-delay: 60ms; }
  .hepres-card:nth-child(3), .jet-listing-grid__item:nth-child(3) { animation-delay: 120ms; }
  .hepres-card:nth-child(4), .jet-listing-grid__item:nth-child(4) { animation-delay: 180ms; }
  .hepres-card:nth-child(5), .jet-listing-grid__item:nth-child(5) { animation-delay: 240ms; }
  .hepres-card:nth-child(6), .jet-listing-grid__item:nth-child(6) { animation-delay: 300ms; }
  .hepres-card:nth-child(7), .jet-listing-grid__item:nth-child(7) { animation-delay: 360ms; }
  .hepres-card:nth-child(8), .jet-listing-grid__item:nth-child(8) { animation-delay: 420ms; }
}
@keyframes hepres-fade-in {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Mini-cart slide-in: refinar timing */
.elementor-menu-cart__container.elementor-lightbox .elementor-menu-cart__main {
  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Honra prefers-reduced-motion: desativa animações pra usuários que pedem */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ===================================================== */
/* CHECKOUT REVIEW TABLE — coluna de valores mais larga    */
/* ===================================================== */

/* Tabela do "Revisão do pedido" no checkout */
.woocommerce-checkout-review-order-table {
	table-layout: auto !important;
	width: 100% !important;
}

/* Coluna esquerda (rótulos) — mais estreita */
.woocommerce-checkout-review-order-table th {
	width: 32% !important;
	white-space: nowrap;
	vertical-align: top;
	padding-right: 12px;
}

/* Coluna direita (valores) — mais espaço */
.woocommerce-checkout-review-order-table td {
	width: 68% !important;
	vertical-align: top;
}

/* Lista de opções de entrega — quebra natural sem cortar palavras */
.woocommerce-checkout-review-order-table ul#shipping_method,
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-checkout-review-order-table ul#shipping_method li,
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
	margin: 0 0 12px;
	padding: 0;
	white-space: normal;
	line-height: 1.45;
}

.woocommerce-checkout-review-order-table ul#shipping_method li:last-child,
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li:last-child {
	margin-bottom: 0;
}

.woocommerce-checkout-review-order-table ul#shipping_method li label,
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li label {
	display: inline;
	margin-left: 4px;
	font-weight: 500;
}

/* Subtítulo (descrição do método) — discreto, espaçamento limpo */
.woocommerce-checkout-review-order-table ul#shipping_method li small,
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li small {
	display: block;
	margin-top: 4px;
	margin-left: 22px;
	font-size: 12px;
	color: #888;
	font-weight: 400;
	line-height: 1.4;
}

/* Mobile — stack a row de entrega em 2 linhas (rótulo em cima) */
@media (max-width: 600px) {
	.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th,
	.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
		display: block;
		width: 100% !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th {
		padding-bottom: 4px;
		border-bottom: 0;
	}
	.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
		padding-top: 0;
	}
}

/* Bonus: melhora legibilidade do total no fim */
.woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout-review-order-table tr.order-total td {
	padding-top: 14px;
	font-size: 17px;
}
