/* ==========================================================================
   Quinta da Grela — a minha conta: navegação, painel, encomendas, moradas,
   entrada e recuperação de senha.

   Tokens: style.css (:root) · shell partilhado: woocommerce.css ·
   componentes de página: paginas.css.
   Carregado só na rota da conta (absites_enqueue → is_account_page()).
   ========================================================================== */

/* ==========================================================================
   1. Estrutura da página
   ========================================================================== */

/* A página da conta é uma aplicação, não um texto corrido: sem coluna de 72ch
   e sem as regras editoriais dos títulos do `.prose` (linha e margem extra). */
.woocommerce-account .prose { max-width: none; }

.woocommerce-account .prose h2 {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

/* As tabelas da loja não são tabelas de texto: sem a grelha do `.prose`. */
.woocommerce-account .prose table {
	margin-block: 0;
	font-size: inherit;
}

.woocommerce-account .prose table th,
.woocommerce-account .prose table td {
	border: 0;
	border-bottom: 1px solid var(--color-border);
	vertical-align: middle;
}

.woocommerce-account .prose table tr:last-child > th,
.woocommerce-account .prose table tr:last-child > td { border-bottom: 0; }

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 18rem minmax(0, 1fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

/* Sem navegação lateral (entrada, recuperação de senha): uma só coluna
   centrada, para os avisos ficarem alinhados com o cartão de entrada. */
body.conta-sem-sessao.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 62rem);
	justify-content: center;
	gap: var(--space);
}

.woocommerce-MyAccount-content { min-width: 0; }

.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-notices-wrapper:empty {
	margin-bottom: 0;
}

/* ==========================================================================
   2. Navegação (cartão do cliente + itens)
   ========================================================================== */

.woocommerce-MyAccount-navigation {
	position: sticky;
	top: calc(var(--header-h) + 1.25rem);
	width: 100%;
	padding: 1.1rem 1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.conta-nav__cartao {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
	padding: 0 0.35rem 1rem;
	border-bottom: 1px solid var(--color-border);
}

.conta-nav__monograma {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 2.7rem;
	height: 2.7rem;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-ink);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1;
}

.conta-nav__identidade {
	display: grid;
	gap: 0.1rem;
	min-width: 0;
}

.conta-nav__nome {
	color: var(--color-ink);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.conta-nav__email {
	overflow: hidden;
	color: var(--color-muted);
	font-size: 0.78rem;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation li { margin: 0; }

.woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.6rem 0.7rem;
	border-radius: var(--radius);
	color: var(--color-text);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: none;
	transition: background 0.16s var(--ease), color 0.16s var(--ease),
		box-shadow 0.16s var(--ease);
}

.woocommerce-MyAccount-navigation .conta-nav__icone {
	flex: 0 0 auto;
	width: 1.15rem;
	height: 1.15rem;
	color: var(--color-action);
}

.woocommerce-MyAccount-navigation li a:hover {
	background: var(--color-paper);
	color: var(--color-ink);
}

.woocommerce-MyAccount-navigation li.is-active > a {
	background: var(--color-primary-tint);
	box-shadow: inset 3px 0 0 var(--color-action);
	color: var(--color-ink);
	font-weight: 600;
}

.woocommerce-MyAccount-navigation li a:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: -2px;
}

/* Saída discreta no fim da lista (o link com nonce é o do WooCommerce). */
@media (min-width: 901px) {
	.woocommerce-MyAccount-navigation-link--customer-logout {
		margin-top: 0.5rem;
		padding-top: 0.5rem;
		border-top: 1px solid var(--color-border);
	}

	.woocommerce-MyAccount-navigation-link--customer-logout > a {
		color: var(--color-muted);
		font-size: 0.875rem;
	}

	.woocommerce-MyAccount-navigation-link--customer-logout > a .conta-nav__icone {
		color: var(--color-muted);
	}

	.woocommerce-MyAccount-navigation-link--customer-logout > a:hover {
		background: var(--color-danger-bg);
		color: var(--color-danger);
	}

	.woocommerce-MyAccount-navigation-link--customer-logout > a:hover .conta-nav__icone {
		color: var(--color-danger);
	}
}

/* ==========================================================================
   3. Entrada e recuperação de senha
   ========================================================================== */

.conta-acesso {
	display: grid;
	grid-template-columns: minmax(0, 25rem) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
	max-width: 62rem;
	margin-inline: auto;
}

.conta-acesso--estreito {
	grid-template-columns: minmax(0, 28rem);
	justify-content: center;
}

.conta-acesso__principal { min-width: 0; }

/* Registo (desligado neste site) mantém a grelha original em colunas. */
.conta-acesso #customer_login.col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: var(--gap);
}

.conta-cartao {
	padding: clamp(1.5rem, 3vw, 2rem);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.conta-cartao h2 {
	margin: 0 0 0.4em;
	font-size: var(--fs-h3);
}

.conta-cartao__intro {
	margin: 0 0 1.5rem;
	color: var(--color-text);
	font-size: 0.95rem;
	line-height: 1.55;
}

.conta-cartao form .form-row { margin-bottom: var(--space); }

.conta-cartao form .form-row.conta-cartao__lembrar { margin-bottom: 0; }

.conta-cartao form .form-row.conta-cartao__accoes { margin: 1.1rem 0 0; }

.conta-cartao form .button,
.conta-cartao form button[type='submit'] { width: 100%; }

.conta-cartao .lost_password {
	margin: 1rem 0 0;
	font-size: 0.9rem;
}

.conta-cartao .lost_password a {
	color: var(--color-action);
	text-underline-offset: 0.15em;
}

.conta-cartao__rodape {
	margin: 1.25rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--color-border);
	font-size: 0.9rem;
}

.conta-cartao .woocommerce-ResetPassword > p:first-of-type {
	margin-top: 0;
	color: var(--color-text);
	font-size: 0.95rem;
}

.conta-cartao .clear { display: none; }

/* Painel de apoio: o que a conta resolve e como falar com a quinta. */
.conta-apoio {
	padding: clamp(1.5rem, 3vw, 2rem);
	border-radius: var(--radius-card);
	background: var(--color-paper);
}

.conta-apoio h2 {
	margin: 0 0 1.25rem;
	font-size: var(--fs-h3);
}

.conta-apoio .eyebrow {
	margin-bottom: 0.6rem;
	color: var(--color-action);
}

.conta-apoio__lista {
	display: grid;
	gap: 1.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.conta-apoio__lista > li {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
}

.conta-apoio__selo {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--color-white);
	color: var(--color-action);
}

.conta-apoio__selo .icone { width: 1.2rem; height: 1.2rem; }

.conta-apoio__lista strong {
	display: block;
	margin-bottom: 0.15rem;
	color: var(--color-ink);
	font-size: 0.95rem;
}

.conta-apoio__lista > li > span:last-child > span {
	display: block;
	color: var(--color-text);
	font-size: 0.9rem;
	line-height: 1.5;
}

.conta-apoio__lista a {
	color: var(--color-action);
	text-underline-offset: 0.15em;
	overflow-wrap: anywhere;
}

.conta-apoio__contactos a { display: block; }

.conta-apoio__lista > li > span:last-child > .conta-apoio__horario {
	margin-top: 0.15rem;
	color: var(--color-muted);
	font-size: 0.82rem;
}

/* ==========================================================================
   4. Painel (dashboard)
   ========================================================================== */

.conta-painel {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.25rem);
}

.conta-topo .eyebrow { margin-bottom: 0.6rem; }

.conta-topo__titulo {
	margin: 0 0 0.35em;
	font-size: var(--fs-h2);
}

.conta-topo__texto {
	max-width: 52ch;
	margin: 0;
	color: var(--color-text);
	font-size: 1rem;
	line-height: 1.6;
}

.conta-atalhos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr));
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.conta-atalho { display: flex; }

.conta-atalho > a {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	width: 100%;
	padding: 1rem 1.1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
	color: var(--color-text);
	text-decoration: none;
	transition: border-color 0.18s var(--ease), background 0.18s var(--ease),
		box-shadow 0.18s var(--ease);
}

.conta-atalho > a:hover {
	border-color: var(--color-primary);
	background: var(--color-primary-tint);
	box-shadow: var(--shadow-sm);
}

.conta-atalho__selo {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--color-primary-tint);
	color: var(--color-action);
	transition: background 0.18s var(--ease);
}

.conta-atalho > a:hover .conta-atalho__selo { background: var(--color-white); }

.conta-atalho__selo .icone { width: 1.2rem; height: 1.2rem; }

.conta-atalho__texto {
	display: grid;
	gap: 0.1rem;
	min-width: 0;
}

.conta-atalho__texto strong {
	color: var(--color-ink);
	font-size: 0.95rem;
	line-height: 1.3;
}

.conta-atalho__texto span {
	color: var(--color-muted);
	font-size: 0.8rem;
	line-height: 1.35;
}

.conta-atalho__seta {
	display: inline-flex;
	margin-left: auto;
	color: var(--color-action);
	transition: transform 0.18s var(--ease);
}

.conta-atalho__seta .icone { width: 1.05rem; height: 1.05rem; }

.conta-atalho > a:hover .conta-atalho__seta { transform: translateX(3px); }

.conta-atalho > a:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: 2px;
}

.conta-seccao__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin-bottom: 0.9rem;
}

.conta-seccao__titulo {
	margin: 0;
	font-size: var(--fs-h3);
}

.conta-seccao__topo .ligacao-seta {
	color: var(--color-action);
	font-size: 0.9rem;
}

.conta-seccao__topo .ligacao-seta .icone {
	width: 1rem;
	height: 1rem;
}

.conta-pedidos-recentes {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.conta-pedido__link {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto auto;
	align-items: center;
	gap: 0.5rem 1rem;
	padding: 0.9rem 1.1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
	color: var(--color-text);
	text-decoration: none;
	transition: border-color 0.18s var(--ease), background 0.18s var(--ease);
}

.conta-pedido__link:hover {
	border-color: var(--color-border-strong);
	background: var(--color-paper);
}

.conta-pedido__link:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: 2px;
}

.conta-pedido__identidade {
	display: grid;
	gap: 0.1rem;
	min-width: 0;
}

.conta-pedido__numero {
	color: var(--color-ink);
	font-size: 0.95rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.conta-pedido__data {
	color: var(--color-muted);
	font-size: 0.82rem;
}

.conta-pedido__total {
	color: var(--color-ink);
	font-size: 0.95rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.conta-pedido__itens {
	display: block;
	color: var(--color-muted);
	font-size: 0.78rem;
	font-weight: 400;
}

.conta-pedido__seta {
	display: inline-flex;
	color: var(--color-action);
}

.conta-pedido__seta .icone { width: 1.05rem; height: 1.05rem; }

/* ==========================================================================
   5. Etiquetas de estado
   ========================================================================== */

.conta-estado {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.conta-estado--pendente,
.conta-estado--espera {
	background: var(--color-warning-bg);
	color: var(--color-text);
}

.conta-estado--processamento {
	background: var(--color-primary-tint);
	color: var(--color-action-dark);
}

.conta-estado--concluida {
	background: var(--color-success-bg);
	color: var(--color-action-dark);
}

.conta-estado--cancelada,
.conta-estado--falhada {
	background: var(--color-danger-bg);
	color: var(--color-danger);
}

.conta-estado--reembolsada,
.conta-estado--anulada,
.conta-estado--outro {
	background: var(--color-paper);
	color: var(--color-muted);
}

/* ==========================================================================
   6. Lista de encomendas
   ========================================================================== */

.conta-tabela {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
	overflow: hidden;
}

.conta-tabela table.shop_table {
	margin: 0;
	border: 0;
}

.conta-tabela thead th {
	padding: 0.8rem 1rem;
	border-bottom: 1px solid var(--color-border);
}

.conta-tabela tbody th,
.conta-tabela tbody td {
	padding: 0.85rem 1rem;
}

.woocommerce-account .conta-tabela tbody th { background: transparent; }

.conta-tabela tbody tr:hover { background: var(--color-paper); }

.conta-tabela .conta-pedido__numero {
	color: var(--color-action);
	text-decoration: none;
}

.conta-tabela .conta-pedido__numero:hover {
	color: var(--color-ink);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.conta-tabela time { font-size: 0.9rem; }

.conta-pedido__accoes {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.conta-pedido__accoes .button {
	padding: 0.45em 0.95em;
	font-size: 0.8rem;
}

.conta-pedido__accoes .button.view {
	background: var(--color-action);
	color: var(--color-white);
}

.conta-pedido__accoes .button.pay {
	background: var(--color-primary);
	color: var(--color-ink);
}

.conta-pedido__accoes .button.pay:hover {
	background: var(--color-primary-dark);
	color: var(--color-ink);
}

.conta-pedido__accoes .button.cancel {
	background: transparent;
	border-color: var(--color-border-strong);
	color: var(--color-muted);
}

.conta-pedido__accoes .button.cancel:hover {
	background: var(--color-danger-bg);
	border-color: var(--color-danger-bg);
	color: var(--color-danger);
}

.conta-paginacao {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.conta-paginacao .button {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55em 1.1em;
	border: 1px solid var(--color-border-strong);
	background: transparent;
	color: var(--color-action);
	font-size: 0.875rem;
}

.conta-paginacao .button:hover {
	background: var(--color-primary-tint);
	border-color: var(--color-primary);
	color: var(--color-action-dark);
}

.conta-paginacao .icone {
	width: 1rem;
	height: 1rem;
}

.conta-paginacao__estado {
	margin-inline: auto;
	color: var(--color-muted);
	font-size: 0.85rem;
	font-variant-numeric: tabular-nums;
}

/* Ecrã estreito: cada linha passa a cartão com a etiqueta da coluna. */
@media (max-width: 900px) {
	.conta-tabela {
		border: 0;
		background: transparent;
		overflow: visible;
	}

	.conta-tabela table.shop_table,
	.conta-tabela tbody,
	.conta-tabela tr,
	.conta-tabela th,
	.conta-tabela td {
		display: block;
		width: 100%;
	}

	.conta-tabela thead {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}

	.conta-tabela tbody tr {
		margin-bottom: 0.75rem;
		padding: 0.9rem 1rem;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-card);
		background: var(--color-white);
	}

	.conta-tabela tbody th,
	.conta-tabela tbody td {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		justify-content: flex-end;
		gap: 0.25rem 1.5rem;
		padding: 0.4rem 0;
		border: 0;
	}

	.conta-tabela tbody th::before,
	.conta-tabela tbody td::before {
		content: attr(data-title);
		flex: 0 0 auto;
		margin-right: auto;
		color: var(--color-muted);
		font-size: 0.68rem;
		font-weight: 600;
		letter-spacing: 0.09em;
		text-transform: uppercase;
	}

	.conta-tabela tbody th.woocommerce-orders-table__cell-order-number {
		display: block;
		padding-bottom: 0.5rem;
		margin-bottom: 0.4rem;
		border-bottom: 1px solid var(--color-border);
	}

	.conta-tabela tbody th.woocommerce-orders-table__cell-order-number::before { display: none; }

	.conta-tabela tbody .woocommerce-orders-table__cell-order-date,
	.conta-tabela tbody .woocommerce-orders-table__cell-order-status { padding-block: 0.15rem; }

	.conta-pedido__montante {
		display: grid;
		gap: 0.05rem;
		text-align: right;
	}

	.conta-tabela tbody .conta-pedido__accoes { align-self: center; }

	.conta-tabela tbody tr:hover { background: var(--color-white); }
}

/* ==========================================================================
   7. Ver encomenda
   ========================================================================== */

.conta-encomenda {
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

.conta-voltar { margin: 0; }

.ligacao-seta--voltar {
	color: var(--color-muted);
	font-size: 0.875rem;
}

.ligacao-seta--voltar:hover { color: var(--color-action); }

.ligacao-seta--voltar .icone {
	width: 1rem;
	height: 1rem;
	transition: transform 0.18s var(--ease);
}

.ligacao-seta--voltar:hover .icone { transform: translateX(-3px); }

.conta-encomenda__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid var(--color-border);
	border-left: 4px solid var(--color-primary);
	border-radius: var(--radius-card);
	background: var(--color-paper);
}

.conta-encomenda__texto {
	flex: 1 1 20rem;
	margin: 0;
	color: var(--color-text);
	font-size: 1rem;
	line-height: 1.6;
}

.conta-encomenda__total {
	display: grid;
	gap: 0.1rem;
	margin: 0;
	text-align: right;
}

.conta-encomenda__total span {
	color: var(--color-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.conta-encomenda__total .amount {
	color: var(--color-ink);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}

.conta-encomenda__texto mark {
	padding: 0;
	background: transparent;
	color: inherit;
}

.conta-encomenda__texto mark.order-number {
	color: var(--color-ink);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.conta-encomenda__texto mark.order-status {
	display: inline-block;
	margin-inline: 0.1em;
	padding: 0.05em 0.55em;
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-pill);
	background: var(--color-white);
	color: var(--color-ink);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.6;
}

/* Acções da encomenda (Pagar / Cancelar): a secundária fica discreta. */
.woocommerce-account .woocommerce-table--order-details .button.pay {
	background: var(--color-primary);
	color: var(--color-ink);
}

.woocommerce-account .woocommerce-table--order-details .button.pay:hover {
	background: var(--color-primary-dark);
	color: var(--color-ink);
}

.woocommerce-account .woocommerce-table--order-details .button.cancel {
	background: transparent;
	border-color: var(--color-border-strong);
	color: var(--color-muted);
}

.woocommerce-account .woocommerce-table--order-details .button.cancel:hover {
	background: var(--color-danger-bg);
	border-color: var(--color-danger-bg);
	color: var(--color-danger);
}

/* Actualizações da encomenda em linha temporal. */
.conta-avisos h2 {
	margin: 0 0 1rem;
	font-size: var(--fs-h3);
}

.conta-avisos .woocommerce-OrderUpdates {
	display: grid;
	gap: 1.1rem;
	margin: 0;
	padding: 0 0 0 1.15rem;
	border-left: 2px solid var(--color-primary);
	list-style: none;
}

.conta-avisos .woocommerce-OrderUpdate {
	position: relative;
	margin: 0;
	padding: 0;
}

.conta-avisos .woocommerce-OrderUpdate::before {
	content: '';
	position: absolute;
	top: 0.4rem;
	left: -1.62rem;
	width: 0.65rem;
	height: 0.65rem;
	border: 2px solid var(--color-white);
	border-radius: 50%;
	background: var(--color-accent);
}

.conta-avisos .woocommerce-OrderUpdate-meta {
	margin: 0 0 0.2rem;
	color: var(--color-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.conta-avisos .woocommerce-OrderUpdate-description {
	color: var(--color-text);
	font-size: 0.95rem;
	line-height: 1.6;
}

.conta-avisos .woocommerce-OrderUpdate-description p:last-child { margin-bottom: 0; }

.conta-avisos .clear { display: none; }

/* Detalhe da encomenda (template order/order-details.php do WooCommerce). */
.woocommerce-account .woocommerce-order-details__title,
.woocommerce-account .woocommerce-column__title {
	margin: 0 0 0.85rem;
	font-size: var(--fs-h3);
}

.woocommerce-account .woocommerce-table--order-details {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	overflow: hidden;
}

.woocommerce-account .woocommerce-table--order-details thead th {
	padding: 0.8rem 1rem;
}

.woocommerce-account .woocommerce-table--order-details tbody th,
.woocommerce-account .woocommerce-table--order-details tbody td,
.woocommerce-account .woocommerce-table--order-details tfoot th,
.woocommerce-account .woocommerce-table--order-details tfoot td {
	padding: 0.85rem 1rem;
}

.woocommerce-account .woocommerce-table--order-details .product-name a {
	color: var(--color-ink);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-account .woocommerce-table--order-details .product-name a:hover {
	color: var(--color-action);
	text-decoration: underline;
}

.woocommerce-account .woocommerce-table--order-details .product-quantity {
	color: var(--color-muted);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.woocommerce-account .woocommerce-table--order-details tfoot th {
	background: transparent;
	color: var(--color-muted);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce-account .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-account .woocommerce-table--order-details tfoot tr:last-child td {
	color: var(--color-ink);
	font-size: 1.05rem;
	font-weight: 600;
}

.woocommerce-account .woocommerce-table--order-details .includes_tax {
	color: var(--color-muted);
	font-size: 0.78rem;
	font-weight: 400;
}

.woocommerce-account .woocommerce-table--order-details .order-actions-button {
	padding: 0.5em 1em;
	font-size: 0.82rem;
}

/* Ponto de entrega / campos extra da encomenda. */
.woocommerce-account .woocommerce-table--custom-fields {
	margin: 0.85rem 0 0;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	background: var(--color-paper);
}

.woocommerce-account .woocommerce-table--custom-fields th,
.woocommerce-account .woocommerce-table--custom-fields td {
	padding: 0.7rem 1rem;
	border: 0;
	background: transparent;
	font-size: 0.9rem;
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce-account .woocommerce-table--custom-fields th {
	width: 45%;
	color: var(--color-muted);
	font-weight: 600;
}

.woocommerce-account .woocommerce-table--custom-fields td {
	color: var(--color-ink);
}

/* Morada de facturação / envio da encomenda. */
.woocommerce-account .woocommerce-customer-details { margin-top: var(--gap); }

.woocommerce-account .woocommerce-customer-details > .woocommerce-columns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: var(--gap);
}

.woocommerce-account .woocommerce-customer-details address {
	padding: 1rem 1.15rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	background: var(--color-white);
	color: var(--color-text);
	font-size: 0.95rem;
	font-style: normal;
	line-height: 1.65;
}

.woocommerce-account .woocommerce-customer-details--phone,
.woocommerce-account .woocommerce-customer-details--email {
	margin: 0.5rem 0 0;
	color: var(--color-muted);
	font-size: 0.9rem;
}

/* ==========================================================================
   8. Moradas (lista)
   ========================================================================== */

.conta-intro {
	max-width: 60ch;
	margin: 0 0 var(--gap);
	color: var(--color-text);
}

.conta-moradas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: var(--gap);
}

.conta-morada {
	padding: clamp(1.25rem, 2.5vw, 1.6rem);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
}

.conta-morada__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem 1rem;
	margin-bottom: 0.6rem;
}

.conta-morada__topo h2 {
	margin: 0;
	font-size: 1.1rem;
}

.conta-morada__texto {
	color: var(--color-text);
	font-size: 0.95rem;
	font-style: normal;
	line-height: 1.65;
}

.conta-morada__accao {
	margin: 1.1rem 0 0;
}

.conta-morada__accao .btn {
	text-decoration: none;
}

/* ==========================================================================
   9. Formulários da conta e da morada
   ========================================================================== */

.conta-formulario {
	display: grid;
	gap: clamp(1.1rem, 2vw, 1.5rem);
}

.conta-formulario__bloco {
	margin: 0;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
}

.conta-formulario__bloco--senha {
	border: 0;
	background: var(--color-paper);
}

.conta-formulario__titulo {
	margin: 0 0 1rem;
	padding: 0;
	color: var(--color-ink);
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.3;
}

.conta-formulario__nota {
	margin: -0.35rem 0 1rem;
	color: var(--color-muted);
	font-size: 0.875rem;
}

.conta-campos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 var(--gap);
	align-items: start;
}

.conta-campos .form-row {
	grid-column: 1 / -1;
	margin: 0 0 var(--space);
}

.conta-campos .form-row-first,
.conta-campos .form-row-last { grid-column: span 1; }

.conta-campos .woocommerce-input-wrapper { display: block; }

.conta-campos__ajuda {
	display: block;
	margin-top: 0.3rem;
	color: var(--color-muted);
	font-size: 0.8rem;
	line-height: 1.4;
}

.conta-campos__ajuda em { font-style: normal; }

/* Campos criados pelo editor de checkout: títulos e notas dentro do formulário. */
.conta-campos .thwcfd-field-heading { margin-bottom: 0.1rem; }

.conta-campos .thwcfd-field-heading h3 {
	margin: 0;
	padding-top: 0.35rem;
	font-size: 1rem;
}

.conta-campos .thwcfd-field-paragraph {
	margin-bottom: 0.85rem;
	color: var(--color-muted);
	font-size: 0.875rem;
	line-height: 1.5;
}

/* Separadores vazios do editor de campos (não têm controlo nenhum). */
.conta-campos .form-row[id*='spacer'] { display: none; }

.conta-formulario__accoes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin: 0;
	padding-top: 0.25rem;
}

.conta-formulario__accoes .button { min-width: 12rem; }

/* Botão “mostrar senha” que o JS do WooCommerce acrescenta aos campos.
   A folha de estilos do plugin está desligada, por isso desenha-se aqui. */
.woocommerce-account form .password-input {
	display: block;
	position: relative;
}

.woocommerce-account form .password-input .input-text { padding-right: 2.9rem; }

/* Select2 do “Ponto de entrega” (editor de campos do checkout): alinhar a
   caixa com os restantes inputs do tema. O plugin traz o seu próprio CSS. */
.woocommerce-account .select2-container { max-width: 100%; }

.woocommerce-account .select2-container .select2-selection--single {
	height: 2.85rem;
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius);
	background: var(--color-white);
}

.woocommerce-account .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0 2.6rem 0 0.85rem;
	color: var(--color-text);
	font-size: 0.95rem;
	line-height: 2.75rem;
}

.woocommerce-account .select2-container .select2-selection--single .select2-selection__arrow {
	right: 0.4rem;
	height: 2.75rem;
}

.woocommerce-account .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-account .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--color-action);
	outline: 3px solid var(--color-accent);
	outline-offset: 1px;
}

.woocommerce-account .select2-dropdown {
	border-color: var(--color-border-strong);
	border-radius: var(--radius);
}

.woocommerce-account .select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--color-primary-tint);
	color: var(--color-ink);
}

.woocommerce-account .select2-container--default .select2-results__option--selected {
	background: var(--color-primary);
	color: var(--color-ink);
}

/* Tabelas de detalhe da encomenda em ecrãs estreitos. */
@media (max-width: 620px) {
	.woocommerce-account .woocommerce-table--order-details th,
	.woocommerce-account .woocommerce-table--order-details td { padding: 0.7rem 0.85rem; }

	.woocommerce-account .woocommerce-table--order-details tfoot th { width: 40%; }

	.woocommerce-account .woocommerce-table--custom-fields th,
	.woocommerce-account .woocommerce-table--custom-fields td {
		display: block;
		width: 100%;
		padding: 0.5rem 0.9rem;
	}

	.woocommerce-account .woocommerce-table--custom-fields td { padding-top: 0; }

	/* Itens da encomenda: nome em cima, valor por baixo; totais em linhas
	   label/valor. A tabela deixa de ser tabela neste ecrã. */
	.woocommerce-account .woocommerce-table--order-details,
	.woocommerce-account .woocommerce-table--order-details tbody,
	.woocommerce-account .woocommerce-table--order-details tfoot,
	.woocommerce-account .woocommerce-table--order-details tbody tr,
	.woocommerce-account .woocommerce-table--order-details tfoot tr {
		display: block;
	}

	.woocommerce-account .woocommerce-table--order-details thead {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}

	.woocommerce-account .woocommerce-table--order-details tbody tr {
		padding: 0.85rem 0.9rem;
		border-bottom: 1px solid var(--color-border);
	}

	.woocommerce-account .woocommerce-table--order-details tbody tr:last-child { border-bottom: 0; }

	.woocommerce-account .woocommerce-table--order-details tbody th,
	.woocommerce-account .woocommerce-table--order-details tbody td {
		display: block;
		width: 100%;
		padding: 0;
		border: 0;
	}

	.woocommerce-account .woocommerce-table--order-details .product-total {
		margin-top: 0.2rem;
		color: var(--color-muted);
	}

	.woocommerce-account .woocommerce-table--order-details tfoot tr {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		justify-content: space-between;
		gap: 0.35rem 1rem;
		padding: 0.65rem 0.9rem;
		border-top: 1px solid var(--color-border);
	}

	.woocommerce-account .woocommerce-table--order-details tfoot th,
	.woocommerce-account .woocommerce-table--order-details tfoot td {
		display: block;
		width: auto;
		padding: 0;
		border: 0;
	}

	.woocommerce-account .woocommerce-table--order-details tfoot td {
		margin-left: auto;
		text-align: right;
	}

	.woocommerce-account .woocommerce-table--order-details tfoot .order-actions--heading {
		display: none;
	}
}

/* ==========================================================================
   10. Estados vazios
   ========================================================================== */

.conta-vazio {
	display: grid;
	justify-items: center;
	gap: 0.6rem;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px dashed var(--color-border-strong);
	border-radius: var(--radius-card);
	background: var(--color-paper);
	text-align: center;
}

.conta-vazio__selo {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--color-white);
	color: var(--color-action);
	box-shadow: var(--shadow-sm);
}

.conta-vazio__selo .icone { width: 1.4rem; height: 1.4rem; }

.conta-vazio__titulo {
	margin: 0;
	color: var(--color-ink);
	font-size: 1.05rem;
	font-weight: 600;
}

.conta-vazio__texto {
	max-width: 46ch;
	margin: 0;
	color: var(--color-muted);
	font-size: 0.9rem;
	line-height: 1.55;
}

.conta-vazio .btn { margin-top: 0.4rem; }

/* ==========================================================================
   11. Responsivo
   ========================================================================== */

@media (max-width: 1080px) {
	.woocommerce-account .woocommerce { grid-template-columns: 16rem minmax(0, 1fr); }
}

@media (max-width: 900px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--gap);
	}

	/* A navegação passa a uma fila de pastilhas acima do conteúdo. */
	.woocommerce-MyAccount-navigation {
		position: static;
		padding: 0.9rem;
	}

	.conta-nav__cartao {
		margin-bottom: 0.75rem;
		padding: 0 0.15rem 0.75rem;
	}

	.woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: wrap;
		gap: 0.35rem;
	}

	.woocommerce-MyAccount-navigation li a {
		gap: 0.4rem;
		padding: 0.45rem 0.8rem;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-pill);
		background: var(--color-white);
		font-size: 0.85rem;
	}

	.woocommerce-MyAccount-navigation li.is-active > a {
		border-color: var(--color-primary);
		background: var(--color-primary);
		box-shadow: none;
	}

	.woocommerce-MyAccount-navigation .conta-nav__icone {
		width: 1rem;
		height: 1rem;
	}

	.woocommerce-MyAccount-navigation-link--customer-logout > a {
		color: var(--color-muted);
	}

	.conta-acesso { grid-template-columns: minmax(0, 1fr); }

	.conta-acesso .conta-cartao,
	.conta-apoio { max-width: 34rem; }

	.conta-acesso--estreito .conta-cartao { max-width: 100%; }
}

@media (max-width: 620px) {
	.conta-campos { grid-template-columns: minmax(0, 1fr); }

	.conta-campos .form-row-first,
	.conta-campos .form-row-last { grid-column: 1 / -1; }

	.conta-pedido__link {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 0.4rem 0.75rem;
	}

	.conta-pedido__identidade { grid-column: 1; }

	.conta-pedido__estado {
		grid-column: 2;
		justify-self: end;
	}

	.conta-pedido__total { grid-column: 1; }

	.conta-pedido__seta {
		grid-column: 2;
		justify-self: end;
	}

	.conta-paginacao { justify-content: center; }

	.conta-paginacao__estado { flex-basis: 100%; order: -1; text-align: center; }

	.conta-formulario__accoes .button { width: 100%; }
}
