/*
 * VALT storefront: shop archive, product page and cart (wireframe screens
 * "Loja", "Produto" and "Carrinho").
 */

/* ---------- loja ---------- */
.shop-head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 28px; }
.shop { display: grid; grid-template-columns: 220px 1fr; gap: 40px; align-items: start; padding-bottom: 72px; }
.filters { display: flex; flex-direction: column; gap: 22px; position: sticky; top: calc(var(--hdr-h) + 20px); }
.filters fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.filters legend { font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); margin-bottom: 6px; padding: 0; }
.chk { display: flex; align-items: center; gap: 10px; font-size: 14px; min-height: 30px; cursor: pointer; text-decoration: none; }
.chk input { width: 16px; height: 16px; margin: 0; accent-color: var(--ink); }
.chk .n { color: var(--ink-2); font-family: var(--f-mono); font-size: 12px; }
.filters .actions { display: flex; gap: 8px; }
.shop-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 12px; margin-bottom: 20px; }
.shop-bar .woocommerce-ordering { margin: 0; }
.shop-bar select { width: auto; min-height: 40px; border: 1px solid var(--line); border-radius: 0; background: var(--white); padding: 0 34px 0 14px; font: 15px var(--f-display); color: var(--ink); appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%278%27%3E%3Cpath d=%27M1 1l5 5 5-5%27 stroke=%27%2316181B%27 fill=%27none%27 stroke-width=%271.5%27/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; cursor: pointer; }
.fbtn { display: none; }
ul.products.shop-grid,
.shop-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 20px; }
ul.products::before, ul.products::after { display: none; }
ul.products li.product { margin: 0; padding: 0; width: auto; float: none; list-style: none; min-width: 0; }
.b2b-strip { margin-top: 48px; padding: 28px; }
.woocommerce-pagination { margin-top: 32px; }
.woocommerce-pagination ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 6px; }
.woocommerce-pagination a, .woocommerce-pagination span {
	min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--line); font-family: var(--f-mono); font-size: 12px; text-decoration: none;
}
.woocommerce-pagination .current { background: var(--ink); color: var(--white); border-color: var(--ink); }

/* ---------- produto ---------- */
.pdp { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: start; }
.gal { display: grid; grid-template-columns: 72px 1fr; gap: 12px; }
.thumbs { display: flex; flex-direction: column; gap: 8px; }
.thumbs button { padding: 0; border: 1px solid transparent; background: none; cursor: pointer; display: block; }
.thumbs button[aria-current="true"] { border-color: var(--ink); }
.gal .main { position: relative; }
.buy { display: flex; flex-direction: column; gap: 18px; position: sticky; top: calc(var(--hdr-h) + 20px); }
.buy .price { font-family: var(--f-mono); font-size: 20px; font-variant-numeric: tabular-nums; }
.buy .price del { color: var(--mute); font-size: 15px; margin-right: 8px; }
.buy .price ins { text-decoration: none; }
.buy .price .inst { color: var(--ink-2); font-size: 12px; }
.specs { display: grid; grid-template-columns: auto 1fr; gap: 10px 18px; align-items: center; font-size: 14px; margin: 0; }
.specs dt { font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.specs dd { margin: 0; }
.v-qty { display: inline-flex; border: 1px solid var(--line); height: 46px; flex: none; }
.v-qty button { width: 44px; background: none; border: 0; cursor: pointer; font-size: 18px; }
.v-qty input.qty {
	width: 40px; border: 0; text-align: center; font-family: var(--f-mono); font-size: 14px; background: none;
	-moz-appearance: textfield; appearance: textfield; padding: 0;
}
.v-qty input.qty::-webkit-outer-spin-button,
.v-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.v-qty.sm { height: 38px; }
.v-qty.sm button { width: 36px; }
form.cart.addrow { display: flex; gap: 16px; align-items: center; margin: 0; }
form.cart.addrow .single_add_to_cart_button { flex: 1; }
.stock.out-of-stock { font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--no); }
.acc details { border-top: 1px solid var(--line); }
.acc details:last-child { border-bottom: 1px solid var(--line); }
.acc summary {
	list-style: none; cursor: pointer; min-height: 52px; display: flex; align-items: center; justify-content: space-between;
	font-stretch: 125%; font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
}
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: "+"; font-family: var(--f-mono); font-size: 16px; }
.acc details[open] summary::after { content: "–"; }
.acc .bd { padding-bottom: 16px; font-size: 14px; color: var(--ink-2); display: flex; flex-direction: column; gap: 8px; }
.ship-calc { display: flex; flex-direction: column; gap: 8px; }
.ship-calc .out { font-size: 13.5px; color: var(--ink-2); }
.ship-calc .out ul { list-style: none; padding: 0; margin: 4px 0 0; display: flex; flex-direction: column; gap: 4px; }
.ship-calc .out li { display: flex; justify-content: space-between; gap: 12px; }
.pin-line { gap: 8px; }
.pin-line svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 1.5; flex: none; }
.related { margin-top: 64px; display: flex; flex-direction: column; gap: 24px; }
.related .grid { grid-template-columns: repeat(3, 1fr); }
.mbar { display: none; }

/* ---------- carrinho ---------- */
.v-cart { display: grid; grid-template-columns: 1fr 360px; gap: 48px; align-items: start; }
.v-cart .woocommerce-cart-form { margin: 0; }
.cart-line { display: grid; grid-template-columns: 96px 1fr auto; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); align-items: start; }
.cart-line .meta { display: flex; flex-direction: column; gap: 6px; }
.cart-line .meta a { text-decoration: none; }
.cart-line .nm { font-stretch: 125%; font-weight: 600; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.cart-line .end { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.cart-line .remove { font-size: 11px; }
.cart-line dl.variation { margin: 0; font-size: 13px; color: var(--ink-2); }
.sum { background: var(--sheet); padding: 24px; display: flex; flex-direction: column; gap: 14px; position: sticky; top: calc(var(--hdr-h) + 20px); }
.sum .r { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.sum .r .v { font-family: var(--f-mono); font-variant-numeric: tabular-nums; text-align: right; }
.sum .r.t { font-stretch: 125%; font-weight: 600; font-size: 16px; letter-spacing: .06em; text-transform: uppercase; border-top: 1px solid var(--line); padding-top: 14px; }
.sum .r.t .v { font-size: 16px; }
.sum .r.disc .v { color: var(--ok); }
.sum .note { font-family: var(--f-mono); font-size: 11.5px; color: var(--ink-2); }
.sum .bar { height: 3px; background: var(--line); }
.sum .bar i { display: block; height: 100%; background: var(--ink); }
.sum .coupon { display: flex; gap: 8px; flex-wrap: nowrap; }
.sum .coupon .btn { min-height: 46px; }
.sum .cont { align-self: center; }
.cart-ship { display: flex; flex-direction: column; gap: 10px; margin-top: 24px; max-width: 420px; }
.cart-ship .row { flex-wrap: nowrap; gap: 8px; }
.update-cart { display: none; }
.no-js .update-cart { display: inline-flex; }

/* ---------- responsive ---------- */
@media (max-width: 900px) {
	ul.products.shop-grid, .shop-grid { grid-template-columns: repeat(2, 1fr); }
	.v-cart { grid-template-columns: 1fr; gap: 28px; }
	.sum { position: static; }
}
@media (max-width: 700px) {
	.shop { grid-template-columns: 1fr; gap: 0; }
	.filters { display: none; position: static; border: 1px solid var(--line); padding: 16px; margin-bottom: 20px; }
	.filters.open { display: flex; }
	.fbtn { display: inline-flex; }
	ul.products.shop-grid, .shop-grid { gap: 20px 12px; }
	.pdp { grid-template-columns: 1fr; gap: 24px; }
	.gal { grid-template-columns: 1fr; }
	.thumbs { flex-direction: row; order: 2; }
	.thumbs button { width: 56px; }
	.buy { position: static; }
	.buy .addrow-wrap { display: none; }
	.related .grid { grid-template-columns: repeat(2, 1fr); }
	.related .grid > :nth-child(3) { display: none; }
	.mbar {
		display: flex; position: sticky; bottom: 0; background: var(--white); border-top: 1px solid var(--line);
		padding: 10px 16px; gap: 12px; align-items: center; z-index: 40;
	}
	.mbar .btn { flex: 1; }
	.cart-line { grid-template-columns: 72px 1fr; }
	.cart-line .end { grid-column: 2; flex-direction: row; justify-content: space-between; align-items: center; }
}
[data-ship-out] .q { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: 13.5px; }
[data-ship-out] .err { color: var(--no); font-size: 13px; }
@media (min-width: 1001px) { .filters [data-filter-apply] { display: none; } }
