/* =====================================================================
   GVSX Mod — carrinho, checkout em 3 etapas e página de agradecimento (HTML no plugin gvsx-mod).
   ===================================================================== */

/* @legacy */

/* ---- Carrinho (trazido do gvsx.css 0.8.1, linhas 703-805, retokenizado) ---- */
/* ---- Carrinho (página de confirmação antes do pagamento) ----
   Estrutura (v0.5.0): topo (selo, título, etapas) → duas colunas: à esquerda os itens em cards e, logo abaixo, a oferta
   da Instalação Remota (.gvsx-bump, HTML do plugin; o gvsx.js a move para dentro da coluna — sem JS ela fica acima);
   à direita o resumo fixo com o botão → selos e "voltar". O bloco de carrinho é montado pelo React do WooCommerce, por
   isso os seletores repetem as classes dele (e a especificidade das regras dele). */
.gvsx-cart__hero .gvsx-task__sheet { text-align: center; }
.gvsx-cart__title { margin: 0 0 var(--gvsx-s-3); font-family: var(--gvsx-font-display); font-stretch: 108%; font-weight: 800; font-size: clamp(1.6rem, 3.2vw, 2.2rem); letter-spacing: -0.025em; line-height: 1.08; text-wrap: balance; }
.gvsx-cart__subtitle { margin: 0 auto 1.2rem; max-width: 640px; }
.gvsx-progress { list-style: none; margin: 0 auto; padding: 0; display: flex; justify-content: center; gap: 0; flex-wrap: wrap; }
.gvsx-progress li { display: flex; align-items: center; gap: 8px; font-size: 0.78rem; font-weight: 600; color: var(--wp--preset--color--muted); padding: 0 14px; position: relative; }
.gvsx-progress li + li::before { content: ""; position: absolute; left: -12px; width: 24px; height: 1px; background: var(--wp--preset--color--border); }
.gvsx-progress li span { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--wp--preset--color--border); font-size: 0.72rem; font-weight: 800; }
.gvsx-progress li.is-done { color: var(--gvsx-neon); }
.gvsx-progress li.is-done span { background: rgb(var(--gvsx-glow-rgb) / 0.15); border-color: rgb(var(--gvsx-glow-rgb) / 0.5); color: var(--gvsx-neon); }
.gvsx-progress li.is-current { color: var(--wp--preset--color--contrast); }
.gvsx-progress li.is-current span { background: var(--gvsx-neon); border-color: var(--gvsx-neon); color: var(--gvsx-accent-ink); box-shadow: 0 0 16px rgb(var(--gvsx-glow-rgb) / 0.6); }
/* Avisos (regra de 1 patch por pedido, licença ativa etc.): mesma largura do conteúdo, com respiro do topo */
.gvsx-cart .wc-block-store-notices:empty { display: none; }
.gvsx-cart .wp-block-woocommerce-store-notices:not(:has(li, .wc-block-components-notice-banner)) { display: none; }
.gvsx-cart .gvsx-task .wp-block-woocommerce-store-notices, .gvsx-cart .gvsx-task .wc-block-components-notices:not(:empty) { margin: 0 0 1px !important; padding: var(--gvsx-s-4) var(--gvsx-block-x); background: var(--gvsx-block); }
.gvsx-cart .wc-block-components-notice-banner { margin: 0; }
/* Carrinho vazio: o topo "Confirme o seu pedido" e os selos não fazem sentido — ficam só o aviso e o link para a loja.
   (body.gvsx-cart-empty vem do PHP no carregamento; .is-empty é posto pelo JS quando o último item sai.) */
body.gvsx-cart-empty .gvsx-cart__hero, body.gvsx-cart-empty .gvsx-cart__after, .gvsx-cart.is-empty .gvsx-cart__hero, .gvsx-cart.is-empty .gvsx-cart__after { display: none; }
.gvsx-cart .wp-block-woocommerce-empty-cart-block { padding: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--50); }
.gvsx-cart .wc-block-cart__empty-cart__title { font-size: 1.5rem; font-weight: 800; color: var(--wp--preset--color--contrast); }
.gvsx-cart .wp-block-woocommerce-empty-cart-block a { color: var(--gvsx-neon); }
/* Duas colunas (o WooCommerce usa 65% + 35% com padding interno; sem gap extra, senão estoura os 100% — v0.2.2) */
.gvsx-cart .gvsx-task .wc-block-cart { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 1px; margin: 0 !important; background: var(--gvsx-rule); }
.gvsx-cart .gvsx-task .wc-block-cart.is-large { grid-template-columns: minmax(0, 1fr) 380px; }
/* o primeiro filho sem classe é o sensor de largura do WooCommerce (absoluto): fica, senão o carrinho vira o layout estreito */
.gvsx-cart .gvsx-task .wc-block-cart { position: relative; }
.gvsx-cart .gvsx-task .wc-block-cart > .wc-block-cart__main { width: auto; min-width: 0; margin: 0; padding: var(--gvsx-block-y) var(--gvsx-block-x); background: var(--gvsx-block); }

/* Rótulo da coluna dos itens (faz par com "Resumo do pedido" à direita) */
.gvsx-cart .wc-block-cart__main::before { content: "Itens do pedido"; display: block; margin: 0 0 var(--gvsx-s-3); font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; color: var(--gvsx-text); }
/* Linhas do carrinho como cards. Os seletores repetem "table.wc-block-cart-items .wc-block-cart-items__row" porque
   as regras do WooCommerce têm essa forma (especificidade 0,3,1) e, sem isso, venciam as nossas. */
.gvsx-cart .wc-block-cart__main .wc-block-cart-items { border-bottom: 0; } /* linha solta que o WooCommerce põe sob a tabela */
.gvsx-cart .wc-block-cart-items thead { display: none; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row { display: grid; grid-template-columns: 104px minmax(0, 1fr) auto; gap: 0.25rem 1.15rem; align-items: center; padding: var(--gvsx-s-4) 0; border: 0; border-bottom: 1px solid var(--gvsx-line); border-radius: 0; background: none; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row td { padding: 0; border: 0; background: transparent; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img { width: 104px; height: 104px; object-fit: cover; border-radius: var(--gvsx-radius-m); display: block; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name { color: var(--wp--preset--color--contrast); font-weight: 700; font-size: 1rem; line-height: 1.35; text-decoration: none; max-width: none; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name:hover { color: var(--gvsx-neon); }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__prices { display: none; } /* preço unitário duplicava o total (sempre 1 unidade) */
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-metadata { margin-top: 0.35rem; }
.gvsx-cart .wc-block-components-product-metadata__description, .gvsx-cart .wc-block-components-product-metadata__description p { color: var(--wp--preset--color--muted); font-size: 0.85rem; line-height: 1.5; margin: 0; }
/* "Remover": o WooCommerce mostra só a lixeira; aqui ganha o texto ao lado (o aria-label continua o dele) */
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity { margin-top: 0.55rem; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link { display: inline-flex; align-items: center; gap: 4px; width: auto; height: auto; min-width: 0; margin-left: -6px; padding: 5px 10px 5px 6px; border-radius: 8px; color: var(--wp--preset--color--muted); font-size: 0.8rem; font-weight: 600; line-height: 1; text-decoration: none; transition: color .15s ease, background .15s ease; } /* o WooCommerce fixa 24×24 no botão; com o texto, o ícone sumia */
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link svg { flex: none; width: 18px; height: 18px; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link::after { content: "Remover"; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link:hover { color: var(--wp--preset--color--danger); background: rgb(var(--gvsx-danger-rgb) / 0.08); text-decoration: none; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total { text-align: right; align-self: center; }
.gvsx-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total .wc-block-components-product-price { font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; font-size: 1.1rem; color: var(--gvsx-text); white-space: nowrap; }
/* Oferta da Instalação Remota dentro da coluna dos itens (movida pelo JS) */
.gvsx-cart .wc-block-cart__main .gvsx-bump { margin: var(--gvsx-s-5) 0 0; }
/* Resumo: card fixo à direita (o WooCommerce só dava padding à esquerda; título, total e botão ficavam colados nas bordas) */
.gvsx-cart .wc-block-cart .wc-block-cart__sidebar { box-sizing: border-box; width: auto; min-width: 0; margin: 0; padding: var(--gvsx-block-y) var(--gvsx-s-7); background: var(--gvsx-block); border: 0; border-radius: 0; box-shadow: none; }
.gvsx-cart .wc-block-cart:not(.is-large) .wc-block-cart__sidebar { position: static; margin-top: 0; }
/* no carrinho estreito o WooCommerce esconde o título "Resumo do pedido"; o card ganha o seu */
.gvsx-cart .wc-block-cart:not(.is-large) .wc-block-cart__sidebar::before { content: "Resumo do pedido"; display: block; margin: 0 0 0.6rem; font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 700; font-size: 1.05rem; color: var(--gvsx-text); }
.gvsx-cart .wc-block-cart__totals-title, .gvsx-cart .wc-block-components-totals-wrapper .wc-block-components-title, .gvsx-cart .wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-title { margin: 0; font-size: 1.1rem; font-weight: 800; text-transform: none; letter-spacing: 0; color: var(--wp--preset--color--contrast); padding: 0 0 0.6rem; border: 0; }
.gvsx-cart .wc-block-components-totals-wrapper { border-color: rgb(var(--gvsx-fg-rgb) / 0.08); padding: 0.85rem 0; }
.gvsx-cart .wc-block-components-totals-wrapper:empty { display: none; }
.gvsx-cart .wc-block-components-totals-item { color: var(--wp--preset--color--muted); font-size: 0.9rem; padding: 0; }
.gvsx-cart .wc-block-components-totals-footer-item { color: var(--wp--preset--color--contrast); padding: 0; }
.gvsx-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 1rem; font-weight: 800; }
.gvsx-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-size: 1.35rem; font-weight: 600; color: var(--gvsx-text); }
.gvsx-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__description { font-size: 0.78rem; color: var(--wp--preset--color--muted); }
/* cupom: linha discreta que abre o campo */
.gvsx-cart .wc-block-components-totals-coupon { padding: 0; }
.gvsx-cart .wc-block-components-totals-coupon .wc-block-components-panel__button { color: var(--wp--preset--color--muted); font-size: 0.88rem; font-weight: 600; padding: 0.15rem 0; transition: color .15s ease; }
.gvsx-cart .wc-block-components-totals-coupon .wc-block-components-panel__button:hover { color: var(--gvsx-neon); }
.gvsx-cart .wc-block-components-totals-coupon .wc-block-components-panel__content { padding-top: 0.6rem; }
.gvsx-cart .wc-block-components-totals-coupon__form .wc-block-components-text-input input { border-radius: 10px; min-height: 46px; }
.gvsx-cart .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button { border-radius: 10px; min-height: 46px; }
/* botão principal */
.gvsx-cart .wc-block-cart__submit { margin: 1rem 0 0; }
.gvsx-cart .wc-block-cart__submit-button { min-height: 56px; border: 0; border-radius: var(--gvsx-radius-m); background: var(--gvsx-accent) !important; color: var(--gvsx-accent-ink) !important; box-shadow: var(--gvsx-shadow-cta); font-family: var(--gvsx-font-text); font-weight: 600; font-size: 1.02rem; letter-spacing: 0; text-transform: none; transition: transform var(--gvsx-dur-1) var(--gvsx-ease-out), background-color var(--gvsx-dur-2) var(--gvsx-ease-out); }
@media (hover: hover) and (pointer: fine) { .gvsx-cart .wc-block-cart__submit-button:hover { background: var(--gvsx-accent-hover) !important; transform: translateY(-1px); } }
.gvsx-cart .wc-block-cart__submit-button:active { transform: scale(0.98); }
.gvsx-cart .wc-block-cart__payment-method-icons { opacity: 0.85; justify-content: center; }
/* no celular o WooCommerce fixa o botão no rodapé da tela (fundo branco por padrão): faixa escura com desfoque */
.gvsx-cart .wc-block-cart .wc-block-cart__submit-container--sticky { background: rgb(var(--gvsx-bg-rgb) / 0.9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--gvsx-glass-border); padding: 12px 16px; }
.gvsx-cart .wc-block-cart .wc-block-cart__submit-container--sticky::before { display: none; }
/* O WooCommerce liga o modo "fixo no rodapé" quando acha que o botão está fora da tela na hora em que o carrinho monta,
   e nas telas largas (783px+) e nas baixas (até 500px de altura) o CSS dele esconde o botão nesse modo: o carrinho
   ficava sem "Ir para o pagamento" em parte das visitas. Nesses dois casos o botão fica no lugar normal, no resumo. */
@media (min-width: 783px), (max-height: 500px) {
	.gvsx-cart .wc-block-cart .wc-block-cart__submit-container--sticky { display: block !important; position: static; width: auto; padding: 0; border: 0; background: transparent !important; -webkit-backdrop-filter: none; backdrop-filter: none; z-index: auto; }
}
.gvsx-cart__after .gvsx-task__sheet { padding-block: var(--gvsx-s-6); text-align: center; }
.gvsx-cart__after .gvsx-trust { margin-bottom: 0.8rem; justify-content: center; }
.gvsx-cart__after a { color: var(--gvsx-accent-text); }
/* Carrinho estreito: com menos de 700px de largura o WooCommerce troca a grade das linhas (classes .is-medium/.is-small/
   .is-mobile e um @container), com regras mais específicas que as nossas — a linha virava "80px 132px" e o total caía em
   cima da descrição. Aqui a grade é redefinida com seletor mais forte: imagem | produto | total; no celular o total desce. */
.gvsx-cart .wc-block-cart:is(.is-medium, .is-small, .is-mobile) table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-items__row { grid-template-columns: 84px minmax(0, 1fr) auto; column-gap: 1rem; row-gap: 0.4rem; padding: 1rem; border-bottom: 1px solid var(--gvsx-glass-border); }
.gvsx-cart .wc-block-cart:is(.is-medium, .is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image { grid-column: 1; grid-row: 1; padding-right: 0; align-self: center; }
.gvsx-cart .wc-block-cart:is(.is-medium, .is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img { width: 84px; height: 84px; }
.gvsx-cart .wc-block-cart:is(.is-medium, .is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product { grid-column: 2; grid-row: 1; align-self: center; }
.gvsx-cart .wc-block-cart:is(.is-medium, .is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total { grid-column: 3; grid-row: 1; align-self: center; text-align: right; }
.gvsx-cart .wc-block-cart:is(.is-small, .is-mobile) table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-items__row { grid-template-columns: 72px minmax(0, 1fr); }
.gvsx-cart .wc-block-cart:is(.is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image { align-self: start; }
.gvsx-cart .wc-block-cart:is(.is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img { width: 72px; height: 72px; }
.gvsx-cart .wc-block-cart:is(.is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product { align-self: start; }
.gvsx-cart .wc-block-cart:is(.is-small, .is-mobile) table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total { grid-column: 2; grid-row: 2; text-align: left; }
@media (max-width: 781px) {
  .gvsx-progress li { padding: 0 8px; font-size: 0.72rem; }
  .gvsx-progress li + li::before { display: none; }
  .gvsx-cart .wc-block-cart .wc-block-cart__sidebar { padding: var(--gvsx-block-y) var(--gvsx-block-x); }
}


/* =====================================================================
   Checkout em 3 etapas e obrigado — HTML no plugin (GVSX_Checkout + templates/checkout/*, GVSX_Thankyou).
   Direção: a folha de compra do launcher. Uma folha só com as etapas, o resumo fixo ao lado, a trilha das etapas
   como uma linha contínua com a luz verde no agora. Sem a grade de blocos do resto do site.
   ===================================================================== */

/* ---- cabeçalho e rodapé enxutos (modelos page-checkout.html e order-confirmation.html) ---- */
.gvsx-cohead {
	position: relative; z-index: 2;
	display: grid !important;
	grid-template-columns: minmax(var(--gvsx-gutter-min), 1fr) minmax(0, var(--gvsx-board-max)) minmax(var(--gvsx-gutter-min), 1fr);
	column-gap: 1px;
	padding: 0 0 1px !important;
	background: var(--gvsx-rule);
}
.gvsx-cohead::before, .gvsx-cohead::after { content: ""; grid-row: 1; background-color: var(--gvsx-paper); background-image: var(--gvsx-stripes); }
.gvsx-cohead::before { grid-column: 1; border-radius: 0 0 var(--gvsx-radius-block) 0; }
.gvsx-cohead::after { grid-column: 3; border-radius: 0 0 0 var(--gvsx-radius-block); } /* fora do topo fixo: a cada etapa o plugin rola até a trilha menos 24px, e um cabeçalho fixo cobria os números */
.gvsx-cohead .gvsx-cohead__inner { grid-column: 2; grid-row: 1; max-width: none !important; margin: 0 !important; min-height: 64px; padding: 8px var(--gvsx-block-x); border-radius: 0 0 var(--gvsx-radius-block) var(--gvsx-radius-block); background: var(--gvsx-block); }
.gvsx-cohead__logo { margin: 0; }
.gvsx-cohead__logo img { height: 44px; width: auto; display: block; }
.gvsx-cohead__back, .gvsx-cohead__secure { display: inline-flex; align-items: center; gap: 8px; min-width: 120px; min-height: 44px; font-size: 0.88rem; font-weight: 600; color: var(--gvsx-text-3); text-decoration: none; }
@media (hover: hover) and (pointer: fine) { .gvsx-cohead__back:hover, .gvsx-cohead__account:hover { color: var(--gvsx-text); text-decoration: none; } }
.gvsx-cohead__secure { justify-content: flex-end; color: var(--gvsx-text-2); }
.gvsx-cohead__secure svg { color: var(--gvsx-accent-text); }
.gvsx-cofoot {
	display: grid !important;
	grid-template-columns: minmax(var(--gvsx-gutter-min), 1fr) minmax(0, var(--gvsx-board-max)) minmax(var(--gvsx-gutter-min), 1fr);
	grid-template-rows: var(--gvsx-spacer) auto;
	gap: 1px;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--gvsx-rule);
}
.gvsx-cofoot::before, .gvsx-cofoot::after { content: ""; grid-row: 2; background: var(--gvsx-paper); }
.gvsx-cofoot::before { grid-column: 1; border-radius: 0 var(--gvsx-radius-block) 0 0; }
.gvsx-cofoot::after { grid-column: 3; border-radius: var(--gvsx-radius-block) 0 0 0; }
.gvsx-cofoot .gvsx-cofoot__text { grid-column: 2; grid-row: 2; max-width: none !important; margin: 0 !important; padding: var(--gvsx-s-6) var(--gvsx-block-x) calc(var(--gvsx-s-6) + env(safe-area-inset-bottom, 0px)); border-radius: var(--gvsx-radius-block) var(--gvsx-radius-block) 0 0; background: var(--gvsx-block); font-size: 0.82rem; color: var(--gvsx-text-3); }
.gvsx-cofoot__text a { color: var(--gvsx-text-3); text-decoration: none; }
@media (hover: hover) and (pointer: fine) { .gvsx-cofoot__text a:hover { color: var(--gvsx-text); } }
body.woocommerce-checkout .gvsx-checkout { padding: 0 !important; }
body.woocommerce-checkout .gvsx-checkout .wp-block-post-title { display: none; }
body.woocommerce-checkout .gvsx-checkout .entry-content { max-width: 1120px; margin-inline: auto; }

/* ---- grade: a folha e o resumo ---- */
.gvsx-co { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--gvsx-s-6) var(--gvsx-s-8); align-items: start; }
.gvsx-co__main { min-width: 0; }
.gvsx-co__side { position: sticky; top: var(--gvsx-s-6); }
/* na grade: as duas colunas viram células separadas pelo fio; o resumo segue fixo dentro da própria célula */
body.woocommerce-checkout .gvsx-task .wp-block-post-content > .woocommerce { display: grid; gap: 1px; background: var(--gvsx-rule); }
body.woocommerce-checkout .gvsx-task .wp-block-post-content > .woocommerce > :not(.gvsx-co) { margin: 0; padding: var(--gvsx-s-5) var(--gvsx-block-x); background: var(--gvsx-block); }
body.woocommerce-checkout .gvsx-task .wp-block-post-content > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.gvsx-task .gvsx-co { grid-template-columns: minmax(0, 1fr) 380px; gap: 1px; align-items: stretch; background: var(--gvsx-rule); }
.gvsx-task .gvsx-co__main { padding: var(--gvsx-block-y) var(--gvsx-block-x); background: var(--gvsx-block); }
.gvsx-task .gvsx-co__side { position: static; padding: var(--gvsx-block-y) var(--gvsx-s-7); background: var(--gvsx-block); }
.gvsx-task .gvsx-co__sidebody { position: sticky; top: var(--gvsx-s-6); padding: 0; border: 0; border-radius: 0; background: none; }
/* a célula já é a folha: a etapa aberta perde a moldura de card; o pagamento se separa dos itens por um fio */
.gvsx-task .gvsx-co__card:not(.gvsx-co__pixcard) { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.gvsx-task #payment .gvsx-co__card { margin-top: var(--gvsx-s-6); padding-top: var(--gvsx-s-6); border-top: 1px solid var(--gvsx-line); }
.gvsx-task .gvsx-co__done { background: var(--gvsx-bg-2); }
/* véu do WooCommerce enquanto processa: da cor do fundo, não branco */
.gvsx-co .blockUI.blockOverlay { background: rgb(var(--gvsx-bg-rgb) / 0.55) !important; opacity: 1 !important; border-radius: var(--gvsx-radius-l); }

/* ---- trilha das etapas: três paradas numa linha contínua; a luz verde fica no agora ----
   O JS do plugin marca .is-current/.is-done e dá à barra a largura de n/3; o número de cada etapa fica no fim da
   sua terça parte, então a luz na ponta da barra cai sempre sobre a etapa atual. */
.gvsx-co__top { margin-bottom: var(--gvsx-s-6); }
.gvsx-co__progress { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gvsx-co__progress li { display: flex; flex-direction: row-reverse; justify-content: flex-start; align-items: center; gap: var(--gvsx-s-2); min-width: 0; font-size: 0.86rem; font-weight: 600; color: var(--gvsx-text-3); white-space: nowrap; transition: color var(--gvsx-dur-3) var(--gvsx-ease-out); }
.gvsx-co__progress li span { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--gvsx-line-strong); background: var(--gvsx-surface); font-family: var(--gvsx-font-mono); font-size: 0.8rem; font-weight: 600; color: var(--gvsx-text-3); transition: background-color var(--gvsx-dur-3) var(--gvsx-ease-out), border-color var(--gvsx-dur-3) var(--gvsx-ease-out), color var(--gvsx-dur-3) var(--gvsx-ease-out); }
.gvsx-co__progress li.is-current { color: var(--gvsx-text); }
.gvsx-co__progress li.is-current span { background: var(--gvsx-accent); border-color: var(--gvsx-accent); color: var(--gvsx-accent-ink); }
.gvsx-co__progress li.is-done { color: var(--gvsx-text-2); }
.gvsx-co__progress li.is-done span { font-size: 0; background: var(--gvsx-accent-soft); border-color: rgb(var(--gvsx-glow-rgb) / 0.4); }
.gvsx-co__progress li.is-done span::after { content: ""; width: 13px; height: 13px; background-color: var(--gvsx-accent-text); -webkit-mask: var(--gvsx-check) center / contain no-repeat; mask: var(--gvsx-check) center / contain no-repeat; }
.gvsx-co { --gvsx-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.gvsx-co__bar { position: relative; height: 2px; margin: 12px 13px var(--gvsx-s-6) 0; border-radius: 2px; background: var(--gvsx-line-strong); }
.gvsx-co__bar i { position: relative; display: block; height: 100%; border-radius: inherit; background: var(--gvsx-accent); transition: width 0.55s var(--gvsx-ease-out); }
.gvsx-co__bar i::after { content: ""; position: absolute; right: -5px; top: 50%; width: 10px; height: 10px; margin-top: -5px; border-radius: 50%; background: var(--gvsx-accent); box-shadow: 0 0 0 4px var(--gvsx-accent-soft); }
.gvsx-co__headline { margin: 0 0 var(--gvsx-s-2); font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 650; font-size: 1.75rem; letter-spacing: -0.02em; line-height: 1.15; color: var(--gvsx-text); text-wrap: balance; }
.gvsx-co__headline b { font-weight: 900; color: var(--gvsx-text); }
.gvsx-co__sub { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--gvsx-text-2); max-width: 60ch; }

/* ---- pagamento expresso (Stripe): só na etapa 1 ---- */
.gvsx-co__express { margin: 0 0 var(--gvsx-s-4); }
.gvsx-co__express:empty { display: none; }
.gvsx-co:not([data-step="1"]) .gvsx-co__express, .gvsx-co.is-paying .gvsx-co__express { display: none; }

/* ---- a folha: uma etapa por vez; as feitas viram linhas numeradas com "Editar" ---- */
.gvsx-co__step { margin: 0 0 var(--gvsx-s-3); }
.gvsx-co__step[hidden] { display: none; }
.gvsx-co__step.is-enter .gvsx-co__card { animation: gvsx-co-in 0.26s var(--gvsx-ease-out) both; }
@keyframes gvsx-co-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.gvsx-co__card { position: relative; padding: var(--gvsx-s-7); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-l); background: var(--gvsx-surface); box-shadow: var(--gvsx-shadow-1); }
.gvsx-co__step.is-done .gvsx-co__card { display: none; }
.gvsx-co__done { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: var(--gvsx-s-3); padding: var(--gvsx-s-3) var(--gvsx-s-3) var(--gvsx-s-3) var(--gvsx-s-4); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-l); background: var(--gvsx-bg-2); animation: gvsx-co-in 0.22s var(--gvsx-ease-out) both; }
.gvsx-co__donecheck { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font-size: 0; background: var(--gvsx-accent-soft); border: 1px solid rgb(var(--gvsx-glow-rgb) / 0.4); }
.gvsx-co__donecheck::after { content: ""; width: 13px; height: 13px; background-color: var(--gvsx-accent-text); -webkit-mask: var(--gvsx-check) center / contain no-repeat; mask: var(--gvsx-check) center / contain no-repeat; }
.gvsx-co__donetext { min-width: 0; font-size: 0.9rem; line-height: 1.4; color: var(--gvsx-text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gvsx-co__donetext b { margin-right: var(--gvsx-s-2); font-weight: 600; color: var(--gvsx-text); }
.gvsx-co__edit { min-height: 40px; padding: 0 var(--gvsx-s-3); border: 0; border-radius: var(--gvsx-radius-m); background: none; font: inherit; font-size: 0.88rem; font-weight: 600; color: var(--gvsx-accent-text); cursor: pointer; }
@media (hover: hover) and (pointer: fine) { .gvsx-co__edit:hover { background: rgb(var(--gvsx-fg-rgb) / 0.05); } }

/* ---- a conversa: mantida, mais discreta (balão neutro, sem verde no texto) ---- */
.gvsx-co__ask { display: flex; align-items: flex-start; gap: var(--gvsx-s-3); margin: 0 0 var(--gvsx-s-5); }
.gvsx-co__ask p { margin: 0; padding: var(--gvsx-s-3) var(--gvsx-s-4); border: 1px solid var(--gvsx-line); border-radius: 4px var(--gvsx-radius-l) var(--gvsx-radius-l) var(--gvsx-radius-l); background: var(--gvsx-surface-2); font-size: 1rem; line-height: 1.5; color: var(--gvsx-text); }
.gvsx-co__ask b { font-weight: 600; color: var(--gvsx-text); }
.gvsx-co__avatar { flex: none; width: 36px; height: 36px; border-radius: 8px; display: grid; place-items: center; background: var(--gvsx-accent); color: var(--gvsx-accent-ink); font-family: var(--gvsx-font-display); font-weight: 800; font-size: 1rem; }
.gvsx-co__avatar--logo { background: none; object-fit: cover; }
.gvsx-co__hint { margin: calc(-1 * var(--gvsx-s-2)) 0 var(--gvsx-s-5) calc(36px + var(--gvsx-s-3)); font-size: 0.88rem; line-height: 1.5; color: var(--gvsx-text-3); }
.gvsx-co__hint a { color: var(--gvsx-accent-text); font-weight: 600; }
.gvsx-co__trust { display: flex; align-items: center; justify-content: center; gap: 6px; margin: var(--gvsx-s-4) 0 0; font-size: 0.84rem; line-height: 1.45; color: var(--gvsx-text-3); text-align: center; }
.gvsx-co__trust svg { flex: none; width: 15px; height: 15px; color: var(--gvsx-accent-text); }

/* ---- campos (marcação do WooCommerce: p.form-row > label + span.woocommerce-input-wrapper > input) ---- */
.gvsx-co__fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gvsx-s-4); }
body.woocommerce-checkout .gvsx-co .gvsx-co__fields .form-row { grid-column: 1 / -1; position: relative; float: none; width: auto; margin: 0; padding: 0; overflow: visible; }
body.woocommerce-checkout .gvsx-co .gvsx-co__fields .form-row-first, body.woocommerce-checkout .gvsx-co .gvsx-co__fields .form-row-last { grid-column: auto; }
body.woocommerce-checkout .gvsx-co .gvsx-co__fields .form-row.gvsx-co__hidden { display: none; }
body.woocommerce-checkout .gvsx-co .gvsx-co__fields label { display: block; margin: 0 0 0.4rem; font-size: 0.85rem; font-weight: 500; line-height: 1.4; color: var(--gvsx-text-2); }
body.woocommerce-checkout .gvsx-co .gvsx-co__fields label .required { color: var(--gvsx-text-3); text-decoration: none; }
body.woocommerce-checkout .gvsx-co .gvsx-co__fields label .optional { font-size: 0.8rem; font-weight: 400; color: var(--gvsx-text-3); }
body.woocommerce-checkout .gvsx-co .gvsx-co__fields .form-row.woocommerce-invalid label { color: var(--gvsx-danger); }
body.woocommerce-checkout .gvsx-co .form-row.woocommerce-invalid input.input-text, body.woocommerce-checkout .gvsx-co .form-row.woocommerce-invalid select { border-color: rgb(var(--gvsx-danger-rgb) / 0.8) !important; }
.gvsx-co__fields .woocommerce-input-wrapper { display: block; }
body.woocommerce-checkout .gvsx-co .select2-container { width: 100% !important; }
body.woocommerce-checkout .gvsx-co .select2-container .select2-selection--single { display: flex; align-items: center; height: auto; min-height: 52px; padding: 0 1rem; border-radius: var(--gvsx-radius-m); background: var(--gvsx-surface) !important; border: 1px solid var(--gvsx-line-strong) !important; }
body.woocommerce-checkout .gvsx-co .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--gvsx-text); }
body.woocommerce-checkout .gvsx-co .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 10px; }
.select2-container--default .select2-dropdown { border-color: var(--gvsx-line-strong); border-radius: var(--gvsx-radius-m); background: var(--gvsx-surface); color: var(--gvsx-text); overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--gvsx-accent); color: var(--gvsx-accent-ink); }
.select2-container--default .select2-search--dropdown .select2-search__field { min-height: 40px; border-radius: 8px; }
.gvsx-co__fieldhint { grid-column: 1 / -1; margin: calc(-1 * var(--gvsx-s-2)) 0 0; font-size: 0.82rem; line-height: 1.45; color: var(--gvsx-text-3); }
.gvsx-co__err, .gvsx-co .checkout-inline-error-message { display: block; margin: 0.4rem 0 0; font-size: 0.84rem; color: var(--gvsx-danger); }
.gvsx-co .form-row.woocommerce-invalid .gvsx-co__err + .checkout-inline-error-message { display: none; }
.gvsx-co .woocommerce-account-fields { margin-top: var(--gvsx-s-4); }
.gvsx-co .woocommerce-account-fields .form-row { margin: 0 0 var(--gvsx-s-4); }

/* ---- navegação entre etapas ---- */
.gvsx-co__next { width: 100%; min-height: 56px; margin-top: var(--gvsx-s-6); font-size: 1rem; text-transform: none; letter-spacing: 0; }
.gvsx-co__nav { display: flex; align-items: center; gap: var(--gvsx-s-4); margin-top: var(--gvsx-s-6); }
.gvsx-co__nav .gvsx-co__next { flex: 1; margin-top: 0; }
.gvsx-co__back { min-height: 44px; padding: 0 var(--gvsx-s-2); border: 0; background: none; font: inherit; font-size: 0.9rem; font-weight: 600; color: var(--gvsx-text-3); white-space: nowrap; cursor: pointer; }
@media (hover: hover) and (pointer: fine) { .gvsx-co__back:hover { color: var(--gvsx-text); } }
.gvsx-co__navback { margin: var(--gvsx-s-2) 0 0; }

/* ---- avisos do WooCommerce dentro do fluxo ---- */
.gvsx-co .woocommerce-NoticeGroup { margin: 0 0 var(--gvsx-s-4); }
.gvsx-co .woocommerce-error, .gvsx-co .woocommerce-message, .gvsx-co .woocommerce-info,
.gvsx-checkout .woocommerce-notices-wrapper .woocommerce-error, .gvsx-checkout .woocommerce-notices-wrapper .woocommerce-message, .gvsx-checkout .woocommerce-notices-wrapper .woocommerce-info { list-style: none; margin: 0 0 var(--gvsx-s-4); padding: var(--gvsx-s-3) var(--gvsx-s-4); border: 1px solid; border-radius: var(--gvsx-radius-m); font-size: 0.92rem; line-height: 1.5; }
.gvsx-co .woocommerce-error, .gvsx-checkout .woocommerce-notices-wrapper .woocommerce-error { color: var(--gvsx-text); background: var(--gvsx-danger-soft); border-color: rgb(var(--gvsx-danger-rgb) / 0.45); }
.gvsx-co .woocommerce-message, .gvsx-checkout .woocommerce-notices-wrapper .woocommerce-message { color: var(--gvsx-text); background: var(--gvsx-accent-soft); border-color: rgb(var(--gvsx-glow-rgb) / 0.35); }
.gvsx-co .woocommerce-info, .gvsx-checkout .woocommerce-notices-wrapper .woocommerce-info { color: var(--gvsx-text); background: var(--gvsx-info-soft); border-color: rgb(var(--gvsx-info-rgb) / 0.4); }
.gvsx-co .woocommerce-error li { margin: 0 0 0.35rem; }
.gvsx-co .woocommerce-error li:last-child { margin-bottom: 0; }
.gvsx-co .woocommerce-error a, .gvsx-co .woocommerce-message a { color: var(--gvsx-accent-text); }
.gvsx-co .woocommerce-error::before, .gvsx-co .woocommerce-message::before, .gvsx-co .woocommerce-info::before,
.gvsx-checkout .woocommerce-notices-wrapper .woocommerce-error::before, .gvsx-checkout .woocommerce-notices-wrapper .woocommerce-message::before, .gvsx-checkout .woocommerce-notices-wrapper .woocommerce-info::before { display: none; }
.gvsx-checkout .woocommerce-notices-wrapper .woocommerce-message a.button { float: none; display: inline; margin: 0 0.5rem 0 0; padding: 0; min-height: 0; border: 0; background: none; box-shadow: none; font: inherit; font-weight: 600; color: var(--gvsx-accent-text); text-decoration: underline; text-underline-offset: 3px; }

/* ---- etapa 3: itens, oferta, cupom e totais ---- */
.gvsx-co__label { margin: 0 0 var(--gvsx-s-4); font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; text-transform: none; color: var(--gvsx-text); }
.gvsx-co__review { margin: 0 0 var(--gvsx-s-3); }
.gvsx-co__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gvsx-s-3); }
.gvsx-co__item { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: var(--gvsx-s-4); align-items: center; }
.gvsx-co__thumb img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--gvsx-radius-m); display: block; }
.gvsx-co__itembody { min-width: 0; }
.gvsx-co__itemname { display: block; font-weight: 600; line-height: 1.35; color: var(--gvsx-text); }
.gvsx-co__itemmeta { display: block; margin-top: 0.15rem; font-size: 0.84rem; color: var(--gvsx-text-3); }
.gvsx-co__item .variation, .gvsx-co__item dl { margin: 0.2rem 0 0; font-size: 0.84rem; color: var(--gvsx-text-3); }
.gvsx-co__remove { margin-top: 0.2rem; padding: 0; border: 0; background: none; font: inherit; font-size: 0.82rem; color: var(--gvsx-text-3); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
@media (hover: hover) and (pointer: fine) { .gvsx-co__remove:hover { color: var(--gvsx-danger); } }
.gvsx-co__itemtotal { font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--gvsx-text); white-space: nowrap; }
.gvsx-co__coupon { margin: var(--gvsx-s-4) 0 0; padding-top: var(--gvsx-s-4); border-top: 1px solid var(--gvsx-line); }
.gvsx-co__couponopen { min-height: 40px; padding: 0; border: 0; background: none; font: inherit; font-size: 0.9rem; color: var(--gvsx-text-3); cursor: pointer; }
.gvsx-co__couponopen span { margin-left: 4px; font-weight: 600; color: var(--gvsx-accent-text); }
.gvsx-co__couponform { display: flex; gap: var(--gvsx-s-2); }
.gvsx-co__couponform[hidden] { display: none; }
body.woocommerce-checkout .gvsx-co .gvsx-co__couponform input.input-text { min-height: 48px; font-family: var(--gvsx-font-mono); text-transform: uppercase; }
.gvsx-co__couponform .gvsx-btn { flex: none; min-height: 48px; }
.gvsx-co__couponok { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--gvsx-s-4); font-size: 0.9rem; color: var(--gvsx-text-2); }
.gvsx-co__couponok span { display: inline-flex; align-items: center; gap: 6px; }
.gvsx-co__couponok b { font-family: var(--gvsx-font-mono); font-weight: 600; color: var(--gvsx-text); }
.gvsx-co__couponok svg { width: 16px; height: 16px; color: var(--gvsx-accent-text); }
.gvsx-co__couponremove { padding: 0; border: 0; background: none; font: inherit; font-size: 0.84rem; color: var(--gvsx-text-3); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.gvsx-co__couponmsg { margin: 0.45rem 0 0; font-size: 0.84rem; color: var(--gvsx-danger); }
.gvsx-co__couponmsg.is-ok { color: var(--gvsx-accent-text); }
.gvsx-co__couponmsg:empty { display: none; }
.gvsx-co__totals { margin: var(--gvsx-s-4) 0 0; padding-top: var(--gvsx-s-4); border-top: 1px solid var(--gvsx-line); display: grid; gap: var(--gvsx-s-2); }
.gvsx-co__totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--gvsx-s-4); font-size: 0.92rem; color: var(--gvsx-text-3); }
.gvsx-co__totals dt, .gvsx-co__totals dd { margin: 0; }
.gvsx-co__totals dd { font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--gvsx-text); }
.gvsx-co__total { margin-top: var(--gvsx-s-1); padding-top: var(--gvsx-s-3); border-top: 1px solid var(--gvsx-line); }
.gvsx-co__total dt { font-weight: 700; color: var(--gvsx-text); }
.gvsx-co__total dd { font-size: 1.35rem; }
.gvsx-co__totals .includes_tax, .gvsx-co__totals small { font-family: var(--gvsx-font-text); font-size: 0.78rem; font-weight: 500; color: var(--gvsx-text-3); }

/* ---- oferta da Instalação Remota (checkbox) — carrinho e checkout: o complemento tem borda tracejada, como na loja ---- */
.gvsx-bump { position: relative; display: grid; grid-template-columns: 24px 56px minmax(0, 1fr); align-items: center; gap: var(--gvsx-s-4); margin: var(--gvsx-s-4) 0 0; padding: var(--gvsx-s-4); border: 1px dashed var(--gvsx-line-strong); border-radius: var(--gvsx-radius-l); background: var(--gvsx-bg-2); cursor: pointer; transition: border-color var(--gvsx-dur-2) var(--gvsx-ease-out), background-color var(--gvsx-dur-2) var(--gvsx-ease-out); }
@media (hover: hover) and (pointer: fine) { .gvsx-bump:hover { border-color: var(--gvsx-text-3); } }
.gvsx-bump.is-checked { border-style: solid; border-color: rgb(var(--gvsx-glow-rgb) / 0.6); background: var(--gvsx-accent-soft); }
.gvsx-bump[hidden] { display: none; }
.gvsx-bump__check { position: relative; width: 24px; height: 24px; }
.gvsx-bump__check input { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; opacity: 0; cursor: pointer; }
.gvsx-bump__check i { position: absolute; inset: 0; border: 1.5px solid var(--gvsx-text-3); border-radius: 6px; background: var(--gvsx-surface); transition: background-color var(--gvsx-dur-2) var(--gvsx-ease-out), border-color var(--gvsx-dur-2) var(--gvsx-ease-out); }
.gvsx-bump__check i::after { content: ""; position: absolute; inset: 4px; background-color: var(--gvsx-accent-ink); -webkit-mask: var(--gvsx-check) center / contain no-repeat; mask: var(--gvsx-check) center / contain no-repeat; transform: scale(0); transition: transform var(--gvsx-dur-2) var(--gvsx-ease-out); }
.gvsx-bump { --gvsx-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.gvsx-bump__check input:checked + i { background: var(--gvsx-accent); border-color: var(--gvsx-accent); }
.gvsx-bump__check input:checked + i::after { transform: scale(1); }
.gvsx-bump__check input:focus-visible + i { outline: 2px solid var(--gvsx-accent); outline-offset: 3px; }
.gvsx-bump__check input:disabled + i { opacity: 0.6; }
.gvsx-bump__media { display: grid; place-items: center; width: 56px; height: 56px; border-radius: var(--gvsx-radius-m); overflow: hidden; background: var(--gvsx-surface-2); border: 1px solid var(--gvsx-line); }
.gvsx-bump__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gvsx-bump__media:has(img.woocommerce-placeholder) img { display: none; }
.gvsx-bump__media:has(img.woocommerce-placeholder)::before { content: ""; width: 26px; height: 26px; background-color: var(--gvsx-text-2); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E") center / contain no-repeat; }
.gvsx-bump__body { min-width: 0; display: block; }
.gvsx-bump__kicker { display: block; margin: 0 0 0.2rem; font-size: 0.86rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--gvsx-text-2); }
.gvsx-bump__title { display: block; font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 700; font-size: 1rem; letter-spacing: -0.01em; line-height: 1.3; color: var(--gvsx-text); }
.gvsx-bump__price { margin-left: 6px; font-family: var(--gvsx-font-mono); font-weight: 600; color: var(--gvsx-text); white-space: nowrap; }
.gvsx-bump__text { display: block; margin-top: 0.3rem; font-size: 0.86rem; line-height: 1.5; color: var(--gvsx-text-3); }
.gvsx-bump__state { display: block; margin-top: 0.4rem; font-size: 0.84rem; font-weight: 600; }
.gvsx-bump__on { display: none; color: var(--gvsx-accent-text); }
.gvsx-bump__off { color: var(--gvsx-text-3); }
.gvsx-bump.is-checked .gvsx-bump__on { display: inline; }
.gvsx-bump.is-checked .gvsx-bump__off { display: none; }
.gvsx-bump__msg { display: block; font-size: 0.84rem; color: var(--gvsx-danger); }
.gvsx-bump__msg:empty { display: none; }
.gvsx-co .gvsx-bump { margin: var(--gvsx-s-4) 0 0; padding: var(--gvsx-s-4) 0 0; border: 0; border-top: 1px solid var(--gvsx-line); border-radius: 0; background: none; }
.gvsx-co .gvsx-bump.is-checked { border-color: var(--gvsx-line); background: none; }
@media (hover: hover) and (pointer: fine) { .gvsx-co .gvsx-bump:hover { border-color: var(--gvsx-line); } .gvsx-co .gvsx-bump:hover .gvsx-bump__check i { border-color: var(--gvsx-text-2); } }

/* ---- etapa 3: formas de pagamento ---- */
.gvsx-co__payment { margin: 0; }
body.woocommerce-checkout #payment.gvsx-co__payment { background: transparent; border-radius: 0; }
body.woocommerce-checkout #payment.gvsx-co__payment ul.payment_methods { margin: 0 0 var(--gvsx-s-5); padding: 0; border: 0; }
body.woocommerce-checkout #payment.gvsx-co__payment ul.payment_methods li { margin: 0; padding: 0; border: 0; line-height: 1.4; text-align: left; }
body.woocommerce-checkout #payment.gvsx-co__payment div.form-row { margin: 0; padding: 0; }
/* fundo opaco de propósito: a Stripe lê a cor de fundo do .payment_box para desenhar o formulário do cartão */
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box { position: relative; width: 100%; margin: var(--gvsx-s-2) 0 0; padding: var(--gvsx-s-4); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-m); background: var(--gvsx-surface-2); font-size: 0.9rem; line-height: 1.5; color: var(--gvsx-text-2); }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box::before { display: none; content: none; }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box img.logo { display: none; }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box .woocommerce-SavedPaymentMethods[data-count="0"] .woocommerce-SavedPaymentMethods-new { display: none; }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box .wc-credit-card-form, body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box fieldset { margin: 0; padding: 0; border: 0; }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box .form-row { margin: 0 0 var(--gvsx-s-3); padding: 0; }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box p { margin: 0 0 var(--gvsx-s-2); }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box p:last-child { margin-bottom: 0; }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box #wcmp-checkout-errors ul:empty { display: none; }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box .woocommerce-SavedPaymentMethods { list-style: none; margin: 0 0 var(--gvsx-s-2); padding: 0; display: grid; gap: var(--gvsx-s-2); }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box .woocommerce-SavedPaymentMethods li { display: flex; align-items: center; gap: var(--gvsx-s-3); padding: var(--gvsx-s-2) var(--gvsx-s-3); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-m); color: var(--gvsx-text); }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box .woocommerce-SavedPaymentMethods input[type="radio"] { margin: 0; min-height: 0; accent-color: var(--gvsx-accent); }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box label { font-size: 0.85rem; color: var(--gvsx-text-2); }
body.woocommerce-checkout #payment.gvsx-co__payment div.payment_box .wc-stripe-payment-method-instruction { margin: 0 0 var(--gvsx-s-3); font-size: 0.84rem; }
.gvsx-co__methods { list-style: none; margin: 0 0 var(--gvsx-s-5); padding: 0; display: grid; gap: 0; }
.gvsx-co__method { position: relative; margin: 0; padding: 0; }
body.woocommerce-checkout #payment.gvsx-co__payment ul.payment_methods li.gvsx-co__method { padding: 6px 0; }
body.woocommerce-checkout #payment.gvsx-co__payment ul.payment_methods li.gvsx-co__method + li.gvsx-co__method { border-top: 1px solid var(--gvsx-line); }
.gvsx-co__method > input[type="radio"] { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; opacity: 0; pointer-events: none; }
.gvsx-co__methodlabel { display: grid; grid-template-columns: 44px minmax(0, 1fr) 22px; align-items: center; gap: var(--gvsx-s-4); padding: var(--gvsx-s-3); border: 0; border-radius: var(--gvsx-radius-m); background: transparent; cursor: pointer; transition: background-color var(--gvsx-dur-2) var(--gvsx-ease-out); }
@media (hover: hover) and (pointer: fine) { .gvsx-co__methodlabel:hover { background: rgb(var(--gvsx-fg-rgb) / 0.04); } }
.gvsx-co__method > input:checked + .gvsx-co__methodlabel { background: var(--gvsx-surface-2); }
.gvsx-co__method > input:focus-visible + .gvsx-co__methodlabel { outline: 2px solid var(--gvsx-accent); outline-offset: 3px; }
.gvsx-co__methodicon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--gvsx-radius-m); border: 1px solid var(--gvsx-line); background: transparent; color: var(--gvsx-text-2); transition: color var(--gvsx-dur-2) var(--gvsx-ease-out); }
.gvsx-co__methodicon svg { width: 22px; height: 22px; }
.gvsx-co__method > input:checked + .gvsx-co__methodlabel .gvsx-co__methodicon { color: var(--gvsx-accent-text); }
.gvsx-co__methodtext { min-width: 0; }
.gvsx-co__methodtitle { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gvsx-s-2); font-weight: 600; line-height: 1.3; color: var(--gvsx-text); }
.gvsx-co__methodtitle img { display: none; }
.gvsx-co__methodbadge { display: inline-flex; align-items: center; padding: 0.25rem 0.45rem; border: 1px solid rgb(var(--gvsx-glow-rgb) / 0.35); border-radius: var(--gvsx-radius-s); background: var(--gvsx-accent-soft); color: var(--gvsx-accent-text); font-family: var(--gvsx-font-display); font-stretch: 85%; font-style: normal; font-weight: 700; font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1; }
.gvsx-co__methodsub { display: block; margin-top: 0.2rem; font-size: 0.84rem; line-height: 1.4; color: var(--gvsx-text-3); }
.gvsx-co__methodradio { position: relative; width: 22px; height: 22px; border: 1.5px solid var(--gvsx-text-3); border-radius: 50%; transition: border-color var(--gvsx-dur-2) var(--gvsx-ease-out); }
.gvsx-co__method > input:checked + .gvsx-co__methodlabel .gvsx-co__methodradio { border-color: var(--gvsx-accent); }
.gvsx-co__method > input:checked + .gvsx-co__methodlabel .gvsx-co__methodradio::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--gvsx-accent); }
.gvsx-co__free { margin: 0 0 var(--gvsx-s-4); font-size: 0.98rem; color: var(--gvsx-text); }
.gvsx-co__free b { font-weight: 700; color: var(--gvsx-text); }
body.woocommerce-checkout #payment.gvsx-co__payment div.form-row.gvsx-co__place { display: block; margin: 0; padding: 0; } /* o WooCommerce flutua o botão (#place_order float right); com ele em 100%, a linha de confiança ficava com largura zero */
.gvsx-co .woocommerce-terms-and-conditions-wrapper { margin: 0 0 var(--gvsx-s-4); }
.gvsx-co .woocommerce-privacy-policy-text p, .gvsx-co .gvsx-co__terms, .gvsx-co .woocommerce-terms-and-conditions-checkbox-text { font-size: 0.84rem; line-height: 1.5; color: var(--gvsx-text-3); }
.gvsx-co .woocommerce-privacy-policy-text p, .gvsx-co .gvsx-co__terms { margin: 0 0 var(--gvsx-s-2); }
.gvsx-co .woocommerce-privacy-policy-text a, .gvsx-co .gvsx-co__terms a, .gvsx-co .woocommerce-terms-and-conditions-checkbox-text a { color: var(--gvsx-text-2); text-decoration: underline; text-underline-offset: 3px; }
.gvsx-co .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; padding: 0; }
.gvsx-co .woocommerce-terms-and-conditions-wrapper .checkbox { display: flex; align-items: flex-start; gap: var(--gvsx-s-3); font-size: 0.88rem; color: var(--gvsx-text-2); cursor: pointer; }
.gvsx-co .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { flex: none; width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; accent-color: var(--gvsx-accent); }
.gvsx-co .woocommerce-terms-and-conditions-wrapper .woocommerce-invalid .checkbox { color: var(--gvsx-danger); }
body.woocommerce-checkout .gvsx-co #place_order { float: none; display: flex; align-items: center; justify-content: center; gap: var(--gvsx-s-3); width: 100%; min-height: 56px; margin: var(--gvsx-s-2) 0 0; padding: 0 var(--gvsx-s-6); border: 0; border-radius: var(--gvsx-radius-m); background: var(--gvsx-accent) !important; color: var(--gvsx-accent-ink) !important; box-shadow: var(--gvsx-shadow-cta); font-family: var(--gvsx-font-text); font-size: 1.02rem; font-weight: 600; letter-spacing: 0; text-transform: none; font-variant-numeric: tabular-nums; cursor: pointer; transition: transform var(--gvsx-dur-1) var(--gvsx-ease-out), background-color var(--gvsx-dur-2) var(--gvsx-ease-out); }
@media (hover: hover) and (pointer: fine) { body.woocommerce-checkout .gvsx-co #place_order:hover { background: var(--gvsx-accent-hover) !important; transform: translateY(-1px); } }
body.woocommerce-checkout .gvsx-co #place_order:active { transform: scale(0.98); }
body.woocommerce-checkout #payment #place_order { float: none; } /* o WooCommerce flutua o botão com dois IDs (.woocommerce-checkout #payment #place_order) */
body.woocommerce-checkout .gvsx-co .gvsx-co__trust--pay { clear: both; }
body.woocommerce-checkout .gvsx-co #place_order::before { content: ""; flex: none; width: 18px; height: 18px; background-color: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat; }
.gvsx-co .place-order noscript { display: block; margin-bottom: var(--gvsx-s-3); font-size: 0.84rem; color: var(--gvsx-text-3); }

/* ---- resumo fixo ao lado ---- */
.gvsx-co__sidetoggle { display: none; }
.gvsx-co__sidebody { padding: var(--gvsx-s-6); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-l); background: var(--gvsx-bg-2); }
.gvsx-co__sidetitle { margin: 0 0 var(--gvsx-s-4); font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; color: var(--gvsx-text); }
.gvsx-co__sideitems { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gvsx-s-3); }
.gvsx-co__sideitems li { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: var(--gvsx-s-3); align-items: center; font-size: 0.88rem; line-height: 1.35; color: var(--gvsx-text); }
.gvsx-co__sideitems img { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; display: block; }
.gvsx-co__sideitems b { font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--gvsx-text); white-space: nowrap; }
.gvsx-co__sidetotals { margin: var(--gvsx-s-4) 0 0; padding-top: var(--gvsx-s-4); border-top: 1px solid var(--gvsx-line); display: grid; gap: var(--gvsx-s-2); }
.gvsx-co__sidetotals > div { display: flex; justify-content: space-between; gap: var(--gvsx-s-4); font-size: 0.88rem; color: var(--gvsx-text-3); }
.gvsx-co__sidetotals dt, .gvsx-co__sidetotals dd { margin: 0; }
.gvsx-co__sidetotals dd { font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--gvsx-text); }
.gvsx-co__sidetotals > div.is-total { margin-top: var(--gvsx-s-1); padding-top: var(--gvsx-s-3); border-top: 1px solid var(--gvsx-line); }
.gvsx-co__sidetotals > div.is-total dt { font-weight: 700; color: var(--gvsx-text); }
.gvsx-co__sidetotals > div.is-total dd { font-size: 1.3rem; }
.gvsx-co__sidetrust { display: grid; justify-content: start; gap: var(--gvsx-s-2); margin: var(--gvsx-s-5) 0 0; padding-top: var(--gvsx-s-4); border-top: 1px solid var(--gvsx-line); }
.gvsx-co__sidetrust li { font-size: 0.86rem; }
.gvsx-co__sideback { margin: var(--gvsx-s-4) 0 0; font-size: 0.86rem; }
.gvsx-co__sideback a { color: var(--gvsx-text-3); text-decoration: none; }
@media (hover: hover) and (pointer: fine) { .gvsx-co__sideback a:hover { color: var(--gvsx-text); } }
/* na etapa 3 o resumo ao lado já mostra itens e totais: na folha ficam só a oferta e o cupom (desktop) */
@media (min-width: 961px) {
	.gvsx-co[data-step="3"] .gvsx-co__items > .gvsx-co__label,
	.gvsx-co[data-step="3"] .gvsx-co__items > .gvsx-co__list,
	.gvsx-co[data-step="3"] .gvsx-co__items > .gvsx-co__totals { display: none; }
	.gvsx-co[data-step="3"] .gvsx-co__items > .gvsx-bump { margin-top: 0; padding-top: 0; border-top: 0; }
}

/* ---- Pix e boleto na própria página (depois do "Finalizar pedido") ---- */
.gvsx-co__pay[hidden] { display: none; }
.gvsx-co__pixcard { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--gvsx-s-6) var(--gvsx-s-7); align-items: start; border-color: rgb(var(--gvsx-warn-rgb) / 0.45); animation: gvsx-co-in 0.3s var(--gvsx-ease-out) both; }
.gvsx-co__qr { padding: 12px; border-radius: var(--gvsx-radius-l); background: #fff; line-height: 0; justify-self: center; box-shadow: var(--gvsx-shadow-2); }
.gvsx-co__qr img { width: 200px; height: 200px; display: block; image-rendering: pixelated; }
.gvsx-co__paybody { min-width: 0; }
.gvsx-co__paybody--wide { grid-column: 1 / -1; }
.gvsx-co__paybody h3 { margin: 0 0 var(--gvsx-s-3); font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 800; font-size: 1.25rem; letter-spacing: -0.02em; color: var(--gvsx-text); }
.gvsx-co__paybody h3 b { font-family: var(--gvsx-font-mono); font-weight: 700; color: var(--gvsx-text); }
.gvsx-co__steps3 { margin: 0 0 var(--gvsx-s-4); padding-left: 1.2rem; display: grid; gap: 0.35rem; font-size: 0.92rem; line-height: 1.5; color: var(--gvsx-text-2); }
.gvsx-co__steps3 b { font-weight: 600; color: var(--gvsx-text); }
.gvsx-co__copy { display: flex; flex-wrap: wrap; gap: var(--gvsx-s-2); margin: 0 0 var(--gvsx-s-4); }
body.woocommerce-checkout .gvsx-co .gvsx-co__copy input.input-text { flex: 1 1 220px; min-height: 48px; font-family: var(--gvsx-font-mono); font-size: 0.85rem; color: var(--gvsx-text-2) !important; background: var(--gvsx-bg-2) !important; }
.gvsx-co__copy .gvsx-btn { min-height: 48px; }
.gvsx-co__copy .gvsx-btn.is-done { background: var(--gvsx-accent-soft); color: var(--gvsx-accent-text); border-color: rgb(var(--gvsx-glow-rgb) / 0.4); box-shadow: none; }
.gvsx-co__deadline { margin: 0 0 var(--gvsx-s-2); font-size: 0.88rem; color: var(--gvsx-text-3); }
.gvsx-co__deadline b { font-family: var(--gvsx-font-mono); font-weight: 600; color: var(--gvsx-text-2); }
.gvsx-co__deadline [data-gvsx-countdown] { color: var(--gvsx-warn); }
.gvsx-co__waiting { margin: 0; display: flex; align-items: center; gap: var(--gvsx-s-2); font-size: 0.88rem; color: var(--gvsx-text-2); }
.gvsx-co__waiting a { color: var(--gvsx-accent-text); }
.gvsx-co__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--gvsx-accent); animation: gvsx-wait 1.6s var(--gvsx-ease-out) infinite; }
@keyframes gvsx-wait { 0% { opacity: 1; } 50% { opacity: 0.35; } 100% { opacity: 1; } }
.gvsx-co__actions { display: flex; flex-wrap: wrap; gap: var(--gvsx-s-2); margin: 0 0 var(--gvsx-s-4); }
.gvsx-co__paylinks { margin: var(--gvsx-s-4) 0 0; font-size: 0.88rem; color: var(--gvsx-text-3); }
.gvsx-co__paylinks a { color: var(--gvsx-accent-text); }
.gvsx-co.is-paying .gvsx-co__side .gvsx-co__sideback { display: none; }

/* ---- responsivo ---- */
@media (max-width: 960px) {
	.gvsx-co { grid-template-columns: minmax(0, 1fr); gap: var(--gvsx-s-4); }
	.gvsx-co__side { position: static; order: -1; }
	.gvsx-task .gvsx-co { grid-template-columns: minmax(0, 1fr); }
	.gvsx-task .gvsx-co__side { padding: var(--gvsx-s-3) var(--gvsx-block-x); }
	.gvsx-task .gvsx-co__sidetoggle { padding: 0; border: 0; border-radius: 0; background: none; }
	.gvsx-task .gvsx-co__sidebody { position: static; margin-top: var(--gvsx-s-3); padding-top: var(--gvsx-s-4); border-top: 1px solid var(--gvsx-line); }
	.gvsx-co__sidetoggle { display: flex; align-items: center; gap: var(--gvsx-s-3); width: 100%; min-height: 52px; padding: 0 var(--gvsx-s-4); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-l); background: var(--gvsx-bg-2); color: var(--gvsx-text); font: inherit; font-size: 0.92rem; font-weight: 600; text-align: left; cursor: pointer; }
	.gvsx-co__sidetoggle b { margin-left: auto; font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--gvsx-text); }
	.gvsx-co__sidetoggle svg { color: var(--gvsx-text-3); transition: transform var(--gvsx-dur-2) var(--gvsx-ease-out); }
	.gvsx-co.is-summary-open .gvsx-co__sidetoggle svg { transform: rotate(180deg); }
	.gvsx-co__sidebody { display: none; margin-top: var(--gvsx-s-2); }
	.gvsx-co.is-summary-open .gvsx-co__sidebody { display: block; }
	.gvsx-co__sidetitle { display: none; }
	.gvsx-co__pixcard { grid-template-columns: minmax(0, 1fr); }
	.gvsx-co__qr { justify-self: start; }
}
@media (max-width: 600px) {
	.gvsx-cohead__inner { min-height: 56px; }
	.gvsx-cohead__back span, .gvsx-cohead__secure span { display: none; }
	.gvsx-cohead__back, .gvsx-cohead__secure { min-width: 44px; }
	.gvsx-cohead__logo img { height: 38px; }
	.gvsx-co__headline { font-size: 1.4rem; }
	.gvsx-co__card { padding: var(--gvsx-s-5) var(--gvsx-s-4); }
	.gvsx-co__progress li { font-size: 0.78rem; gap: 6px; }
	.gvsx-co__progress li span { width: 24px; height: 24px; }
	.gvsx-co__bar { margin-right: 12px; }
	.gvsx-co__fields { grid-template-columns: minmax(0, 1fr); }
	.gvsx-co__fields .form-row-first, .gvsx-co__fields .form-row-last { grid-column: 1 / -1; }
	.gvsx-co__ask p { font-size: 0.96rem; }
	.gvsx-co__hint { margin-left: 0; }
	.gvsx-co__nav { flex-direction: column-reverse; align-items: stretch; gap: var(--gvsx-s-2); }
	.gvsx-co__methodlabel { grid-template-columns: 40px minmax(0, 1fr) 22px; gap: var(--gvsx-s-3); padding: var(--gvsx-s-3); }
	.gvsx-co__methodicon { width: 40px; height: 40px; }
	.gvsx-bump { grid-template-columns: 24px minmax(0, 1fr); }
	.gvsx-bump__media { display: none; }
	.gvsx-co__qr { justify-self: center; }
	.gvsx-co__qr img { width: 200px; height: 200px; }
	.gvsx-co__donetext { white-space: normal; }
}

/* =====================================================================
   Obrigado — HTML em GVSX_Thankyou ([gvsx_order_received]), modelo order-confirmation.html.
   O item comprado aparece como na biblioteca: arte, estado, Baixar e o serial logo abaixo.
   ===================================================================== */
.gvsx-thanks { max-width: 880px; margin: 0 auto; display: grid; gap: var(--gvsx-s-5); }
.gvsx-thanks > * { animation: gvsx-co-in 0.35s var(--gvsx-ease-out) both; }
.gvsx-thanks > *:nth-child(2) { animation-delay: 60ms; }
.gvsx-thanks > *:nth-child(3) { animation-delay: 120ms; }
.gvsx-thanks > *:nth-child(4) { animation-delay: 180ms; }
.gvsx-thanks > *:nth-child(5) { animation-delay: 240ms; }
.gvsx-thanks__card { position: relative; padding: var(--gvsx-s-6); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-l); background: var(--gvsx-surface); }
.gvsx-thanks__h2 { margin: 0 0 var(--gvsx-s-4); font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; color: var(--gvsx-text); }
.gvsx-thanks__h2 span { font-family: var(--gvsx-font-mono); font-weight: 600; color: var(--gvsx-text-3); }
.gvsx-thanks__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gvsx-s-3); }
.gvsx-thanks__actions--main { margin-top: var(--gvsx-s-5); }
.gvsx-thanks__actions--main .gvsx-btn { min-height: 52px; }
.gvsx-thanks__note { margin: var(--gvsx-s-4) 0 0; font-size: 0.92rem; line-height: 1.55; color: var(--gvsx-text-2); }
.gvsx-thanks__note b, .gvsx-thanks__note a { color: var(--gvsx-text); }
.gvsx-thanks__note a { text-decoration: underline; text-underline-offset: 3px; }
/* topo: o selo, o título e o que acontece agora */
.gvsx-thanks__hero { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--gvsx-s-5); align-items: start; padding: var(--gvsx-s-2) 0 var(--gvsx-s-2); text-align: left; }
.gvsx-thanks__hero > :not(.gvsx-thanks__check) { grid-column: 2; }
.gvsx-thanks__check { grid-row: span 4; display: grid; place-items: center; width: 64px; height: 64px; margin: 0; border-radius: 50%; color: var(--gvsx-accent-text); background: var(--gvsx-accent-soft); border: 1px solid rgb(var(--gvsx-glow-rgb) / 0.35); animation: gvsx-thanks-pop 0.5s var(--gvsx-ease-out) both; }
.gvsx-thanks__check svg { width: 56px; height: 56px; }
.gvsx-thanks__ring { display: none; } /* o círculo é o próprio selo; o anel desenhado dentro dele fazia um segundo aro */
.gvsx-thanks__tick { stroke-dasharray: 40; stroke-dashoffset: 40; animation: gvsx-thanks-draw 0.4s var(--gvsx-ease-out) 0.2s forwards; }
@keyframes gvsx-thanks-draw { to { stroke-dashoffset: 0; } }
@keyframes gvsx-thanks-pop { from { opacity: 0; transform: scale(0.7); } to { opacity: 1; transform: none; } }
.gvsx-thanks__badge { order: 2; justify-self: start; margin: 0 0 var(--gvsx-s-3); display: inline-flex; align-items: center; padding: 0.3rem 0.55rem; border: 1px solid rgb(var(--gvsx-glow-rgb) / 0.35); border-radius: var(--gvsx-radius-s); background: var(--gvsx-accent-soft); color: var(--gvsx-accent-text); font-family: var(--gvsx-font-display); font-stretch: 85%; font-weight: 700; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1; }
.gvsx-thanks__badge.is-info { color: var(--gvsx-info); background: var(--gvsx-info-soft); border-color: rgb(var(--gvsx-info-rgb) / 0.4); }
.gvsx-thanks__badge.is-warn { color: var(--gvsx-warn); background: var(--gvsx-warn-soft); border-color: rgb(var(--gvsx-warn-rgb) / 0.4); }
.gvsx-thanks__badge.is-bad { color: var(--gvsx-danger); background: var(--gvsx-danger-soft); border-color: rgb(var(--gvsx-danger-rgb) / 0.4); }
.gvsx-thanks__badge.is-muted { color: var(--gvsx-text-2); background: var(--gvsx-surface-2); border-color: var(--gvsx-line-strong); }
.gvsx-thanks__badge[hidden] { display: none; }
/* o bloco de shortcode passa o HTML pelo wpautop, que embrulha o selo num <p>: a ordem vai para esse parágrafo */
.gvsx-thanks__hero > p:has(> .gvsx-thanks__badge) { order: 2; margin: 0 0 var(--gvsx-s-3); line-height: 0; }
.gvsx-thanks__hero > p > .gvsx-thanks__badge { margin: 0; }
.gvsx-thanks__hero > p:has(> .gvsx-thanks__badge[hidden]) { display: none; }
.gvsx-thanks__title { order: 1; margin: 0 0 var(--gvsx-s-3); font-family: var(--gvsx-font-display); font-stretch: 108%; font-weight: 800; font-size: clamp(1.6rem, 3.2vw, 2.2rem); letter-spacing: -0.025em; line-height: 1.08; color: var(--gvsx-text); text-wrap: balance; }
.gvsx-thanks__sub { order: 3; margin: 0; max-width: 62ch; font-size: 1rem; line-height: 1.55; color: var(--gvsx-text-2); }
.gvsx-thanks__sub b, .gvsx-thanks__sub a { color: var(--gvsx-text); }
.gvsx-thanks__sub a { text-decoration: underline; text-underline-offset: 3px; }
.gvsx-thanks__hero .gvsx-thanks__actions { order: 4; margin-top: var(--gvsx-s-4); }
/* o item: como o item aberto da biblioteca */
.gvsx-thanks__items { display: grid; gap: var(--gvsx-s-4); }
.gvsx-thanks__item { overflow: hidden; }
.gvsx-thanks__itemhead { display: flex; align-items: center; gap: var(--gvsx-s-5); }
.gvsx-thanks__thumb { flex: none; width: 88px; height: 88px; border-radius: var(--gvsx-radius-m); overflow: hidden; background: #0B0F0C; }
.gvsx-thanks__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gvsx-thanks__itemtext { min-width: 0; }
.gvsx-thanks__itemname { margin: 0 0 var(--gvsx-s-2); font-family: var(--gvsx-font-display); font-stretch: 104%; font-weight: 800; font-size: 1.25rem; letter-spacing: -0.02em; line-height: 1.2; color: var(--gvsx-text); text-wrap: balance; }
.gvsx-thanks__itemmeta { margin: 0; display: flex; flex-wrap: wrap; gap: 4px var(--gvsx-s-4); font-size: 0.88rem; color: var(--gvsx-text-3); }
.gvsx-thanks__itemmeta b { font-family: var(--gvsx-font-mono); font-weight: 600; color: var(--gvsx-text-2); }
.gvsx-thanks__serial { margin-top: var(--gvsx-s-5); padding: var(--gvsx-s-4); border: 1px solid var(--gvsx-line); border-radius: var(--gvsx-radius-m); background: var(--gvsx-bg-2); }
.gvsx-thanks__label { display: block; margin: 0 0 var(--gvsx-s-2); font-size: 0.82rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--gvsx-text-3); }
.gvsx-thanks__serialrow { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gvsx-s-3); }
.gvsx-thanks__key { flex: 1 1 260px; min-width: 0; margin: 0; padding: 0; background: none; border: 0; font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-size: clamp(1.1rem, 2.6vw, 1.45rem); font-weight: 600; letter-spacing: 0.05em; color: var(--gvsx-text); overflow-wrap: anywhere; user-select: all; }
.gvsx-thanks__copy { flex: none; min-height: 48px; }
.gvsx-thanks__copy.is-done { background: var(--gvsx-accent-soft); color: var(--gvsx-accent-text); border-color: rgb(var(--gvsx-glow-rgb) / 0.4); }
.gvsx-thanks__hint { display: block; margin-top: var(--gvsx-s-2); font-size: 0.84rem; color: var(--gvsx-text-3); }
.gvsx-thanks__download svg { flex: none; }
/* como instalar, resumo e suporte */
.gvsx-thanks__steps { margin: 0 0 var(--gvsx-s-5); padding: 0; list-style: none; counter-reset: gvsx-step; display: grid; gap: var(--gvsx-s-3); }
.gvsx-thanks__steps li { counter-increment: gvsx-step; display: flex; align-items: flex-start; gap: var(--gvsx-s-3); font-size: 0.94rem; line-height: 1.5; color: var(--gvsx-text-2); }
.gvsx-thanks__steps li > span { padding-top: 3px; }
.gvsx-thanks__steps li::before { content: counter(gvsx-step); flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--gvsx-line-strong); background: var(--gvsx-surface-2); font-family: var(--gvsx-font-mono); font-size: 0.82rem; font-weight: 600; color: var(--gvsx-text); }
.gvsx-thanks__steps b { color: var(--gvsx-text); font-weight: 600; }
.gvsx-thanks__summaryhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--gvsx-s-2) var(--gvsx-s-3); margin-bottom: var(--gvsx-s-2); }
.gvsx-thanks__summaryhead .gvsx-thanks__h2 { margin: 0; }
.gvsx-thanks__lines { list-style: none; margin: var(--gvsx-s-2) 0 0; padding: 0; }
.gvsx-thanks__lines li { display: flex; justify-content: space-between; gap: var(--gvsx-s-4); padding: var(--gvsx-s-3) 0; border-bottom: 1px solid var(--gvsx-line); font-size: 0.92rem; color: var(--gvsx-text); }
.gvsx-thanks__lines small { color: var(--gvsx-text-3); }
.gvsx-thanks__lines b { font-family: var(--gvsx-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.gvsx-thanks__totals { margin: var(--gvsx-s-3) 0 var(--gvsx-s-5); padding: 0; display: grid; gap: var(--gvsx-s-2); }
.gvsx-thanks__totals div { display: flex; justify-content: space-between; gap: var(--gvsx-s-4); font-size: 0.92rem; color: var(--gvsx-text-3); }
.gvsx-thanks__totals dt, .gvsx-thanks__totals dd { margin: 0; }
.gvsx-thanks__totals dd { font-variant-numeric: tabular-nums; color: var(--gvsx-text-2); }
.gvsx-thanks__totals dd .woocommerce-Price-amount { font-family: var(--gvsx-font-mono); }
.gvsx-thanks__totals .is-total { margin-top: var(--gvsx-s-1); padding-top: var(--gvsx-s-3); border-top: 1px solid var(--gvsx-line); font-size: 1.05rem; font-weight: 700; color: var(--gvsx-text); }
.gvsx-thanks__totals .is-total dd, .gvsx-thanks__totals .is-total .woocommerce-Price-amount { color: var(--gvsx-text); font-size: 1.25rem; }
.gvsx-thanks__support { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--gvsx-s-4); padding: var(--gvsx-s-5) var(--gvsx-s-6); border: 1px dashed var(--gvsx-line-strong); border-radius: var(--gvsx-radius-l); }
.gvsx-thanks__support > div:first-child { display: grid; gap: 2px; font-size: 0.92rem; color: var(--gvsx-text-2); }
.gvsx-thanks__support b { color: var(--gvsx-text); }
.gvsx-thanks .gvsx-order__cancel-open { margin-top: var(--gvsx-s-1); }
@media (max-width: 600px) {
	.gvsx-thanks__card { padding: var(--gvsx-s-5) var(--gvsx-s-4); }
	.gvsx-thanks__hero { grid-template-columns: minmax(0, 1fr); }
	.gvsx-thanks__hero > :not(.gvsx-thanks__check) { grid-column: 1; }
	.gvsx-thanks__check { grid-row: auto; width: 52px; height: 52px; margin-bottom: var(--gvsx-s-3); }
	.gvsx-thanks__check svg { width: 46px; height: 46px; }
	.gvsx-thanks__itemhead { gap: var(--gvsx-s-4); }
	.gvsx-thanks__thumb { width: 64px; height: 64px; }
	.gvsx-thanks__itemname { font-size: 1.08rem; }
	.gvsx-thanks__actions--main .gvsx-btn { flex: 1 1 100%; }
	.gvsx-thanks__copy { width: 100%; }
	.gvsx-thanks__support { flex-direction: column; align-items: stretch; }
	.gvsx-thanks__support .gvsx-thanks__actions .gvsx-btn { flex: 1 1 auto; }
	.gvsx-thanks .gvsx-order__pay { grid-template-columns: minmax(0, 1fr); }
}
