/* t|Derm Vet — carrinho, checkout e conta do cliente (tema Storefront).
   Mesmo cabeçalho, cores e fonte do site tdermvet.com: azul-marinho, verde-água e Plus Jakarta Sans. */

@font-face { font-family: "Plus Jakarta Sans"; src: url("jakarta.woff2") format("woff2"); font-weight: 400 800; font-display: swap; }

:root { --tinta: #151a43; --suave: #55597a; --linha: #e4e6ee; --marca: #28d9c4; --marca-escura: #0e8f82; --fundo: #f2f3f6; }

body, button, input, select, textarea, .button, h1, h2, h3, h4, h5, h6 { font-family: "Plus Jakarta Sans", "Helvetica Neue", Arial, sans-serif !important; }
body { background: #fff; color: var(--tinta); -webkit-font-smoothing: antialiased; }
a { color: var(--tinta); }
a:hover, a:focus { color: var(--marca-escura); }
h1, h2, h3, .entry-title { color: var(--tinta); font-weight: 800; letter-spacing: -0.01em; }
.site-content { padding-bottom: 40px; }
.site-main { margin-bottom: 0 !important; }
.hentry { margin-bottom: 0 !important; }
.hentry .entry-header { border: 0 !important; padding: 0 !important; margin-bottom: 28px !important; }
.entry-title { font-size: clamp(30px, 4vw, 44px) !important; text-align: left !important; margin: 0 !important; }

/* ---------- cabeçalho (igual ao do site) ---------- */
.site-header { background: rgba(255, 255, 255, .92) !important; border-bottom: 1px solid rgba(21, 26, 67, .08); padding: 0 !important; margin-bottom: 0 !important; position: sticky; top: 0; z-index: 100; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.admin-bar .site-header { top: 32px; }
.site-header > .col-full { max-width: none !important; padding: 0 !important; margin: 0 !important; }
.tdv-topo { width: min(94%, 1340px); margin: 0 auto; height: 96px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.tdv-topo__nav { display: flex; gap: 28px; }
.tdv-topo__nav a { font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--tinta); text-decoration: none; position: relative; padding: 6px 0; }
.tdv-topo__nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--marca); transition: right .4s cubic-bezier(.22, 1, .36, 1); }
.tdv-topo__nav a:hover::after { right: 0; }
.tdv-topo__marca img { width: 124px; height: auto; display: block; }
.tdv-topo__acoes { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.tdv-icone { width: 44px; height: 44px; display: grid; place-items: center; color: var(--tinta) !important; border-radius: 50%; position: relative; transition: background .3s; }
.tdv-icone:hover { background: rgba(21, 26, 67, .06); }
.tdv-n { position: absolute; top: 3px; right: 1px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--tinta); color: #fff; font-size: 11px; font-weight: 800; line-height: 19px; text-align: center; }
.tdv-pilula { display: inline-flex; align-items: center; height: 48px; padding: 0 30px; border-radius: 999px; background: var(--marca); color: var(--tinta) !important;
  font-size: 13px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; transition: background .3s, color .3s; }
.tdv-pilula:hover { background: var(--tinta); color: #fff !important; }

/* ---------- etapas da compra ---------- */
.tdv-etapas { list-style: none; margin: 44px auto 40px !important; padding: 0; display: flex; justify-content: center; max-width: 640px; }
.tdv-etapas li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--suave); position: relative; text-align: center; }
.tdv-etapas li::before { content: ""; position: absolute; top: 15px; left: -50%; right: 50%; height: 2px; background: var(--linha); z-index: 0; }
.tdv-etapas li:first-child::before { display: none; }
.tdv-etapas li span { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--linha); font-weight: 800; position: relative; z-index: 1; }
.tdv-etapas li.atual { color: var(--tinta); }
.tdv-etapas li.atual span { border-color: var(--tinta); background: var(--tinta); color: #fff; }
.tdv-etapas li.feita span { border-color: var(--marca); background: var(--marca); color: var(--tinta); }
.tdv-etapas li.feita::before, .tdv-etapas li.atual::before { background: var(--marca); }
.tdv-etapas a { color: inherit; text-decoration: underline; }

/* ---------- botões e campos ---------- */
.button, button, input[type="submit"], .checkout-button, #place_order, .wc-proceed-to-checkout .button {
  background: var(--tinta) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  font-weight: 700 !important; padding: 0.95em 1.9em !important; text-shadow: none !important; box-shadow: none !important; transition: background .3s; }
.button:hover, button:hover, input[type="submit"]:hover, #place_order:hover, .checkout-button:hover { background: var(--marca-escura) !important; color: #fff !important; }
.button:disabled, .button.disabled, button:disabled { opacity: .45 !important; }
#place_order, .checkout-button { width: 100%; font-size: 15px !important; letter-spacing: 1px; text-transform: uppercase; font-weight: 800 !important; min-height: 56px; }

input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], select, textarea, .select2-container .select2-selection {
  background: #fff !important; border: 1px solid #cfd2dd !important; border-radius: 12px !important; box-shadow: none !important; color: var(--tinta) !important; padding: 0.75em 0.95em !important; }
input:focus, select:focus, textarea:focus { border-color: var(--tinta) !important; outline: 2px solid var(--marca); outline-offset: 1px; }
label { font-weight: 600; color: var(--tinta); font-size: 14px; }
.required { color: #c0392b; text-decoration: none; }
.select2-container .select2-selection--single { height: auto !important; min-height: 48px; display: flex !important; align-items: center; padding: 0 !important; }
.select2-container .select2-selection--single .select2-selection__rendered { padding: 0.75em 2.4em 0.75em 0.95em !important; line-height: 1.4 !important; color: var(--tinta) !important; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 100% !important; right: 8px !important; }
.select2-dropdown { border-color: #cfd2dd !important; border-radius: 12px !important; overflow: hidden; }
.select2-results__option--highlighted { background: var(--tinta) !important; }

/* ---------- avisos ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
  background: var(--fundo) !important; color: var(--tinta) !important; border-left: 4px solid var(--marca) !important; border-radius: 12px; font-size: 15px; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--marca-escura) !important; }
.woocommerce-error { border-left-color: #c0392b !important; background: #fbf1f0 !important; }
.woocommerce-error::before { color: #c0392b !important; }
.woocommerce-message a, .woocommerce-info a, .woocommerce-error a { color: var(--tinta) !important; }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus { outline: none; }
.woocommerce-cart .woocommerce-message .button { display: none; }

/* ---------- carrinho ---------- */
.woocommerce-cart .entry-header { display: none; }
table.shop_table { border: 0 !important; border-collapse: collapse; margin-bottom: 0 !important; }
table.shop_table th, table.shop_table td { background: transparent !important; border: 0 !important; }
table.cart thead { display: none; }
table.cart tr.cart_item td { border-bottom: 1px solid var(--linha) !important; padding: 22px 12px !important; vertical-align: middle; }
table.cart td.product-thumbnail img { width: 88px !important; height: 88px; object-fit: contain; background: var(--fundo); border-radius: 16px; padding: 6px; max-width: none; }
table.cart td.product-name a { font-weight: 700; font-size: 16px; text-decoration: none; color: var(--tinta); }
table.cart td.product-price { color: var(--suave); }
table.cart td.product-subtotal { font-weight: 800; text-align: right; }
table.cart td.product-remove a.remove { color: var(--suave) !important; font-size: 20px; }
table.cart td.product-remove a.remove:hover { background: var(--fundo) !important; color: #c0392b !important; }
table.cart .quantity .qty { width: 72px; text-align: center; border-radius: 999px !important; }
table.cart td.actions { padding: 22px 0 0 !important; }
table.cart td.actions .coupon { display: flex; gap: 10px; align-items: center; }
table.cart td.actions .coupon .input-text { width: 200px !important; }
table.cart td.actions button[name="update_cart"] { background: transparent !important; color: var(--tinta) !important; border: 1px solid var(--linha) !important; }
.cart-collaterals { margin-top: 10px; }
.cart_totals { background: var(--fundo) !important; border-radius: 22px; padding: 28px; }
.cart_totals h2, #order_review_heading { font-size: 22px !important; margin-bottom: 14px !important; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { padding: 10px 0 !important; border-bottom: 1px solid var(--linha) !important; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: 18px; border-bottom: 0 !important; }
.wc-proceed-to-checkout { padding-bottom: 0 !important; }
.amount, .woocommerce-Price-amount { color: var(--tinta); font-weight: 700; }
del .amount { color: var(--suave); font-weight: 400; }
.cart-empty.woocommerce-info { text-align: center; border: 0 !important; font-size: 18px; padding: 40px !important; }
.cart-empty.woocommerce-info::before { display: none; }
.return-to-shop { text-align: center; }

/* ---------- checkout ---------- */
.woocommerce-checkout .entry-header { display: none; }
form.checkout h3 { font-size: 20px !important; margin: 0 0 18px !important; }
form.checkout .col2-set .col-1, form.checkout .col2-set .col-2 { margin-bottom: 20px; }
#order_review_heading { padding: 0 !important; }
.woocommerce-checkout-review-order-table { background: transparent; }
.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout-review-order-table td, .woocommerce-checkout-review-order-table th { padding: 12px 0 !important; border-bottom: 1px solid var(--linha) !important; }
.woocommerce-checkout-review-order-table .product-total { text-align: right; }
.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { font-size: 18px; border-bottom: 0 !important; }
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 16px 0 !important; border-bottom-color: var(--linha) !important; }
.woocommerce-checkout #payment ul.payment_methods li { background: #fff !important; border-radius: 12px; padding: 14px 16px !important; margin-bottom: 8px; }
.woocommerce-checkout #payment div.payment_box { background: var(--fundo) !important; border-radius: 10px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: 16px 0 0 !important; }
.woocommerce-privacy-policy-text p { font-size: 13px; color: var(--suave); }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { background: transparent !important; border: 0 !important; padding: 0 !important; margin-bottom: 10px !important; font-size: 14px; }
.woocommerce-form-coupon-toggle .woocommerce-info::before, .woocommerce-form-login-toggle .woocommerce-info::before { display: none; }
#order_review { background: var(--fundo); border-radius: 0 0 22px 22px; padding: 0 28px 28px; }
#order_review_heading { background: var(--fundo); border-radius: 22px 22px 0 0; padding: 28px 28px 0 !important; margin: 0 !important; }

@media (min-width: 768px) {
  .woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 1fr); grid-template-rows: auto 1fr; gap: 0 48px; align-items: start; }
  .woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
  .woocommerce-checkout form.checkout .col2-set { grid-column: 1; grid-row: 1 / span 2; width: 100% !important; float: none !important; }
  .woocommerce-checkout form.checkout .col2-set .col-1, .woocommerce-checkout form.checkout .col2-set .col-2 { float: none !important; width: 100% !important; }
  .woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; width: 100% !important; float: none !important; }
  .woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; width: 100% !important; float: none !important; }
}

/* ---------- pedido recebido ---------- */
.woocommerce-order .woocommerce-thankyou-order-received { font-size: 22px; font-weight: 800; background: var(--fundo); border-radius: 18px; padding: 22px 26px; border-left: 4px solid var(--marca); }
ul.order_details { background: #fff; border: 1px solid var(--linha); border-radius: 18px; padding: 20px !important; }
ul.order_details li { border-color: var(--linha) !important; }

/* ---------- minha conta ---------- */
.woocommerce-account .entry-title { margin-top: 44px !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 0 !important; }
.woocommerce-MyAccount-navigation ul li { border: 0 !important; }
.woocommerce-MyAccount-navigation ul li a { display: block; padding: 12px 16px !important; border-radius: 12px; font-weight: 600; text-decoration: none; color: var(--tinta); }
.woocommerce-MyAccount-navigation ul li a::before { display: none !important; }
.woocommerce-MyAccount-navigation ul li.is-active a { background: var(--fundo); font-weight: 800; }
.woocommerce-MyAccount-navigation ul li a:hover { background: var(--fundo); }
.woocommerce-MyAccount-content { font-size: 16px; }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 { float: none !important; width: auto !important; background: var(--fundo); border-radius: 22px; padding: 30px; }
.woocommerce-account .u-columns h2 { font-size: 22px !important; margin-bottom: 16px !important; }
form.woocommerce-form-login, form.woocommerce-form-register { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-LostPassword a { font-size: 14px; }
table.woocommerce-orders-table, table.my_account_orders { border: 1px solid var(--linha) !important; border-radius: 16px; overflow: hidden; }
table.woocommerce-orders-table th, table.woocommerce-orders-table td { padding: 14px !important; border-bottom: 1px solid var(--linha) !important; }

/* ---------- rodapé ---------- */
.site-footer { background: #fff !important; border-top: 1px solid var(--linha); color: var(--suave) !important; padding: 28px 0 !important; margin-top: 40px; }
.tdv-rodape { text-align: center; font-size: 13px; line-height: 1.7; }
.tdv-rodape p { margin: 0; }
.tdv-rodape a { color: var(--tinta) !important; text-decoration: none; }

@media (max-width: 980px) {
  .tdv-topo { height: 70px; width: 92%; }
  .tdv-topo__nav, .tdv-so-desk { display: none !important; }
  .tdv-topo__marca { grid-column: 2; }
  .tdv-topo__marca img { width: 96px; }
  .tdv-topo__acoes { grid-column: 3; gap: 4px; }
}
@media (max-width: 767px) {
  .tdv-etapas { margin: 26px auto 26px !important; }
  .tdv-etapas li { font-size: 12px; }
  .cart_totals { padding: 20px; border-radius: 18px; }
  #order_review { padding: 0 20px 20px; border-radius: 0 0 18px 18px; }
  #order_review_heading { padding: 20px 20px 0 !important; border-radius: 18px 18px 0 0; margin-top: 10px !important; }
  table.cart td.product-thumbnail img { width: 72px !important; height: 72px; }
  table.cart td.actions .coupon { flex-direction: column; align-items: stretch; }
  table.cart td.actions .coupon .input-text { width: 100% !important; }
  .woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
  .woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 { padding: 22px; }
}

/* olho de mostrar a senha: ícone simples, não botão */
.show-password-input, .password-input .show-password-input { background: transparent !important; color: var(--suave) !important; padding: 0 !important; width: 44px; height: 44px; top: 50% !important; right: 6px !important; transform: translateY(-50%); border-radius: 50% !important; min-height: 0; }
.show-password-input:hover { background: var(--fundo) !important; color: var(--tinta) !important; }

/* carrinho no celular: cada produto em uma linha compacta (foto, nome, quantidade e total) */
@media (max-width: 767px) {
  table.cart tr.cart_item { display: grid !important; grid-template-columns: 72px 1fr auto; grid-template-areas: "img nome tira" "img qtd total"; gap: 8px 14px; padding: 18px 0; border-bottom: 1px solid var(--linha); align-items: center; }
  table.cart tr.cart_item td { display: block !important; padding: 0 !important; border: 0 !important; text-align: left !important; }
  table.cart tr.cart_item td::before { display: none !important; }
  table.cart td.product-thumbnail { grid-area: img; display: block !important; }
  table.cart td.product-name { grid-area: nome; }
  table.cart td.product-name a { font-size: 15px; }
  table.cart td.product-remove { grid-area: tira; text-align: right !important; }
  table.cart tr.cart_item td.product-price { display: none !important; }
  table.cart td.product-quantity { grid-area: qtd; }
  table.cart td.product-quantity .qty { width: 64px; height: 40px; padding: 0 !important; }
  table.cart td.product-subtotal { grid-area: total; text-align: right !important; }
  table.cart td.actions { display: block !important; }
  table.cart td.actions button[name="update_cart"] { width: 100%; margin-top: 10px; }
  .wc-proceed-to-checkout .checkout-button { font-size: 14px !important; }
}

/* =====================================================================================
   Visual do site: faixa cinza com o nome correndo, fotos recortadas, cartões e animações
   ===================================================================================== */
.tdv-hero { position: relative; background: #f2f3f4; padding: 40px 0 70px; margin-bottom: 30px; overflow: visible; }
.tdv-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); }
.tdv-marquee__trilho { display: flex; width: max-content; animation: tdv-corre 60s linear infinite; }
.tdv-marquee__trilho > div { display: flex; flex-shrink: 0; }
.tdv-marquee__item { font-size: clamp(54px, 7vw, 104px); font-weight: 800; color: var(--tinta); text-transform: uppercase; white-space: nowrap; letter-spacing: -0.01em; padding-right: 60px; line-height: 1.1; }
.tdv-estrela { color: var(--marca); font-weight: 300; margin-right: 26px; position: relative; top: .12em; }
@keyframes tdv-corre { to { transform: translateX(-50%); } }
.tdv-migalha { display: flex; justify-content: center; gap: 14px; margin-top: 30px; font-size: 17px; color: var(--suave); }
.tdv-migalha a { color: var(--suave); text-decoration: none; }
.tdv-migalha a:hover { color: var(--tinta); }
.tdv-migalha span:last-child { color: var(--tinta); }
.tdv-curva { position: absolute; left: 0; right: 0; top: 100%; width: 100%; height: 60px; display: block; }
.tdv-curva path { fill: #f2f3f4; }
.tdv-hero + .tdv-etapas { margin-top: 64px !important; }

/* carrinho: cada item é um cartão, com a foto recortada sobre o cinza do site */
table.cart { border-collapse: separate !important; border-spacing: 0 14px !important; }
table.cart tr.cart_item td { background: #f2f3f4 !important; border: 0 !important; }
table.cart tr.cart_item td:first-child { border-radius: 28px 0 0 28px; padding-left: 26px !important; }
table.cart tr.cart_item td:last-child { border-radius: 0 28px 28px 0; padding-right: 30px !important; }
table.cart td.product-thumbnail img { width: 150px !important; height: 150px; background: transparent; padding: 0; transition: transform .6s cubic-bezier(.22, 1, .36, 1); }
table.cart tr.cart_item:hover td.product-thumbnail img { transform: scale(1.06) rotate(-2deg); }
table.cart td.product-name a { font-size: 18px; }
table.cart td.product-subtotal .amount { color: var(--marca-escura); font-size: 18px; }
table.cart td.actions { background: transparent !important; }
.cart_totals { background: #fff !important; border: 2px solid var(--tinta); }

/* "Complete o protocolo" */
.tdv-complete { margin: 90px 0 20px; text-align: center; }
.tdv-titulo { font-size: clamp(30px, 4vw, 46px) !important; font-weight: 800 !important; margin: 0 0 12px !important; }
.tdv-titulo strong { position: relative; display: inline-block; font-weight: 800; }
.tdv-titulo svg { position: absolute; left: -4%; width: 108%; top: 88%; height: auto; overflow: visible; pointer-events: none; }
.tdv-risco { fill: none; stroke: var(--marca); stroke-width: 9; stroke-linecap: round; stroke-dasharray: 420; stroke-dashoffset: 420; transition: stroke-dashoffset 1.2s cubic-bezier(.65, 0, .35, 1) .35s; }
.visivel .tdv-risco, html:not(.tdv-js) .tdv-risco { stroke-dashoffset: 0; }
.tdv-complete__sub { color: var(--suave); font-size: 17px; margin: 30px 0 36px; }
.tdv-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; text-align: left; }
.tdv-card { background: #f2f3f4; border-radius: 30px; padding: 26px 26px 28px; display: flex; flex-direction: column; transition: transform .5s cubic-bezier(.22, 1, .36, 1), background .4s; }
.tdv-card:hover { transform: translateY(-6px); background: #ddf7f3; }
.tdv-card__img { display: grid; place-items: center; aspect-ratio: 1; margin-bottom: 14px; }
.tdv-card__img img { width: 100%; height: auto; transition: transform .7s cubic-bezier(.22, 1, .36, 1); }
.tdv-card:hover .tdv-card__img img { transform: scale(1.07) rotate(-3deg); }
.tdv-card h3 { font-size: 20px !important; margin: 0 0 6px !important; }
.tdv-card h3 a { color: var(--tinta); text-decoration: none; }
.tdv-card__preco { color: var(--marca-escura); font-weight: 700; margin: 0 0 18px; }
.tdv-card__preco .amount { color: var(--marca-escura); }
.tdv-card__bt { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; height: 46px; padding: 0 26px; border-radius: 999px; background: var(--tinta); color: #fff !important;
  font-size: 13px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; position: relative; overflow: hidden; isolation: isolate; }
.tdv-card__bt::before { content: ""; position: absolute; left: -10%; right: -10%; top: 100%; height: 180%; z-index: -1; background: var(--marca); border-radius: 40% 40% 0 0; transition: top .55s cubic-bezier(.22, 1, .36, 1); }
.tdv-card__bt:hover::before { top: -30%; }
.tdv-card__bt:hover { color: var(--tinta) !important; }

/* resumo do pedido com foto */
.tdv-resumo { display: inline-flex; align-items: center; gap: 12px; }
.tdv-resumo img { width: 56px; height: 56px; object-fit: contain; background: #fff; border-radius: 14px; padding: 4px; flex-shrink: 0; }

/* entrada: sobe e aparece, um depois do outro */
.tdv-js .tdv-sobe { opacity: 0; transform: translateY(36px); transition: opacity .8s ease, transform 1s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(var(--i, 0) * 90ms); }
.tdv-js .tdv-sobe.visivel { opacity: 1; transform: none; }
.tdv-hero .tdv-migalha { animation: tdv-aparece .9s cubic-bezier(.22, 1, .36, 1) both .2s; }
@keyframes tdv-aparece { from { opacity: 0; transform: translateY(14px); } }

@media (max-width: 767px) {
  .tdv-hero { padding: 24px 0 44px; }
  .tdv-marquee__item { font-size: 46px; padding-right: 30px; }
  .tdv-estrela { margin-right: 14px; }
  .tdv-migalha { font-size: 14px; margin-top: 16px; }
  .tdv-curva { height: 34px; }
  .tdv-hero + .tdv-etapas { margin-top: 44px !important; }
  table.cart { border-spacing: 0 !important; }
  table.cart tr.cart_item { background: #f2f3f4; border-radius: 22px; padding: 14px 16px !important; margin-bottom: 12px; border: 0 !important; }
  table.cart tr.cart_item td, table.cart tr.cart_item td:first-child, table.cart tr.cart_item td:last-child { background: transparent !important; border-radius: 0; padding: 0 !important; }
  table.cart td.product-thumbnail img { width: 72px !important; height: 72px; }
  table.cart td.product-name a { font-size: 15px; }
  .tdv-complete { margin-top: 60px; }
  .tdv-cards { grid-template-columns: 1fr 1fr; gap: 12px; }
  .tdv-card { padding: 16px; border-radius: 22px; }
  .tdv-card h3 { font-size: 15px !important; }
  .tdv-card__bt { height: 40px; padding: 0 14px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .tdv-marquee__trilho { animation: none; }
  .tdv-js .tdv-sobe { opacity: 1; transform: none; transition: none; }
  .tdv-risco { stroke-dashoffset: 0; transition: none; }
}

.tdv-card h3 a, .tdv-card__bt, .tdv-card__img, table.cart td.product-name a, .tdv-migalha a { text-decoration: none !important; }
.tdv-card h3 a:hover { color: var(--marca-escura); }
.tdv-complete__sub { margin-top: 34px; }
@media (max-width: 767px) { .tdv-card__bt { align-self: stretch; justify-content: center; } }
.tdv-card h3 a { font-weight: 800; }
.tdv-resumo .tdv-qtd { white-space: nowrap; color: var(--suave); font-weight: 700; }
.woocommerce-account .entry-header { display: none; } .woocommerce-account .tdv-hero { margin-bottom: 90px; }
/* botão do carrinho em uma linha só, sem sobra embaixo */
.wc-proceed-to-checkout .checkout-button { white-space: nowrap; display: flex !important; align-items: center; justify-content: center; gap: 10px; }
.wc-proceed-to-checkout .checkout-button::after { margin: 0 !important; }
.wc-proceed-to-checkout { margin: 6px 0 0 !important; padding: 0 !important; }
.cart_totals > :last-child { margin-bottom: 0 !important; }
@media (max-width: 767px) { .wc-proceed-to-checkout .checkout-button { font-size: 14px !important; letter-spacing: .5px; padding: 0 1.2em !important; } }

/* "Já tem conta? Entrar" e "Tem cupom? Usar cupom": duas linhas discretas, com o link no estilo do site */
.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle { border-top: 1px solid var(--linha); }
.woocommerce-form-coupon-toggle { border-bottom: 1px solid var(--linha); margin-bottom: 34px; }
.woocommerce-form-login-toggle .woocommerce-info, .woocommerce-form-coupon-toggle .woocommerce-info {
  margin: 0 !important; padding: 16px 0 !important; font-size: 15px !important; color: var(--suave) !important; display: flex; align-items: center; gap: 10px; border-radius: 0 !important; }
.woocommerce-form-login-toggle .woocommerce-info a, .woocommerce-form-coupon-toggle .woocommerce-info a {
  color: var(--tinta) !important; font-weight: 700; text-decoration: none !important; border-bottom: 2px solid var(--marca); padding-bottom: 1px; transition: border-color .3s; }
.woocommerce-form-login-toggle .woocommerce-info a:hover, .woocommerce-form-coupon-toggle .woocommerce-info a:hover { border-color: var(--tinta); }
form.woocommerce-form-login.login, form.checkout_coupon { border: 0 !important; background: var(--fundo); border-radius: 18px; padding: 22px !important; margin: 0 0 20px !important; }
form.checkout_coupon p:first-child { color: var(--suave); }

/* Minha conta: seletor no estilo do site (pílula branca, destaque verde-água que desliza) e um formulário por vez */
.tdv-alterna { position: relative; display: grid; grid-template-columns: 1fr 1fr; width: min(440px, 100%); margin: 0 auto 30px; padding: 8px; background: #fff; border-radius: 999px; box-shadow: 0 6px 34px rgba(0, 0, 0, .08); }
.tdv-alterna button { position: relative; z-index: 1; height: 56px; border: 0 !important; background: none !important; color: var(--tinta) !important; font-size: 17px; font-weight: 700 !important; border-radius: 999px !important; cursor: pointer; opacity: .45; transition: opacity .3s; padding: 0 !important; }
.tdv-alterna button[aria-selected="true"], .tdv-alterna button:hover { opacity: 1; background: none !important; color: var(--tinta) !important; }
.tdv-alterna__luz { position: absolute; top: 8px; left: 8px; width: calc(50% - 8px); height: 56px; background: var(--marca); border-radius: 999px; transition: transform .45s cubic-bezier(.22, 1, .36, 1); }
.tdv-alterna[data-ver="cadastro"] .tdv-alterna__luz { transform: translateX(100%); }
.tdv-alterna ~ #customer_login.u-columns { display: block !important; width: min(520px, 100%); margin: 0 auto; }
.tdv-alterna ~ #customer_login .u-column1, .tdv-alterna ~ #customer_login .u-column2 { width: 100% !important; }
.tdv-alterna ~ #customer_login h2 { display: none; }
.tdv-alterna[data-ver="entrar"] ~ #customer_login .u-column2, .tdv-alterna[data-ver="cadastro"] ~ #customer_login .u-column1 { display: none !important; }
.tdv-alterna ~ #customer_login .u-column1, .tdv-alterna ~ #customer_login .u-column2 { animation: tdv-aparece .5s cubic-bezier(.22, 1, .36, 1); }
#customer_login .woocommerce-form-login__submit, #customer_login .woocommerce-form-register__submit { width: 100%; margin-top: 8px; }
#customer_login .woocommerce-form-login__rememberme { display: block; margin-bottom: 10px; }
@media (max-width: 767px) { .tdv-alterna button { height: 50px; font-size: 15px; } .tdv-alterna__luz { height: 50px; } }
.tdv-alterna ~ #customer_login.u-columns { float: none !important; width: min(520px, 100%) !important; margin-left: auto !important; margin-right: auto !important; }
#customer_login form { margin-bottom: 0 !important; }
#customer_login .woocommerce-LostPassword { margin: 14px 0 0 !important; text-align: center; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--marca) !important; outline-offset: 1px; }

/* ---------- bichos espiando ---------- */
:root { --vao: max(calc((100vw - 1064px) / 2), 150px); }   /* espaço livre ao lado do conteúdo */
.tdv-canto { position: fixed; z-index: 50; pointer-events: none; height: auto; transition: transform .9s cubic-bezier(.34, 1.3, .5, 1); will-change: transform; }
.tdv-canto--esq { left: 0; bottom: -30px; width: clamp(230px, calc(var(--vao) * 1.6), 460px); transform-origin: 0 100%; transform: translateX(-105%) rotate(18deg); }
.tdv-canto--esq.espiando { transform: translateX(-40%) rotate(7deg); }
.tdv-canto--dir { right: 0; bottom: -20px; width: clamp(240px, calc(var(--vao) * 1.55), 440px); transform-origin: 100% 100%; transform: translate(70%, 60%) rotate(-22deg); }
.tdv-canto--dir.espiando { transform: translate(22%, 6%) rotate(-10deg); transition-delay: .12s; }
.tdv-com-gato { position: relative; overflow: visible !important; }
.tdv-gato { position: absolute; right: 28px; top: 0; width: 132px; height: auto; transform: translateY(-74%); pointer-events: none; z-index: 3;
  clip-path: inset(0 0 0 0); opacity: 0; transition: opacity .5s, transform .9s cubic-bezier(.34, 1.4, .5, 1); }
.tdv-js .tdv-gato { transform: translateY(-40%) scale(.92); }
.tdv-js .tdv-gato.aparece, .tdv-gato.aparece { opacity: 1; transform: translateY(-74%); }
#order_review_heading.tdv-com-gato .tdv-gato { right: 22px; }
@media (max-width: 767px) { .tdv-gato { width: 96px; right: 16px; } }
@media (prefers-reduced-motion: reduce) { .tdv-canto, .tdv-gato { transition: none; } }

/* o gato pendurado precisa de espaço acima do cartão */
.cart-collaterals .cart_totals.tdv-com-gato { margin-top: 90px; }

/* telas menores (celular e tablet): os bichos ficam dentro da faixa cinza do topo, vindo das laterais */
.tdv-hero { overflow-x: clip; overflow-y: visible; }
.tdv-hero-bicho { position: absolute; bottom: -2px; z-index: 2; height: auto; pointer-events: none; transition: transform 1s cubic-bezier(.34, 1.3, .5, 1); }
.tdv-hero-bicho--esq { left: 0; width: min(38vw, 230px); transform-origin: 0 100%; transform: translateX(-100%) rotate(14deg); }
.tdv-hero-bicho--dir { right: 0; width: min(42vw, 250px); transform-origin: 100% 100%; transform: translateX(100%) rotate(-14deg); }
.tdv-hero-bicho--esq.espiando { transform: translateX(-30%) rotate(6deg); }
.tdv-hero-bicho--dir.espiando { transform: translateX(26%) rotate(-6deg); transition-delay: .15s; }
.tdv-hero .tdv-curva { z-index: 3; }
@media (max-width: 1099px) {
  .tdv-hero { padding-bottom: 150px; }
  .tdv-hero .tdv-migalha { position: relative; z-index: 4; }
  .tdv-gato { width: 118px; }
}
@media (max-width: 767px) { .tdv-hero { padding-bottom: 150px; } .tdv-hero .tdv-migalha { margin-top: 10px; } }
.tdv-hero-bichos { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 2; }
.tdv-hero-bicho { bottom: 0 !important; }

/* celular: faixa do topo mais baixa, bichos menores e mais perto do texto, saindo do cinza sem corte reto */
@media (max-width: 1099px) {
  .tdv-hero { padding-bottom: 118px; }
  .tdv-hero-bicho { -webkit-mask-image: linear-gradient(#000 72%, transparent 98%); mask-image: linear-gradient(#000 72%, transparent 98%); bottom: -6px !important; }
  .tdv-hero-bicho--esq { width: min(33vw, 200px); }
  .tdv-hero-bicho--dir { width: min(38vw, 230px); }
  .tdv-hero-bicho--esq.espiando { transform: translateX(-22%) rotate(5deg); }
  .tdv-hero-bicho--dir.espiando { transform: translateX(14%) rotate(-5deg); }
}
@media (max-width: 767px) { .tdv-hero { padding-bottom: 104px; } .tdv-hero .tdv-migalha { margin-top: 8px; } }
/* celular: os dois grupos ocupam a largura toda da faixa, como uma foto dos bichos espiando por baixo */
@media (max-width: 767px) {
  .tdv-hero { padding-bottom: 150px; }
  .tdv-hero-bicho--esq { width: 50vw; }
  .tdv-hero-bicho--dir { width: 54vw; }
  .tdv-hero-bicho--esq.espiando { transform: translateX(-6%) rotate(3deg); }
  .tdv-hero-bicho--dir.espiando { transform: translateX(4%) rotate(-3deg); }
  .tdv-hero-bicho { -webkit-mask-image: linear-gradient(#000 62%, transparent 96%); mask-image: linear-gradient(#000 62%, transparent 96%); bottom: -14px !important; }
}
@media (max-width: 767px) { .tdv-hero { padding-bottom: 176px; } .tdv-hero .tdv-migalha { position: relative; z-index: 5; } }

/* os bichos ficam DENTRO da faixa cinza, inclusive na curva de baixo: a área deles desce até o fim da curva
   e é recortada com o mesmo desenho dela (retângulo em cima + curva embaixo) */
@media (max-width: 1099px) {
  .tdv-hero { --curva: 60px; }
  .tdv-hero-bichos { inset: 0 0 calc(var(--curva) * -1) 0; z-index: 4;
    -webkit-mask: linear-gradient(#000, #000) top / 100% calc(100% - var(--curva)) no-repeat,
                  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1440V8Q720 110 0 8Z'/%3E%3C/svg%3E") bottom / 100% var(--curva) no-repeat;
            mask: linear-gradient(#000, #000) top / 100% calc(100% - var(--curva)) no-repeat,
                  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1440V8Q720 110 0 8Z'/%3E%3C/svg%3E") bottom / 100% var(--curva) no-repeat; }
  .tdv-hero-bicho { -webkit-mask-image: none !important; mask-image: none !important; bottom: 0 !important; }
  .tdv-hero .tdv-migalha { position: relative; z-index: 5; }
}
@media (max-width: 767px) { .tdv-hero { --curva: 34px; } }

/* ---------- gato escorado em cada produto do carrinho ---------- */
/* o espaço acima de cada cartão é uma linha vazia (tr.tdv-espaco), para não esticar o cartão */
table.cart tr.tdv-espaco td { height: 64px; padding: 0 !important; background: transparent !important; border: 0 !important; }
table.cart tr.cart_item td.product-subtotal { position: relative; }
.tdv-gato-item { position: absolute; top: -14px; right: 40px; width: 92px; height: auto; pointer-events: none; z-index: 2;
  transform: translateY(-75.5%) translateY(24px); opacity: 0; transition: opacity .4s, transform .8s cubic-bezier(.34, 1.4, .5, 1); filter: drop-shadow(0 8px 10px rgba(21, 26, 67, .12)); }
.tdv-gato-item.aparece { opacity: 1; transform: translateY(-75.5%); }
@media (min-width: 768px) {
  table.cart tr.cart_item td.product-subtotal { position: static; }
  table.cart tr.cart_item { position: relative; }
  .tdv-gato-item { top: 14px; }
  .tdv-gato-item--esq { right: auto; left: 46%; }
}
@media (max-width: 767px) {
  table.cart tr.tdv-espaco { display: block !important; height: 58px; }
  table.cart tr.tdv-espaco td { display: none !important; }
  table.cart tr.cart_item { position: relative; }
  table.cart tr.cart_item td.product-subtotal { position: static; }
  .tdv-gato-item { width: 80px; right: 22px; top: 0; }
  .tdv-gato-item--esq { right: auto; left: 34%; }
}
@media (prefers-reduced-motion: reduce) { .tdv-gato-item { transition: none; } }

/* ---------- carrinho no computador: produtos à esquerda, total fixo à direita (sem área vazia) ---------- */
.tdv-garantias { list-style: none; margin: 22px 0 0 !important; padding: 18px 0 0; border-top: 1px solid var(--linha); display: grid; gap: 14px; }
.tdv-garantias li { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; margin: 0; }
.tdv-garantias svg { color: var(--marca-escura); margin-top: 1px; }
.tdv-garantias b { display: block; font-size: 14px; font-weight: 700; color: var(--tinta); line-height: 1.3; }
.tdv-garantias span { font-size: 13px; color: var(--suave); line-height: 1.4; }
@media (min-width: 1000px) {
  .woocommerce-cart .site-main .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 0 44px; align-items: start; }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce > .tdv-complete, .woocommerce-cart .woocommerce > .cart-empty, .woocommerce-cart .woocommerce > .return-to-shop { grid-column: 1 / -1; }
  .woocommerce-cart .woocommerce > form.woocommerce-cart-form { grid-column: 1; min-width: 0; }
  .woocommerce-cart .woocommerce > .cart-collaterals { grid-column: 2; position: sticky; top: 120px; margin-top: 0 !important; padding-top: 128px; width: auto !important; }
  .cart-collaterals .cart_totals.tdv-com-gato, .cart-collaterals .cart_totals { width: 100% !important; float: none !important; margin: 0 !important; padding: 30px 28px 26px; border-radius: 26px; }
  .cart-collaterals .cart_totals .tdv-gato { width: 168px; right: 30px; }
  table.cart td.product-thumbnail img { width: 112px !important; height: 112px; }
  table.cart tr.cart_item td.product-price { display: none; }
  table.cart td.actions .coupon .input-text { width: 180px !important; }
}
@media (min-width: 1000px) { .cart-collaterals .cart_totals .tdv-gato { width: 150px; right: 12px; } table.cart tr.cart_item td { vertical-align: middle !important; } }

/* ---------- palco do carrinho (computador e celular): um produto por vez, troca ao rolar ---------- */
@media all {
  .tdv-com-palco table.cart tr.cart_item, .tdv-com-palco table.cart tr.tdv-espaco { display: none !important; }
  .tdv-com-palco table.cart { border-spacing: 0 !important; margin-top: 0 !important; }
  .tdv-trilho { position: relative; margin-top: 120px; }
  .tdv-palco { position: sticky; top: 130px; background: #f2f3f4; border-radius: 32px; padding: 26px 30px 24px; opacity: 0; transform: translateY(24px);
    transition: opacity .7s ease, transform .9s cubic-bezier(.22, 1, .36, 1); }
  .tdv-palco.aparece { opacity: 1; transform: none; }
  .tdv-palco.ocupado { pointer-events: none; opacity: .6; }
  .tdv-palco__gato { position: absolute; top: 0; right: 46px; width: 150px; transform: translateY(-75.5%); pointer-events: none; z-index: 3; filter: drop-shadow(0 8px 10px rgba(21, 26, 67, .12)); }
  .tdv-palco__topo { display: flex; justify-content: space-between; align-items: center; position: relative; z-index: 2; }
  .tdv-palco__cont { font-size: 14px; color: var(--suave); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
  .tdv-palco__cont b { color: var(--tinta); font-size: 22px; font-weight: 800; margin-right: 2px; }
  .tdv-palco__tira { background: transparent !important; color: var(--suave) !important; padding: 6px 0 !important; font-size: 13px !important; font-weight: 600 !important; text-decoration: underline; border-radius: 0 !important; }
  .tdv-palco__tira:hover { color: #c0392b !important; background: transparent !important; }
  .tdv-palco__cena { position: relative; height: clamp(260px, 42vh, 420px); margin: 4px 0 10px; }
  .tdv-palco__cena canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
  .tdv-palco__foto { display: none; position: absolute; inset: 0; margin: auto; max-width: 70%; max-height: 92%; object-fit: contain; transition: opacity .4s; }
  .tdv-palco.sem-gl .tdv-palco__foto { display: block; }
  .tdv-palco.sem-gl canvas { display: none; }
  .tdv-palco__info { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding-top: 18px; border-top: 1px solid #e1e3ea; }
  .tdv-palco__info.troca > * { animation: tdv-palco-texto .6s cubic-bezier(.22, 1, .36, 1) both; }
  .tdv-palco__info.troca > :last-child { animation-delay: .06s; }
  @keyframes tdv-palco-texto { from { opacity: 0; transform: translateY(12px); } }
  .tdv-palco__nome { font-size: 30px !important; font-weight: 800 !important; margin: 0 !important; line-height: 1.1; }
  .tdv-palco__opcao { margin: 6px 0 0 !important; color: var(--suave); font-size: 16px; min-height: 1em; }
  .tdv-palco__acoes { display: flex; align-items: center; gap: 22px; flex-shrink: 0; }
  .tdv-palco__qtd { display: inline-flex; align-items: center; background: #fff; border-radius: 999px; height: 48px; padding: 0 4px; }
  .tdv-palco__qtd button { width: 40px; height: 40px; padding: 0 !important; border-radius: 50% !important; background: transparent !important; color: var(--tinta) !important; font-size: 20px !important; }
  .tdv-palco__qtd button:hover { background: #f2f3f4 !important; }
  .tdv-palco__qtd span { min-width: 28px; text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
  .tdv-palco__total .amount { font-size: 26px; font-weight: 800; color: var(--marca-escura); }
  .tdv-palco__barra { height: 3px; background: #e1e3ea; border-radius: 3px; margin-top: 20px; overflow: hidden; }
  .tdv-palco__barra i { display: block; height: 100%; width: calc(var(--prog, 0) * 100%); background: var(--marca); border-radius: 3px; }
  .tdv-palco__mini { display: flex; gap: 10px; margin-top: 16px; }
  .tdv-palco__mini button { width: 64px; height: 64px; padding: 4px !important; border-radius: 16px !important; background: #fff !important; border: 2px solid transparent !important; opacity: .55; transition: opacity .3s, border-color .3s; }
  .tdv-palco__mini button.ativo { opacity: 1; border-color: var(--tinta) !important; }
  .tdv-palco__mini button:hover { opacity: 1; }
  .tdv-palco__mini img { width: 100%; height: 100%; object-fit: contain; }
  .tdv-palco__dica { margin: 12px 0 0 !important; font-size: 13px; color: var(--suave); }
}
/* o tema corta o excesso lateral com overflow hidden, o que impede o "sticky": clip faz o mesmo corte sem quebrar */
body, #page.site { overflow-x: clip !important; overflow-y: visible !important; }
@media all { .tdv-palco { top: 196px; } .tdv-palco__gato { width: 132px; } .tdv-palco__cena { height: clamp(220px, 34vh, 360px); } .tdv-trilho { margin-top: 150px; } }
@media all { .tdv-palco { top: 214px; } .tdv-palco__gato { width: 120px; } }
@media (min-width: 768px) { .tdv-cards { grid-template-columns: repeat(auto-fit, minmax(220px, 270px)); justify-content: center; } }
/* o palco inteiro (foto, nome, quantidade e miniaturas) cabe na tela enquanto está preso: a foto encolhe em telas baixas */
@media all {
  .tdv-palco { max-height: calc(100vh - 234px); display: flex; flex-direction: column; }
  .tdv-palco__cena { height: clamp(140px, calc(100vh - 234px - 290px), 380px) !important; flex: none; }
  .tdv-palco__dica { display: none; }
  .tdv-palco__mini { margin-top: 14px; }
  .tdv-palco__mini button { width: 56px; height: 56px; }
}

/* palco no celular */
@media (max-width: 999px) {
  .tdv-trilho { margin-top: 96px; }
  .tdv-palco { top: 150px; max-height: calc(100vh - 160px); padding: 18px 18px 16px; border-radius: 26px; }
  .tdv-palco__gato { width: 92px !important; right: 22px; }
  .tdv-palco__cont b { font-size: 18px; }
  .tdv-palco__cena { height: clamp(120px, calc(100vh - 160px - 300px), 300px) !important; margin: 0 0 6px; }
  .tdv-palco__info { flex-direction: column; align-items: stretch; gap: 12px; padding-top: 14px; }
  .tdv-palco__nome { font-size: 22px !important; }
  .tdv-palco__opcao { font-size: 14px; margin-top: 2px !important; }
  .tdv-palco__acoes { justify-content: space-between; }
  .tdv-palco__qtd { height: 42px; }
  .tdv-palco__qtd button { width: 36px; height: 36px; }
  .tdv-palco__total .amount { font-size: 22px; }
  .tdv-palco__barra { margin-top: 14px; }
  .tdv-palco__mini { margin-top: 12px; gap: 8px; }
  .tdv-palco__mini button { width: 48px !important; height: 48px !important; border-radius: 12px !important; }
}

/* etapas da compra dentro do palco (a versão solta, acima, some enquanto o palco existe) */
html.tdv-com-palco .tdv-etapas:not(.tdv-etapas--palco) { display: none; }
html.tdv-com-palco .tdv-hero + .tdv-etapas + * , html.tdv-com-palco .tdv-trilho { margin-top: 110px; }
.tdv-etapas--palco { margin: 0 0 16px !important; padding: 0 0 16px !important; max-width: none; border-bottom: 1px solid #e1e3ea; opacity: 1 !important; transform: none !important; }
.tdv-etapas--palco li { flex-direction: row; justify-content: center; gap: 8px; font-size: 13px; }
.tdv-etapas--palco li::before { top: 50%; left: calc(-50% + 70px); right: calc(50% + 70px); }
.tdv-etapas--palco li span { width: 26px; height: 26px; font-size: 12px; background: #f2f3f4; }
.tdv-etapas--palco li.atual span { background: var(--tinta); }
.tdv-etapas--palco li.feita span { background: var(--marca); }
@media all { .tdv-palco__cena { height: clamp(130px, calc(100vh - 234px - 345px), 380px) !important; } }
@media (max-width: 999px) {
  .tdv-etapas--palco { margin-bottom: 12px !important; padding-bottom: 12px !important; }
  .tdv-etapas--palco li { flex-direction: column; gap: 4px; font-size: 11px; }
  .tdv-etapas--palco li::before { top: 12px; left: -50%; right: 50%; }
  .tdv-etapas--palco li span { width: 24px; height: 24px; }
  .tdv-palco__cena { height: clamp(110px, calc(100vh - 160px - 360px), 300px) !important; }
}
.tdv-palco__foto { transition: none !important; will-change: transform, opacity; }
@media (min-width: 1000px) { .tdv-palco { padding-top: 46px; } }

/* etapas: as três alinhadas pelo centro, rótulos numa linha só */
.tdv-etapas li { white-space: nowrap; }
@media (max-width: 999px) { .tdv-etapas--palco li { justify-content: flex-start; } }

/* computador: total e palco lado a lado, mesma altura e mesmo topo */
@media (min-width: 1000px) {
  html.tdv-com-palco .woocommerce-cart .woocommerce > .cart-collaterals { position: sticky; top: 214px; padding-top: 0; margin-top: 110px !important; }
  html.tdv-com-palco .cart_totals { display: flex; flex-direction: column; box-sizing: border-box; }
  html.tdv-com-palco .cart_totals .tdv-garantias { margin-top: auto !important; }
  html.tdv-com-palco .cart_totals .wc-proceed-to-checkout { margin-bottom: 22px !important; }
}

/* resumo dos itens no cartão do total (só no computador) */
.tdv-resumo-lista { display: none; }
@media (min-width: 1000px) {
  .tdv-resumo-lista { display: block; list-style: none; margin: 4px 0 14px !important; padding: 0; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
  .tdv-resumo-lista li { margin: 0; }
  .tdv-resumo-lista button { width: 100%; display: grid !important; grid-template-columns: 48px 1fr auto auto; gap: 12px; align-items: center; text-align: left;
    background: transparent !important; color: var(--tinta) !important; border-radius: 14px !important; padding: 8px 10px !important; font-weight: 400 !important; transition: background .3s; }
  .tdv-resumo-lista button:hover { background: #f2f3f4 !important; }
  .tdv-resumo-lista button.ativo { background: #f2f3f4 !important; box-shadow: inset 3px 0 0 var(--marca) !important; }
  .tdv-resumo-lista img { width: 48px; height: 48px; object-fit: contain; background: #f2f3f4; border-radius: 10px; padding: 3px; }
  .tdv-resumo-lista button.ativo img { background: #fff; }
  .tdv-resumo-lista b { display: block; font-size: 14px; font-weight: 700; line-height: 1.25; }
  .tdv-resumo-lista small { display: block; font-size: 12px; color: var(--suave); }
  .tdv-resumo-lista em { font-style: normal; font-size: 13px; color: var(--suave); }
  .tdv-resumo-lista strong .amount { font-size: 14px; font-weight: 800; }
}
@media (max-width: 999px) { .tdv-palco { padding-top: 40px !important; } }

/* checkout: resumo preso à direita enquanto o formulário rola */
@media (min-width: 768px) {
  .woocommerce-checkout form.checkout .tdv-resumo-fixo { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 130px; align-self: start; padding-top: 90px; }
  .woocommerce-checkout form.checkout .tdv-resumo-fixo #order_review_heading, .woocommerce-checkout form.checkout .tdv-resumo-fixo #order_review { grid-column: auto; grid-row: auto; }
  .woocommerce-checkout form.checkout .col2-set { grid-row: 1 / span 2; }
}
@media (min-width: 768px) and (max-height: 860px) {
  .woocommerce-checkout form.checkout .tdv-resumo-fixo #order_review { max-height: calc(100vh - 130px - 90px - 90px); overflow-y: auto; overscroll-behavior: contain; }
}
@media (min-width: 768px) {
  .woocommerce-checkout form.checkout .tdv-resumo-fixo { top: 120px; padding-top: 80px; }
  .woocommerce-checkout form.checkout .tdv-resumo-fixo #order_review { max-height: calc(100vh - 120px - 80px - 74px - 16px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  .woocommerce-checkout-review-order-table td.product-name { width: 100%; }
  .woocommerce-checkout-review-order-table td.product-total { white-space: nowrap; padding-left: 12px !important; }
}

/* ---------- "Complete o protocolo": nova página que sobe e anda de lado ---------- */
.woocommerce-cart .site-main > article { transform-origin: 50% 100%; will-change: transform, opacity; }
.tdv-lat { margin: 140px calc(50% - 50vw) 0 !important; width: 100vw; position: relative; text-align: left !important; }
.tdv-lat__palco { position: sticky; top: 0; height: 100vh; overflow: hidden; background: #151a43; display: flex; align-items: center; padding-top: 96px; box-sizing: border-box;
  border-radius: calc((1 - var(--e, 0)) * 90px) calc((1 - var(--e, 0)) * 90px) 0 0; transform: scale(calc(.9 + var(--e, 0) * .1)); transform-origin: 50% 0; }
.tdv-lat__trilho { display: flex; align-items: center; gap: 28px; padding: 0 max(6vw, 40px); will-change: transform; }
.tdv-lat__intro { flex: 0 0 min(560px, 84vw); color: #fff; padding-right: 3vw; }
.tdv-lat .tdv-titulo { color: #fff !important; text-align: left; font-size: clamp(40px, 5.6vw, 88px) !important; line-height: 1.02 !important; margin: 0 !important; }
.tdv-lat .tdv-titulo strong { color: #28d9c4; }
.tdv-lat .tdv-titulo svg { display: none; }
.tdv-lat .tdv-complete__sub { color: rgba(255, 255, 255, .7) !important; text-align: left; margin: 34px 0 0 !important; font-size: 19px; max-width: 30ch; }
.tdv-lat .tdv-card { flex: 0 0 clamp(270px, 25vw, 370px); height: min(62vh, 540px); background: #fff; position: relative; padding-top: 54px; }
.tdv-lat .tdv-card:hover { background: #ddf7f3; transform: translateY(-8px); }
.tdv-lat__n { position: absolute; top: 24px; left: 26px; font-size: 13px; font-weight: 800; letter-spacing: .08em; color: #a3a7bd; font-variant-numeric: tabular-nums; }
.tdv-lat__fim { flex: 0 0 clamp(270px, 25vw, 370px); height: min(62vh, 540px); border-radius: 30px; background: #28d9c4; color: #151a43 !important; text-decoration: none !important;
  display: flex; flex-direction: column; justify-content: flex-end; padding: 34px; box-sizing: border-box; transition: background .4s; }
.tdv-lat__fim small { font-size: 16px; font-weight: 600; opacity: .75; }
.tdv-lat__fim b { font-size: clamp(30px, 2.8vw, 42px); font-weight: 800; line-height: 1.05; margin-top: 8px; }
.tdv-lat__fim span { font-size: 56px; line-height: 1; margin-top: 18px; transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.tdv-lat__fim:hover { background: #fff; }
.tdv-lat__fim:hover span { transform: translateX(14px); }
.tdv-lat__barra { position: absolute; left: max(6vw, 40px); right: max(6vw, 40px); bottom: 36px; height: 3px; background: rgba(255, 255, 255, .15); border-radius: 3px; overflow: hidden; }
.tdv-lat__barra i { display: block; height: 100%; background: #28d9c4; transform-origin: 0 50%; transform: scaleX(0); }
@media (max-width: 767px) {
  .tdv-lat { margin-top: 90px !important; }
  .tdv-lat__palco { padding-top: 70px; border-radius: calc((1 - var(--e, 0)) * 44px) calc((1 - var(--e, 0)) * 44px) 0 0; }
  .tdv-lat__trilho { gap: 16px; padding: 0 24px; }
  .tdv-lat__intro { flex-basis: 82vw; }
  .tdv-lat .tdv-titulo { font-size: 44px !important; }
  .tdv-lat .tdv-complete__sub { font-size: 16px; margin-top: 22px !important; }
  .tdv-lat .tdv-card, .tdv-lat__fim { flex-basis: 74vw; height: 58vh; }
  .tdv-lat .tdv-card h3 { font-size: 20px !important; }
  .tdv-lat__barra { bottom: 26px; left: 24px; right: 24px; }
}
html.tdv-na-lateral .tdv-canto { transform: translateY(120%) !important; transition-delay: 0s !important; }

/* Minha conta: o gato fica escorado no seletor, em cima da opção escolhida, e desliza quando ela muda */
.tdv-alterna .tdv-gato { right: auto; left: calc(25% - 58px); width: 116px; z-index: 0;
  transition: opacity .5s, transform .9s cubic-bezier(.34, 1.4, .5, 1), left .75s cubic-bezier(.65, 0, .25, 1); }
.tdv-alterna[data-ver="cadastro"] .tdv-gato { left: calc(75% - 58px); }
.tdv-alterna .tdv-gato.andando { animation: tdv-arrasta .75s cubic-bezier(.65, 0, .25, 1); }
.tdv-alterna .tdv-gato.andando--volta { animation: tdv-arrasta-volta .75s cubic-bezier(.65, 0, .25, 1); }
@keyframes tdv-arrasta { 0% { rotate: 0deg; } 25% { rotate: -9deg; } 70% { rotate: 6deg; } 100% { rotate: 0deg; } }
@keyframes tdv-arrasta-volta { 0% { rotate: 0deg; } 25% { rotate: 9deg; } 70% { rotate: -6deg; } 100% { rotate: 0deg; } }
.tdv-alterna { margin-top: 90px; }
.tdv-alterna .tdv-gato { transform-origin: 50% 80%; }
@media (max-width: 767px) { .tdv-alterna .tdv-gato { width: 92px; left: calc(25% - 46px); } .tdv-alterna[data-ver="cadastro"] .tdv-gato { left: calc(75% - 46px); } .tdv-alterna { margin-top: 70px; } }
/* o gato fica na ponta de fora da opção escolhida, para as patas não cobrirem o texto */
.tdv-alterna .tdv-gato { left: -18px; width: 104px; }
.tdv-alterna[data-ver="cadastro"] .tdv-gato { left: calc(100% - 86px); }
@media (max-width: 767px) { .tdv-alterna .tdv-gato { width: 84px; left: -14px; } .tdv-alterna[data-ver="cadastro"] .tdv-gato { left: calc(100% - 70px); } }
/* gato no meio da opção escolhida; do tamanho certo para as patas pararem acima do texto */
.tdv-alterna .tdv-gato { width: 88px; left: calc(25% - 44px); }
.tdv-alterna[data-ver="cadastro"] .tdv-gato { left: calc(75% - 44px); }
@media (max-width: 767px) { .tdv-alterna .tdv-gato { width: 74px; left: calc(25% - 37px); } .tdv-alterna[data-ver="cadastro"] .tdv-gato { left: calc(75% - 37px); } }
.tdv-alterna .tdv-gato { width: 82px; left: calc(25% - 41px); } .tdv-alterna[data-ver="cadastro"] .tdv-gato { left: calc(75% - 41px); }
