/**
 * Vitrine da loja — layout do design.
 *
 * Carrega em is_shop() e nas categorias, depois do loja.css (declarado como
 * dependência). Quase tudo aqui está escopado em `.bpc-vitrine`, o wrapper que
 * o arquivo.php imprime: isso dá aos seletores um peso naturalmente maior que
 * os genéricos do loja.css, sem precisar escalar especificidade caso a caso.
 */

/* Fundo areia: declarado no loja.css para todas as telas de loja. */

/* ─────────────────────────────────────────────
 *  HERO
 * ───────────────────────────────────────────── */

.bpc-vitrine-hero {
	/* Sangra a faixa para a largura da tela mesmo dentro do container do tema. */
	width: 100vw;
	margin-left: calc(50% - 50vw);
	/*
	 * Degradê de baixo para cima: areia no topo, adensando em verde até
	 * encostar na barra de garantias.
	 *
	 * O sentido importa — é o que faz o hero desaguar na faixa verde escura em
	 * vez de cortar contra ela. A primeira versão ia de #E4EFE6 para #F4EFE6,
	 * dois tons quase iguais, e na tela não lia como degradê nenhum; por isso
	 * o verde agora é um tom que se enxerga contra o areia, com um ponto
	 * intermediário para a transição ser suave.
	 */
	background: linear-gradient(180deg, var(--bpc-areia) 0%, #DFEAE0 58%, #C6DCCB 100%);
	padding: 44px 0 40px;
}

.bpc-vitrine-hero__interno,
.bpc-vitrine-garantias__interno {
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 16px;
}

.bpc-vitrine-hero__chapeu {
	display: block;
	font-family: var(--bpc-apoio);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bpc-verde);
	margin-bottom: 10px;
}

/*
 * O `h1` no seletor é obrigatório, não enfeite.
 *
 * O loja.css pinta `.woocommerce-page h1` com a cor de texto — (0,1,1) por
 * causa do elemento. Escrito só com a classe, este bloco fica em (0,1,0) e
 * perde: o título saía marrom em vez do verde escuro do design. Foi medido
 * em produção (rgb(42,29,18) onde devia ser rgb(35,78,51)).
 */
.bpc-vitrine-hero h1.bpc-vitrine-hero__titulo {
	font-family: var(--bpc-titulo);
	font-size: clamp(30px, 4vw, 42px);
	font-weight: 700;
	line-height: 1.1;
	color: var(--bpc-verde-escuro);
	margin: 0 0 12px;
}

.bpc-vitrine-hero__texto {
	font-family: var(--bpc-corpo);
	font-size: 16px;
	line-height: 1.6;
	color: #5A4A39;
	max-width: 52ch;
	margin: 0 0 24px;
}

/* Busca em pílula branca, com o botão verde dentro */
.bpc-vitrine-busca {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid rgba(42, 29, 18, .10);
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(42, 29, 18, .04), 0 10px 24px rgba(42, 29, 18, .06);
	padding: 8px 8px 8px 18px;
	max-width: 640px;
}

/* Lupa decorativa dentro do campo, como no design. */
.bpc-vitrine-busca__lupa {
	width: 20px;
	height: 20px;
	color: #8A7A66;
	flex: none;
}

.bpc-vitrine-busca input[type="search"] {
	flex: 1;
	border: 0;
	outline: 0;
	background: transparent;
	font-family: var(--bpc-corpo);
	font-size: 16px;
	color: var(--bpc-texto);
	min-height: 44px;
	padding: 0;
}

.bpc-vitrine-busca button {
	background: var(--bpc-verde);
	color: #fff;
	font-family: var(--bpc-apoio);
	font-size: 15px;
	font-weight: 600;
	border: 0;
	border-radius: 999px;
	padding: 12px 26px;
	cursor: pointer;
}

.bpc-vitrine-busca button:hover { background: var(--bpc-verde-escuro); }

/* ─────────────────────────────────────────────
 *  BARRA DE GARANTIAS
 * ───────────────────────────────────────────── */

.bpc-vitrine-garantias {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: var(--bpc-verde-escuro);
	padding: 14px 0;
}

.bpc-vitrine-garantias__interno {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 40px;
}

.bpc-garantia {
	display: flex;
	align-items: center;
	gap: 9px;
	font-family: var(--bpc-apoio);
	font-size: 13px;
	color: rgba(255, 255, 255, .94);
}

.bpc-garantia__icone { font-size: 15px; line-height: 1; }

/* ─────────────────────────────────────────────
 *  DUAS COLUNAS
 * ───────────────────────────────────────────── */

.bpc-vitrine {
	display: grid;
	grid-template-columns: 252px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
	max-width: 1180px;
	margin: 32px auto 64px;
	padding-inline: 16px;
}

/* ── Cartões de filtro ─────────────────────── */

.bpc-vitrine__filtros {
	display: grid;
	gap: 16px;
}

.bpc-filtro {
	background: #fff;
	border: 1px solid rgba(42, 29, 18, .10);
	border-radius: 12px;
	padding: 18px 20px 20px;
}

.bpc-filtro__titulo {
	font-family: var(--bpc-titulo);
	font-size: 17px;
	font-weight: 700;
	color: var(--bpc-texto);
	margin: 0 0 12px;
}

.bpc-filtro__lista {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bpc-filtro__lista li { margin: 0; }

.bpc-filtro__lista a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-family: var(--bpc-apoio);
	font-size: 14px;
	color: var(--bpc-texto);
	text-decoration: none;
	padding: 9px 11px;
	border-radius: 8px;
}

.bpc-filtro__lista a:hover { background: var(--bpc-areia); }

.bpc-filtro__lista .is-ativa a {
	background: #EAF2EC;
	color: var(--bpc-verde-escuro);
	font-weight: 600;
}

.bpc-filtro__conta {
	font-size: 12px;
	color: #8A7A66;
	font-variant-numeric: tabular-nums;
}

.bpc-filtro__lista .is-ativa .bpc-filtro__conta { color: var(--bpc-verde); }

.bpc-filtro__preco {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 8px;
}

.bpc-filtro__preco input {
	width: 100%;
	min-height: 42px;
	font-family: var(--bpc-corpo);
	font-size: 14px;
	color: var(--bpc-texto);
	background: #fff;
	border: 1px solid rgba(42, 29, 18, .16);
	border-radius: 8px;
	padding: 8px 10px;
}

.bpc-filtro__preco input:focus {
	outline: 0;
	border-color: var(--bpc-verde);
	box-shadow: 0 0 0 3px rgba(47, 107, 67, .15);
}

.bpc-filtro__tracinho { color: #8A7A66; }

/* ── Barra de faixa de preço ───────────────────
 *
 * Dois <input type="range"> sobrepostos sobre uma trilha desenhada: é a forma
 * padrão de fazer faixa dupla sem biblioteca. Os `range` são `aria-hidden` e
 * `tabindex="-1"` de propósito — quem usa teclado ou leitor de tela opera os
 * dois campos numéricos, que são os que de fato enviam o filtro. A barra é
 * atalho visual, e o formulário funciona igual se o JS não rodar. */
.bpc-faixa {
	grid-column: 1 / -1;
	position: relative;
	height: 26px;
	margin-top: 2px;
}

.bpc-faixa__trilha,
.bpc-faixa__ativo {
	position: absolute;
	top: 50%;
	height: 4px;
	transform: translateY(-50%);
	border-radius: 999px;
	pointer-events: none;
}

.bpc-faixa__trilha {
	left: 0;
	right: 0;
	background: rgba(42, 29, 18, .14);
}

.bpc-faixa__ativo {
	background: var(--bpc-verde);
	left: 0;
	right: 0;
}

.bpc-faixa input[type="range"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 26px;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	-webkit-appearance: none;
	appearance: none;
	/* A trilha inteira não recebe clique; só os polegares, senão um range
	 * cobriria o outro e o de cima venceria sempre. */
	pointer-events: none;
}

.bpc-faixa input[type="range"]:focus { outline: 0; }

.bpc-faixa input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	pointer-events: auto;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--bpc-verde);
	box-shadow: 0 1px 3px rgba(42, 29, 18, .2);
	cursor: pointer;
}

.bpc-faixa input[type="range"]::-moz-range-thumb {
	pointer-events: auto;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--bpc-verde);
	box-shadow: 0 1px 3px rgba(42, 29, 18, .2);
	cursor: pointer;
}

.bpc-faixa input[type="range"]::-moz-range-track { background: transparent; border: 0; }

.bpc-filtro__preco button {
	grid-column: 1 / -1;
	margin-top: 4px;
	background: var(--bpc-areia);
	color: var(--bpc-texto);
	font-family: var(--bpc-apoio);
	font-size: 14px;
	font-weight: 600;
	border: 0;
	border-radius: 8px;
	padding: 11px 16px;
	cursor: pointer;
}

.bpc-filtro__preco button:hover { background: #e9e0d1; }

/* ─────────────────────────────────────────────
 *  BARRA DE ORDENAÇÃO
 * ───────────────────────────────────────────── */

.bpc-vitrine__conteudo .bpc-contagem {
	font-family: var(--bpc-apoio);
	font-size: 14px;
	color: #5A4A39;
	margin: 0;
	float: none;
}

.bpc-vitrine__conteudo .bpc-contagem strong { color: var(--bpc-texto); }

.bpc-ordenar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 22px;
}

.bpc-ordenar__rotulo {
	font-family: var(--bpc-apoio);
	font-size: 14px;
	color: #8A7A66;
	margin-right: 4px;
}

.bpc-ordenar__item {
	font-family: var(--bpc-apoio);
	font-size: 14px;
	font-weight: 500;
	color: var(--bpc-texto);
	background: #fff;
	border: 1px solid rgba(42, 29, 18, .14);
	border-radius: 999px;
	padding: 9px 17px;
	text-decoration: none;
}

.bpc-ordenar__item:hover { border-color: var(--bpc-verde); color: var(--bpc-verde); }

.bpc-ordenar__item.is-ativa {
	background: var(--bpc-verde-escuro);
	border-color: var(--bpc-verde-escuro);
	color: #fff;
	font-weight: 600;
}

/* A contagem e as pílulas na mesma linha, extremos opostos.
 *
 * O wrapper .bpc-barra é impresso pelo arquivo.php justamente para isto: usar
 * grid na coluna inteira não funciona, porque ela também carrega breadcrumb e
 * descrição de categoria, que ocupariam as primeiras células. */
.bpc-barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 20px;
	margin-bottom: 22px;
}

.bpc-barra .bpc-ordenar { margin-bottom: 0; }

@media (max-width: 719px) {
	.bpc-barra { justify-content: flex-start; }
}

/* ─────────────────────────────────────────────
 *  CARTÕES
 * ───────────────────────────────────────────── */

.bpc-vitrine ul.products {
	grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
	gap: 20px;
}

.bpc-vitrine ul.products li.product {
	position: relative;
	border-radius: 12px;
	border: 1px solid rgba(42, 29, 18, .10);
	overflow: hidden;
}

.bpc-vitrine ul.products li.product a img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
	margin: 0;
}

/* Selo de tipo, sobre a foto */
.bpc-vitrine .bpc-card__selo {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	font-family: var(--bpc-apoio);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--bpc-texto);
	background: var(--bpc-areia);
	border-radius: 999px;
	padding: 5px 11px;
}

.bpc-vitrine .bpc-card__esgotado {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	font-family: var(--bpc-apoio);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
	background: rgba(90, 74, 57, .88);
	border-radius: 999px;
	padding: 5px 11px;
}

.bpc-vitrine .bpc-card__legenda {
	position: absolute;
	left: 14px;
	z-index: 2;
	font-family: var(--bpc-apoio);
	font-size: 11px;
	color: rgba(255, 255, 255, .94);
	text-shadow: 0 1px 6px rgba(0, 0, 0, .5);
	/* Ancorada ao pé da foto: a imagem é 4:3 da largura do cartão. */
	top: calc(75% - 24px);
}

.bpc-vitrine .bpc-card__parceiro {
	display: block;
	font-family: var(--bpc-apoio);
	font-size: 12px;
	font-weight: 600;
	color: var(--bpc-ocre);
	padding: 13px 14px 0;
}

.bpc-vitrine ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--bpc-titulo);
	font-size: 16px;
	line-height: 1.28;
	padding: 6px 14px 6px;
}

.bpc-vitrine ul.products li.product .star-rating {
	margin: 0 14px 8px;
	font-size: 12px;
}

.bpc-vitrine ul.products li.product .star-rating span::before { color: var(--bpc-ocre); }

.bpc-vitrine .bpc-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 12px;
	padding: 0 14px;
	list-style: none;
}

.bpc-vitrine .bpc-card__chips li {
	font-family: var(--bpc-apoio);
	font-size: 11px;
	color: var(--bpc-verde-escuro);
	background: #EAF2EC;
	border-radius: 999px;
	padding: 4px 10px;
}

/* Rodapé: preço com a linha de unidade à esquerda, botão à direita */
.bpc-vitrine .bpc-card__rodape {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding: 0 14px 14px;
}

.bpc-vitrine .bpc-card__valores { min-width: 0; }

.bpc-vitrine ul.products li.product .price {
	display: block;
	font-family: var(--bpc-titulo);
	font-size: 20px;
	font-weight: 700;
	color: var(--bpc-verde);
	padding: 0;
	margin: 0;
}

.bpc-vitrine .bpc-card__unidade {
	display: block;
	font-family: var(--bpc-apoio);
	font-size: 11px;
	color: #8A7A66;
	margin-top: 3px;
}

.bpc-vitrine ul.products li.product .button {
	margin: 0;
	flex: none;
	background: var(--bpc-coral);
	color: #fff;
	font-family: var(--bpc-apoio);
	font-size: 13px;
	font-weight: 600;
	border-radius: 999px;
	padding: 11px 18px;
	white-space: nowrap;
}

.bpc-vitrine ul.products li.product .button:hover {
	background: #c74a33;
	transform: none;
}

/* ─────────────────────────────────────────────
 *  PAGINAÇÃO
 * ───────────────────────────────────────────── */

.bpc-vitrine .woocommerce-pagination ul.page-numbers {
	display: flex;
	justify-content: center;
	gap: 8px;
	border: 0;
	margin: 36px 0 0;
	padding: 0;
}

.bpc-vitrine .woocommerce-pagination ul.page-numbers li {
	border: 0;
	margin: 0;
	overflow: visible;
}

.bpc-vitrine .woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	font-family: var(--bpc-apoio);
	font-size: 14px;
	font-weight: 600;
	color: var(--bpc-texto);
	background: #fff;
	border: 1px solid rgba(42, 29, 18, .12);
	border-radius: 999px;
	text-decoration: none;
}

.bpc-vitrine .woocommerce-pagination .page-numbers:hover { border-color: var(--bpc-verde); color: var(--bpc-verde); }

.bpc-vitrine .woocommerce-pagination .page-numbers.current {
	background: var(--bpc-verde);
	border-color: var(--bpc-verde);
	color: #fff;
}

/* ─────────────────────────────────────────────
 *  MOBILE
 * ───────────────────────────────────────────── */

@media (max-width: 900px) {
	.bpc-vitrine {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.bpc-vitrine__filtros {
		grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	}
}

@media (max-width: 640px) {
	.bpc-vitrine-hero { padding: 30px 0 28px; }
	.bpc-vitrine-busca { flex-wrap: wrap; padding: 10px; }
	.bpc-vitrine-busca input[type="search"] { flex: 1 1 100%; padding-inline: 8px; }
	.bpc-vitrine-busca button { flex: 1; }
	.bpc-vitrine-garantias__interno { gap: 10px; flex-direction: column; }
	.bpc-vitrine ul.products { grid-template-columns: repeat(auto-fill, minmax(158px, 1fr)); gap: 12px; }
	.bpc-vitrine .bpc-card__rodape { flex-direction: column; align-items: stretch; gap: 8px; }
	.bpc-vitrine ul.products li.product .button { text-align: center; }
}
