/* =========================================================================
   Dona Caprichosa — Páginas de Categoria / Subcategoria
   Layout limpo, branco, minimalista e premium — inspirado na
   referência visual aprovada. Escopado a body.tax-product_cat para
   nunca interferir com a ficha de produto nem outras páginas.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Variáveis de marca (mesma paleta usada na ficha de produto)
   ------------------------------------------------------------------------- */
body.tax-product_cat {
	--dccp-brand: #F29F03;
	--dccp-brand-dark: #C27F02;
	--dccp-text: #2D2D2D;
	--dccp-text-secondary: #666666;
	--dccp-line: #ECE7E2;
	--dccp-bg: #FFFFFF;
	--dccp-bg-tint: #FDFBF8;
	--dccp-radius: 2px;
}

/* -------------------------------------------------------------------------
   2. Cabeçalho da categoria — título + texto introdutório
   ------------------------------------------------------------------------- */
body.tax-product_cat .woocommerce-breadcrumb {
	font-size: 13px;
	color: var(--dccp-text-secondary);
	margin-bottom: 28px;
	padding-bottom: 0;
	border: none;
}

body.tax-product_cat .woocommerce-breadcrumb a {
	color: var(--dccp-text-secondary);
	text-decoration: none;
}

body.tax-product_cat .woocommerce-breadcrumb a:hover {
	color: var(--dccp-brand);
}

body.tax-product_cat h1.page-title,
body.tax-product_cat h1.woocommerce-products-header__title {
	font-size: 40px;
	font-weight: 700;
	color: var(--dccp-text);
	letter-spacing: 0.2px;
	margin: 0 0 14px 0;
	line-height: 1.15;
	position: relative;
	padding-bottom: 14px;
}

/* Pequeno traço laranja por baixo do título, como na referência. */
body.tax-product_cat h1.page-title::after,
body.tax-product_cat h1.woocommerce-products-header__title::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 46px;
	height: 3px;
	background-color: var(--dccp-brand);
	border-radius: 2px;
}

body.tax-product_cat .term-description {
	max-width: 640px;
	margin: 0 0 40px 0;
	font-size: 16px;
	line-height: 1.7;
	color: var(--dccp-text-secondary);
}

body.tax-product_cat .term-description p {
	margin: 0;
}

/* -------------------------------------------------------------------------
   2b. Barra "Todos | Subcategoria | Subcategoria"
   ------------------------------------------------------------------------- */
body.tax-product_cat .dccp-subcat-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	background-color: var(--dccp-bg-tint);
	border: 1px solid var(--dccp-line);
	border-radius: 999px;
	padding: 6px;
	margin: 0 0 32px 0;
	width: fit-content;
	max-width: 100%;
}

body.tax-product_cat .dccp-subcat-pill {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	color: var(--dccp-text);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, color 0.2s ease;
}

body.tax-product_cat .dccp-subcat-pill:hover {
	color: var(--dccp-brand);
}

body.tax-product_cat .dccp-subcat-pill.is-active {
	background-color: var(--dccp-brand);
	color: #ffffff;
}

body.tax-product_cat .dccp-subcat-pill.is-active:hover {
	color: #ffffff;
}

/* -------------------------------------------------------------------------
   3. Barra "X produtos" + "Ordenar por"
   ------------------------------------------------------------------------- */
body.tax-product_cat .woocommerce-result-count,
body.tax-product_cat .woocommerce-ordering {
	margin: 0;
}

body.tax-product_cat .woocommerce-result-count {
	font-size: 14px;
	color: var(--dccp-text-secondary);
}

body.tax-product_cat form.woocommerce-ordering {
	display: inline-block;
}

body.tax-product_cat select.orderby {
	border: 1px solid var(--dccp-line);
	border-radius: var(--dccp-radius);
	background-color: var(--dccp-bg);
	padding: 9px 34px 9px 14px;
	font-size: 14px;
	color: var(--dccp-text);
}

body.tax-product_cat select.orderby:focus {
	outline: none;
	border-color: var(--dccp-brand);
}

/* Linha com o número de produtos + ordenação, com um traço subtil por baixo. */
body.tax-product_cat .woocommerce-products-header + .term-description + p.woocommerce-result-count,
body.tax-product_cat p.woocommerce-result-count {
	display: inline-block;
}

body.tax-product_cat ul.products {
	margin-top: 0 !important;
	padding-top: 24px;
	border-top: 1px solid var(--dccp-line);
}

/* -------------------------------------------------------------------------
   4. Grelha de produtos
   ------------------------------------------------------------------------- */
body.tax-product_cat ul.products {
	display: grid !important;
	grid-auto-flow: row !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px 24px;
}

/* CAUSA REAL confirmada pelo HTML: o WooCommerce aplica por padrão um
   "clearfix" a ul.products (ul.products:before/:after { content:" ";
   display:table; }), pensado para o sistema antigo baseado em float.
   Com display:grid, esses pseudo-elementos passam a contar como itens
   reais da grelha (não são filhos do HTML, por isso não são apanhados
   por seletores de filhos) — e ocupavam sempre a primeira posição,
   empurrando todos os produtos uma casa. O clearfix não faz falta
   nenhuma com CSS Grid, por isso anula-se por completo. */
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after {
	content: none !important;
	display: none !important;
}

/* Só cartões de produto/subcategoria reais devem ocupar uma coluna da
   grelha. Isto evita que qualquer elemento extra que o tema injete
   dentro de ul.products (ex. texto para leitores de ecrã) crie uma
   coluna vazia na primeira linha. */
body.tax-product_cat ul.products > *:not(li.product):not(li.product-category) {
	display: none !important;
}

body.tax-product_cat ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	background-color: var(--dccp-bg);
	/* Anula qualquer "order"/"grid-column"/"grid-row" que o tema possa
	   ter definido para o sistema de grelha antigo (baseado em float) —
	   isto forçava o 1º produto para a 2ª posição, deixando a 1ª coluna
	   da 1ª linha vazia. Com auto-posicionamento puro, cada produto
	   ocupa a próxima posição livre, pela ordem normal. */
	order: 0;
	grid-column: auto !important;
	grid-row: auto !important;
}

body.tax-product_cat ul.products li.product-category {
	order: 0;
	grid-column: auto !important;
	grid-row: auto !important;
}

body.tax-product_cat ul.products li.product a {
	text-decoration: none;
	box-shadow: none;
}

body.tax-product_cat ul.products li.product img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 6px;
	margin-bottom: 14px;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

body.tax-product_cat ul.products li.product a:hover img {
	opacity: 0.92;
	transform: scale(1.01);
}

body.tax-product_cat ul.products li.product .woocommerce-loop-product__title {
	font-size: 15px;
	font-weight: 600;
	color: var(--dccp-text);
	margin: 0 0 6px 0;
	line-height: 1.35;
}

body.tax-product_cat ul.products li.product .price {
	font-size: 14px;
	font-weight: 500;
	color: var(--dccp-brand);
	margin-bottom: 10px;
	display: block;
}

body.tax-product_cat ul.products li.product .price del {
	color: var(--dccp-text-secondary);
	opacity: 0.7;
	font-weight: 400;
	margin-right: 6px;
}

body.tax-product_cat ul.products li.product .price ins {
	text-decoration: none;
}

/* Botão do loop ("Ver opções", "Adicionar ao carrinho", "Ler mais") —
   mantém o texto e o comportamento nativos do WooCommerce, só o
   estilo muda para um link discreto com seta, como na referência. */
body.tax-product_cat ul.products li.product .button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	padding: 0;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--dccp-brand);
	box-shadow: none;
	border-radius: 0;
	transition: gap 0.2s ease, color 0.2s ease;
}

body.tax-product_cat ul.products li.product .button::after {
	content: '\2192'; /* → */
	display: inline-block;
	transition: transform 0.2s ease;
}

body.tax-product_cat ul.products li.product .button:hover {
	color: var(--dccp-brand-dark);
	gap: 10px;
}

body.tax-product_cat ul.products li.product .button.loading::after {
	content: '';
}

/* Cartões de subcategoria, caso a loja mostre "Subcategorias" ou
   "Ambos" nesta categoria — mesmo estilo discreto, sem alterar essa
   definição do WooCommerce. */
body.tax-product_cat ul.products li.product-category {
	text-align: left;
}

body.tax-product_cat ul.products li.product-category img {
	border-radius: 6px;
}

body.tax-product_cat ul.products li.product-category h2 {
	font-size: 15px;
	font-weight: 600;
	color: var(--dccp-text);
	margin: 12px 0 2px 0;
}

body.tax-product_cat ul.products li.product-category .count {
	font-size: 12px;
	color: var(--dccp-text-secondary);
	background: none;
	padding: 0;
}

/* -------------------------------------------------------------------------
   5. Paginação
   ------------------------------------------------------------------------- */

/* O flex fica no próprio <nav>, para funcionar quer a paginação venha
   como <ul class="page-numbers"><li>...</li></ul>, quer como links
   soltos (<a class="page-numbers">) sem lista — não depende da
   estrutura exata gerada pelo WooCommerce/tema. */
body.tax-product_cat nav.woocommerce-pagination {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 44px !important;
	text-align: center;
}

body.tax-product_cat nav.woocommerce-pagination ul.page-numbers {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	border: none !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.tax-product_cat nav.woocommerce-pagination ul.page-numbers li {
	display: flex;
	border: none !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.tax-product_cat nav.woocommerce-pagination .page-numbers {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 4px;
	border-radius: 999px !important;
	border: 1px solid var(--dccp-line) !important;
	background: var(--dccp-bg);
	color: var(--dccp-text) !important;
	font-size: 14px;
	line-height: 1;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.tax-product_cat nav.woocommerce-pagination .page-numbers.current {
	background-color: var(--dccp-brand) !important;
	border-color: var(--dccp-brand) !important;
	color: #ffffff !important;
}

body.tax-product_cat nav.woocommerce-pagination a.page-numbers:hover {
	border-color: var(--dccp-brand) !important;
	color: var(--dccp-brand) !important;
}

body.tax-product_cat nav.woocommerce-pagination .page-numbers.dots {
	border: none !important;
	background: none !important;
	min-width: auto;
	width: auto;
	height: auto;
	color: var(--dccp-text-secondary) !important;
}

/* -------------------------------------------------------------------------
   6. NOVO — Secção informativa inferior
   ------------------------------------------------------------------------- */
body.tax-product_cat .dccp-info-section {
	margin-top: 64px;
	padding: 48px 0;
	background-color: var(--dccp-bg-tint);
	border-top: 1px solid var(--dccp-line);
	border-bottom: 1px solid var(--dccp-line);
}

body.tax-product_cat .dccp-info-grid {
	display: grid;
	gap: 32px 32px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

body.tax-product_cat .dccp-info-grid--4 {
	grid-template-columns: repeat(4, 1fr);
}

body.tax-product_cat .dccp-info-grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

body.tax-product_cat .dccp-info-block {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	text-align: left;
}

body.tax-product_cat .dccp-info-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	color: var(--dccp-brand);
}

body.tax-product_cat .dccp-info-icon svg {
	width: 26px;
	height: 26px;
}

body.tax-product_cat .dccp-info-text-wrap {
	padding-top: 2px;
}

body.tax-product_cat .dccp-info-title {
	font-size: 14px;
	font-weight: 700;
	color: var(--dccp-text);
	margin: 0 0 4px 0;
	line-height: 1.3;
}

body.tax-product_cat .dccp-info-text {
	font-size: 13px;
	line-height: 1.55;
	color: var(--dccp-text-secondary);
	margin: 0;
}

/* -------------------------------------------------------------------------
   7. Responsivo — Tablet
   ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	body.tax-product_cat ul.products {
		grid-template-columns: repeat(3, 1fr);
	}

	body.tax-product_cat .dccp-info-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	body.tax-product_cat .dccp-info-grid--3 {
		grid-template-columns: repeat(3, 1fr);
	}

	body.tax-product_cat h1.page-title,
	body.tax-product_cat h1.woocommerce-products-header__title {
		font-size: 34px;
	}
}

/* -------------------------------------------------------------------------
   8. Responsivo — Mobile
   ------------------------------------------------------------------------- */
@media (max-width: 640px) {
	body.tax-product_cat .dccp-subcat-nav {
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		border-radius: 16px;
	}

	body.tax-product_cat .dccp-subcat-pill {
		flex: 1;
		justify-content: center;
		text-align: center;
		padding: 9px 16px;
		font-size: 13px;
	}

	body.tax-product_cat h1.page-title,
	body.tax-product_cat h1.woocommerce-products-header__title {
		font-size: 28px;
	}

	body.tax-product_cat .term-description {
		font-size: 14px;
		margin-bottom: 28px;
	}

	body.tax-product_cat .woocommerce-result-count,
	body.tax-product_cat .woocommerce-ordering {
		display: block;
		width: 100%;
	}

	body.tax-product_cat .woocommerce-ordering {
		margin-top: 10px;
	}

	body.tax-product_cat select.orderby {
		width: 100%;
	}

	body.tax-product_cat ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px 14px;
	}

	body.tax-product_cat ul.products li.product .woocommerce-loop-product__title {
		font-size: 13px;
	}

	body.tax-product_cat ul.products li.product .price,
	body.tax-product_cat ul.products li.product .button {
		font-size: 13px;
	}

	body.tax-product_cat .dccp-info-section {
		margin-top: 40px;
		padding: 36px 0;
	}

	body.tax-product_cat .dccp-info-grid--4,
	body.tax-product_cat .dccp-info-grid--3 {
		grid-template-columns: 1fr;
		gap: 22px;
	}
}

/* Telemóveis muito pequenos: grelha de produtos a 1 coluna. */
@media (max-width: 420px) {
	body.tax-product_cat ul.products {
		grid-template-columns: 1fr;
	}
}
