/* ==========================================================================
   Marie Designs · tema
   Mobile first. Só aspeto: a lógica de preços e personalização está no plugin.
   ========================================================================== */

:root {
	--md-verde: #2F8578;
	--md-verde-escuro: #246A60;
	--md-verde-suave: #4E8F86;
	--md-verde-claro: #97C2BB;
	--md-dourado: #B79F77;
	--md-texto: #3A3532;
	--md-texto-2: #6E6761;
	--md-rosa: #F7D7D2;
	--md-amarelo: #F8EDCC;
	--md-menta: #D7F2EC;
	--md-lilas: #FAF0FF;
	--md-lilas-forte: #F1E3F8;
	--md-creme: #FBF8F4;
	--md-cinza: #F6F6F6;
	--md-linha: #ECE6DF;
	--md-branco: #fff;

	--md-raio: 20px;
	--md-raio-p: 14px;
	--md-raio-g: 26px;

	--md-fonte-titulos: 'Baloo 2', 'Segoe UI', sans-serif;
	--md-fonte: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

	--md-largura: 1240px;
	--md-gutter: 16px;

	/* Variáveis do plugin marie-designs-core, para combinar com o tema */
	--mdc-accent: var(--md-verde);
	--mdc-text: var(--md-texto);
	--mdc-muted: var(--md-texto-2);
	--mdc-border: var(--md-linha);
	--mdc-bg: var(--md-creme);
	--mdc-radius: var(--md-raio-p);
}

@media (min-width: 768px) {
	:root { --md-gutter: 28px; }
}

/* ---------- Base ---------- */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--md-branco);
	color: var(--md-texto);
	font-family: var(--md-fonte);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--md-verde); text-underline-offset: 3px; }
a:hover { color: var(--md-verde-escuro); }

h1, h2, h3, h4 {
	font-family: var(--md-fonte-titulos);
	font-weight: 600;
	line-height: 1.2;
	color: var(--md-texto);
	margin: 0 0 .5em;
}

h1 { font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem); }
h2 { font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); }
h3 { font-size: 1.2rem; font-weight: 500; }

p { margin: 0 0 1em; }

button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible { outline: 2px solid var(--md-verde); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.md-saltar:focus {
	clip: auto; width: auto; height: auto;
	top: 8px; left: 8px; z-index: 1000;
	background: var(--md-branco);
	padding: 10px 16px;
	border-radius: 10px;
}

.md-container {
	width: 100%;
	max-width: var(--md-largura);
	margin: 0 auto;
	padding-left: var(--md-gutter);
	padding-right: var(--md-gutter);
}

.md-centro { text-align: center; }

/* ---------- Botões ---------- */

.md-botao,
.button,
button.button,
a.button,
input.button,
.wp-element-button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--md-verde);
	color: var(--md-branco);
	font-family: var(--md-fonte);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background .2s ease, transform .1s ease;
}

.md-botao:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--md-verde-escuro);
	color: var(--md-branco);
}

.md-botao:active,
.button:active { transform: scale(.98); }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt { background: var(--md-verde); color: var(--md-branco); }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--md-verde-escuro); }

.woocommerce button.button:disabled,
.woocommerce button.button.disabled { opacity: .5; cursor: not-allowed; }

.md-icon-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--md-texto);
	cursor: pointer;
	text-decoration: none;
}

.md-icon-btn:hover { background: var(--md-cinza); color: var(--md-texto); }

/* ---------- Formulários ---------- */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
input[type="url"],
select,
textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio-p);
	background: var(--md-branco);
	font-size: 16px; /* evita zoom no iPhone */
}

.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 26px; padding: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }

input:focus,
select:focus,
textarea:focus { outline: none; border-color: var(--md-verde); box-shadow: 0 0 0 3px rgba(47, 133, 120, .15); }

label { font-weight: 500; }

/* ==========================================================================
   Cabeçalho
   ========================================================================== */

.md-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--md-branco);
	transition: box-shadow .2s ease;
}

/* Sem linhas: só uma sombra suave quando a página desce. */
.md-header.is-descido { box-shadow: 0 4px 18px rgba(58, 53, 50, .07); }

.admin-bar .md-header { top: 46px; }
@media (min-width: 783px) { .admin-bar .md-header { top: 32px; } }
@media (max-width: 600px) { .admin-bar .md-header { top: 0; } }

.md-header-topo {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: 64px;
	gap: 8px;
}

.md-header-esq,
.md-header-dir { display: flex; align-items: center; gap: 2px; }
.md-header-dir { justify-content: flex-end; }

.md-header-logo a { display: block; text-decoration: none; }
.md-header-logo img,
.md-header-logo .custom-logo { max-height: 46px; width: auto; }

.md-logo-texto {
	font-family: var(--md-fonte-titulos);
	font-size: 1.6rem;
	font-weight: 600;
	color: var(--md-dourado);
	line-height: 1;
}
.md-logo-texto span { color: var(--md-verde-claro); font-weight: 500; }

.md-header-esq .md-redes { display: none; }

.md-carrinho-num {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--md-verde);
	color: var(--md-branco);
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}
.md-carrinho-num[hidden] { display: none; }

.md-so-computador { display: none; }

.md-pesquisa {
	padding: 12px 0 16px;
	border-top: 1px solid var(--md-linha);
	background: var(--md-branco);
}
.md-pesquisa[hidden] { display: none; }

.md-pesquisa form,
.woocommerce-product-search { display: flex; gap: 8px; }
.woocommerce-product-search button { flex: none; }

/* Menu principal: escondido no telemóvel (usa o menu lateral) */
.md-nav { display: none; }

.md-menu,
.md-menu ul,
.md-menu-movel-lista,
.md-menu-movel-lista ul { list-style: none; margin: 0; padding: 0; }

@media (min-width: 1024px) {
	.md-menu-abrir { display: none; }
	.md-header-esq .md-redes { display: flex; }
	.md-so-computador { display: inline-flex; }
	.md-header-topo { min-height: 84px; }
	.md-header-logo img,
	.md-header-logo .custom-logo { max-height: 58px; }

	.md-nav { display: block; padding-bottom: 6px; }

	.md-menu {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 4px;
		max-width: var(--md-largura);
		margin: 0 auto;
		padding: 0 var(--md-gutter);
	}

	.md-menu > li { position: relative; }

	.md-menu a {
		display: block;
		padding: 12px 14px;
		color: var(--md-texto);
		font-size: .95rem;
		font-weight: 500;
		text-decoration: none;
		white-space: nowrap;
	}

	.md-menu > li > a:hover,
	.md-menu > .current-menu-item > a,
	.md-menu > .current-menu-ancestor > a { color: var(--md-verde); }

	.md-menu > .menu-item-has-children > a::after {
		content: '';
		display: inline-block;
		width: 6px;
		height: 6px;
		margin-left: 6px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: translateY(-3px) rotate(45deg);
	}

	.md-menu .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 220px;
		padding: 8px;
		background: var(--md-branco);
		border: 1px solid var(--md-linha);
		border-radius: var(--md-raio-p);
		box-shadow: 0 12px 30px rgba(58, 53, 50, .08);
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity .15s ease, transform .15s ease, visibility .15s;
		z-index: 10;
	}

	.md-menu .sub-menu .sub-menu { top: -8px; left: 100%; }

	.md-menu li:hover > .sub-menu,
	.md-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }

	.md-menu .sub-menu a { padding: 9px 12px; border-radius: 10px; }
	.md-menu .sub-menu a:hover { background: var(--md-creme); color: var(--md-verde); }
}

.md-redes { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
.md-redes a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	color: var(--md-texto-2);
}
.md-redes a:hover { background: var(--md-cinza); color: var(--md-verde); }

/* Menu lateral (telemóvel) */
.md-menu-movel {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: rgba(58, 53, 50, .35);
}
.md-menu-movel[hidden] { display: none; }

.md-menu-movel-painel {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: min(86vw, 360px);
	padding: 12px 20px 32px;
	background: var(--md-branco);
	overflow-y: auto;
	animation: md-entrar .22s ease;
}

@keyframes md-entrar { from { transform: translateX(-100%); } to { transform: none; } }

.md-menu-movel-topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }

.md-menu-movel-lista li { border-bottom: 1px solid var(--md-linha); position: relative; }
.md-menu-movel-lista a {
	display: block;
	padding: 14px 44px 14px 0;
	color: var(--md-texto);
	font-weight: 500;
	text-decoration: none;
}
.md-menu-movel-lista .sub-menu { display: none; padding-left: 14px; }
.md-menu-movel-lista .sub-menu li { border: 0; }
.md-menu-movel-lista .sub-menu a { padding: 10px 44px 10px 0; font-weight: 400; color: var(--md-texto-2); }
.md-menu-movel-lista .is-aberto > .sub-menu { display: block; }

.md-submenu-botao {
	position: absolute;
	top: 4px;
	right: 0;
	width: 44px;
	height: 44px;
	border: 0;
	background: none;
	cursor: pointer;
	color: var(--md-texto-2);
	display: flex;
	align-items: center;
	justify-content: center;
}
.md-submenu-botao svg { transition: transform .2s ease; }
.is-aberto > .md-submenu-botao svg { transform: rotate(180deg); }

.md-menu-movel-conta { display: flex; align-items: center; gap: 8px; margin: 20px 0 16px; color: var(--md-texto); text-decoration: none; font-weight: 500; }

body.md-sem-scroll { overflow: hidden; }

/* ==========================================================================
   Conteúdo geral
   ========================================================================== */

.md-main { display: block; min-height: 50vh; overflow-x: clip; }

/* Nada pode ser mais largo do que o ecrã (alguns plugins acrescentam blocos com largura fixa) */
.md-main img,
.md-main iframe,
.md-main video,
.md-main table,
.md-main pre { max-width: 100%; }
.woocommerce-order,
.woocommerce-order * { min-width: 0; }
.woocommerce-order { overflow-wrap: anywhere; }

.md-conteudo { padding-top: 32px; padding-bottom: 64px; }
.md-conteudo-estreito { max-width: 780px; }
.md-pagina-titulo { text-align: center; margin-bottom: 24px; }

.md-texto > :last-child { margin-bottom: 0; }
.md-texto ul,
.md-texto ol { padding-left: 1.2em; }
.md-texto li { margin-bottom: .3em; }
.md-texto img { border-radius: var(--md-raio); }

.md-404 { text-align: center; }
.md-404 form { max-width: 480px; margin: 24px auto; }

/* Blog e listagens genéricas */
.md-artigos { display: grid; gap: 24px; }
@media (min-width: 768px) { .md-artigos { grid-template-columns: repeat(3, 1fr); } }
.md-artigo-cartao img { border-radius: var(--md-raio); aspect-ratio: 1; object-fit: cover; width: 100%; }
.md-artigo-cartao h2 { font-size: 1.2rem; margin-top: 12px; }
.md-artigo-cartao a { color: var(--md-texto); text-decoration: none; }

.navigation.pagination,
.woocommerce-pagination { margin: 40px 0 0; text-align: center; }
.page-numbers { list-style: none; display: inline-flex; gap: 6px; padding: 0; margin: 0; flex-wrap: wrap; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
a.page-numbers,
span.page-numbers,
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 10px;
	border-radius: 999px;
	background: var(--md-cinza);
	color: var(--md-texto);
	text-decoration: none;
}
span.page-numbers.current,
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--md-verde); color: var(--md-branco); }

/* ==========================================================================
   Loja: moldura, migalhas, avisos
   ========================================================================== */

.md-loja { padding-top: 16px; padding-bottom: 56px; }

.md-migalhas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-bottom: 16px;
	color: var(--md-texto-2);
	font-size: .85rem;
}
.md-migalhas a { color: var(--md-texto-2); text-decoration: none; }
.md-migalhas a:hover { color: var(--md-verde); }
.md-migalhas-sep { opacity: .6; }

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	position: relative;
	list-style: none;
	margin: 0 0 24px;
	padding: 14px 18px;
	border: 0;
	border-radius: var(--md-raio-p);
	background: var(--md-menta);
	color: var(--md-texto);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-info { background: var(--md-amarelo); }
.woocommerce-error { background: var(--md-rosa); flex-direction: column; align-items: flex-start; }
.woocommerce-message .button,
.woocommerce-info .button { order: 2; margin-left: auto; min-height: 40px; padding: 8px 18px; font-size: .9rem; }
.woocommerce-message a:not(.button) { color: var(--md-verde-escuro); }

/* ==========================================================================
   Página de categoria / loja: cartões de produto
   ========================================================================== */

.woocommerce-products-header { text-align: center; margin: 8px 0 24px; }
.woocommerce-products-header__title { margin-bottom: 8px; }
.term-description { max-width: 680px; margin: 0 auto; color: var(--md-texto-2); }

.woocommerce-result-count { margin: 0 0 16px; color: var(--md-texto-2); font-size: .9rem; }
.woocommerce-ordering { margin: 0 0 20px; }
.woocommerce-ordering select { width: auto; min-height: 42px; padding: 8px 36px 8px 14px; border-radius: 999px; }


.woocommerce ul.products,
ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 14px;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

@media (min-width: 768px) {
	.woocommerce ul.products,
	ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 24px; }
}

@media (min-width: 1080px) {
	.woocommerce ul.products.columns-4,
	ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.woocommerce ul.products li.product,
ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: flex;
	flex-direction: column;
	text-align: left;
	position: relative;
}

ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	color: var(--md-texto);
	text-decoration: none;
	flex: 1;
}

/* Foto do cartão: quadrada, cantos redondos, 2.ª foto ao passar o rato */
.md-cartao-foto {
	position: relative;
	aspect-ratio: 1;
	margin: 0 0 12px;
	border-radius: var(--md-raio);
	overflow: hidden;
	background: var(--md-creme);
}

.md-cartao-foto img,
.woocommerce ul.products li.product a .md-cartao-foto img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	border-radius: 0;
	transition: opacity .35s ease, transform .5s ease;
}

.md-cartao-img-2 { opacity: 0; }

@media (hover: hover) {
	ul.products li.product a:hover .md-cartao-foto img { transform: scale(1.03); }
	ul.products li.product a:hover .md-cartao-img-2 { opacity: 1; }
}

.md-cartao-etiquetas {
	position: absolute;
	top: 8px;
	left: 8px;
	right: 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	pointer-events: none;
	z-index: 1;
}

.md-cartao-etiqueta {
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .9);
	color: var(--md-texto);
	font-size: .66rem;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: .01em;
}
.md-etiqueta-promo { background: var(--md-rosa); }
.md-etiqueta-esgotado { background: var(--md-texto); color: var(--md-branco); }

li.product.outofstock .md-cartao-img { opacity: .75; }

@media (min-width: 768px) {
	.md-cartao-etiqueta { font-size: .72rem; padding: 3px 10px; }
}

ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--md-fonte-titulos);
	font-size: 1.05rem;
	font-weight: 500;
	line-height: 1.3;
	padding: 0;
	margin: 0 0 4px;
}

ul.products li.product .price,
.woocommerce ul.products li.product .price {
	display: block;
	margin: 0 0 12px;
	color: var(--md-verde);
	font-weight: 700;
	font-size: 1rem;
}

.price del { color: var(--md-texto-2); font-weight: 400; opacity: .8; margin-right: 4px; }
.price ins { text-decoration: none; }

ul.products li.product .star-rating { margin: 0 0 6px; font-size: .8rem; }

ul.products li.product .button,
.woocommerce ul.products li.product .button {
	margin-top: auto;
	min-height: 40px;
	padding: 8px 18px;
	font-size: .9rem;
	align-self: flex-start;
	background: var(--md-verde);
	color: var(--md-branco);
	box-shadow: none;
}
ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:hover { background: var(--md-verde-escuro); color: var(--md-branco); }

@media (max-width: 767px) {
	ul.products li.product .button,
	.woocommerce ul.products li.product .button { align-self: stretch; padding: 8px 10px; }
}
ul.products li.product .added_to_cart { display: block; margin-top: 6px; font-size: .85rem; }

.woocommerce span.onsale,
ul.products li.product .onsale {
	position: absolute;
	top: 10px;
	left: 10px;
	right: auto;
	z-index: 2;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--md-rosa);
	color: var(--md-texto);
	font-size: .8rem;
	font-weight: 600;
	line-height: 1.6;
}

/* --- Título da categoria (simples, sem caixa) --- */

.md-arquivo-titulo {
	margin: 0 0 14px;
	font-size: clamp(1.6rem, 1.35rem + 1.2vw, 2.3rem);
	font-weight: 600;
}

@media (min-width: 768px) {
	.md-arquivo-titulo { margin-bottom: 20px; text-align: center; }
}

/* --- Atalhos de subcategorias (quebram linha, nunca ficam cortados) --- */

.md-chips { display: none; margin: 0 0 16px; }

/* Telemóvel: caixa "Categoria: Todos" */
.md-cat-escolha {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
}
.md-cat-escolha label { color: var(--md-texto-2); font-size: .9rem; font-weight: 400; flex: none; }
.md-cat-escolha select { flex: 1; min-width: 0; font-weight: 500; }

.md-chips ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.md-chips a {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 6px 13px;
	border-radius: 999px;
	background: var(--md-branco);
	box-shadow: inset 0 0 0 1px var(--md-linha);
	color: var(--md-texto);
	font-size: .85rem;
	font-weight: 500;
	text-decoration: none;
	transition: background .15s ease, box-shadow .15s ease;
}
.md-chips a:hover { box-shadow: inset 0 0 0 1px var(--md-verde-claro); color: var(--md-texto); }
.md-chips a.is-ativo { background: var(--md-verde); box-shadow: none; color: var(--md-branco); }

@media (min-width: 768px) {
	.md-cat-escolha { display: none; }
	.md-chips { display: block; margin-bottom: 24px; }
	.md-chips ul { justify-content: center; gap: 8px; }
	.md-chips a { min-height: 40px; padding: 8px 16px; font-size: .92rem; }
}

/* --- Barra: número de produtos + ordenação --- */

.md-arquivo-barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	margin-bottom: 18px;
}
.md-arquivo-barra .woocommerce-notices-wrapper { flex: 1 1 100%; }
.md-arquivo-barra .woocommerce-notices-wrapper:empty { display: none; }
.md-arquivo-barra .woocommerce-result-count,
.md-arquivo-barra .woocommerce-ordering { float: none; margin: 0; line-height: 1.4; }
.md-arquivo-barra .woocommerce-ordering { display: flex; align-items: center; gap: 8px; }
.md-arquivo-barra .woocommerce-ordering::before { content: 'Ordenar:'; color: var(--md-texto-2); font-size: .9rem; }
.md-cat-escolha select,
.md-arquivo-barra .woocommerce-ordering select {
	min-height: 40px;
	padding: 8px 36px 8px 16px;
	border-radius: 999px;
	font-size: .92rem;
	-webkit-appearance: none;
	appearance: none;
	background: var(--md-branco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%233A3532' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
}

.md-loja-arquivo ul.products { clear: none; }

/* --- Sem produtos --- */

.md-arquivo-vazio { text-align: center; padding: 24px 0 8px; }
.md-arquivo-vazio .woocommerce-info { justify-content: center; }

.md-loja-arquivo + .md-valores { margin-top: 8px; }

/* Subcategorias na loja */
ul.products li.product-category a { text-decoration: none; color: var(--md-texto); }
ul.products li.product-category h2 { font-size: 1.05rem; font-weight: 500; text-align: center; }
ul.products li.product-category mark { background: none; color: var(--md-texto-2); font-weight: 400; }

/* ==========================================================================
   Página de produto
   ========================================================================== */

.md-loja-produto { padding-bottom: 0; }

.md-produto { position: relative; }

.md-produto-topo {
	display: grid;
	gap: 24px;
	margin-bottom: 32px;
}

@media (min-width: 1080px) {
	.md-produto-topo {
		grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
		gap: 56px;
		align-items: start;
	}
}

/* --- Galeria --- */

.md-galeria { display: flex; flex-direction: column; gap: 10px; min-width: 0; }

.md-galeria-principal { display: flex; flex-direction: column; gap: 10px; min-width: 0; }

.md-galeria-foto {
	position: relative;
	margin: 0;
	border-radius: var(--md-raio-g);
	overflow: hidden;
	background: var(--md-creme);
	aspect-ratio: 1;
}

.md-galeria-foto a { display: block; height: 100%; cursor: zoom-in; }

.md-galeria-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity .2s ease;
}

.md-galeria-foto img.is-a-mudar { opacity: .35; }

.md-galeria-lupa {
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	color: var(--md-texto);
}

.md-etiquetas {
	position: absolute;
	top: 12px;
	left: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	pointer-events: none;
}

.md-etiquetas span {
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	color: var(--md-texto);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .01em;
}

.md-etiquetas span:nth-child(2) { background: var(--md-amarelo); }
.md-etiquetas span:nth-child(3) { background: var(--md-menta); }

.md-galeria-miniaturas {
	order: 2;
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	padding: 2px;
}
.md-galeria-miniaturas::-webkit-scrollbar { display: none; }

.md-galeria-mini {
	flex: none;
	width: 68px;
	height: 68px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: var(--md-raio-p);
	background: var(--md-creme);
	overflow: hidden;
	cursor: pointer;
	opacity: .7;
	transition: opacity .15s ease, border-color .15s ease;
}
.md-galeria-mini img { width: 100%; height: 100%; object-fit: cover; }
.md-galeria-mini:hover { opacity: 1; }
.md-galeria-mini.is-ativa { border-color: var(--md-verde); opacity: 1; }

.md-galeria-extra { display: none; }

@media (min-width: 1080px) {
	.md-galeria {
		flex-direction: row;
		align-items: flex-start;
		position: sticky;
		top: 150px;
	}

	.md-galeria-miniaturas {
		order: 0;
		flex-direction: column;
		width: 76px;
		flex: none;
		max-height: 640px;
		overflow-y: auto;
	}

	.md-galeria-mini { width: 72px; height: 72px; }

	.md-galeria-principal { flex: 1; }

	.md-galeria-extra {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	.md-galeria-extra a {
		display: block;
		aspect-ratio: 1;
		border-radius: var(--md-raio);
		overflow: hidden;
		background: var(--md-creme);
		cursor: zoom-in;
	}

	.md-galeria-extra img { width: 100%; height: 100%; object-fit: cover; }
}

/* Lightbox */
.md-lightbox {
	position: fixed;
	inset: 0;
	z-index: 300;
	background: rgba(30, 27, 25, .92);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 56px 12px;
}
.md-lightbox[hidden] { display: none; }
.md-lightbox img { max-height: 100%; max-width: min(100%, 1100px); width: auto; border-radius: var(--md-raio); }
.md-lightbox-fechar,
.md-lightbox-seta {
	position: absolute;
	width: 46px;
	height: 46px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--md-texto);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.md-lightbox-fechar { top: 12px; right: 12px; }
.md-lightbox-seta { top: 50%; margin-top: -23px; }
.md-lightbox-seta[data-dir="-1"] { left: 12px; }
.md-lightbox-seta[data-dir="-1"] svg { transform: rotate(90deg); }
.md-lightbox-seta[data-dir="1"] { right: 12px; }
.md-lightbox-seta[data-dir="1"] svg { transform: rotate(-90deg); }

/* --- Resumo --- */

.md-resumo { min-width: 0; }

/* O CSS do WooCommerce põe o resumo a 48% e a flutuar: aqui ocupa a coluna toda. */
.woocommerce div.product div.md-resumo.summary,
.woocommerce-page div.product div.md-resumo.summary {
	float: none;
	width: auto;
	margin: 0;
	clear: none;
}

.md-sobretitulo {
	margin: 0 0 6px;
	color: var(--md-dourado);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.md-produto-titulo {
	font-size: clamp(1.8rem, 1.5rem + 1.4vw, 2.5rem);
	font-weight: 600;
	margin-bottom: 10px;
}

.md-resumo .woocommerce-product-details__short-description {
	color: var(--md-texto-2);
	margin-bottom: 18px;
}
.md-resumo .woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }

.md-beneficios {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: grid;
	gap: 8px;
}

.md-beneficios li { display: flex; align-items: flex-start; gap: 10px; font-size: .95rem; }

.md-beneficio-visto {
	flex: none;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border-radius: 50%;
	background: var(--md-menta);
	color: var(--md-verde);
	display: flex;
	align-items: center;
	justify-content: center;
}
.md-beneficio-visto svg { stroke-width: 2.4; }

.md-preco { margin-bottom: 16px; }

.md-preco .price,
.md-resumo p.price,
.woocommerce div.product .md-preco p.price,
.woocommerce div.product .md-preco span.price {
	margin: 0;
	color: var(--md-verde);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.2;
}

.md-preco .mdc-nota-preco,
.md-preco small,
.md-resumo .mdc-nota-preco {
	display: block;
	margin-top: 4px;
	color: var(--md-texto-2);
	font-size: .85rem;
	font-weight: 400;
}

/* Formulário de compra */
.md-comprar form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 12px;
}

.md-comprar form.cart .mdc-personalizacao { flex: 1 1 100%; margin: 0 0 4px; }

/* O WooCommerce acrescenta pseudo-elementos e floats que estragam o alinhamento em flex. */
.woocommerce div.product .md-comprar form.cart::before,
.woocommerce div.product .md-comprar form.cart::after { display: none; }
.woocommerce div.product .md-comprar form.cart div.quantity,
.woocommerce div.product .md-comprar form.cart .button { float: none; margin: 0; }

.md-comprar .quantity { flex: none; }
.md-comprar .quantity .qty {
	width: 72px;
	min-height: 52px;
	text-align: center;
	border-radius: 999px;
}

.md-comprar .single_add_to_cart_button {
	flex: 1 1 200px;
	min-height: 54px;
	font-size: 1.05rem;
}

/* Produto personalizado: sem quantidade, botão a toda a largura (a quantidade continua a 1 no formulário
   e pode ser mudada no carrinho, se for mesmo preciso). */
.md-comprar.md-comprar-personalizado form.cart .quantity,
.md-comprar form.cart:has(.mdc-personalizacao) .quantity { display: none; }
.md-comprar.md-comprar-personalizado .single_add_to_cart_button { flex-basis: 100%; }
/* Com o coração dos favoritos (plugin): botão + coração na mesma linha */
.md-comprar form.cart .single_add_to_cart_button:has(~ .mdc-fav-produto),
.md-comprar form.cart:has(.mdc-fav-produto) .single_add_to_cart_button { flex: 1 1 0 !important; min-width: 0; }
.md-comprar .mdc-fav-produto { width: 54px; height: 54px; align-self: center; }

/* Coração no cabeçalho (só aparece se houver a página Favoritos) */
.md-favoritos-topo { position: relative; }
.md-favoritos-topo .md-carrinho-num { background: #D9776B; }

.md-comprar .stock { margin: 0 0 10px; font-size: .9rem; }
.md-comprar .stock.out-of-stock { color: #a94442; }

/* Variações */
.md-comprar table.variations { width: 100%; border: 0; margin: 0 0 8px; }
.md-comprar table.variations th,
.md-comprar table.variations td { display: block; padding: 0 0 6px; text-align: left; border: 0; }
.md-comprar .reset_variations { font-size: .85rem; }
.md-comprar .woocommerce-variation-price { margin-bottom: 8px; }
.md-comprar .single_variation_wrap { flex: 1 1 100%; }
.md-comprar .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; }

/* Favoritos de outros plugins, ao lado do botão */
.md-comprar .tinv-wraper,
.md-comprar .yith-wcwl-add-to-wishlist { margin: 0; align-self: center; }

.md-pagamento-seguro {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
	color: var(--md-texto-2);
	font-size: .85rem;
}
.md-pagamento-seguro svg { flex: none; color: var(--md-verde); }

.md-resumo .product_meta { display: none; }

/* --- Ícones --- */

.md-icones {
	list-style: none;
	margin: 0 0 40px;
	padding: 20px 0;
	border-top: 1px solid var(--md-linha);
	border-bottom: 1px solid var(--md-linha);
	display: flex;
	justify-content: center;
	gap: 8px;
	text-align: center;
}

.md-icones li { flex: 1 1 0; max-width: 220px; display: flex; flex-direction: column; align-items: center; gap: 8px; }

.md-icone-circulo {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--md-texto);
}

.md-icone-texto { font-size: .78rem; line-height: 1.3; color: var(--md-texto); }

@media (min-width: 768px) {
	.md-icones { gap: 24px; padding: 28px 0; margin-bottom: 56px; }
	.md-icone-circulo { width: 68px; height: 68px; }
	.md-icone-texto { font-size: .9rem; }
}

/* --- Separadores / acordeão --- */

.md-detalhes { display: grid; gap: 24px; margin-bottom: 48px; }

.md-tabs-lista { display: none; }

.md-tab { border-bottom: 1px solid var(--md-linha); }
.md-tab:first-of-type { border-top: 1px solid var(--md-linha); }

.md-tab-cabecalho {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 0;
	border: 0;
	background: none;
	text-align: left;
	font-family: var(--md-fonte-titulos);
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--md-texto);
	cursor: pointer;
}
.md-tab-cabecalho svg { flex: none; transition: transform .2s ease; color: var(--md-texto-2); }
.md-tab.is-ativo .md-tab-cabecalho svg { transform: rotate(180deg); }

.md-tab-painel { display: none; padding: 0 0 20px; color: var(--md-texto); }
.md-tab.is-ativo .md-tab-painel { display: block; }

.md-detalhes-foto { margin: 0; border-radius: var(--md-raio-g); overflow: hidden; aspect-ratio: 1; background: var(--md-creme); }
.md-detalhes-foto img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1079px) {
	.md-detalhes-foto { display: none; }
}

@media (min-width: 1080px) {
	.md-detalhes {
		grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
		gap: 48px;
		align-items: start;
		margin-bottom: 72px;
	}

	.md-tabs-lista {
		display: flex;
		flex-wrap: wrap;
		gap: 0 22px;
		margin-bottom: 22px;
		border-bottom: 1px solid var(--md-linha);
	}

	.md-tabs-botao {
		position: relative;
		padding: 12px 0;
		border: 0;
		background: transparent;
		color: var(--md-texto-2);
		font-family: var(--md-fonte-titulos);
		font-weight: 500;
		font-size: 1rem;
		white-space: nowrap;
		cursor: pointer;
	}
	.md-tabs-botao::after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		bottom: -1px;
		height: 2px;
		border-radius: 2px;
		background: transparent;
	}
	.md-tabs-botao:hover { color: var(--md-texto); }
	.md-tabs-botao.is-ativo { color: var(--md-verde); }
	.md-tabs-botao.is-ativo::after { background: var(--md-verde); }

	.md-tab,
	.md-tab:first-of-type { border: 0; }
	.md-tab-cabecalho { display: none; }
	.md-tab-painel { padding: 4px 4px 0; }
}

/* Avaliações dentro do separador */
.md-tab-painel #reviews h2 { font-size: 1.2rem; }
.md-tab-painel .commentlist { list-style: none; padding: 0; margin: 0; }
.md-tab-painel .commentlist li { padding: 16px 0; border-bottom: 1px solid var(--md-linha); }
.md-tab-painel .commentlist img.avatar { display: none; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { margin: 0; border: 0; padding: 0; }
.star-rating span::before,
.woocommerce .star-rating span::before { color: var(--md-dourado); }

/* --- Tânia + como funciona --- */

.md-historia { display: grid; gap: 20px; margin-bottom: 48px; }

.md-tania {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	padding: 28px 22px;
	border-radius: var(--md-raio-g);
	background: var(--md-lilas);
}

.md-tania-foto {
	width: 112px;
	height: 112px;
	border-radius: 50%;
	object-fit: cover;
	border: 4px solid var(--md-branco);
	flex: none;
}

.md-tania-texto p { color: var(--md-texto); }
.md-tania-texto > :last-child { margin-bottom: 0; }

.md-sobretitulo-lilas { color: #9B7AAE; }

.md-titulo-secao { font-size: clamp(1.4rem, 1.2rem + 1vw, 1.9rem); color: var(--md-verde-suave); }

.md-ligacao-lilas { font-weight: 600; color: var(--md-verde); }

.md-passos {
	padding: 28px 22px;
	border-radius: var(--md-raio-g);
	background: var(--md-creme);
}

.md-passos-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.md-passos-lista li { display: flex; gap: 14px; align-items: flex-start; }
.md-passos-lista strong { display: block; font-family: var(--md-fonte-titulos); font-weight: 600; font-size: 1.08rem; }
.md-passos-lista p { margin: 2px 0 0; color: var(--md-texto-2); font-size: .95rem; }

.md-passo-num {
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--md-fonte-titulos);
	font-weight: 600;
	font-size: 1.15rem;
}

@media (min-width: 768px) {
	.md-tania { flex-direction: row; align-items: center; padding: 36px; gap: 28px; }
	.md-tania-foto { width: 140px; height: 140px; }
	.md-passos { padding: 36px; }
}

@media (min-width: 1080px) {
	.md-historia { grid-template-columns: 1.1fr 1fr; gap: 24px; margin-bottom: 72px; }
}

/* --- Opiniões --- */

.md-opinioes { margin-bottom: 48px; }

.md-opinioes-lista {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 85%;
	gap: 14px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 6px;
	scrollbar-width: none;
	margin: 0 calc(var(--md-gutter) * -1);
	padding-left: var(--md-gutter);
	padding-right: var(--md-gutter);
	scroll-padding-inline: var(--md-gutter);
}
.md-opinioes-lista::-webkit-scrollbar { display: none; }

.md-opiniao {
	margin: 0;
	padding: 24px;
	border-radius: var(--md-raio);
	background: var(--md-branco);
	border: 1px solid var(--md-linha);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
}

.md-estrelas { color: var(--md-dourado); letter-spacing: 2px; margin-bottom: 10px; }

.md-opiniao blockquote { margin: 0 0 14px; font-size: .98rem; flex: 1; }
.md-opiniao figcaption { font-weight: 600; font-family: var(--md-fonte-titulos); }

@media (min-width: 768px) {
	.md-opinioes-lista {
		grid-auto-flow: row;
		grid-template-columns: repeat(3, 1fr);
		overflow: visible;
		margin: 0;
		padding: 0;
		gap: 24px;
	}
	.md-opinioes { margin-bottom: 72px; }
}

/* --- Relacionados --- */

.md-produto .related,
.md-produto .upsells { margin-bottom: 48px; }

.md-produto .related > h2,
.md-produto .upsells > h2 {
	text-align: center;
	font-size: clamp(1.4rem, 1.2rem + 1vw, 1.9rem);
	color: var(--md-verde-suave);
	margin-bottom: 24px;
}

@media (min-width: 768px) {
	.md-produto .related { margin-bottom: 72px; }
}

/* --- Valores --- */

.md-valores {
	margin: 0 calc(50% - 50vw);
	padding: 32px var(--md-gutter);
	background: var(--md-creme);
}

.md-valores-lista {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: var(--md-largura);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px 16px;
	text-align: center;
}

.md-valores-lista li { display: flex; flex-direction: column; align-items: center; gap: 4px; }

.md-valor-icone {
	width: 52px;
	height: 52px;
	margin-bottom: 6px;
	border-radius: 50%;
	background: var(--md-valor-cor, var(--md-rosa));
	display: flex;
	align-items: center;
	justify-content: center;
}

.md-valor-textos { display: flex; flex-direction: column; gap: 2px; }
.md-valor-curto { display: none; }
.md-valores-lista strong { font-family: var(--md-fonte-titulos); font-weight: 600; font-size: 1.08rem; }
.md-valor-textos > span { color: var(--md-texto-2); font-size: .9rem; }

@media (min-width: 768px) {
	.md-valores { padding: 44px var(--md-gutter); }
	.md-valores-lista { grid-template-columns: repeat(4, 1fr); }
}

/* --- Barra fixa no telemóvel --- */

.md-barra-fixa {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px var(--md-gutter) calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .97);
	border-top: 1px solid var(--md-linha);
	box-shadow: 0 -6px 20px rgba(58, 53, 50, .06);
	transform: translateY(110%);
	transition: transform .25s ease;
}

.md-barra-fixa.is-visivel { transform: none; }

.md-barra-img { width: 46px; height: 46px; border-radius: 12px; object-fit: cover; flex: none; }

.md-barra-info { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }

.md-barra-resumo {
	font-size: .85rem;
	color: var(--md-texto-2);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.md-barra-preco { font-weight: 700; color: var(--md-verde); }
.md-barra-preco .woocommerce-Price-amount { color: inherit; }

.md-barra-botao { flex: none; min-height: 46px; padding: 10px 20px; }

body.md-com-barra .md-footer { padding-bottom: 80px; }

@media (min-width: 1080px) {
	.md-barra-fixa { display: none; }
	body.md-com-barra .md-footer { padding-bottom: 0; }
}

/* ==========================================================================
   Carrinho, checkout e conta
   ========================================================================== */

.md-conteudo-loja { max-width: var(--md-largura); }
.md-conteudo-loja .md-pagina-titulo { text-align: left; }

.woocommerce table.shop_table {
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio);
	border-collapse: separate;
	overflow: hidden;
	margin-bottom: 24px;
}

.woocommerce table.shop_table th { font-weight: 600; background: var(--md-creme); }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-color: var(--md-linha); padding: 14px 16px; }

.woocommerce table.cart img { width: 72px; border-radius: 12px; }
.woocommerce table.cart td.product-name a { color: var(--md-texto); font-weight: 600; text-decoration: none; }
.woocommerce table.cart td.product-name dl.variation { margin: 6px 0 0; font-size: .88rem; color: var(--md-texto-2); }
.woocommerce table.cart td.product-name dl.variation dt { font-weight: 500; }
.woocommerce table.cart td.product-name dl.variation dd p { margin: 0; }
.woocommerce table.cart .product-remove a.remove { color: var(--md-texto-2) !important; }
.woocommerce table.cart .product-remove a.remove:hover { background: var(--md-rosa); color: var(--md-texto) !important; }

.woocommerce table.cart td.actions .coupon .input-text { width: 180px; min-height: 44px; margin-right: 8px; }
.woocommerce table.cart td.actions .button { min-height: 44px; padding: 8px 18px; }
.woocommerce table.cart td.actions button[name="update_cart"] { background: var(--md-cinza); color: var(--md-texto); }

@media (max-width: 768px) {
	.woocommerce table.shop_table_responsive tr td::before { font-weight: 600; }
	.woocommerce table.cart td.actions .coupon { display: flex; gap: 8px; }
	.woocommerce table.cart td.actions .coupon .input-text { flex: 1; width: auto; margin: 0; }
	.woocommerce table.cart td.actions .button { width: 100%; }
}

.cart-collaterals .cart_totals h2,
.woocommerce-checkout h3,
#order_review_heading { font-size: 1.3rem; }

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals { width: 100%; }
@media (min-width: 768px) {
	.woocommerce .cart-collaterals .cart_totals { width: 48%; }
}

.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 54px; font-size: 1.05rem; }

.woocommerce-cart .md-texto .woocommerce-cart-form + .cross-sells,
.woocommerce .cart-collaterals .cross-sells { width: 100%; }

/* Checkout */
.woocommerce form.checkout { display: grid; gap: 24px; }
@media (min-width: 1024px) {
	/* Duas colunas sem grelha: a da esquerda (dados) flutua à esquerda; tudo o resto (pagamento rápido,
	   resumo e pagamento) empilha-se à direita, sem espaços vazios entre os blocos. */
	.woocommerce form.checkout { display: block; }
	.woocommerce form.checkout::after { content: ''; display: table; clear: both; }
	.woocommerce form.checkout .col2-set { float: left; width: 55%; margin: 0; }
	.woocommerce form.checkout > :not(.col2-set) { float: right; clear: right; width: 40%; }
	.woocommerce form.checkout #order_review_heading { margin: 18px 0 14px; }
	.woocommerce form.checkout #order_review { position: static; }
}


.woocommerce form.checkout .col2-set .col-1,
.woocommerce form.checkout .col2-set .col-2 { width: 100%; float: none; }
.woocommerce form.checkout .col2-set .col-2 { margin-top: 16px; }

.woocommerce form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce form .form-row label { margin-bottom: 4px; font-size: .92rem; }
.woocommerce form .form-row .required { color: #c0605a; text-decoration: none; }

#order_review {
	padding: 20px;
	border-radius: var(--md-raio);
	background: var(--md-creme);
}
#order_review table.shop_table { background: var(--md-branco); }

.woocommerce-checkout #payment {
	background: var(--md-branco);
	border-radius: var(--md-raio-p);
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--md-linha); }
.woocommerce-checkout #payment div.payment_box { background: var(--md-cinza); border-radius: 12px; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--md-cinza); }
#place_order { width: 100%; min-height: 54px; font-size: 1.05rem; float: none; }

/* Conta */
.woocommerce-account .woocommerce { display: grid; gap: 24px; }
@media (min-width: 900px) {
	/* Lugar fixo para cada coisa: menu à esquerda, conteúdo à direita, o resto (avisos, plugins) por cima a toda a largura */
	.woocommerce-account.logged-in .woocommerce { grid-template-columns: 240px minmax(0, 1fr); gap: 24px 40px; align-items: start; }
	.woocommerce-account.logged-in .woocommerce > * { grid-column: 1 / -1; }
	.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; }
	.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; }
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; background: var(--md-creme); border-radius: var(--md-raio); }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: 10px; color: var(--md-texto); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a,
.woocommerce-MyAccount-navigation a:hover { background: var(--md-branco); color: var(--md-verde); }

.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce .col2-set,
.woocommerce-page .col2-set { width: 100%; }
@media (min-width: 768px) {
	#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
	#customer_login .col-1,
	#customer_login .col-2 { width: 100%; float: none; }
}
#customer_login::before,
#customer_login::after { display: none; }

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon {
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio);
	padding: 24px;
	margin: 0 0 24px;
}

/* ==========================================================================
   Rodapé
   ========================================================================== */

.md-footer {
	margin-top: 0;
	background: var(--md-branco);
	border-top: 1px solid var(--md-linha);
	font-size: .95rem;
}

.md-footer-colunas {
	display: grid;
	gap: 28px;
	padding-top: 40px;
	padding-bottom: 32px;
}

@media (min-width: 640px) { .md-footer-colunas { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .md-footer-colunas { grid-template-columns: repeat(4, 1fr); gap: 40px; padding-top: 56px; } }

.md-footer-titulo { font-size: 1.1rem; font-weight: 600; margin-bottom: 12px; color: var(--md-texto); }

.md-footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.md-footer-menu a { color: var(--md-texto-2); text-decoration: none; }
.md-footer-menu a:hover { color: var(--md-verde); }
.md-footer-menu small { display: block; color: var(--md-texto-2); font-size: .8rem; }

.md-footer-pagamentos { max-width: 220px; border-radius: 12px; }

.md-footer .md-redes { margin-top: 12px; }

.md-footer-fundo { background: var(--md-creme); }

.md-footer-fundo-linha {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 8px 24px;
	padding-top: 16px;
	padding-bottom: 16px;
	color: var(--md-texto-2);
	font-size: .85rem;
}
.md-footer-fundo-linha p { margin: 0; }
.md-footer-fundo-linha a { color: var(--md-texto-2); }

/* ==========================================================================
   Pormenores
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Página inicial
   Regras de coesão: um só cabeçalho de secção, fotos quadradas com cantos
   arredondados, ícones de traço fino em círculos pastel, um só botão verde.
   ========================================================================== */

/* --- Cabeçalho de secção (igual em todo o site) --- */

.md-secao-cabecalho { margin: 0 0 22px; }
.md-secao-cabecalho .md-sobretitulo { margin-bottom: 4px; }
.md-secao-cabecalho .md-titulo-secao { margin: 0; }
.md-secao-cabecalho.md-centro { text-align: center; }
.md-secao-desc { max-width: 560px; margin: 8px auto 0; color: var(--md-texto-2); }

.md-ver-todos {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	color: var(--md-verde);
	font-weight: 600;
	font-size: .92rem;
	text-decoration: none;
}
.md-ver-todos:hover { color: var(--md-verde-escuro); text-decoration: underline; }

@media (min-width: 768px) {
	.md-secao-cabecalho { margin-bottom: 32px; }
}

.md-inicio-secao { margin-top: 48px; margin-bottom: 48px; }
@media (min-width: 768px) {
	.md-inicio-secao { margin-top: 80px; margin-bottom: 80px; }
}

/* --- Slides ---
   Computador: foto a toda a largura, texto à esquerda sobre um véu creme.
   Telemóvel: foto quadrada com mais destaque; só o título e o botão, em baixo, sobre um véu suave. */

.md-hero { position: relative; }

.md-hero-faixa {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	background: var(--md-creme);
}
.md-hero-faixa::-webkit-scrollbar { display: none; }

.md-hero-slide {
	position: relative;
	flex: 0 0 100%;
	scroll-snap-align: start;
}

.md-hero-foto { display: block; aspect-ratio: 1; overflow: hidden; }
.md-hero-foto img { width: 100%; height: 100%; object-fit: cover; }

.md-hero-texto {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 70px var(--md-gutter) 22px;
	background: linear-gradient(to top, rgba(251, 248, 244, .96) 0%, rgba(251, 248, 244, .9) 45%, rgba(251, 248, 244, 0) 100%);
}
.md-hero-texto-dentro { max-width: var(--md-largura); margin: 0 auto; padding-right: 56px; }

/* No telemóvel: só título e botão */
.md-hero-texto .md-sobretitulo,
.md-hero-desc { display: none; }

.md-hero-titulo {
	margin: 0 0 12px;
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--md-texto);
}
.md-hero-texto .md-botao { min-height: 42px; padding: 10px 20px; font-size: .95rem; }

.md-hero-pontos {
	position: absolute;
	right: var(--md-gutter);
	bottom: 30px;
	display: flex;
	gap: 7px;
	z-index: 2;
}
.md-hero-ponto {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--md-verde-claro);
	opacity: .6;
	cursor: pointer;
	transition: width .25s ease, opacity .25s ease, background .25s ease;
}
.md-hero-ponto.is-ativo { width: 22px; opacity: 1; background: var(--md-verde); }

@media (min-width: 600px) and (max-width: 899px) {
	.md-hero-foto { aspect-ratio: 4 / 3; }
	.md-hero .md-hero-pontos { top: calc(75vw - 16px); }
}

@media (min-width: 900px) {
	.md-hero-slide { min-height: 520px; display: flex; align-items: stretch; }
	.md-hero-foto { position: absolute; inset: 0; aspect-ratio: auto; }
	.md-hero-texto {
		position: relative;
		inset: auto;
		flex: 1;
		display: flex;
		align-items: center;
		padding: 56px var(--md-gutter);
		background: linear-gradient(to right, rgba(251, 248, 244, .96) 0%, rgba(251, 248, 244, .9) 32%, rgba(251, 248, 244, 0) 62%);
	}
	.md-hero-texto-dentro { width: 100%; padding-right: 0; }
	.md-hero-texto-dentro > * { max-width: 460px; }
	.md-hero-texto .md-sobretitulo { display: block; margin-bottom: 8px; }
	.md-hero-desc { display: block; margin: 0 0 22px; color: var(--md-texto-2); font-size: 1.05rem; }
	.md-hero-titulo { font-size: clamp(2.2rem, 1.2rem + 2vw, 3.2rem); margin-bottom: 12px; }
	.md-hero-texto .md-botao { min-height: 48px; padding: 12px 26px; font-size: 1rem; }
	.md-hero-pontos {
		right: auto;
		left: max(var(--md-gutter), calc((100vw - var(--md-largura)) / 2 + var(--md-gutter)));
		bottom: 26px;
	}
}

@media (min-width: 1200px) {
	.md-hero-slide { min-height: 580px; }
}

/* --- Valores em faixa fina (logo abaixo dos slides) --- */

.md-valores.md-valores-compacta {
	margin-top: 20px;
	padding: 18px var(--md-gutter);
	background: transparent;
}
.md-valores-compacta .md-valores-lista { gap: 16px 12px; }
.md-valores-compacta .md-valores-lista li {
	flex-direction: row;
	align-items: center;
	text-align: left;
	gap: 10px;
}
.md-valores-compacta .md-valor-icone { width: 40px; height: 40px; margin: 0; flex: none; }
.md-valores-compacta .md-valor-icone svg { width: 18px; height: 18px; }
.md-valores-compacta .md-valores-lista strong { font-size: .92rem; line-height: 1.25; }
.md-valores-compacta .md-valor-textos > span { font-size: .78rem; line-height: 1.3; }
.md-valores-compacta .md-valor-textos { gap: 0; }

@media (max-width: 767px) {
	/* Telemóvel: só o ícone e a frase curta, para caber numa linha cada. */
	.md-valores-compacta .md-valor-textos > span { display: none; }
	.md-valores-compacta .md-valor-icone { width: 34px; height: 34px; }
	.md-valores-compacta .md-valores-lista strong { font-size: .86rem; }
}

@media (min-width: 768px) {
	.md-valores.md-valores-compacta { padding: 22px var(--md-gutter); margin-top: 28px; }
	.md-valores-compacta .md-valores-lista li { justify-content: center; }
}

/* --- Categorias (fotos quadradas, como os produtos) --- */

.md-categorias {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 12px;
}
.md-categorias a { display: block; text-decoration: none; color: var(--md-texto); }

.md-categoria-foto {
	display: block;
	aspect-ratio: 1;
	border-radius: var(--md-raio);
	overflow: hidden;
	background: var(--md-creme);
}
.md-categoria-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }

.md-categoria-nome {
	display: block;
	margin-top: 10px;
	text-align: center;
	font-family: var(--md-fonte-titulos);
	font-weight: 500;
	font-size: 1.05rem;
}

@media (hover: hover) {
	.md-categorias a:hover img { transform: scale(1.04); }
	.md-categorias a:hover .md-categoria-nome { color: var(--md-verde); }
}

@media (min-width: 768px) {
	.md-categorias { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; }
	.md-categorias.md-categorias-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.md-categoria-nome { font-size: 1.15rem; margin-top: 12px; }
}

/* --- Destaque: cartão grande + 4 produtos --- */

.md-destaque { display: grid; gap: 20px; }

.md-destaque-cartao {
	display: flex;
	flex-direction: column;
	border-radius: var(--md-raio-g);
	background: var(--md-destaque-cor, var(--md-creme));
	padding: 14px;
	text-decoration: none;
	color: var(--md-texto);
}
.md-destaque-foto { display: block; aspect-ratio: 1; border-radius: var(--md-raio); overflow: hidden; background: var(--md-branco); }
.md-destaque-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.md-destaque-texto { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 18px 8px 8px; text-align: center; }
.md-destaque-preco { color: var(--md-texto-2); }
.md-destaque-preco strong,
.md-destaque-preco .amount { color: var(--md-verde); font-weight: 700; }
.md-destaque-cartao:hover .md-destaque-foto img { transform: scale(1.03); }
.md-destaque-cartao:hover .md-destaque-botao { background: var(--md-verde-escuro); }

.md-destaque-produtos .woocommerce { width: 100%; }
.md-destaque-produtos ul.products,
.woocommerce .md-destaque-produtos ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; margin: 0; }

@media (max-width: 899px) {
	/* Telemóvel: cartão de destaque baixo, foto à esquerda e texto à direita. */
	.md-destaque-cartao { flex-direction: row; align-items: center; gap: 14px; padding: 10px; }
	.md-destaque-foto { flex: 0 0 42%; }
	.md-destaque-texto { flex: 1; align-items: flex-start; text-align: left; padding: 4px 4px 4px 0; gap: 10px; }
	.md-destaque-botao { min-height: 42px; padding: 10px 16px; font-size: .9rem; }
}

@media (min-width: 900px) {
	.md-destaque { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
	.md-destaque-inverso .md-destaque-cartao { order: 2; }
	.md-destaque-cartao { padding: 20px; position: sticky; top: 150px; }
	.md-destaque-produtos ul.products { gap: 28px 20px; }
}

/* --- Faixa larga com foto e caixa --- */

.md-faixa-foto { position: relative; margin: 48px 0; }
.md-faixa-foto-img { display: block; aspect-ratio: 1; overflow: hidden; }
.md-faixa-foto-img img { width: 100%; height: 100%; object-fit: cover; }

.md-faixa-caixa {
	position: relative;
	margin: -48px var(--md-gutter) 0;
	padding: 26px 22px;
	border-radius: var(--md-raio-g);
	background: var(--md-branco);
	box-shadow: 0 10px 30px rgba(58, 53, 50, .08);
	text-align: center;
}
.md-faixa-caixa .md-titulo-secao { margin: 0 0 8px; }
.md-faixa-caixa p:not(.md-sobretitulo) { color: var(--md-texto-2); margin: 0 0 18px; }

@media (min-width: 900px) {
	.md-faixa-foto { margin: 80px 0; min-height: 480px; display: flex; align-items: center; justify-content: center; }
	.md-faixa-foto-img { position: absolute; inset: 0; aspect-ratio: auto; }
	.md-faixa-caixa { margin: 0; width: min(480px, 90%); padding: 40px 44px; }
}

/* --- História (igual à da página de produto, um pouco maior) --- */

.md-tania-inicio .md-botao { margin-top: 4px; background: var(--md-verde); }
@media (min-width: 900px) {
	.md-tania-inicio { padding: 48px 56px; gap: 40px; }
	.md-tania-inicio .md-tania-foto { width: 180px; height: 180px; }
	.md-tania-inicio .md-tania-texto { max-width: 720px; }
}

/* ==========================================================================
   Afinações do telemóvel (página inicial, 25/10)
   ========================================================================== */

@media (max-width: 899px) {
	/* 1. Slide: o texto fica por baixo da foto; o véu começa na ponta da foto e continua para baixo */
	.md-hero-faixa { background: var(--md-creme); }
	.md-hero-texto {
		position: relative;
		margin-top: -44px;
		padding: 44px var(--md-gutter) 18px;
		background: linear-gradient(to bottom, rgba(251, 248, 244, 0) 0, rgba(251, 248, 244, .92) 30px, var(--md-creme) 44px);
	}
	.md-hero-texto { text-align: center; padding-top: 70px; padding-bottom: 44px; }
	.md-hero-texto-dentro { padding-right: 0; display: flex; flex-direction: column; align-items: center; }
	.md-hero-titulo { font-size: 1.3rem; margin-bottom: 10px; }
	.md-hero-desc { display: block; margin: 0 auto 24px; max-width: 320px; color: var(--md-texto-2); font-size: .92rem; line-height: 1.5; }
	.md-hero-texto .md-botao { min-height: 42px; padding: 10px 20px; font-size: .92rem; }

	/* Pontinhos ao centro, na ponta de baixo da foto (por cima do texto) */
	.md-hero-pontos {
		top: calc(100vw - 16px);
		bottom: auto;
		left: 0;
		right: 0;
		justify-content: center;
	}

	/* 3. Cartão de destaque: botão numa só linha */
	.md-destaque-botao {
		white-space: nowrap;
		min-height: 38px;
		padding: 8px 14px;
		font-size: .82rem;
	}
	.md-destaque-texto { gap: 8px; }
	.md-destaque-preco { font-size: .9rem; }
}

@media (max-width: 767px) {
	/* 2. Valores: centrados, cada um numa só linha; 2.º e 4.º trocam de lugar */
	.md-valores-compacta .md-valores-lista li:nth-child(2) { order: 4; }
	.md-valores-compacta .md-valores-lista li:nth-child(3) { order: 3; }
	.md-valores-compacta .md-valores-lista li:nth-child(4) { order: 2; }
	.md-valores-compacta .md-valores-lista li.tem-curto strong { display: none; }
	.md-valores-compacta .md-valor-curto { font-style: normal; font-weight: 600; font-size: .78rem; white-space: nowrap; color: var(--md-texto); }
	.md-valores-compacta .md-valores-lista {
		grid-template-columns: repeat(2, max-content);
		justify-content: center;
		gap: 12px 22px;
	}
	.md-valores-compacta .md-valores-lista li { gap: 8px; }
	.md-valores-compacta .md-valor-icone { width: 30px; height: 30px; }
	.md-valores-compacta .md-valor-icone svg { width: 16px; height: 16px; }
	.md-valores-compacta .md-valores-lista strong { font-size: .78rem; white-space: nowrap; }
	.md-valores-compacta .md-valor-curto { display: block; }

	/* 4. Opiniões: uma por baixo da outra, nenhuma cortada */
	.md-opinioes-lista {
		grid-auto-flow: row;
		grid-auto-columns: auto;
		grid-template-columns: 1fr;
		overflow: visible;
		margin: 0;
		padding: 0;
		gap: 12px;
	}
	.md-opiniao { padding: 20px; }

	/* 5. História: foto e títulos ao centro */
	.md-tania { align-items: center; text-align: center; }
	.md-tania-texto { display: flex; flex-direction: column; align-items: center; }
}

/* ==========================================================================
   Tablet (iPad mini e semelhantes, 600 a 1023 px)
   ========================================================================== */

@media (min-width: 600px) and (max-width: 899px) {
	/* Slide: texto um pouco maior, menos espaço vazio em baixo */
	.md-hero-titulo { font-size: 1.7rem; }
	.md-hero-desc { max-width: 440px; font-size: 1rem; }
	.md-hero-texto { padding-bottom: 36px; }

	/* Destaques: 4 produtos numa linha */
	.md-destaque-produtos ul.products,
	.woocommerce .md-destaque-produtos ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 20px 14px; }
	.md-destaque-cartao { max-width: 560px; margin: 0 auto; width: 100%; }

	/* Faixa com foto: mais baixa */
	.md-faixa-foto-img { aspect-ratio: 16 / 9; }
	.md-faixa-caixa { max-width: 560px; margin-left: auto; margin-right: auto; }
}

@media (min-width: 768px) and (max-width: 1023px) {
	/* Valores: os 4 numa linha, cada um com uma só linha de texto */
	.md-valores-compacta .md-valores-lista {
		grid-template-columns: repeat(4, max-content);
		justify-content: center;
		gap: 12px 18px;
	}
	.md-valores-compacta .md-valor-textos > span { display: none; }
	.md-valores-compacta .md-valores-lista li { gap: 8px; }
	.md-valores-compacta .md-valores-lista strong { font-size: .8rem; white-space: nowrap; }
	.md-valores-compacta .md-valores-lista li.tem-curto strong { display: none; }
	.md-valores-compacta .md-valor-curto { display: block; font-style: normal; font-weight: 600; font-size: .8rem; white-space: nowrap; color: var(--md-texto); }
	.md-valores-compacta .md-valor-icone { width: 30px; height: 30px; }
	.md-valores-compacta .md-valor-icone svg { width: 16px; height: 16px; }
}

/* ==========================================================================
   Carrinho no telemóvel (cada produto num cartão: foto, nome e detalhes, quantidade e total)
   ========================================================================== */

@media (max-width: 767px) {
	.woocommerce-cart-form table.shop_table,
	.woocommerce-cart-form table.shop_table tbody { display: block; width: 100%; border: 0; }
	.woocommerce-cart-form table.shop_table { border: 1px solid var(--md-linha); border-radius: var(--md-raio); overflow: hidden; }
	.woocommerce-cart-form table.shop_table thead { display: none; }

	.woocommerce-cart-form table.cart tr.cart_item {
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr) auto;
		grid-template-areas:
			"foto nome tirar"
			"foto qtd total";
		gap: 8px 12px;
		align-items: start;
		padding: 16px 14px;
		border-bottom: 1px solid var(--md-linha);
	}

	.woocommerce-cart-form table.cart tr.cart_item td {
		display: block;
		padding: 0;
		border: 0;
		text-align: left;
		background: none;
	}
	.woocommerce-cart-form table.cart tr.cart_item td::before { display: none; }

	.woocommerce-cart-form td.product-thumbnail { grid-area: foto; display: block !important; }
	.woocommerce-cart-form td.product-thumbnail img { width: 72px; height: 72px; object-fit: cover; border-radius: 12px; }
	.woocommerce-cart-form td.product-name { grid-area: nome; font-size: .95rem; line-height: 1.35; }
	.woocommerce-cart-form td.product-name dl.variation { margin-top: 4px; font-size: .82rem; line-height: 1.45; }
	.woocommerce-cart-form td.product-name dl.variation dt,
	.woocommerce-cart-form td.product-name dl.variation dd { display: inline; margin: 0; }
	.woocommerce-cart-form td.product-name dl.variation dd::after { content: ''; display: block; }
	.woocommerce-cart-form td.product-name dl.variation dd p { display: inline; margin: 0; }
	.woocommerce-cart-form td.product-name dl.variation dt { font-weight: 600; color: var(--md-texto); margin-right: .3em; }
	.woocommerce-cart-form td.product-name dl.variation dd { color: var(--md-texto-2); }
	.woocommerce-cart-form td.product-remove { grid-area: tirar; }
	.woocommerce-cart-form td.product-remove a.remove { display: block; width: 28px; height: 28px; line-height: 26px; font-size: 1.3rem; text-align: center; text-decoration: none; border-radius: 50%; }
	.woocommerce-cart-form td.product-price { display: none !important; }
	.woocommerce-cart-form td.product-quantity { grid-area: qtd; }
	.woocommerce-cart-form td.product-quantity .qty { width: 64px; min-height: 40px; padding: 6px; text-align: center; border-radius: 999px; }
	.woocommerce-cart-form td.product-subtotal { grid-area: total; align-self: center; font-weight: 700; color: var(--md-verde); }

	.woocommerce-cart-form table.cart tr:last-child { display: block; }
	.woocommerce-cart-form table.cart td.actions { display: block; padding: 14px; border: 0; }
	.woocommerce-cart-form table.cart td.actions .coupon { display: flex; gap: 8px; margin-bottom: 10px; float: none; }
	.woocommerce-cart-form table.cart td.actions .coupon .input-text { flex: 1; width: auto; min-width: 0; margin: 0; }
	.woocommerce-cart-form table.cart td.actions .coupon .button { flex: none; width: auto; }
	.woocommerce-cart-form table.cart td.actions > .button { width: 100%; float: none; }

	.cart-collaterals .cart_totals table.shop_table { display: table; width: 100%; }
	.cart-collaterals .cart_totals table.shop_table th { text-align: left; }
	.cart-collaterals .cart_totals table.shop_table th { width: 34%; }
}

/* Carrinho e checkout: título e espaço */
.md-conteudo-loja { padding-top: 20px; }
.md-conteudo-loja .md-pagina-titulo { margin-bottom: 20px; font-size: clamp(1.6rem, 1.35rem + 1.2vw, 2.3rem); }
@media (min-width: 768px) {
	.woocommerce .cart-collaterals { margin-top: 8px; }
}

/* ==========================================================================
   Checkout
   ========================================================================== */

input[type="checkbox"],
input[type="radio"] { accent-color: var(--md-verde); width: 18px; height: 18px; min-height: 0; vertical-align: middle; }

.woocommerce-checkout h3,
#order_review_heading { margin: 8px 0 14px; }

/* Textos legais, consentimentos (ex.: SMS) e notas: mais pequenos e discretos */
.woocommerce-checkout .form-row label.checkbox,
.woocommerce-checkout .form-row .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 8px; font-weight: 400; font-size: .9rem; line-height: 1.4; }
.woocommerce-checkout .form-row label.checkbox input,
.woocommerce-checkout .form-row .woocommerce-form__label-for-checkbox input { margin-top: 1px; flex: none; }
.woocommerce-checkout .form-row .description,
.woocommerce-checkout .form-row small,
.woocommerce-checkout .woocommerce-billing-fields p:not(.form-row),
.woocommerce-checkout .woocommerce-billing-fields .form-row > span:not(.woocommerce-input-wrapper):not(.optional),
.woocommerce-privacy-policy-text,
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p {
	font-size: .8rem;
	line-height: 1.45;
	color: var(--md-texto-2);
}
.woocommerce-terms-and-conditions-wrapper { margin: 12px 0; }
.woocommerce-checkout .optional { color: var(--md-texto-2); font-weight: 400; font-size: .85em; }
#ship-to-different-address { font-size: 1rem; }
#ship-to-different-address label { display: flex; align-items: center; gap: 8px; font-weight: 600; }

/* Textos legais trocados pelo tema (ex.: consentimento das SMS) */
.md-texto-legal { display: block; font-size: .7rem !important; line-height: 1.45 !important; font-weight: 400 !important; color: var(--md-texto-2) !important; margin: 6px 0 14px !important; }

/* Nota do telefone: sempre visível (o WooCommerce só a mostrava ao clicar no campo) */
.woocommerce-checkout #billing_phone_field .description {
	display: block !important;
	position: static !important;
	margin: 6px 0 0;
	padding: 0 0 0 22px;
	border: 0;
	background: none !important;
	box-shadow: none;
	color: var(--md-texto-2) !important;
	font-size: .8rem;
	line-height: 1.4;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232F8578' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8l8-4 8 4v8l-8 4-8-4z'/%3E%3Cpath d='M4 8l8 4 8-4M12 12v8'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: 0 1px !important;
}
.woocommerce-checkout #billing_phone_field .description::before { display: none; }

/* Resumo da encomenda */
#order_review table.shop_table td.product-name { font-size: .92rem; line-height: 1.35; }
#order_review table.shop_table td.product-name dl.variation { margin: 6px 0 0; font-size: .8rem; line-height: 1.45; }
#order_review table.shop_table td.product-name dl.variation dt,
#order_review table.shop_table td.product-name dl.variation dd { display: inline; margin: 0; float: none; }
#order_review table.shop_table td.product-name dl.variation dt { font-weight: 600; margin-right: .3em; }
#order_review table.shop_table td.product-name dl.variation dd { color: var(--md-texto-2); }
#order_review table.shop_table td.product-name dl.variation dd::after { content: ''; display: block; }
#order_review table.shop_table td.product-name dl.variation dd p { display: inline; margin: 0; }
#order_review .order-total th,
#order_review .order-total td { font-size: 1.05rem; }
#order_review .order-total .amount { color: var(--md-verde); }

/* Formas de pagamento em cartões */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0 0 4px;
	border: 0;
}
.woocommerce-checkout #payment ul.payment_methods li {
	list-style: none;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio-p);
	background: var(--md-branco);
	line-height: 1.4;
}
.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) {
	border-color: var(--md-verde);
	box-shadow: 0 0 0 1px var(--md-verde);
}
.woocommerce-checkout #payment ul.payment_methods li > input.input-radio { margin: 0 8px 0 0; }
.woocommerce-checkout #payment ul.payment_methods li > label {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	max-width: calc(100% - 30px);
	vertical-align: middle;
	font-weight: 600;
	cursor: pointer;
}
.woocommerce-checkout #payment ul.payment_methods li label img {
	display: inline-block;
	max-height: 24px;
	width: auto;
	margin: 0 !important;
	float: none !important;
	vertical-align: middle;
}
.woocommerce-checkout #payment ul.payment_methods li label a { font-weight: 400; font-size: .85rem; }
.woocommerce-checkout #payment div.payment_box {
	margin: 10px 0 0;
	padding: 12px;
	border-radius: 12px;
	background: var(--md-creme);
	font-size: .9rem;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row.place-order { padding: 14px 0 0; margin: 0; }

/* Logótipos dos métodos (ex.: MB WAY, que vinha com um espaço à esquerda e mais em baixo) */
.woocommerce-checkout #payment ul.payment_methods li > label {
	margin: 0 !important;
	padding: 0 !important;
	text-indent: 0 !important;
	line-height: 1.3;
}
.woocommerce-checkout #payment ul.payment_methods li > label > *:first-child { margin-left: 0 !important; padding-left: 0 !important; }
.woocommerce-checkout #payment ul.payment_methods li label img {
	height: 22px !important;
	max-height: 22px !important;
	width: auto !important;
	padding: 0 !important;
	position: static !important;
	top: auto !important;
	left: auto !important;
}
/* A imagem do MB WAY (plugin Eupago) tem uma zona transparente à esquerda: corta-se essa zona. */
.woocommerce-checkout #payment ul.payment_methods li.payment_method_eupago_mbway label img,
.woocommerce-checkout #payment ul.payment_methods li[class*="mbway"] label img {
	width: 80px !important;
	object-fit: cover;
	object-position: right center;
	margin-left: 0 !important;
}

/* Cupão e "Tem um cupão?" */
.woocommerce-form-coupon-toggle .woocommerce-info { font-size: .92rem; }

/* ==========================================================================
   Encomenda recebida / ver encomenda
   ========================================================================== */

.woocommerce-order { max-width: 980px; }
.woocommerce-order h2,
.woocommerce-order-details__title,
.woocommerce-column__title,
.wc-bacs-bank-details-heading { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); margin: 32px 0 14px; }
.wc-bacs-bank-details-account-name { font-size: 1rem; margin: 0 0 10px; }

.woocommerce-thankyou-order-received {
	margin: 0 0 20px;
	padding: 16px 18px;
	border-radius: var(--md-raio-p);
	background: var(--md-menta);
	font-weight: 600;
}

/* Resumo (n.º, data, email, total, pagamento) e dados bancários em cartões */
.woocommerce ul.order_details,
ul.woocommerce-order-overview,
ul.wc-bacs-bank-details {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li,
ul.woocommerce-order-overview li,
ul.wc-bacs-bank-details li {
	float: none;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--md-linha) !important;
	border-radius: var(--md-raio-p);
	background: var(--md-branco);
	font-size: .7rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--md-texto-2);
	line-height: 1.4;
	min-width: 0;
}
.woocommerce ul.order_details li strong,
ul.woocommerce-order-overview li strong,
ul.wc-bacs-bank-details li strong {
	display: block;
	margin-top: 4px;
	font-size: .95rem;
	letter-spacing: 0;
	text-transform: none;
	color: var(--md-texto);
	overflow-wrap: anywhere;
}
.woocommerce-order-overview__email,
.wc-bacs-bank-details .iban,
.wc-bacs-bank-details .account_number,
.wc-bacs-bank-details .sort_code,
.wc-bacs-bank-details .bank_name { grid-column: 1 / -1; }
.woocommerce-table--order-details { width: 100%; }

@media (min-width: 900px) {
	.woocommerce ul.order_details,
	ul.woocommerce-order-overview,
	ul.wc-bacs-bank-details { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
	.woocommerce-order-overview__email,
	.wc-bacs-bank-details .iban,
	.wc-bacs-bank-details .account_number,
	.wc-bacs-bank-details .sort_code,
	.wc-bacs-bank-details .bank_name { grid-column: auto; }
	.woocommerce-order-overview__email { grid-column: span 2; }
}

/* Moradas: uma por baixo da outra no telemóvel, lado a lado no computador */
.woocommerce-customer-details .col2-set,
.woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	gap: 8px 32px;
	width: 100%;
}
.woocommerce-customer-details .col2-set::before,
.woocommerce-customer-details .col2-set::after { display: none; }
.woocommerce-customer-details .col2-set .col-1,
.woocommerce-customer-details .col2-set .col-2,
.woocommerce-customer-details .woocommerce-column {
	float: none !important;
	width: 100% !important;
	min-width: 0;
}
@media (min-width: 768px) {
	.woocommerce-customer-details .col2-set,
	.woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr 1fr; }
}
.woocommerce-customer-details address {
	padding: 14px 16px;
	border: 1px solid var(--md-linha) !important;
	border-radius: var(--md-raio-p);
	font-style: normal;
	line-height: 1.6;
	overflow-wrap: anywhere;
}

/* Tabela dos detalhes da encomenda */
.woocommerce-table--order-details td.product-name .wc-item-meta,
.woocommerce-table--order-details td.product-name ul.wc-item-meta { list-style: none; margin: 6px 0 0; padding: 0; font-size: .85rem; }
.woocommerce-table--order-details td.product-name .wc-item-meta li { margin: 0; }
.woocommerce-table--order-details td.product-name .wc-item-meta p { display: inline; margin: 0; }
.woocommerce-table--order-details td.product-name .wc-item-meta strong { font-weight: 600; }
@media (max-width: 767px) {
	.woocommerce-table--order-details { font-size: .92rem; }
	.woocommerce-table--order-details th,
	.woocommerce-table--order-details td { padding: 12px !important; }
}

/* ==========================================================================
   A minha conta
   ========================================================================== */

/* Entrar / registar */
.woocommerce-account:not(.logged-in) .md-conteudo-loja { max-width: 920px; }
#customer_login { gap: 20px; }
#customer_login h2 { font-size: 1.35rem; margin: 0 0 12px; }
.woocommerce-account form.login,
.woocommerce-account form.register {
	margin: 0;
	padding: 22px;
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio);
	background: var(--md-branco);
}
.woocommerce-account #customer_login .col-2 form.register { background: var(--md-creme); border-color: transparent; }
.woocommerce-account form.login .form-row,
.woocommerce-account form.register .form-row { margin-bottom: 14px; }
.woocommerce-account form .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; margin: 4px 0 14px; font-weight: 400; font-size: .9rem; }
.woocommerce-account form.login .button,
.woocommerce-account form.register .button { width: 100%; float: none; margin: 0; }
.woocommerce-account .woocommerce-LostPassword { margin: 12px 0 0; font-size: .9rem; text-align: center; }
.woocommerce-account .woocommerce-privacy-policy-text p { font-size: .78rem; color: var(--md-texto-2); }
.woocommerce-account form.register > p:not(.form-row) { font-size: .85rem; color: var(--md-texto-2); }
/* Entrar e registar: um por baixo do outro no telemóvel (o WooCommerce punha-os a meia largura) */
.woocommerce-account #customer_login { display: grid; grid-template-columns: 1fr; gap: 28px; width: 100%; }
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2,
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 { float: none !important; width: 100% !important; margin: 0 !important; min-width: 0; }
@media (min-width: 768px) {
	.woocommerce-account #customer_login { grid-template-columns: 1fr 1fr; gap: 40px; }
}
.woocommerce-account #customer_login h2 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); margin: 0 0 12px; }
.woocommerce-account form.login label,
.woocommerce-account form.register label { line-height: 1.35; }

/* Menu da conta: grelha de botões no telemóvel, lista à esquerda no computador */
@media (max-width: 899px) {
	.woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
		padding: 6px;
	}
	.woocommerce-MyAccount-navigation a {
		padding: 10px 12px;
		text-align: center;
		font-size: .9rem;
		background: var(--md-branco);
		border-radius: 10px;
	}
	.woocommerce-MyAccount-navigation .is-active a { background: var(--md-verde); color: var(--md-branco); }
}
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--md-texto-2); }

.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 { font-size: 1.3rem; }

/* Lista de encomendas: cartões no telemóvel */
@media (max-width: 767px) {
	.woocommerce-orders-table,
	.woocommerce-orders-table tbody { display: block; width: 100%; border: 0 !important; overflow: visible !important; border-radius: 0 !important; }
	.woocommerce-MyAccount-content { margin-top: 4px; }
	.woocommerce-orders-table thead { display: none; }
	.woocommerce-orders-table tr.woocommerce-orders-table__row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 6px 12px;
		margin: 0 0 10px;
		padding: 14px;
		border: 1px solid var(--md-linha);
		border-radius: var(--md-raio-p);
	}
	.woocommerce-orders-table td,
	.woocommerce-orders-table th {
		display: block;
		padding: 0 !important;
		border: 0 !important;
		text-align: left !important;
		background: none !important;
		font-size: .92rem;
	}
	.woocommerce-orders-table td::before,
	.woocommerce-orders-table th::before {
		content: attr(data-title);
		display: block;
		font-size: .7rem;
		letter-spacing: .04em;
		text-transform: uppercase;
		color: var(--md-texto-2);
		font-weight: 400;
		float: none !important;
	}
	.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { grid-column: 1 / -1; margin-top: 6px; }
	.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions::before { display: none; }
	.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button { width: 100%; min-height: 40px; margin: 0 0 6px; }
}

/* Moradas e dados da conta */
.woocommerce-Addresses { display: grid; gap: 16px; }
.woocommerce-Addresses::before,
.woocommerce-Addresses::after { display: none; }
.woocommerce-Addresses .woocommerce-Address { width: 100% !important; float: none !important; padding: 16px; border: 1px solid var(--md-linha); border-radius: var(--md-raio-p); }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.woocommerce-Address-title h2,
.woocommerce-Address-title h3 { margin: 0 0 8px; font-size: 1.1rem; }
.woocommerce-Address-title .edit { font-size: .9rem; }
.woocommerce-Address address { font-style: normal; line-height: 1.6; }
@media (min-width: 768px) {
	.woocommerce-Addresses { grid-template-columns: 1fr 1fr; }
}
.woocommerce-EditAccountForm fieldset { margin: 20px 0; padding: 16px; border: 1px solid var(--md-linha); border-radius: var(--md-raio-p); }
.woocommerce-EditAccountForm legend { padding: 0 6px; font-weight: 600; }
.woocommerce-EditAccountForm em { font-size: .8rem; color: var(--md-texto-2); }

/* Encomenda recebida: mais espaço entre as duas moradas */
.woocommerce-customer-details .col2-set,
.woocommerce-customer-details .woocommerce-columns--addresses { row-gap: 22px; }

/* ==========================================================================
   Letra certa em todo o lado
   Outros plugins (Elementor, etc.) tentam impor a Baloo 2 em tudo. Aqui manda o tema:
   Baloo 2 só nos títulos; texto, preços e botões na letra do sistema.
   ========================================================================== */

body,
body p,
body li,
body a,
body button,
body input,
body select,
body textarea,
body label,
body .price,
body .price *,
body .amount,
body .button,
body .md-botao,
body .single_add_to_cart_button,
body .woocommerce-result-count,
body .md-migalhas,
body .md-chips a,
body .md-menu a,
body .md-menu-movel-lista a,
body .md-footer {
	font-family: var(--md-fonte) !important;
}

body h1,
body h2,
body h3,
body h4,
body .md-titulo-secao,
body .md-produto-titulo,
body .md-arquivo-titulo,
body .woocommerce-loop-product__title,
body .md-tab-cabecalho,
body .md-tabs-botao,
body .md-passos-lista strong,
body .md-valores-lista strong,
body .md-opiniao figcaption,
body .md-passo-num,
body .md-logo-texto {
	font-family: var(--md-fonte-titulos) !important;
}

/* Botões: texto bem centrado na vertical */
body .button,
body .md-botao,
body .single_add_to_cart_button {
	line-height: 1.2 !important;
	text-transform: none;
	letter-spacing: 0;
}

/* Botões dos cartões: o CSS do WooCommerce ("display: inline-block", "line-height: 1",
   "text-align: left") é mais forte que o do tema; aqui fica sempre centrado. */
body.woocommerce ul.products li.product .button,
body.woocommerce-page ul.products li.product .button,
body ul.products li.product .button,
body .md-produto .related ul.products li.product .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	min-height: 40px;
	padding: 8px 18px !important;
	margin-top: auto !important;
	line-height: 1.2 !important;
	font-weight: 600 !important;
	border-radius: 999px !important;
	background: var(--md-verde) !important;
	color: var(--md-branco) !important;
}
body.woocommerce ul.products li.product .button:hover,
body ul.products li.product .button:hover { background: var(--md-verde-escuro) !important; }
@media (max-width: 767px) {
	body.woocommerce ul.products li.product .button,
	body ul.products li.product .button { align-self: stretch; padding: 8px 10px !important; }
}

/* A minha conta > Morada: as duas moradas lado a lado (computador) ou uma por baixo da outra (telemóvel).
   O WooCommerce acrescenta um elemento invisível que ocupava o primeiro lugar da grelha. */
body.woocommerce-account .woocommerce-Addresses,
body.woocommerce-account .woocommerce-Addresses.col2-set {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 16px;
	width: 100%;
	margin-top: 12px;
}
body.woocommerce-account .woocommerce-Addresses::before,
body.woocommerce-account .woocommerce-Addresses::after { content: none !important; display: none !important; }
body.woocommerce-account .woocommerce-Addresses > .woocommerce-Address,
body.woocommerce-account .woocommerce-Addresses > .col-1,
body.woocommerce-account .woocommerce-Addresses > .col-2 {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	text-align: left;
}
@media (min-width: 768px) {
	body.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr 1fr; }
}
body.woocommerce-account .woocommerce-Address-title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	margin-bottom: 8px;
	text-align: left;
}
body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3 { margin: 0; font-size: 1.1rem; text-align: left; float: none; }
body.woocommerce-account .woocommerce-Address-title .edit { float: none; font-size: .85rem; }

/* ==========================================================================
   Perguntas em acordeão (bloco "Detalhes" do WordPress), em qualquer página de texto
   ========================================================================== */

details.wp-block-details,
.md-texto details {
	margin: 0;
	border-bottom: 1px solid var(--md-linha);
}
details.wp-block-details:first-of-type,
.md-texto details:first-of-type { border-top: 1px solid var(--md-linha); }
details.wp-block-details summary,
.md-texto details summary {
	position: relative;
	display: block;
	padding: 16px 40px 16px 0;
	cursor: pointer;
	list-style: none !important;
	font-family: var(--md-fonte-titulos) !important;
	font-weight: 500;
	font-size: 1.08rem;
	line-height: 1.35;
	color: var(--md-texto);
}
details.wp-block-details summary::-webkit-details-marker,
.md-texto details summary::-webkit-details-marker { display: none; }
details.wp-block-details summary::after,
.md-texto details summary::after {
	content: '';
	position: absolute;
	right: 6px;
	top: 50%;
	width: 9px;
	height: 9px;
	margin-top: -7px;
	border-right: 1.8px solid var(--md-texto-2);
	border-bottom: 1.8px solid var(--md-texto-2);
	transform: rotate(45deg);
	transition: transform .2s ease, margin-top .2s ease;
}
details.wp-block-details[open] summary::after,
.md-texto details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
details.wp-block-details summary:hover,
.md-texto details summary:hover { color: var(--md-verde); }
details.wp-block-details > :not(summary),
.md-texto details > :not(summary) { margin: 0 0 16px; color: var(--md-texto-2); }
details.wp-block-details > :not(summary):last-child,
.md-texto details > :not(summary):last-child { padding-bottom: 4px; }

/* =========================================================
   Página "Sobre" (modelo Sobre (Marie Designs))
   ========================================================= */
.md-sobre-topo {
	display: grid;
	gap: 24px;
	padding-top: 28px;
	padding-bottom: 32px;
	align-items: center;
}
.md-sobre-foto img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--md-raio-g);
}
.md-sobre-intro { text-align: center; }
.md-sobre-titulo {
	font-size: clamp(2rem, 1.6rem + 2vw, 3rem);
	line-height: 1.1;
	margin: 4px 0 14px;
}
.md-sobre-resumo {
	font-size: 1.1rem;
	line-height: 1.65;
	color: var(--md-texto-2);
	margin: 0;
}
.md-sobre-historia { padding-bottom: 48px; }
.md-sobre-historia .md-texto { font-size: 1.05rem; line-height: 1.75; }
.md-sobre-historia .md-texto h2,
.md-sobre-historia .md-texto h3 { margin-top: 1.6em; }
.md-sobre-historia .md-texto > figure { margin: 28px 0; }
.md-sobre-historia .md-texto img { width: 100%; height: auto; border-radius: var(--md-raio); }
.md-sobre-historia .md-texto figcaption { font-size: .88rem; color: var(--md-texto-2); text-align: center; margin-top: 8px; }
/* Galerias: grelha própria, fotos sempre quadradas, cantos arredondados (nunca círculos) */
.md-texto .wp-block-gallery {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px !important;
	margin: 28px 0 !important;
	padding: 0 !important;
}
.md-texto .wp-block-gallery.columns-1 { grid-template-columns: minmax(0, 1fr); }
.md-texto .wp-block-gallery.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.md-texto .wp-block-gallery.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.md-texto .wp-block-gallery > figure,
.md-texto .wp-block-gallery .wp-block-image {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	flex: none !important;
}
.md-texto .wp-block-gallery img,
.md-texto .wp-block-gallery .is-style-rounded img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--md-raio-p) !important;
}
.md-texto .is-style-rounded img { border-radius: var(--md-raio) !important; }
@media (min-width: 768px) { .md-texto .wp-block-gallery { gap: 16px !important; } }
.md-texto blockquote {
	margin: 28px 0;
	padding: 20px 24px;
	background: var(--md-lilas);
	border-radius: var(--md-raio);
	border: 0;
	font-style: normal;
}
.md-sobre .md-valores { margin-bottom: 48px; }
.md-sobre-fim { padding-bottom: 56px; }
.md-sobre-convite {
	text-align: center;
	background: var(--md-creme);
	border-radius: var(--md-raio-g);
	padding: 36px 22px;
}
.md-sobre-convite p { color: var(--md-texto-2); margin: 6px 0 20px; }
.md-sobre-convite-acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 24px;
	justify-content: center;
	align-items: center;
}
@media (min-width: 900px) {
	.md-sobre-topo {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		gap: 56px;
		padding-top: 48px;
		padding-bottom: 56px;
	}
	.md-sobre-topo.sem-foto { grid-template-columns: 1fr; max-width: 780px; }
	.md-sobre-intro { text-align: left; }
	.md-sobre-topo.sem-foto .md-sobre-intro { text-align: center; }
	.md-sobre-convite { padding: 48px; }
}

/* =========================================================
   Página "Contacto" (modelo Contacto (Marie Designs))
   ========================================================= */
.md-contacto-topo { text-align: center; max-width: 640px; margin: 0 auto 28px; }
.md-contacto-topo .md-pagina-titulo { margin: 4px 0 10px; }
.md-contacto-resumo { color: var(--md-texto-2); font-size: 1.05rem; line-height: 1.65; margin: 0; }
.md-contacto-grelha { display: grid; gap: 24px; }
.md-contacto-form {
	background: var(--md-branco);
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio-g);
	padding: 22px 18px;
}
.md-contacto-form > p:first-child { margin-top: 0; }

/* Formulário (Contact Form 7) */
.md-contacto-form .wpcf7 form > p,
.md-contacto-form .wpcf7 form > div { margin: 0 0 14px; }
.md-contacto-form .wpcf7 label { display: block; font-weight: 600; font-size: .95rem; }
.md-contacto-form .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.md-contacto-form .wpcf7 input[type="text"],
.md-contacto-form .wpcf7 input[type="email"],
.md-contacto-form .wpcf7 input[type="tel"],
.md-contacto-form .wpcf7 input[type="url"],
.md-contacto-form .wpcf7 input[type="number"],
.md-contacto-form .wpcf7 select,
.md-contacto-form .wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 1rem;
	color: var(--md-texto);
	background: var(--md-creme);
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio-p);
	padding: 13px 16px;
	outline: none;
	transition: border-color .2s, background .2s, box-shadow .2s;
}
.md-contacto-form .wpcf7 textarea { min-height: 150px; height: 170px; resize: vertical; }
.md-contacto-form .wpcf7 input:focus,
.md-contacto-form .wpcf7 select:focus,
.md-contacto-form .wpcf7 textarea:focus {
	background: var(--md-branco);
	border-color: var(--md-verde);
	box-shadow: 0 0 0 3px rgba(47, 133, 120, .12);
}
.md-contacto-form .wpcf7 ::placeholder { color: #9A928B; opacity: 1; }
.md-contacto-form .wpcf7 input[type="submit"],
.md-contacto-form .wpcf7 button[type="submit"] {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 32px;
	border: 0;
	border-radius: 999px;
	background: var(--md-verde) !important;
	color: #fff !important;
	font: inherit;
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	transition: background .2s;
}
.md-contacto-form .wpcf7 input[type="submit"]:hover,
.md-contacto-form .wpcf7 button[type="submit"]:hover { background: var(--md-verde-escuro) !important; }
.md-contacto-form .wpcf7-spinner { vertical-align: middle; }
.md-contacto-form .wpcf7-acceptance label,
.md-contacto-form .wpcf7-list-item label { font-weight: 400; font-size: .9rem; color: var(--md-texto-2); }
.md-contacto-form .wpcf7-list-item { margin: 0; }
.md-contacto-form .wpcf7-not-valid-tip { font-size: .85rem; margin-top: 4px; color: #B4473C; }
.md-contacto-form .wpcf7 form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 16px;
	border-radius: var(--md-raio-p);
	font-size: .95rem;
	border-width: 1px;
}
.md-contacto-form .wpcf7 form.sent .wpcf7-response-output { background: var(--md-menta); border-color: var(--md-verde-claro); }
.md-contacto-form .wpcf7 form.invalid .wpcf7-response-output,
.md-contacto-form .wpcf7 form.unaccepted .wpcf7-response-output,
.md-contacto-form .wpcf7 form.failed .wpcf7-response-output { background: #FDF1EF; border-color: var(--md-rosa); }

/* Cartões de contacto */
.md-contacto-cartoes { display: grid; gap: 12px; align-content: start; }
.md-contacto-cartao {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	background: var(--md-branco);
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio);
	color: var(--md-texto);
	text-decoration: none;
	transition: border-color .2s, transform .2s;
}
a.md-contacto-cartao:hover { border-color: var(--md-verde-claro); transform: translateY(-1px); }
.md-contacto-icone {
	flex: none;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--md-c, var(--md-menta));
	color: var(--md-texto);
}
.md-contacto-info { display: flex; flex-direction: column; min-width: 0; line-height: 1.4; }
.md-contacto-info strong { font-size: .98rem; }
.md-contacto-info > span { color: var(--md-verde); font-weight: 600; overflow-wrap: anywhere; }
.md-contacto-info small { color: var(--md-texto-2); font-size: .82rem; }
.md-contacto-redes .md-redes { display: flex; gap: 10px; margin-top: 6px; }
.md-contacto-redes .md-redes a { color: var(--md-texto); display: inline-flex; }
.md-contacto-redes .md-redes a:hover { color: var(--md-verde); }
.md-contacto-faq {
	display: block;
	padding: 18px;
	background: var(--md-creme);
	border-radius: var(--md-raio);
	color: var(--md-texto);
	text-decoration: none;
}
.md-contacto-faq strong { display: block; }
.md-contacto-faq > span { color: var(--md-verde); font-weight: 600; font-size: .95rem; }

@media (min-width: 900px) {
	.md-contacto-topo { margin-bottom: 40px; }
	.md-contacto-grelha { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 32px; align-items: start; }
	.md-contacto-form { padding: 32px; }
}

/* =========================================================
   Página de links (modelo Links (Marie Designs)): QR code dos cartões
   ========================================================= */
body.md-links-corpo { background: var(--md-creme); }
.md-links {
	max-width: 480px;
	margin: 0 auto;
	padding: 28px var(--md-gutter, 16px) 40px;
	text-align: center;
}
.md-links-logo { margin-bottom: 22px; }
.md-links-logo img { max-height: 56px; width: auto; margin: 0 auto; display: block; }
.md-links-foto {
	display: block;
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: var(--md-raio);
	margin: 0 auto 14px;
}
.md-links-titulo { font-size: 1.7rem; line-height: 1.15; margin: 0 0 8px; }
.md-links-texto { color: var(--md-texto-2); line-height: 1.6; margin: 0 auto 26px; max-width: 360px; }
.md-links-lista { display: grid; gap: 12px; text-align: left; }
.md-links-cartao {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 72px;
	padding: 10px 16px 10px 10px;
	background: var(--md-branco);
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio);
	color: var(--md-texto);
	text-decoration: none;
	box-shadow: 0 2px 10px rgba(58, 53, 50, .04);
	transition: transform .2s, border-color .2s;
}
.md-links-cartao:hover,
.md-links-cartao:focus-visible { transform: translateY(-1px); border-color: var(--md-verde-claro); }
.md-links-cartao-foto {
	flex: none;
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: var(--md-raio-p);
}
.md-links-cartao-icone {
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: var(--md-raio-p);
	display: grid;
	place-items: center;
	background: var(--md-c, var(--md-menta));
}
.md-links-cartao-textos { flex: 1; display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.md-links-cartao-textos strong { font-family: var(--md-fonte-titulos); font-weight: 600; font-size: 1.12rem; }
.md-links-cartao-textos span { color: var(--md-texto-2); font-size: .9rem; }
.md-links-seta { color: var(--md-verde); font-weight: 700; font-size: 1.1rem; }
.md-links-whatsapp { background: var(--md-verde); border-color: var(--md-verde); color: #fff; }
.md-links-whatsapp .md-links-cartao-icone { background: rgba(255, 255, 255, .18); color: #fff; }
.md-links-whatsapp .md-links-cartao-textos span,
.md-links-whatsapp .md-links-seta { color: rgba(255, 255, 255, .85); }
.md-links-redes { margin-top: 32px; }
.md-links-redes-lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.md-links-redes-lista a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 14px 6px;
	background: var(--md-branco);
	border: 1px solid var(--md-linha);
	border-radius: var(--md-raio-p);
	color: var(--md-texto);
	text-decoration: none;
	font-size: .85rem;
}
.md-links-redes-lista a:hover { color: var(--md-verde); border-color: var(--md-verde-claro); }
.md-links-rodape { margin: 28px 0 0; font-size: .85rem; }
.md-links-rodape a { color: var(--md-texto-2); }


/* Rodapé: formas de pagamento em etiquetas e linha de selos */
.md-pagamentos-lista {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	max-width: 280px;
}
.md-pagamentos-lista li {
	padding: 5px 10px;
	border: 1px solid var(--md-linha);
	border-radius: 8px;
	background: var(--md-branco);
	color: var(--md-texto);
	font-size: .78rem;
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
}
.md-pagamentos-seguro {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 12px 0 0;
	color: var(--md-texto-2);
	font-size: .82rem;
}
.md-selos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 18px 36px;
	padding-top: 24px;
	padding-bottom: 28px;
	border-top: 1px solid var(--md-linha);
}
.md-selo { display: inline-flex; align-items: center; }
.md-selo img { display: block; height: 44px; width: auto; max-width: 180px; object-fit: contain; }
@media (min-width: 1024px) { .md-selos { justify-content: flex-start; } }

/* Faixa final do rodapé: letra pequena e discreta */
.md-footer .md-footer-fundo-linha,
.md-footer .md-footer-fundo-linha span,
.md-footer .md-footer-fundo-linha a { font-size: .75rem !important; line-height: 1.5; }
.md-footer .md-footer-fundo-linha { padding-top: 12px; padding-bottom: 12px; }
.md-footer .md-footer-fundo-linha a { text-decoration: none !important; }
.md-footer .md-footer-fundo-linha a:hover { color: var(--md-verde) !important; }

/* Checkout: NIF e caixas de consentimento (Klaviyo) sempre numa linha própria */
.woocommerce form .form-row[id*="nif" i],
.woocommerce form .form-row[id*="vat" i],
.woocommerce form .form-row[id*="nipc" i],
.woocommerce form .form-row[id^="kl_"],
.woocommerce-billing-fields .form-row:has(input[type="checkbox"]),
.woocommerce-additional-fields .form-row:has(input[type="checkbox"]) {
	float: none !important;
	width: 100% !important;
	clear: both !important;
}

/* Checkout: a coluna do produto fica sempre mais larga (mesmo com mensagens compridas no envio) */
.woocommerce-checkout-review-order-table { table-layout: fixed; width: 100%; }
.woocommerce-checkout-review-order-table th.product-name,
.woocommerce-checkout-review-order-table td.product-name,
.woocommerce-checkout-review-order-table tfoot th { width: 58%; }
.woocommerce-checkout-review-order-table td { overflow-wrap: anywhere; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals td { font-size: .85rem; font-weight: 400; }

/* Produto com opções (ex.: tamanho): o preço da opção escolhida igual ao preço de cima */
.md-comprar .woocommerce-variation-price,
.woocommerce div.product .md-comprar .woocommerce-variation-price { margin: 4px 0 14px; }
.md-comprar .woocommerce-variation-price .price,
.woocommerce div.product .md-comprar .woocommerce-variation-price span.price,
.woocommerce div.product .md-comprar .single_variation .price {
	color: var(--md-verde) !important;
	font-size: 1.6rem !important;
	font-weight: 700 !important;
	line-height: 1.2;
}
.md-comprar .woocommerce-variation-price .price ins { text-decoration: none; }
.md-comprar .woocommerce-variation-price .price del { color: var(--md-texto-2) !important; font-size: 1.1rem; font-weight: 400; margin-right: 6px; }

/* Botão desativado (ex.: antes de escolher o tamanho): o mesmo verde, mais claro. O WooCommerce punha-o roxo. */
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt:disabled[disabled],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled[disabled],
.md-comprar .single_add_to_cart_button.disabled,
.md-comprar .single_add_to_cart_button:disabled {
	background: var(--md-verde) !important;
	border-color: var(--md-verde) !important;
	color: #fff !important;
	opacity: .45 !important;
	cursor: not-allowed;
}
.woocommerce button.button.alt.disabled:hover,
.md-comprar .single_add_to_cart_button.disabled:hover { background: var(--md-verde) !important; }
