/* ==========================================================================
   Lestu — WooCommerce (loja, produto, carrinho, finalização, minha conta)
   Sem modelo: aplica os tokens do tema sobre os estilos do WooCommerce.
   Botões retos, Montserrat, preto/ouro, sem sombras nem cantos arredondados.
   ========================================================================== */

.loja { padding-bottom: var(--esp-7); }
.loja .cabecalho-pagina { margin-bottom: var(--esp-5); }
.loja .cabecalho-pagina__descricao a { text-decoration: underline; text-decoration-color: var(--lestu-ouro); }

.woocommerce,
.woocommerce-page { color: var(--lestu-texto); }

/* ---------- Botões ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce-page .button,
.woocommerce .wc-forward {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 44px; padding: 0.7rem 1.25rem;
	background: var(--lestu-preto); color: var(--lestu-branco);
	border: 2px solid var(--lestu-preto); border-radius: var(--raio); box-shadow: none;
	font: inherit; font-size: var(--fs-sm); font-weight: 800; line-height: 1.2; text-decoration: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .wc-forward:hover { background: var(--lestu-ouro); border-color: var(--lestu-ouro); color: var(--lestu-preto); }
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #place_order,
.woocommerce .checkout-button,
.woocommerce .single_add_to_cart_button { background: var(--lestu-ouro); border-color: var(--lestu-ouro); color: var(--lestu-preto); font-size: var(--fs-base); }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #place_order:hover,
.woocommerce .checkout-button:hover,
.woocommerce .single_add_to_cart_button:hover { background: var(--lestu-preto); border-color: var(--lestu-preto); color: var(--lestu-branco); }
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { opacity: 0.55; padding: 0.7rem 1.25rem; background: var(--lestu-preto); border-color: var(--lestu-preto); color: var(--lestu-branco); }
.woocommerce a.added_to_cart { display: inline-block; margin-top: var(--esp-2); font-weight: 700; text-decoration: underline; }

/* ---------- Campos ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .quantity .qty,
.woocommerce-page .select2-container .select2-selection,
.woocommerce #coupon_code {
	min-height: 44px; padding: 0.55rem 0.8rem;
	background: var(--lestu-branco); border: 1px solid #9c968a; border-radius: var(--raio);
	font: inherit; font-size: var(--fs-sm); color: var(--lestu-texto);
}
.woocommerce-page .select2-container .select2-selection--single { height: 44px; display: flex; align-items: center; }
.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }
.woocommerce form .form-row label { font-weight: 700; font-size: var(--fs-sm); line-height: 1.4; }
.woocommerce form .form-row .required { color: #b3261e; text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #b3261e; }
.woocommerce .quantity .qty { width: 4.5rem; text-align: center; }

/* ---------- Avisos ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	margin: 0 0 var(--esp-5); padding: var(--esp-3) var(--esp-4) var(--esp-3) 3rem;
	background: var(--lestu-branco); color: var(--lestu-texto);
	border: 0; border-left: 4px solid var(--lestu-ouro); border-radius: 0;
	font-size: var(--fs-sm); font-weight: 600; list-style: none;
}
.woocommerce-error { border-left-color: #b3261e; }
.woocommerce-message { border-left-color: #1e7a3c; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { top: 0.85rem; left: 1rem; color: inherit; }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: var(--esp-3); }

/* ---------- Preço e selos ---------- */
.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price { color: var(--lestu-texto); font-weight: 800; }
.woocommerce .price del { opacity: 0.6; font-weight: 500; }
.woocommerce .price ins { text-decoration: none; }
.woocommerce span.onsale {
	min-width: 0; min-height: 0; padding: 0.3rem 0.6rem; line-height: 1.2;
	background: var(--lestu-ouro); color: var(--lestu-preto); border-radius: var(--raio); font-weight: 800; font-size: var(--fs-xs);
	top: 0.5rem; left: 0.5rem; right: auto; margin: 0;
}

/* ---------- Grade de produtos (mesmo desenho dos cards de livro) ---------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--esp-6) var(--esp-5); margin: 0 0 var(--esp-6); padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 0; display: flex; flex-direction: column; }
.woocommerce ul.products li.product a img { aspect-ratio: 2 / 2.9; object-fit: cover; background: #e9e3d4; margin: 0 0 var(--esp-3); box-shadow: none; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; font-size: var(--fs-base); font-weight: 800; line-height: 1.25; color: var(--lestu-texto); }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { text-decoration: none; color: inherit; }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link:hover .woocommerce-loop-product__title { text-decoration: underline; text-decoration-color: var(--lestu-ouro); text-decoration-thickness: 2px; }
.woocommerce ul.products li.product .button { margin-top: auto; align-self: flex-start; }
@media (max-width: 960px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--esp-5) var(--esp-4); } }

.woocommerce .woocommerce-result-count { font-size: var(--fs-sm); font-weight: 600; margin: 0 0 var(--esp-4); }
.woocommerce .woocommerce-ordering { margin: 0 0 var(--esp-4); }
.woocommerce .woocommerce-ordering select { min-height: 44px; padding: 0.5rem 0.8rem; border: 1px solid #9c968a; background: var(--lestu-branco); font: inherit; font-size: var(--fs-sm); }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: var(--esp-2); }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; min-height: 44px; display: grid; place-items: center; border: 1px solid var(--lestu-linha); font-weight: 700; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--lestu-preto); color: var(--lestu-branco); }

/* ---------- Produto ---------- */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: var(--esp-5) var(--esp-7); align-items: start; padding-top: var(--esp-4); }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images img { background: #e9e3d4; }
.woocommerce div.product div.summary { padding-left: var(--esp-6); border-left: 2px solid var(--lestu-ouro); }
.woocommerce div.product .product_title { font-size: var(--fs-3xl); line-height: 1.04; letter-spacing: -0.03em; margin-bottom: var(--esp-3); }
.woocommerce div.product p.price { font-size: var(--fs-2xl); margin-bottom: var(--esp-4); }
.woocommerce div.product .woocommerce-product-details__short-description { margin-bottom: var(--esp-4); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: var(--esp-3); align-items: stretch; margin-bottom: var(--esp-5); }
.woocommerce div.product form.cart div.quantity { margin: 0; }
.woocommerce div.product .product_meta { font-size: var(--fs-sm); display: flex; flex-direction: column; gap: var(--esp-1); padding-top: var(--esp-4); border-top: 1px solid var(--lestu-linha); }
.woocommerce div.product .product_meta a { text-decoration: underline; text-decoration-color: var(--lestu-ouro); }
.lestu-livro-link a { font-weight: 800; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 var(--esp-4); border-bottom: 1px solid var(--lestu-texto-2); display: flex; flex-wrap: wrap; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: var(--esp-3) var(--esp-4); font-weight: 700; color: var(--lestu-texto); border-bottom: 4px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { font-weight: 800; border-bottom-color: var(--lestu-ouro); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 52rem; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { font-size: var(--fs-xl); }
.woocommerce table.shop_attributes { border-top: 1px solid var(--lestu-linha); }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { padding: var(--esp-2) var(--esp-3); border-bottom: 1px solid var(--lestu-linha); font-style: normal; background: none !important; }
.woocommerce .related > h2, .woocommerce .upsells > h2 { font-size: var(--fs-2xl); display: flex; align-items: center; gap: var(--esp-4); }
.woocommerce .related > h2::after, .woocommerce .upsells > h2::after { content: ""; flex: 1; height: 2px; background: var(--lestu-ouro); }
@media (max-width: 760px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce div.product div.images { max-width: 260px; }
	.woocommerce div.product div.summary { padding-left: var(--esp-4); }
}

/* ---------- Tabelas (carrinho, pedidos) ---------- */
.woocommerce table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; margin: 0 0 var(--esp-5); background: var(--lestu-branco); }
.woocommerce table.shop_table th { font-weight: 800; font-size: var(--fs-sm); text-transform: none; padding: var(--esp-3); }
.woocommerce table.shop_table thead th { background: var(--lestu-preto); color: var(--lestu-branco); }
.woocommerce table.shop_table tbody th { border-top: 1px solid var(--lestu-linha); }
.woocommerce table.shop_table td { border-top: 1px solid var(--lestu-linha); padding: var(--esp-3); }
.woocommerce table.shop_table tfoot th { background: none; color: var(--lestu-texto); }
.woocommerce table.cart img { width: 64px; }
.woocommerce a.remove { color: #b3261e !important; border-radius: 0; font-weight: 400; }
.woocommerce a.remove:hover { background: #b3261e; color: var(--lestu-branco) !important; }
.woocommerce table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: var(--esp-2); }
.woocommerce table.cart td.actions .coupon .input-text { width: 12rem; margin: 0; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals { width: 100%; max-width: 30rem; float: right; }
.woocommerce .cart-collaterals h2 { font-size: var(--fs-xl); }
.woocommerce .cart_totals .checkout-button { width: 100%; }
.cart-empty.woocommerce-info { font-size: var(--fs-base); }
.woocommerce .return-to-shop .button { background: var(--lestu-ouro); border-color: var(--lestu-ouro); color: var(--lestu-preto); }

/* ---------- Finalização ---------- */
.woocommerce-checkout .woocommerce { display: block; }
.woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0 var(--esp-7); }
.woocommerce form.checkout #customer_details { grid-column: 1; }
.woocommerce form.checkout #customer_details .col-1,
.woocommerce form.checkout #customer_details .col-2 { width: 100%; float: none; }
.woocommerce form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 var(--esp-3); font-size: var(--fs-xl); }
.woocommerce form.checkout #order_review { grid-column: 2; grid-row: 1; margin-top: 3rem; }
.woocommerce form.checkout h3 { font-size: var(--fs-xl); margin: var(--esp-4) 0 var(--esp-3); }
.woocommerce-checkout #payment { background: var(--lestu-branco); border: 1px solid var(--lestu-linha); border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--lestu-linha); padding: var(--esp-4); }
.woocommerce-checkout #payment div.payment_box { background: #f1ece0; border-radius: 0; color: var(--lestu-texto); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #f1ece0; }
.woocommerce-checkout #payment div.form-row { padding: var(--esp-4); }
.woocommerce #place_order { width: 100%; float: none; }
.woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; }
@media (max-width: 900px) {
	.woocommerce form.checkout { grid-template-columns: 1fr; }
	.woocommerce form.checkout #order_review_heading,
	.woocommerce form.checkout #order_review { grid-column: 1; grid-row: auto; margin-top: 0; }
}

/* ---------- Minha conta ---------- */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--esp-7); align-items: start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--lestu-ouro); }
.woocommerce-MyAccount-navigation li a { display: block; padding: var(--esp-3) var(--esp-2); border-bottom: 1px solid var(--lestu-linha); font-weight: 700; text-decoration: none; }
.woocommerce-MyAccount-navigation li a:hover { color: var(--lestu-ouro-texto); }
.woocommerce-MyAccount-navigation li.is-active a { font-weight: 800; border-left: 4px solid var(--lestu-ouro); padding-left: var(--esp-3); }
/* Entrar / cadastrar (sem sessão): duas colunas */
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce #customer_login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--esp-7); }
.woocommerce #customer_login::before, .woocommerce #customer_login::after { display: none; }
.woocommerce #customer_login .u-column1, .woocommerce #customer_login .u-column2 { width: auto; float: none; }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--lestu-linha); border-radius: 0; background: var(--lestu-branco); padding: var(--esp-5); margin: 0; }
.woocommerce #customer_login h2 { font-size: var(--fs-xl); }
@media (max-width: 760px) {
	.woocommerce-account .woocommerce, .woocommerce #customer_login { grid-template-columns: 1fr; gap: var(--esp-5); }
}
.loja__atalhos { display: flex; flex-wrap: wrap; gap: var(--esp-3); margin-bottom: var(--esp-4); }
.loja--pagina .livro__secao { padding-top: var(--esp-6); }

/* Estoque: o verde/oliva padrão do WooCommerce tem contraste 3,2:1 sobre o marfim */
.woocommerce div.product .stock { color: #1e6b35; font-weight: 700; }
.woocommerce div.product .stock.out-of-stock { color: #b3261e; }
