/* Vitrusfer — carrinho, checkout, pedido recebido e carrinho lateral (Minha conta em conta.css). Mobile-first. */

/* Variáveis de ícones e cores de erro ficam em base.css (o carrinho lateral também usa). */
@media (min-width: 1024px) { body.vf { --vf-sticky-top: calc(var(--vf-header-h) + 16px); } }

/* ---------- Página ---------- */
body.vf.woocommerce-cart .main-page-wrapper,
body.vf.woocommerce-checkout .main-page-wrapper { background: var(--vf-bg); padding-top: 0; }
body.vf.woocommerce-cart .main-page-wrapper,
body.vf.woocommerce-checkout .main-page-wrapper { margin-top: 0; }
body.vf.woocommerce-cart .page-title,
body.vf.woocommerce-checkout .page-title { display: none; }
/* Checkout: menos distração (a barra de categorias e a faixa de login saem; o header continua) */
body.vf.woocommerce-checkout:not(.woocommerce-order-received) .vf-header__nav,
body.vf.woocommerce-checkout .vf-header__strip { display: none; }

.vf .vf-co { flex: 1 1 100%; max-width: 100%; padding-block: 20px 8px; }
.vf-co__head { display: flex; flex-direction: column; gap: 14px; margin-bottom: 20px; }
.vf-co__title { margin: 0; font: 800 24px/1.15 var(--vf-font); color: var(--vf-ink); letter-spacing: -.02em; }

.vf-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 0; list-style: none; counter-reset: none; }
.vf-steps__item { position: relative; display: flex; margin: 0; }
.vf-steps__item > a, .vf-steps__item { flex-direction: column; align-items: center; gap: 6px; text-align: center; text-decoration: none; color: var(--vf-mut); }
.vf-steps__item::before { content: ""; position: absolute; top: 15px; left: -50%; right: 50%; height: 2px; background: var(--vf-line-2); }
.vf-steps__item:first-child::before { display: none; }
.vf-steps__item.is-done::before, .vf-steps__item.is-current::before { background: var(--vf-blue); }
.vf-steps__dot {
	position: relative; z-index: 1; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%;
	background: #fff; border: 2px solid var(--vf-line-2); color: var(--vf-mut); font: 700 14px/1 var(--vf-font);
}
.vf-steps__dot .vf-ico { width: 16px; height: 16px; stroke-width: 3; }
.vf-steps__txt { font: 600 12px/1.25 var(--vf-font); max-width: 13ch; }
.vf-steps__item.is-done .vf-steps__dot { background: var(--vf-blue); border-color: var(--vf-blue); color: #fff; }
.vf-steps__item.is-current .vf-steps__dot { border-color: var(--vf-blue); color: var(--vf-blue); box-shadow: 0 0 0 4px var(--vf-blue-soft); }
.vf-steps__item.is-current .vf-steps__txt, .vf-steps__item.is-done .vf-steps__txt { color: var(--vf-ink); }
.vf-steps__item > a { min-height: 44px; }
.vf-steps__item > a:hover .vf-steps__txt { color: var(--vf-blue); text-decoration: underline; }

@media (min-width: 768px) {
	.vf .vf-co { padding-top: 28px; }
	.vf-co__head { flex-direction: row; align-items: center; justify-content: space-between; margin-bottom: 24px; }
	.vf-co__title { font-size: 30px; }
	.vf-steps { width: min(520px, 60%); }
	.vf-steps__txt { font-size: 13px; max-width: none; }
}

/* Títulos de seção (checkout, pedido recebido) */
.vf .vf-co-h, .vf .woocommerce-billing-fields > h3, .vf #order_review_heading, .vf .woocommerce-additional-fields > h3,
.vf .woocommerce-order-details__title, .vf .woocommerce-column__title {
	margin: 0 0 16px; font: 700 18px/1.25 var(--vf-font); color: var(--vf-ink); text-transform: none; letter-spacing: -.01em; text-align: left;
}

/* Cartão branco reutilizado */
.vf .vf-co .woocommerce-cart-form__cart-item,
.vf .vf-co .cart_totals,
.vf .vf-co .customer-details,
.vf .vf-co .checkout-order-review,
.vf .vf-co .woocommerce-order-details,
.vf .vf-co .woocommerce-customer-details,
.vf .vf-co .vf-next {
	background: #fff; border: 1px solid var(--vf-line); border-radius: var(--vf-r-md); box-shadow: 0 1px 2px rgba(10, 31, 68, .04);
}

/* ---------- Campos ---------- */
.vf .vf-co .form-row { float: none; width: 100%; margin: 0 0 16px; padding: 0; }
.vf .vf-co .form-row label {
	display: block; margin: 0 0 6px; font: 600 14px/1.3 var(--vf-font); color: var(--vf-ink); text-transform: none; letter-spacing: 0;
}
.vf .vf-co .form-row label.checkbox,
.vf .vf-co label.woocommerce-form__label-for-checkbox {
	display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 500; cursor: pointer;
}
.vf .vf-co .required { color: var(--vf-err); text-decoration: none; border: 0; }
.vf .vf-co .optional { color: var(--vf-mut); font-weight: 400; }
.vf .vf-co input.input-text, .vf .vf-co select, .vf .vf-co textarea,
.vf .vf-co .select2-container .select2-selection--single {
	width: 100%; min-height: 48px; height: 48px; padding: 0 14px; border: 1px solid var(--vf-line-2); border-radius: var(--vf-r-sm) !important; /* o site tem .input-text { border-radius: 25px !important } em linha */
	background: #fff; color: var(--vf-ink); font: 400 16px/1.3 var(--vf-font); box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
.vf .vf-co textarea { height: auto; min-height: 104px; padding: 12px 14px; }
.vf .vf-co input.input-text::placeholder, .vf .vf-co textarea::placeholder { color: var(--vf-ph); opacity: 1; }
.vf .vf-co input.input-text:focus, .vf .vf-co select:focus, .vf .vf-co textarea:focus,
.vf .select2-container--open .select2-selection--single, .vf .select2-container--focus .select2-selection--single {
	border-color: var(--vf-blue); box-shadow: 0 0 0 3px rgba(29, 63, 179, .18); outline: none;
}
.vf .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 46px; color: var(--vf-ink); }
.vf .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.vf .select2-dropdown { border-color: var(--vf-line-2); border-radius: var(--vf-r-sm); font-family: var(--vf-font); }
.vf .select2-results__option { padding: 10px 14px; min-height: 44px; }
.vf .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--vf-blue); }
.vf .vf-co input[type="checkbox"], .vf .vf-co input[type="radio"] { width: 20px; height: 20px; margin: 0; accent-color: var(--vf-blue); flex: none; }
.vf .password-input { display: block; position: relative; }
.vf .show-password-input { width: 44px; height: 44px; top: 2px !important; right: 2px !important; display: grid !important; place-items: center; }

/* Erros */
.vf .vf-co .woocommerce-invalid input.input-text, .vf .vf-co .woocommerce-invalid .select2-selection { border-color: var(--vf-err); box-shadow: 0 0 0 3px rgba(192, 38, 45, .12); }
.vf .vf-co .woocommerce-invalid label { color: var(--vf-err); }
.vf .checkout-inline-error-message { margin: 6px 0 0; color: var(--vf-err); font-size: 13px; font-weight: 500; }

/* Avisos do WooCommerce */
.vf .vf-co .woocommerce-error, .vf .vf-co .woocommerce-message, .vf .vf-co .woocommerce-info {
	position: relative; display: block; margin: 0 0 16px; padding: 14px 16px 14px 48px; border: 1px solid var(--vf-line); border-left: 4px solid var(--vf-blue);
	border-radius: var(--vf-r-sm); background: #fff; color: var(--vf-ink); font: 500 14px/1.45 var(--vf-font); list-style: none;
}
.vf .vf-co .woocommerce-error { border-left-color: var(--vf-err); background: var(--vf-err-soft); }
.vf .vf-co .woocommerce-message { border-left-color: var(--vf-green); background: var(--vf-green-soft); }
.vf .vf-co .woocommerce-error li { display: block !important; margin: 0 !important; padding: 3px 0 !important; list-style: none; }
.vf .vf-co .woocommerce-error li::before { display: none; }
.vf .vf-co :is(.woocommerce-error, .woocommerce-message, .woocommerce-info)::before {
	content: ""; position: absolute; left: 16px; top: 14px; width: 20px; height: 20px; background: var(--vf-blue);
	-webkit-mask: var(--i-info) center/contain no-repeat; mask: var(--i-info) center/contain no-repeat; font-size: 0;
}
.vf .vf-co .woocommerce-error::before { background: var(--vf-err); }
.vf .vf-co .woocommerce-message::before { background: var(--vf-green); }
.vf .vf-co :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) a:not(.button) { color: var(--vf-blue); font-weight: 700; text-decoration: underline; }
.vf .vf-co :is(.woocommerce-message, .woocommerce-info) .button { float: none; display: inline-flex; margin: 8px 0 0; }

/* Botões do WooCommerce nestas páginas */
.vf .vf-co .button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 20px;
	border: 0; border-radius: var(--vf-r-sm); background: var(--vf-blue); color: #fff; font: 700 15px/1.2 var(--vf-font);
	text-transform: none; letter-spacing: 0; box-shadow: none; transition: background-color .2s;
}
.vf .vf-co .button:hover { background: var(--vf-blue-ink); color: #fff; }

/* Quantidade −/+ (carrinho e carrinho lateral) */
.vf .vf-co .quantity, .vf .cart-widget-side .quantity {
	display: inline-flex; align-items: stretch; height: 46px; border: 1px solid var(--vf-line-2); border-radius: var(--vf-r-sm); background: #fff; overflow: hidden;
}
.vf .vf-co .quantity input.minus, .vf .vf-co .quantity input.plus,
.vf .cart-widget-side .quantity input.minus, .vf .cart-widget-side .quantity input.plus {
	width: 44px; min-width: 44px; height: 44px; min-height: 0; padding: 0; border: 0; border-radius: 0; cursor: pointer;
	background: #fff var(--i-minus) center/18px no-repeat; color: transparent; font-size: 0; box-shadow: none;
}
.vf .vf-co .quantity input.plus, .vf .cart-widget-side .quantity input.plus { background-image: var(--i-plus); }
.vf .vf-co .quantity input.minus:hover, .vf .vf-co .quantity input.plus:hover,
.vf .cart-widget-side .quantity input.minus:hover, .vf .cart-widget-side .quantity input.plus:hover { background-color: var(--vf-blue-soft); }
.vf .vf-co .quantity input.qty, .vf .cart-widget-side .quantity input.qty {
	width: 46px; min-width: 0; height: 44px; min-height: 0; padding: 0; border: 0; border-inline: 1px solid var(--vf-line); border-radius: 0;
	background: #fff; color: var(--vf-ink); font: 700 16px var(--vf-font); text-align: center; -moz-appearance: textfield; appearance: textfield;
}
.vf .quantity input.qty::-webkit-outer-spin-button, .vf .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vf .vf-co .quantity :focus-visible, .vf .cart-widget-side .quantity :focus-visible { outline-offset: -3px; }

/* ---------- Carrinho ---------- */
.vf .vf-co .cart-content-wrapper { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.vf .vf-co .cart-content-wrapper > * { min-width: 0; margin: 0; width: auto !important; max-width: none !important; float: none; }
.vf .vf-co .cart-content-wrapper > .cart-collaterals:empty { display: none; }
.vf .vf-co .cart-table-section { padding: 0; background: none; border: 0; box-shadow: none; }

.vf .vf-co table.cart, .vf .vf-co table.cart tbody { display: flex; flex-direction: column; gap: 12px; width: 100%; margin: 0; border: 0; background: none; }
.vf .vf-co table.cart thead { display: none; }
.vf .vf-co table.cart td, .vf .vf-co table.cart th { display: block; padding: 0; border: 0; background: none !important; text-align: left !important; }
.vf .vf-co table.cart td::before { display: none !important; content: none !important; }
.vf .vf-co tr.woocommerce-cart-form__cart-item {
	display: grid; align-items: center; gap: 4px 14px; padding: 14px;
	grid-template-columns: 84px minmax(0, 1fr) 44px;
	grid-template-areas: "img name remove" "img price price" "qty qty sub";
}
.vf .vf-co .cart_item .product-thumbnail { grid-area: img; align-self: start; width: auto; }
.vf .vf-co .cart_item .product-thumbnail a, .vf .vf-co .cart_item .product-thumbnail img {
	display: block; width: 84px; height: 84px; max-width: none; object-fit: contain; border-radius: var(--vf-r-sm); background: #fff; border: 1px solid var(--vf-line);
}
.vf .vf-co .cart_item .product-thumbnail a img { border: 0; width: 100%; height: 100%; }
.vf .vf-co .cart_item .product-name { grid-area: name; align-self: start; font: 600 14px/1.4 var(--vf-font); }
.vf .vf-co .cart_item .product-name a { color: var(--vf-ink); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.vf .vf-co .cart_item .product-name a:hover { color: var(--vf-blue); }
.vf .vf-co .cart_item .product-name .variation { margin: 4px 0 0; font-size: 12px; color: var(--vf-mut); }
.vf .vf-co .cart_item .product-price { grid-area: price; align-self: start; color: var(--vf-mut); font-size: 13px; }
.vf .vf-co .cart_item .product-price::after { content: " / un."; }
.vf .vf-co .cart_item .product-price .amount { color: inherit; font-weight: 500; }
.vf .vf-co .cart_item .product-quantity { grid-area: qty; margin-top: 10px; }
.vf .vf-co .cart_item .product-subtotal { grid-area: sub; margin-top: 10px; text-align: right !important; font: 800 18px/1.2 var(--vf-font); }
.vf .vf-co .cart_item .product-subtotal .amount { color: var(--vf-ink); }
.vf .vf-co .cart_item .product-remove { grid-area: remove; align-self: start; justify-self: end; width: auto; }

/* Botão remover: regras em base.css (valem também no carrinho lateral). */

/* Linha de ações: cupom em acordeão */
.vf .vf-co tr.wd-cart-action-row { display: block; }
.vf .vf-co tr.wd-cart-action-row td.actions { padding: 0; }
.vf .vf-co .cart-actions { display: flex; flex-direction: column; gap: 10px; align-items: stretch; padding: 0; }
.vf .vf-co .cart-actions > .button[name="update_cart"]:not(.wd-hide) { align-self: flex-start; background: #fff; color: var(--vf-blue); border: 1.5px solid var(--vf-blue); }
.vf-coupon-toggle {
	display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; min-height: 44px; padding: 0 4px;
	border: 0; background: none; color: var(--vf-blue); font: 600 14px var(--vf-font); cursor: pointer; text-transform: none;
}
.vf-coupon-toggle .vf-ico { width: 18px; height: 18px; }
.vf-coupon-toggle__chev { transition: transform .2s; }
.vf-coupon-toggle[aria-expanded="true"] .vf-coupon-toggle__chev { transform: rotate(180deg); }
.vf-coupon-toggle:hover span { text-decoration: underline; }
.vf .vf-co .wd-coupon-form, .vf .vf-co .cart-actions .coupon { display: flex; gap: 8px; width: 100%; max-width: 460px; margin: 0; padding: 0; border: 0; }
.vf .vf-co .cart-actions .coupon input.input-text { flex: 1; width: auto; min-width: 0; }
.vf .vf-co .cart-actions .coupon .button { flex: none; background: var(--vf-navy); }
.vf .vf-co .cart-actions .coupon.vf-coupon-closed { display: none; }
/* Erro do cupom (WooCommerce 9.x coloca dentro do .coupon, que é flex em linha). */
.vf .vf-co .wd-coupon-form, .vf .vf-co .cart-actions .coupon { flex-wrap: wrap; }
.vf .vf-co .coupon .coupon-error-notice { flex: 1 1 100%; order: 3; margin: 0; color: var(--vf-err); font-size: 13px; font-weight: 600; }
.vf .vf-co .coupon #coupon_code.has-error { border-color: var(--vf-err); }
.vf .vf-co .coupon #coupon_code { scroll-margin-top: 170px; } /* o WooCommerce foca o campo após o erro; não deixar sob o header fixo */

/* Resumo */
.vf .vf-co .cart-totals-section { width: auto; max-width: none; padding: 0; }
.vf .vf-co .cart_totals { width: 100%; float: none; padding: 20px; }
.vf .vf-co .cart-totals-inner { padding: 0; border: 0; }
.vf .vf-co .cart_totals table.shop_table, .vf .vf-co .woocommerce-checkout-review-order-table {
	display: block; width: 100%; margin: 0 0 16px; border: 0; border-radius: 0; background: none;
}
.vf .vf-co .cart_totals table tbody,
.vf .vf-co .woocommerce-checkout-review-order-table :is(thead, tbody, tfoot) { display: block; }
.vf .vf-co .cart_totals tr,
.vf .vf-co .woocommerce-checkout-review-order-table tr {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--vf-line);
}
.vf .vf-co .cart_totals :is(th, td),
.vf .vf-co .woocommerce-checkout-review-order-table :is(th, td) {
	display: block !important; padding: 0; border: 0; background: none !important; font: 500 14px/1.4 var(--vf-font); color: var(--vf-mut); text-align: left; text-transform: none; letter-spacing: 0;
}
.vf .vf-co .cart_totals td, .vf .vf-co .woocommerce-checkout-review-order-table td { text-align: right !important; color: var(--vf-ink); }
.vf .vf-co .cart_totals td::before, .vf .vf-co .woocommerce-checkout-review-order-table td::before { display: none !important; }
.vf .vf-co .cart_totals .amount, .vf .vf-co .woocommerce-checkout-review-order-table .amount { color: var(--vf-ink); font-weight: 600; }
.vf .vf-co tr.order-total { border-bottom: 0; padding-top: 16px; align-items: center; }
.vf .vf-co tr.order-total th { color: var(--vf-ink); font-weight: 700; font-size: 16px; }
.vf .vf-co tr.order-total td strong, .vf .vf-co tr.order-total .amount { font: 800 26px/1.1 var(--vf-font); color: var(--vf-ink); letter-spacing: -.02em; }
.vf .vf-co tr.order-total small, .vf .vf-co tr.order-total .includes_tax { display: block; font-size: 12px; font-weight: 400; color: var(--vf-mut); }
.vf .vf-co tr.cart-discount td, .vf .vf-co tr.cart-discount .amount { color: var(--vf-green); }
.vf .vf-co .woocommerce-remove-coupon { color: var(--vf-err); font-size: 12px; }

/* Frete (carrinho e checkout) */
.vf .vf-co tr.woocommerce-shipping-totals { flex-direction: column; align-items: stretch; }
.vf .vf-co tr.woocommerce-shipping-totals th { color: var(--vf-ink); font-weight: 700; }
.vf .vf-co tr.woocommerce-shipping-totals td { width: 100%; text-align: left !important; }
.vf .vf-co ul#shipping_method { display: grid; gap: 8px; margin: 4px 0 0; padding: 0; list-style: none; }
.vf .vf-co ul#shipping_method li {
	position: relative; display: flex; align-items: center; gap: 10px; min-height: 52px; margin: 0; padding: 10px 14px;
	border: 1.5px solid var(--vf-line-2); border-radius: var(--vf-r-sm); background: #fff; text-indent: 0; text-align: left;
}
.vf .vf-co ul#shipping_method li:has(input:checked), .vf .vf-co ul#shipping_method li:only-child { border-color: var(--vf-blue); background: var(--vf-blue-soft); }
.vf .vf-co ul#shipping_method li label { flex: 1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 8px; margin: 0; font: 600 14px/1.35 var(--vf-font); color: var(--vf-ink); cursor: pointer; }
.vf .vf-co ul#shipping_method li label::after { content: ""; position: absolute; inset: 0; }
.vf .vf-co ul#shipping_method li input { margin: 0; }
.vf .vf-co .woocommerce-shipping-destination { margin: 8px 0 0; font-size: 13px; color: var(--vf-mut); text-align: left; }
.vf .vf-co .shipping-calculator-button {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--vf-blue); font-weight: 700; font-size: 14px; text-decoration: none;
}
.vf .vf-co .shipping-calculator-button::after { display: none; }
.vf .vf-co .shipping-calculator-button:hover { text-decoration: underline; }
.vf .vf-co .shipping-calculator-form { padding: 12px 0 0; text-align: left; }
.vf .vf-co .shipping-calculator-form .form-row { margin-bottom: 10px; }
.vf .vf-co .shipping-calculator-form .button { width: 100%; background: var(--vf-navy); }
.vf .vf-co .woocommerce-shipping-totals td > p { margin: 6px 0 0; font-size: 13px; color: var(--vf-mut); text-align: left; }

.vf .vf-co .wc-proceed-to-checkout { display: flex; flex-direction: column; gap: 10px; padding: 0; margin: 0; }
.vf .vf-co .wc-proceed-to-checkout a.checkout-button, .vf .vf-co #place_order {
	display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 56px; margin: 0; padding: 14px 20px;
	border: 0; border-radius: var(--vf-r-pill); background: var(--vf-blue); color: #fff; font: 700 17px/1.2 var(--vf-font);
	text-transform: none; letter-spacing: 0; box-shadow: 0 8px 20px rgba(29, 63, 179, .28); transition: background-color .2s, transform .2s var(--vf-ease);
}
.vf .vf-co .wc-proceed-to-checkout a.checkout-button::before, .vf .vf-co #place_order::before {
	content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--i-lock) center/contain no-repeat; mask: var(--i-lock) center/contain no-repeat;
}
.vf .vf-co .wc-proceed-to-checkout a.checkout-button:hover, .vf .vf-co #place_order:hover { background: var(--vf-blue-ink); color: #fff; }
.vf .vf-co .wc-proceed-to-checkout a.checkout-button:active, .vf .vf-co #place_order:active { transform: translateY(1px); }
.vf .vf-co .vf-continue { width: 100%; min-height: 48px; border-radius: var(--vf-r-pill); }

/* Selos e ajuda */
.vf-trust { display: grid; gap: 10px; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid var(--vf-line); list-style: none; }
.vf-trust li { display: flex; align-items: flex-start; gap: 10px; margin: 0; }
.vf-trust .vf-ico { width: 22px; height: 22px; color: var(--vf-blue); }
.vf-trust span { display: flex; flex-direction: column; font-size: 12.5px; line-height: 1.4; color: var(--vf-mut); }
.vf-trust b { color: var(--vf-ink); font-size: 13px; }
.vf-trust a { color: var(--vf-blue); text-decoration: underline; display: inline-flex; min-height: 24px; align-items: center; }
.vf-help {
	display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; min-height: 56px;
	border: 1px solid #bfe6cd; border-radius: var(--vf-r-sm); background: #f2fbf5; color: var(--vf-ink) !important; text-decoration: none !important;
}
.vf-help .vf-ico { width: 26px; height: 26px; color: #1fa855; }
.vf-help span { display: flex; flex-direction: column; font-size: 13px; line-height: 1.35; color: var(--vf-mut); }
.vf-help b { color: var(--vf-ink); font-size: 14px; }
.vf-help:hover { border-color: #1fa855; }

/* Barra fixa "Finalizar compra" (celular) */
.vf-cartbar {
	position: fixed; left: 0; right: 0; bottom: calc(58px + env(safe-area-inset-bottom)); z-index: 370;
	display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px var(--vf-gutter);
	background: #fff; border-top: 1px solid var(--vf-line); box-shadow: 0 -8px 20px rgba(10, 31, 68, .1);
	transition: transform .25s var(--vf-ease), opacity .2s;
}
.vf-cartbar.is-hidden { transform: translateY(110%); opacity: 0; visibility: hidden; }
.vf-cartbar__total { display: flex; flex-direction: column; line-height: 1.1; }
.vf-cartbar__total small { font-size: 12px; color: var(--vf-mut); }
.vf-cartbar__total strong, .vf-cartbar__total .amount { font: 800 19px var(--vf-font); color: var(--vf-ink); }
.vf-cartbar__total .includes_tax { display: none; }
.vf .vf-cartbar__btn { min-height: 48px; padding-inline: 22px; border-radius: var(--vf-r-pill); font-size: 15px; font-weight: 700; }
body.vf.vf-has-cartbar { padding-bottom: calc(58px + 70px + env(safe-area-inset-bottom)); }
@media (max-width: 1023px) {
	.woocommerce-cart .buttonizer, .woocommerce-cart [class*="buttonizer-group"] { bottom: calc(140px + env(safe-area-inset-bottom)) !important; }
}

/* Carrinho vazio */
.vf .vf-co > .woocommerce:has(.wc-empty-cart-message) {
	display: flex; flex-direction: column; align-items: center; max-width: 640px; margin: 8px auto 0; padding: 40px 20px;
	border: 1px solid var(--vf-line); border-radius: var(--vf-r-md); background: #fff; text-align: center;
}
.vf .vf-co p.wc-empty-cart-message {
	display: flex; flex-direction: column; align-items: center; gap: 16px; margin: 0; padding: 0; border: 0; background: none;
	font: 800 22px/1.25 var(--vf-font); color: var(--vf-ink); letter-spacing: -.01em;
}
.vf .vf-co p.wc-empty-cart-message::before {
	content: ""; display: block; position: static; width: 88px; height: 88px; margin: 0; border-radius: 50%;
	background: var(--vf-blue-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d3fb3' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.3 11h10.7l2-7.5H6.4'/%3E%3Ccircle cx='9' cy='19.5' r='1.4'/%3E%3Ccircle cx='17' cy='19.5' r='1.4'/%3E%3C/svg%3E") center/44px no-repeat;
	-webkit-mask: none; mask: none; font-size: 0;
}
.vf .vf-co p.wc-empty-cart-message::after { display: none; }
.vf .vf-co .wd-empty-page-text { max-width: 44ch; margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: var(--vf-mut); }
.vf .vf-co .return-to-shop { margin: 24px 0 0; padding: 0; border: 0; background: none; }
.vf .vf-co .return-to-shop .button { min-height: 52px; padding-inline: 28px; border-radius: var(--vf-r-pill); font-size: 16px; }

/* Produtos relacionados no carrinho */
.vf .vf-co .cross-sells > h2 { font: 700 18px var(--vf-font); text-transform: none; }

@media (max-width: 767px) {
	/* Quantidade e subtotal dividem a última linha do card */
	.vf .vf-co .cart_item .product-quantity { grid-area: 3 / 1 / 4 / 3; }
	.vf .vf-co .cart_item .product-subtotal { grid-area: 3 / 2 / 4 / 4; justify-self: end; }
}
@media (min-width: 768px) {
	.vf .vf-co tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 104px minmax(0, 1fr) auto 130px 44px; gap: 4px 20px; padding: 16px 20px;
		grid-template-areas: "img name qty sub remove" "img price qty sub remove";
	}
	.vf .vf-co .cart_item .product-thumbnail a, .vf .vf-co .cart_item .product-thumbnail img { width: 104px; height: 104px; }
	.vf .vf-co .cart_item .product-name { align-self: end; font-size: 15px; }
	.vf .vf-co .cart_item .product-quantity, .vf .vf-co .cart_item .product-subtotal { margin: 0; align-self: center; }
	.vf .vf-co .cart_item .product-remove { align-self: center; }
	.vf .vf-co a.remove { margin: 0; }
	.vf .vf-co .cart-actions { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
}
@media (min-width: 1024px) {
	.vf .vf-co .cart-content-wrapper { grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; }
	.vf .vf-co .cart-content-wrapper > * { grid-column: 1; }
	.vf .vf-co .cart-content-wrapper > .cart-totals-section { grid-column: 2; grid-row: 1 / span 3; position: sticky; top: var(--vf-sticky-top); }
	.vf .vf-co .cart-content-wrapper > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.vf .vf-co .cart_totals { padding: 24px; }
	.vf-cartbar { display: none; }
	body.vf.vf-has-cartbar { padding-bottom: 0; }
}

/* ---------- Checkout ---------- */
.vf .vf-co :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) > .woocommerce-info {
	margin: 0 0 10px; padding: 12px 16px 12px 46px !important; border: 1px solid var(--vf-line) !important; border-radius: var(--vf-r-sm); background: #fff; font-weight: 400;
}
.vf .vf-co :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) > .woocommerce-info::before { content: "" !important; display: block !important; position: absolute !important; left: 16px !important; top: 13px !important; }
.vf .vf-co :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) a { display: inline-flex; align-items: center; min-height: 24px; }
.vf .vf-co form.woocommerce-form-login, .vf .vf-co form.checkout_coupon {
	margin: 0 0 16px; padding: 20px; border: 1px solid var(--vf-line); border-radius: var(--vf-r-md); background: #fff;
}
.vf .vf-co form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.vf .vf-co form.checkout_coupon > p:first-child { flex: 1 1 100%; margin: 0; }
.vf .vf-co form.checkout_coupon .form-row { flex: 1; width: auto; margin: 0; }
.vf .vf-co form.checkout_coupon .form-row-last { flex: none; }
.vf .vf-co form.checkout_coupon .clear { display: none; }

.vf .vf-co form.checkout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; margin: 8px 0 0; }
.vf .vf-co form.checkout > * { min-width: 0; width: auto !important; max-width: none !important; margin: 0; float: none; }
.vf .vf-co form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.vf .vf-co .customer-details { padding: 20px 16px; }
.vf .vf-co .customer-details > * { width: 100%; float: none; margin: 0; padding: 0; }
.vf .vf-co .col2-set .col-1, .vf .vf-co .col2-set .col-2 { width: 100%; float: none; max-width: none; flex: none; padding: 0; }

/* Numeração das seções: 1 Identificação e entrega, 2 Resumo/entrega, 3 Pagamento */
.vf .vf-co .woocommerce-billing-fields > h3, .vf .vf-co #order_review_heading, .vf .vf-co .vf-co-h { display: flex; align-items: center; gap: 10px; }
.vf .vf-co .woocommerce-billing-fields > h3::before, .vf .vf-co #order_review_heading::before, .vf #order_review .vf-co-h::before {
	display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--vf-blue); color: #fff; font: 700 14px/1 var(--vf-font);
}
.vf .vf-co .woocommerce-billing-fields > h3::before { content: "1"; }
.vf .vf-co #order_review_heading::before { content: "2"; }
.vf #order_review .vf-co-h::before { content: "3"; }
.vf .vf-co .woocommerce-shipping-fields { margin-top: 4px; }
.vf .vf-co #ship-to-different-address { margin: 0 0 12px; font: 600 15px var(--vf-font); }
.vf .vf-co #ship-to-different-address label { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; }
.vf .vf-co .woocommerce-account-fields { margin: 4px 0 8px; padding: 16px; border-radius: var(--vf-r-sm); background: var(--vf-bg); }
.vf .vf-co .woocommerce-account-fields .create-account { border: 0; padding: 0; margin: 0; }
.vf .vf-co .woocommerce-account-fields .create-account::before { content: "Crie sua senha para acompanhar seus pedidos"; display: block; margin-bottom: 12px; font-size: 13px; color: var(--vf-mut); }
.vf .vf-co .woocommerce-additional-fields > h3 { font-size: 15px; }
.vf .vf-co .woocommerce-additional-fields .form-row { margin-bottom: 0; }

.vf .vf-co .checkout-order-review { padding: 20px 16px; border-radius: var(--vf-r-md); }
.vf .vf-co .checkout-order-review::before, .vf .vf-co .checkout-order-review::after { display: none; }
.vf .vf-co .woocommerce-checkout-review-order-table { padding: 0; box-shadow: none; background: none; }
.vf .vf-co .woocommerce-checkout-review-order-table thead tr { padding-top: 0; flex-wrap: nowrap; }
.vf .vf-co .woocommerce-checkout-review-order-table :is(th, td) { width: auto !important; }
.vf .vf-co .woocommerce-checkout-review-order-table .product-name { flex: 1; text-align: left !important; }
.vf .vf-co .cart_totals h2 { margin: 0 0 8px; font: 700 18px/1.25 var(--vf-font); color: var(--vf-ink); text-transform: none !important; letter-spacing: -.01em; }
.vf .vf-co .woocommerce-checkout-review-order .wd-table-wrapper { padding: 0; margin: 0; background: none; box-shadow: none; border: 0; }
.vf .vf-co .woocommerce-checkout-review-order-table thead th.product-total { flex: none; margin-left: auto; text-align: right !important; }
.vf .vf-co .woocommerce-checkout-review-order-table thead th { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--vf-mut); }
.vf .vf-co .woocommerce-checkout-review-order-table tr.cart_item { flex-wrap: nowrap; align-items: flex-start; }
.vf .vf-co .woocommerce-checkout-review-order-table .product-name { color: var(--vf-ink); font-size: 14px; }
.vf .vf-co .woocommerce-checkout-review-order-table .product-quantity { color: var(--vf-blue); font-weight: 700; white-space: nowrap; }
.vf .vf-co .woocommerce-checkout-review-order-table .product-total { white-space: nowrap; }

/* Pagamento */
.vf .vf-co #payment { margin: 20px 0 0; padding: 0; border: 0; border-radius: 0; background: none; }
.vf .vf-co #payment ul.payment_methods { display: grid; gap: 8px; margin: 0 0 16px; padding: 0; border: 0; list-style: none; }
.vf .vf-co #payment li.wc_payment_method {
	position: relative; margin: 0; padding: 0; border: 1.5px solid var(--vf-line-2); border-radius: var(--vf-r-sm); background: #fff; overflow: hidden;
}
.vf .vf-co #payment li.wc_payment_method:has(input:checked), .vf .vf-co #payment li.wc_payment_method:only-child { border-color: var(--vf-blue); box-shadow: 0 0 0 3px var(--vf-blue-soft); }
.vf .vf-co #payment li.wc_payment_method > input { position: absolute; left: 14px; top: 16px; margin: 0; }
.vf .vf-co #payment li.wc_payment_method > label {
	display: flex; align-items: center; gap: 8px; min-height: 52px; margin: 0; padding: 12px 14px 12px 46px;
	font: 700 15px/1.3 var(--vf-font); color: var(--vf-ink); cursor: pointer;
}
.vf .vf-co #payment li.wc_payment_method > input[style*="none"] + label { padding-left: 14px; }
.vf .vf-co #payment li.wc_payment_method > label img { max-height: 24px; width: auto; margin: 0 0 0 auto; }
.vf .vf-co #payment .payment_box {
	margin: 0; padding: 0 14px 14px; border: 0; border-radius: 0; background: none; color: var(--vf-mut); font-size: 13.5px; line-height: 1.5;
}
.vf .vf-co #payment .payment_box::before { display: none; }
.vf .vf-co #payment .payment_box p:last-child { margin-bottom: 0; }
.vf .vf-co #payment li.wc_payment_method > input[style*="none"] ~ .payment_box { padding-left: 14px; }
.vf .vf-co #payment .place-order { margin: 0; padding: 0; }
.vf .vf-co .woocommerce-privacy-policy-text p { margin: 0 0 8px; font-size: 12.5px; line-height: 1.5; color: var(--vf-mut); }
.vf .vf-co .woocommerce-privacy-policy-text a, .vf .vf-co .woocommerce-terms-and-conditions-link { color: var(--vf-blue); text-decoration: underline; }
.vf .vf-co .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0 0 14px; }
.vf .vf-co .woocommerce-terms-and-conditions-wrapper label.checkbox { position: relative; display: block; padding: 10px 0 10px 32px; font-size: 14px; line-height: 1.45; }
.vf .vf-co .woocommerce-terms-and-conditions-wrapper label.checkbox input { position: absolute; left: 0; top: 10px; }
.vf .vf-co #place_order { margin-top: 4px; }
.vf .vf-co .blockUI.blockOverlay { border-radius: var(--vf-r-md); }

@media (min-width: 768px) {
	.vf .vf-co .customer-details, .vf .vf-co .checkout-order-review { padding: 24px 28px; }
	.vf .vf-co .woocommerce-billing-fields__field-wrapper, .vf .vf-co .woocommerce-shipping-fields__field-wrapper {
		display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); column-gap: 16px;
	}
	.vf .vf-co :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) > .form-row { grid-column: span 6; }
	.vf .vf-co .form-row:is([id$="_first_name_field"], [id$="_last_name_field"], [id$="_phone_field"], [id$="_cellphone_field"], [id$="_email_field"]) { grid-column: span 3; }
	.vf .vf-co .form-row:is([id$="_persontype_field"], [id$="_postcode_field"], [id$="_number_field"], [id$="_neighborhood_field"], [id$="_city_field"], [id$="_state_field"]) { grid-column: span 2; }
	.vf .vf-co .form-row:is([id$="_cpf_field"], [id$="_company_field"], [id$="_address_1_field"], [id$="_address_2_field"]) { grid-column: span 4; }
	.vf .vf-co .form-row:is([id$="_country_field"], [id$="_cnpj_field"], [id$="_ie_field"], [id$="_rg_field"]) { grid-column: span 6; }
	.vf .vf-co .woocommerce-account-fields .create-account { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
	.vf .vf-co .woocommerce-account-fields .create-account::before { grid-column: 1 / -1; }
	.vf .vf-co .woocommerce-account-fields .create-account .clear { display: none; }
}
@media (min-width: 1024px) {
	.vf .vf-co form.checkout { grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; }
	.vf .vf-co form.checkout > * { grid-column: 1; }
	.vf .vf-co form.checkout > .checkout-order-review { grid-column: 2; grid-row: 1 / span 4; position: sticky; top: var(--vf-sticky-top); }
	.vf .vf-co form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
	.vf .vf-co .woocommerce-form-login-toggle, .vf .vf-co .woocommerce-form-coupon-toggle, .vf .vf-co form.woocommerce-form-login, .vf .vf-co form.checkout_coupon { max-width: calc(100% - 444px); }
}

/* ---------- Pedido recebido ---------- */
.vf .vf-co .woocommerce-order { display: grid; gap: 16px; max-width: 880px; margin-inline: auto; }
.vf .vf-co .woocommerce-order > * { margin: 0; }
.vf .vf-co .woocommerce-thankyou-order-received { display: none; }
.vf-ty {
	display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 28px 20px; text-align: center;
	border-radius: var(--vf-r-md); background: linear-gradient(135deg, var(--vf-navy) 0%, var(--vf-blue) 100%); color: #fff;
}
.vf-ty__icon { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--vf-green); box-shadow: 0 0 0 8px rgba(255, 255, 255, .14); }
.vf-ty__icon .vf-ico { width: 30px; height: 30px; stroke-width: 3; color: #fff; }
.vf .vf-ty__title { margin: 0; font: 800 22px/1.2 var(--vf-font); color: #fff; letter-spacing: -.02em; }
.vf-ty__num { margin: 6px 0 0; font-size: 16px; color: #dbe4ff; }
.vf-ty__num strong { color: #fff; font-size: 20px; font-weight: 800; }
.vf-ty__mail { margin: 4px 0 0; font-size: 14px; color: #dbe4ff; }
.vf-ty__mail strong { color: #fff; font-weight: 600; overflow-wrap: anywhere; }
.vf .vf-co ul.woocommerce-order-overview {
	display: flex; flex-wrap: wrap; gap: 1px; margin: 0; padding: 0; list-style: none;
	border: 1px solid var(--vf-line); border-radius: var(--vf-r-md); background: var(--vf-line); overflow: hidden;
}
.vf .vf-co ul.woocommerce-order-overview li {
	flex: 1 1 150px; display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 14px 16px; border: 0; background: #fff; text-align: left;
	font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--vf-mut); float: none;
}
.vf .vf-co ul.woocommerce-order-overview li strong { font-size: 15px; text-transform: none; letter-spacing: 0; color: var(--vf-ink); font-weight: 700; overflow-wrap: anywhere; }
.vf .vf-co ul.woocommerce-order-overview li.total strong .amount { color: var(--vf-ink); }
.vf .vf-co .woocommerce-order > p { padding: 16px; border: 1px solid #bfe6cd; border-radius: var(--vf-r-sm); background: #f2fbf5; color: var(--vf-ink); font-size: 14px; }
.vf .vf-co .vf-next { padding: 20px 16px; }
.vf-next__list { display: grid; gap: 14px; margin: 0 0 18px; padding: 0; list-style: none; }
.vf-next__list li { display: flex; gap: 12px; align-items: flex-start; margin: 0; }
.vf-next__list .vf-ico { flex: none; width: 40px; height: 40px; padding: 9px; border-radius: 50%; background: var(--vf-blue-soft); color: var(--vf-blue); }
.vf-next__list span { display: flex; flex-direction: column; font-size: 14px; line-height: 1.45; color: var(--vf-mut); }
.vf-next__list b { color: var(--vf-ink); font-size: 15px; }
.vf-next__actions { display: grid; gap: 8px; }
.vf-next__actions .vf-btn { min-height: 48px; }
.vf .vf-co .woocommerce-order-details, .vf .vf-co .woocommerce-customer-details { padding: 20px 16px; }
@media (min-width: 768px) {
	.vf-ty { flex-direction: row; text-align: left; padding: 28px 32px; gap: 20px; }
	.vf .vf-ty__title { font-size: 26px; }
	.vf .vf-co .vf-next, .vf .vf-co .woocommerce-order-details, .vf .vf-co .woocommerce-customer-details { padding: 24px 28px; }
	.vf-next__actions { display: flex; flex-wrap: wrap; }
}

/* Tabela de detalhes do pedido (pedido recebido e Minha conta) */
.vf .woocommerce-order-details .wd-table-wrapper { margin: 0; padding: 0; background: none; box-shadow: none; }
.vf .woocommerce-order-details > :last-child { margin-bottom: 0; }
.vf .woocommerce-table--order-details { display: block; width: 100%; margin: 0; border: 0; }
.vf .woocommerce-table--order-details :is(thead, tbody, tfoot) { display: block; }
.vf .woocommerce-table--order-details tr { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--vf-line); }
.vf .woocommerce-table--order-details :is(th, td) { display: block; width: auto !important; padding: 0; border: 0; background: none !important; font: 500 14px/1.45 var(--vf-font); color: var(--vf-mut); text-align: left; text-transform: none; letter-spacing: 0; }
.vf .woocommerce-table--order-details td:last-child { text-align: right; color: var(--vf-ink); }
.vf .woocommerce-table--order-details td::before { display: none !important; }
.vf .woocommerce-table--order-details thead th { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.vf .woocommerce-table--order-details .product-name { flex: 1; color: var(--vf-ink); }
.vf .woocommerce-table--order-details .product-name a { color: var(--vf-ink); }
.vf .woocommerce-table--order-details .product-quantity { color: var(--vf-blue); font-weight: 700; }
.vf .woocommerce-table--order-details tfoot tr:last-child th, .vf .woocommerce-table--order-details tfoot tr:last-child td { font-size: 17px; font-weight: 800; color: var(--vf-ink); }
.vf .woocommerce-table--order-details tfoot tr:last-child { border-bottom: 0; }
.vf .woocommerce-table--order-details .amount { color: var(--vf-ink); }
.vf .woocommerce-customer-details .col2-set, .vf .woocommerce-customer-details .addresses { display: grid; gap: 16px; }
.vf .woocommerce-customer-details .col2-set::before, .vf .woocommerce-customer-details .col2-set::after { display: none; }
.vf .woocommerce-customer-details address {
	margin: 0; padding: 14px 16px; border: 1px solid var(--vf-line); border-radius: var(--vf-r-sm); background: var(--vf-bg);
	font-style: normal; font-size: 14px; line-height: 1.6; color: var(--vf-ink);
}
.vf .woocommerce-customer-details address p { margin: 4px 0 0; }
@media (min-width: 768px) {
	.vf .woocommerce-customer-details .col2-set, .vf .woocommerce-customer-details .addresses { grid-template-columns: 1fr 1fr; }
}
