/* =========================================================================
   Dona Caprichosa — Premium Product Page
   Inspiração: Apple / Zara Home / COS / Muji
   Sem sombras fortes. Sem gradientes. Muito espaço em branco.
   Bordas subtis. Tipografia elegante.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Variáveis de marca
   ------------------------------------------------------------------------- */
body.single-product {
	--dcpp-brand: #F57812;
	--dcpp-brand-dark: #d96905;
	--dcpp-text: #2D2D2D;
	--dcpp-text-secondary: #666666;
	--dcpp-line: #ECE7E2;
	--dcpp-bg: #FFFFFF;
	--dcpp-radius: 2px;
}

/* -------------------------------------------------------------------------
   2. Estrutura geral / espaçamento
   ------------------------------------------------------------------------- */
body.single-product div.product {
	color: var(--dcpp-text);
}

/* CLEARFIX — causa raiz de dois problemas ao mesmo tempo:
   1) uma linha a aparecer a meio da página (por cima do título);
   2) a secção "Produtos Relacionados" a começar demasiado cedo,
      com um grande espaço em branco antes das imagens.
   As colunas da ficha de produto (galeria + resumo) estão em
   float; sem "clear", o contentor "div.product" não as contém e
   qualquer elemento a seguir posiciona-se ao lado/por cima delas
   em vez de abaixo de ambas. Isto NÃO é um pseudo-elemento
   decorativo — é a forma padrão de resolver floats não contidos. */
body.single-product div.product::after {
	content: "";
	display: table;
	clear: both;
}

body.single-product .related.products {
	clear: both;
}

body.single-product div.product .summary.entry-summary {
	padding-top: 8px;
}

body.single-product div.product .summary.entry-summary > * {
	margin-bottom: 26px;
}

/* Título */
body.single-product div.product .product_title {
	font-size: 28px;
	font-weight: 500;
	letter-spacing: 0.2px;
	line-height: 1.3;
	color: var(--dcpp-text);
	margin-bottom: 4px;
}

/* Preço principal (produto simples) */
body.single-product div.product p.price {
	font-size: 22px;
	font-weight: 400;
	color: var(--dcpp-text);
	letter-spacing: 0.1px;
}

body.single-product div.product p.price del {
	color: var(--dcpp-text-secondary);
	opacity: 0.7;
	font-weight: 400;
}

body.single-product div.product p.price ins {
	color: var(--dcpp-brand);
	text-decoration: none;
	font-weight: 500;
}

/* Produtos variáveis: remover o intervalo de preço "0,25 € – 3,39 €"
   que aparece por baixo do título, antes de escolher o tamanho — o
   preço real (já calculado para a quantidade escolhida) aparece na
   zona da variação, mais abaixo. */
body.single-product div.product.product-type-variable .summary.entry-summary p.price {
	display: none;
}

/* -------------------------------------------------------------------------
   3. Imagem principal — sem moldura, sem linha, sem border-radius
   ------------------------------------------------------------------------- */
body.single-product div.product,
body.single-product div.product div.images,
body.single-product div.product div.images *,
body.single-product .woocommerce-product-gallery,
body.single-product .woocommerce-product-gallery *,
body.single-product .summary.entry-summary {
	border: none !important;
	border-left: none !important;
	border-right: none !important;
	border-top: none !important;
	border-bottom: none !important;
	outline: none !important;
	box-shadow: none !important;
}

body.single-product div.product div.images,
body.single-product div.product div.images img,
body.single-product .woocommerce-product-gallery__image img,
body.single-product .flex-control-thumbs img {
	border-radius: 0 !important;
}

/* Segurança extra: caso o tema insira um separador como elemento próprio (ex. <hr>) entre a galeria e o resumo. */
body.single-product div.product > hr {
	display: none !important;
}

/* Linha subtil que por vezes aparece acima do título (breadcrumb do WooCommerce ou separador do tema Hello Elementor), a começar na zona da imagem. */
body.single-product .woocommerce-breadcrumb,
body.single-product nav.woocommerce-breadcrumb {
	border: none !important;
	border-bottom: none !important;
	box-shadow: none !important;
}

/* -------------------------------------------------------------------------
   4. Formulário de variações ("Escolha do tamanho")
   ------------------------------------------------------------------------- */
body.single-product table.variations {
	border: none;
	margin: 0 0 4px 0;
}

body.single-product table.variations td,
body.single-product table.variations th {
	border: none;
	padding: 0 0 10px 0;
}

body.single-product table.variations label {
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--dcpp-text-secondary);
	margin-bottom: 6px;
	display: inline-block;
}

body.single-product table.variations select {
	width: 100%;
	max-width: 320px;
	height: 46px;
	padding: 0 14px;
	border: 1px solid var(--dcpp-line);
	border-radius: var(--dcpp-radius);
	background-color: var(--dcpp-bg);
	font-size: 15px;
	color: var(--dcpp-text);
	transition: border-color 0.2s ease;
}

body.single-product table.variations select:focus {
	border-color: var(--dcpp-brand);
	outline: none;
}

/* Esconder por completo o link "Limpar" das variações. */
body.single-product .reset_variations {
	display: none !important;
}

/* Preço da variação escolhida — aparece logo por baixo do seletor, apenas o valor. */
body.single-product .woocommerce-variation-price {
	margin: 10px 0 16px 0;
}

body.single-product .woocommerce-variation-price .price {
	font-size: 20px;
	font-weight: 500;
	color: var(--dcpp-text);
	letter-spacing: 0.1px;
}

/* Sem texto de disponibilidade nem qualquer texto adicional junto ao preço. */
body.single-product .woocommerce-variation-availability {
	display: none !important;
}

/* NOVO — "Regras de Venda": informação livre definida por variação
   (ex. "Mínimo de 20 unidades"), impressa pelo WooCommerce dentro do
   mesmo bloco do preço da variação, por baixo dele. Só aparece quando
   preenchida para essa variação; não altera o resto do design. */
body.single-product .dcpp-qty-notice {
	margin-top: 4px;
	font-size: 13px;
	font-weight: 400;
	color: var(--dcpp-text-secondary);
}

/* -------------------------------------------------------------------------
   5. Quantidade — controlo estilo Apple [ - ] 1 [ + ]
   ------------------------------------------------------------------------- */
.dcpp-qty-wrapper,
body.single-product form.cart .dcpp-qty-wrapper {
	display: inline-flex !important;
	align-items: center;
	justify-content: space-between;
	width: 132px;
	height: 46px;
	border: 1px solid var(--dcpp-line) !important;
	border-radius: 999px !important;
	background-color: var(--dcpp-bg) !important;
	overflow: visible;
	transition: border-color 0.2s ease;
	flex-shrink: 0;
	box-sizing: border-box;
	vertical-align: middle;
	box-shadow: none !important;
}

.dcpp-qty-wrapper:hover,
body.single-product form.cart .dcpp-qty-wrapper:hover {
	border-color: #d9d3cc !important;
}

/* "all: unset" remove por completo qualquer estilo global que o tema
   aplique a <button> (cor de fundo, padding, largura mínima, sombra,
   contorno, etc.). Sem isto, o botão "-" herdava o estilo genérico de
   botão do site (ficava laranja e maior do que o previsto), o que
   empurrava o botão "+" para fora da área visível do controlo.
   A regra repete-se com um seletor mais específico
   ("body.single-product form.cart .dcpp-qty-wrapper .dcpp-qty-btn")
   para vencer mesmo que o tema tenha uma regra igualmente marcada
   como "!important". */
.dcpp-qty-btn,
body.single-product form.cart .dcpp-qty-wrapper .dcpp-qty-btn {
	all: unset;
	box-sizing: border-box;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	min-width: 40px;
	max-width: 40px;
	height: 100%;
	flex-shrink: 0;
	font-size: 18px;
	line-height: 1;
	color: var(--dcpp-text);
	background: transparent !important;
	border: none !important;
	cursor: pointer;
	visibility: visible !important;
	opacity: 1 !important;
	transition: color 0.2s ease, transform 0.15s ease;
}

.dcpp-qty-btn:hover {
	color: var(--dcpp-brand);
}

.dcpp-qty-btn:active {
	transform: scale(0.88);
}

.dcpp-qty-btn:focus-visible {
	outline: 2px solid var(--dcpp-brand);
	outline-offset: 2px;
}

.dcpp-qty-btn.is-disabled {
	color: #cfcac3;
	cursor: not-allowed;
	pointer-events: none;
}

.dcpp-qty-wrapper input.qty,
body.single-product form.cart .dcpp-qty-wrapper input.qty {
	flex: 1;
	width: 40px;
	height: 100%;
	border: none !important;
	box-shadow: none !important;
	text-align: center;
	font-size: 16px;
	font-weight: 500;
	color: var(--dcpp-text);
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	-moz-appearance: textfield;
}

.dcpp-qty-wrapper input.qty::-webkit-outer-spin-button,
.dcpp-qty-wrapper input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.dcpp-qty-wrapper input.qty:focus {
	outline: none;
}

/* Animação suave quando o valor muda */
@keyframes dcpp-pulse {
	0%   { transform: scale(1); }
	40%  { transform: scale(1.15); }
	100% { transform: scale(1); }
}

.dcpp-qty-pulse {
	animation: dcpp-pulse 0.18s ease;
}

/* -------------------------------------------------------------------------
   6. Botão "Adicionar ao carrinho" + alinhamento com a quantidade
   ------------------------------------------------------------------------- */
body.single-product .cart .button.single_add_to_cart_button,
body.single-product .cart button.single_add_to_cart_button {
	background-color: var(--dcpp-brand);
	border: none;
	border-radius: var(--dcpp-radius);
	color: #ffffff;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.4px;
	text-transform: none;
	padding: 0 40px;
	height: 46px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: none;
	transition: background-color 0.2s ease, transform 0.1s ease;
	vertical-align: middle;
}

body.single-product .cart .button.single_add_to_cart_button:hover,
body.single-product .cart button.single_add_to_cart_button:hover {
	background-color: var(--dcpp-brand-dark);
}

body.single-product .cart .button.single_add_to_cart_button:active,
body.single-product .cart button.single_add_to_cart_button:active {
	transform: scale(0.98);
}

body.single-product .cart .button.single_add_to_cart_button.disabled {
	background-color: var(--dcpp-line);
	color: var(--dcpp-text-secondary);
}

/* Alinha quantidade e botão lado a lado, com espaçamento consistente. */
body.single-product .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

body.single-product form.cart:not(.variations_form) {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

body.single-product form.cart .quantity {
	margin: 0;
	float: none;
}

/* -------------------------------------------------------------------------
   7. Breve descrição + acordeões (<details>) existentes
   ------------------------------------------------------------------------- */
body.single-product .woocommerce-product-details__short-description {
	padding-top: 8px;
	border-top: 1px solid var(--dcpp-line);
	color: var(--dcpp-text);
	font-size: 15px;
	line-height: 1.7;
}

body.single-product .woocommerce-product-details__short-description p {
	color: var(--dcpp-text-secondary);
	margin-bottom: 18px;
}

/* Estilização subtil dos <details> já existentes — sem criar novos */
body.single-product .woocommerce-product-details__short-description details {
	border-bottom: 1px solid var(--dcpp-line);
	padding: 16px 0;
}

body.single-product .woocommerce-product-details__short-description details:first-of-type {
	border-top: 1px solid var(--dcpp-line);
}

body.single-product .woocommerce-product-details__short-description summary {
	cursor: pointer;
	list-style: none;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.3px;
	color: var(--dcpp-text);
	display: flex;
	align-items: center;
	justify-content: space-between;
	outline: none;
}

body.single-product .woocommerce-product-details__short-description summary::-webkit-details-marker {
	display: none;
}

body.single-product .woocommerce-product-details__short-description summary::after {
	content: '\25BE'; /* ▾ seta pequena para baixo — fechado */
	font-size: 18px;
	font-weight: 300;
	color: var(--dcpp-text-secondary);
	transition: transform 0.2s ease;
	margin-left: 12px;
}

/* Rodar 180° faz a mesma seta apontar para cima (▴) quando o acordeão está aberto. */
body.single-product .woocommerce-product-details__short-description details[open] summary::after {
	transform: rotate(180deg);
}

body.single-product .woocommerce-product-details__short-description details > *:not(summary) {
	margin-top: 14px;
	font-size: 14px;
	color: var(--dcpp-text-secondary);
	line-height: 1.7;
}

body.single-product .woocommerce-product-details__short-description table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 10px;
}

body.single-product .woocommerce-product-details__short-description table td,
body.single-product .woocommerce-product-details__short-description table th {
	border: 1px solid var(--dcpp-line);
	padding: 8px 10px;
	font-size: 13px;
}

/* -------------------------------------------------------------------------
   8. Categoria / meta
   ------------------------------------------------------------------------- */
body.single-product .product_meta {
	padding-top: 16px;
	border-top: 1px solid var(--dcpp-line);
	font-size: 13px;
	color: var(--dcpp-text-secondary);
}

body.single-product .product_meta a {
	color: var(--dcpp-text-secondary);
	text-decoration: underline;
}

body.single-product .product_meta a:hover {
	color: var(--dcpp-brand);
}

/* -------------------------------------------------------------------------
   9. Produtos relacionados — cartão compacto
   ------------------------------------------------------------------------- */
body.single-product .related.products {
	margin-top: 96px;
	padding-top: 36px;
	border-top: 1px solid var(--dcpp-line);
}

body.single-product .related.products > h2 {
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 40px;
	color: var(--dcpp-text);
}

body.single-product .related.products ul.products li.product {
	margin-bottom: 8px;
}

body.single-product .related.products ul.products li.product img {
	border-radius: 0 !important;
	transition: opacity 0.35s ease, transform 0.35s ease;
	margin-bottom: 0 !important;
	display: block;
}

body.single-product .related.products ul.products li.product a img:hover {
	opacity: 0.88;
	transform: scale(1.015);
}

/* Nome do produto muito mais próximo da fotografia. */
body.single-product .related.products ul.products li.product .woocommerce-loop-product__title {
	font-size: 13px;
	font-weight: 400;
	color: var(--dcpp-text);
	margin: 4px 0 2px 0 !important;
	line-height: 1.3;
}

body.single-product .related.products ul.products li.product .price {
	font-size: 13px;
	color: var(--dcpp-text-secondary);
	margin-bottom: 8px;
}

/* Botão "Comprar" nos produtos relacionados — minimalista, inspirado em Apple / Zara Home. */
body.single-product .related.products ul.products li.product .button {
	display: inline-block;
	margin-top: 4px;
	padding: 8px 18px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.3px;
	color: var(--dcpp-text);
	background-color: #ffffff;
	border: 1px solid #D9D9D9;
	border-radius: 4px;
	box-shadow: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

body.single-product .related.products ul.products li.product .button:hover {
	background-color: var(--dcpp-brand);
	border-color: var(--dcpp-brand);
	color: #ffffff;
}

/* -------------------------------------------------------------------------
   10. Responsivo — Mobile
   ------------------------------------------------------------------------- */
@media (max-width: 768px) {

	body.single-product div.product .product_title {
		font-size: 22px;
	}

	body.single-product div.product p.price {
		font-size: 19px;
	}

	body.single-product .woocommerce-variation-price .price {
		font-size: 18px;
	}

	body.single-product table.variations select {
		max-width: 100%;
	}

	/* Quantidade ocupa toda a largura */
	body.single-product form.cart .quantity,
	body.single-product .woocommerce-variation-add-to-cart,
	body.single-product form.cart:not(.variations_form) {
		width: 100%;
	}

	.dcpp-qty-wrapper {
		width: 100%;
	}

	/* Botão ocupa toda a largura */
	body.single-product .cart .button.single_add_to_cart_button,
	body.single-product .cart button.single_add_to_cart_button {
		display: block;
		width: 100%;
		text-align: center;
	}

	body.single-product .related.products {
		margin-top: 36px;
		padding-top: 24px;
	}
}

/* =========================================================================
   Ícone do cesto no cabeçalho — aparece em TODAS as páginas do site,
   por isso este bloco não está limitado a "body.single-product" como
   o resto do ficheiro. Variáveis de cor redeclaradas aqui para este
   bloco funcionar de forma independente, em qualquer página.
   ========================================================================= */
/* Variáveis de marca do ícone do cesto — em :root (não só no
   #dcpp-cart-icon), porque o JavaScript retira o resumo do carrinho
   de dentro do ícone e coloca-o diretamente no <body> (para nunca
   ficar cortado por um cabeçalho com "overflow: hidden" — ver
   initCartDropdown() no premium-product.js). Sem isto, o resumo
   deixava de herdar estas cores assim que era movido: fundo
   transparente, botões sem estilo — exatamente o problema reportado. */
:root {
	--dcpp-brand: #F57812;
	--dcpp-brand-dark: #d96905;
	--dcpp-text: #2D2D2D;
	--dcpp-text-secondary: #666666;
	--dcpp-line: #ECE7E2;
	--dcpp-bg: #FFFFFF;
}

#dcpp-cart-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	margin-left: 16px;
}

.dcpp-cart-icon-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: var(--dcpp-text);
	text-decoration: none;
	transition: color 0.2s ease;
}

.dcpp-cart-icon-link:hover {
	color: var(--dcpp-brand);
}

.dcpp-cart-icon-link svg {
	width: 24px;
	height: 24px;
}

.dcpp-cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 999px;
	background-color: var(--dcpp-brand);
	color: #ffffff;
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}

.dcpp-cart-count[data-count="0"] {
	display: none;
}

/* -------------------------------------------------------------------------
   Resumo do carrinho — em desktop aparece ao passar o rato; em mobile
   o clique vai direto para a página do Carrinho.
   Posição "fixed" (calculada por JS em initCartDropdown, no
   premium-product.js) em vez de "absolute" dentro do ícone — evita
   ficar cortado se o cabeçalho do tema tiver "overflow: hidden", o
   que tornava os botões "Ver carrinho"/"Finalizar compra" impossíveis
   de clicar mesmo continuando visíveis. A visibilidade é controlada
   pela classe ".is-open" (JavaScript), não por ":hover" em CSS — o
   resumo deixou de ser descendente do ícone no HTML.
   ------------------------------------------------------------------------- */
.dcpp-cart-dropdown {
	position: fixed;
	width: 340px;
	max-width: 90vw;
	background-color: var(--dcpp-bg);
	border: 1px solid var(--dcpp-line);
	border-radius: 6px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
	padding: 20px;
	z-index: 99999;
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}

.dcpp-cart-dropdown.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.dcpp-mini-cart-content .woocommerce-mini-cart {
	list-style: none;
	margin: 0 0 16px 0;
	padding: 0;
	max-height: 320px;
	overflow-y: auto;
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item {
	position: relative;
	padding: 12px 0;
	border-bottom: 1px solid var(--dcpp-line);
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item:first-child {
	padding-top: 0;
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item img {
	width: 52px;
	height: 52px;
	object-fit: cover;
	border-radius: 4px;
	flex-shrink: 0;
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item a.remove {
	position: absolute;
	top: 12px;
	right: 0;
	width: 18px;
	height: 18px;
	line-height: 16px;
	text-align: center;
	color: var(--dcpp-text-secondary) !important;
	text-decoration: none !important;
	font-size: 16px;
	border-radius: 50%;
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item a.remove:hover {
	color: #ffffff !important;
	background-color: var(--dcpp-brand);
}

/* A imagem e o nome do produto ficam dentro do MESMO link no HTML
   nativo do WooCommerce — por isso o alinhamento lado a lado é feito
   aqui, e não na linha toda. */
.dcpp-mini-cart-content .woocommerce-mini-cart-item a:not(.remove) {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--dcpp-text);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	padding-right: 20px;
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item a:not(.remove):hover {
	color: var(--dcpp-brand);
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item .quantity {
	display: block;
	font-size: 12px;
	color: var(--dcpp-text-secondary);
	margin-top: 6px;
	margin-left: 62px;
}

.dcpp-mini-cart-content .woocommerce-mini-cart-item .quantity .amount {
	color: var(--dcpp-text-secondary);
}

.dcpp-mini-cart-content .total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
	font-weight: 600;
	color: var(--dcpp-text);
	margin: 0 0 16px 0;
}

.dcpp-mini-cart-content .total .woocommerce-Price-amount {
	color: var(--dcpp-brand);
}

.dcpp-mini-cart-content .woocommerce-mini-cart__empty-message {
	font-size: 14px;
	color: var(--dcpp-text-secondary);
	text-align: center;
	margin: 8px 0 0 0;
}

.dcpp-mini-cart-content .woocommerce-mini-cart__buttons {
	display: flex !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.dcpp-mini-cart-content .woocommerce-mini-cart__buttons a {
	display: inline-block !important;
	visibility: visible !important;
	opacity: 1 !important;
	flex: 1 !important;
	text-align: center !important;
	padding: 11px 12px !important;
	margin: 0 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	border-radius: 3px !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.dcpp-mini-cart-content .woocommerce-mini-cart__buttons a.wc-forward:not(.checkout) {
	background-color: transparent !important;
	border: 1px solid var(--dcpp-line) !important;
	color: var(--dcpp-text) !important;
}

.dcpp-mini-cart-content .woocommerce-mini-cart__buttons a.wc-forward:not(.checkout):hover {
	border-color: var(--dcpp-brand) !important;
	color: var(--dcpp-brand) !important;
}

.dcpp-mini-cart-content .woocommerce-mini-cart__buttons a.checkout {
	background-color: var(--dcpp-brand) !important;
	border: 1px solid var(--dcpp-brand) !important;
	color: #ffffff !important;
}

.dcpp-mini-cart-content .woocommerce-mini-cart__buttons a.checkout:hover {
	background-color: var(--dcpp-brand-dark) !important;
	border-color: var(--dcpp-brand-dark) !important;
}

/* Em mobile, o resumo nunca aparece por hover — o ícone é só um link
   direto para a página do Carrinho. */
@media (max-width: 782px) {
	.dcpp-cart-dropdown {
		display: none;
	}
}

/* =========================================================================
   Página do Carrinho — sitewide (só body.woocommerce-cart). Estrutura
   e funcionamento continuam 100% nativos do WooCommerce (produtos,
   quantidades, cupões, cálculo de totais) — só a apresentação muda.
   ========================================================================= */
body.woocommerce-cart {
	--dcpp-brand: #F57812;
	--dcpp-brand-dark: #d96905;
	--dcpp-text: #2D2D2D;
	--dcpp-text-secondary: #666666;
	--dcpp-line: #ECE7E2;
	--dcpp-bg: #FFFFFF;
}

/* -------------------------------------------------------------------------
   Bloco de Carrinho do WooCommerce (React) — o site usa este em vez do
   carrinho clássico (confirmado por captura de ecrã: o seletor de
   quantidade [-] [nº] [+] é o do bloco, não a tabela clássica). As
   regras da tabela clássica ("table.cart" mais abaixo) ficam como
   reforço, para o caso de a loja alguma vez usar o carrinho clássico
   nalguma página.
   ------------------------------------------------------------------------- */

/* Campo de quantidade — nunca cortar o número, seja qual for o valor
   (1 ou 2 dígitos). Seletor genérico por "input[type=number]" em vez
   de depender do nome exato da classe do bloco, para não voltar a
   quebrar se o WooCommerce mudar essa classe numa atualização. */
body.woocommerce-cart input[type="number"] {
	width: 44px !important;
	min-width: 44px !important;
	max-width: none !important;
	padding: 0 4px !important;
	text-align: center;
	box-sizing: content-box;
	overflow: visible !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector {
	width: auto !important;
	min-width: 116px;
}

/* Botão "Finalizar encomenda" do bloco de carrinho, a laranja da
   marca — cobre as várias classes possíveis consoante a versão do
   WooCommerce, para garantir que pelo menos uma bate certo. */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart a.wc-block-components-button.wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button {
	background-color: var(--dcpp-brand) !important;
	border-color: var(--dcpp-brand) !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart a.wc-block-components-button.wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:hover,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover {
	background-color: var(--dcpp-brand-dark) !important;
	border-color: var(--dcpp-brand-dark) !important;
}

/* Reforço adicional: classe acrescentada por JavaScript
   (initBotaoFinalizarLaranja, em premium-product.js) diretamente no
   botão encontrado por texto — garante a cor mesmo que nenhuma das
   classes acima exista nesta versão do bloco. */
body.woocommerce-cart .dcpp-botao-finalizar-laranja {
	background-color: var(--dcpp-brand) !important;
	border-color: var(--dcpp-brand) !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

body.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 48px;
	align-items: start;
}

body.woocommerce-cart .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

/* Tabela de produtos */
body.woocommerce-cart table.cart {
	border: none;
	border-collapse: collapse;
	width: 100%;
}

body.woocommerce-cart table.cart thead th {
	border: none;
	border-bottom: 1px solid var(--dcpp-line);
	padding: 0 0 14px 0;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--dcpp-text-secondary);
	text-align: left;
}

body.woocommerce-cart table.cart td {
	border: none;
	border-bottom: 1px solid var(--dcpp-line);
	padding: 20px 10px;
	vertical-align: middle;
}

/* Coluna do preço unitário escondida — mostrar só o total da linha
   (Subtotal), para não haver dois valores diferentes por produto e
   confundir o cliente, tal como já acontece na ficha de produto. */
body.woocommerce-cart table.cart th.product-price,
body.woocommerce-cart table.cart td.product-price {
	display: none;
}

body.woocommerce-cart table.cart td.product-remove {
	width: 32px;
	padding-right: 0;
}

body.woocommerce-cart table.cart td.product-remove a.remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	color: var(--dcpp-text-secondary) !important;
	background: transparent !important;
	font-size: 18px;
}

body.woocommerce-cart table.cart td.product-remove a.remove:hover {
	color: #ffffff !important;
	background-color: var(--dcpp-brand) !important;
}

body.woocommerce-cart table.cart td.product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 6px;
}

body.woocommerce-cart table.cart td.product-name {
	font-size: 14px;
	color: var(--dcpp-text);
}

body.woocommerce-cart table.cart td.product-name a {
	color: var(--dcpp-text);
	text-decoration: none;
	font-weight: 600;
}

body.woocommerce-cart table.cart td.product-name a:hover {
	color: var(--dcpp-brand);
}

/* Tamanho/variação escolhida (ex. "Tamanho: Normal") */
body.woocommerce-cart table.cart td.product-name dl.variation {
	margin: 6px 0 0 0;
	font-size: 12px;
	color: var(--dcpp-text-secondary);
	overflow: hidden;
}

body.woocommerce-cart table.cart td.product-name dl.variation dt,
body.woocommerce-cart table.cart td.product-name dl.variation dd {
	display: inline;
	margin: 0;
	font-weight: 400;
}

body.woocommerce-cart table.cart td.product-name dl.variation dt::after {
	content: ': ';
}

body.woocommerce-cart table.cart td.product-name dl.variation p {
	margin: 0;
	display: inline;
}

/* Quantidade — campo nativo, estilizado de forma limpa (mantém o
   mínimo/incremento definidos nas Regras de Venda, sem alterações). */
body.woocommerce-cart table.cart td.product-quantity .quantity {
	display: inline-flex;
}

body.woocommerce-cart table.cart td.product-quantity input.qty {
	width: 64px;
	height: 40px;
	border: 1px solid var(--dcpp-line);
	border-radius: 999px;
	text-align: center;
	font-size: 14px;
	color: var(--dcpp-text);
}

body.woocommerce-cart table.cart td.product-quantity input.qty:focus {
	outline: none;
	border-color: var(--dcpp-brand);
}

/* Subtotal = total da linha (quantidade × preço). Deixado bem
   destacado, porque é o único valor de preço visível por produto. */
body.woocommerce-cart table.cart td.product-subtotal {
	text-align: right;
	font-size: 15px;
	font-weight: 600;
	color: var(--dcpp-text);
	white-space: nowrap;
}

body.woocommerce-cart table.cart td.product-subtotal .dcpp-line-total-label {
	display: block;
	font-size: 10px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--dcpp-text-secondary);
	margin-bottom: 2px;
}

body.woocommerce-cart table.cart td.actions {
	border-bottom: none;
	padding-top: 24px;
}

/* Cupão + botão "Atualizar carrinho" */
body.woocommerce-cart .coupon {
	display: flex;
	gap: 10px;
	align-items: center;
}

body.woocommerce-cart .coupon .input-text {
	height: 42px;
	border: 1px solid var(--dcpp-line);
	border-radius: 4px;
	padding: 0 14px;
	font-size: 14px;
}

body.woocommerce-cart table.cart .button {
	background-color: transparent;
	border: 1px solid var(--dcpp-line);
	color: var(--dcpp-text);
	border-radius: 4px;
	padding: 11px 20px;
	font-size: 13px;
	font-weight: 600;
	box-shadow: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

body.woocommerce-cart table.cart .button:hover {
	border-color: var(--dcpp-brand);
	color: var(--dcpp-brand);
	background-color: transparent;
}

/* Resumo da encomenda (coluna da direita) */
body.woocommerce-cart .cart-collaterals {
	background-color: #FAF8F5;
	border: 1px solid var(--dcpp-line);
	border-radius: 8px;
	padding: 28px;
}

body.woocommerce-cart .cart_totals h2 {
	font-size: 17px;
	font-weight: 700;
	color: var(--dcpp-text);
	margin: 0 0 20px 0;
}

body.woocommerce-cart .cart_totals table {
	width: 100%;
	border: none;
}

body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
	border: none;
	border-top: 1px solid var(--dcpp-line);
	padding: 12px 0;
	font-size: 14px;
	color: var(--dcpp-text-secondary);
}

body.woocommerce-cart .cart_totals table tr:first-child th,
body.woocommerce-cart .cart_totals table tr:first-child td {
	border-top: none;
}

body.woocommerce-cart .cart_totals table .order-total th,
body.woocommerce-cart .cart_totals table .order-total td {
	font-size: 17px;
	font-weight: 700;
	color: var(--dcpp-text);
}

body.woocommerce-cart .cart_totals table .order-total .woocommerce-Price-amount {
	color: var(--dcpp-brand);
}

body.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
	margin-top: 20px;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background-color: var(--dcpp-brand) !important;
	border: none !important;
	color: #ffffff !important;
	padding: 15px 20px !important;
	border-radius: 4px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background-color: var(--dcpp-brand-dark) !important;
}

@media (max-width: 900px) {
	body.woocommerce-cart .woocommerce {
		grid-template-columns: 1fr;
	}

	body.woocommerce-cart table.cart td.product-thumbnail img {
		width: 56px;
		height: 56px;
	}
}

@media (max-width: 600px) {
	body.woocommerce-cart .coupon {
		flex-wrap: wrap;
	}

	body.woocommerce-cart table.cart td.actions {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
	}
}

/* =========================================================================
   Página de Finalizar Encomenda — sitewide (body.woocommerce-checkout).
   Cobre tanto o checkout clássico (formulário PHP) como o checkout em
   blocos do WooCommerce (React) — os nomes de classe são diferentes
   entre os dois, por isso as regras estão duplicadas para cada caso.
   Nenhum campo, validação ou método de pagamento é alterado — só a
   apresentação.
   ========================================================================= */
body.woocommerce-checkout {
	--dcpp-brand: #F57812;
	--dcpp-brand-dark: #d96905;
	--dcpp-text: #2D2D2D;
	--dcpp-text-secondary: #666666;
	--dcpp-line: #ECE7E2;
	--dcpp-bg: #FFFFFF;
}

/* --- Checkout clássico --------------------------------------------- */
body.woocommerce-checkout .woocommerce-checkout {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: 48px;
	align-items: start;
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review {
	grid-column: auto;
}

body.woocommerce-checkout h3#order_review_heading {
	grid-column: 2;
}

body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-size: 16px;
	font-weight: 700;
	color: var(--dcpp-text);
	margin: 0 0 20px 0;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--dcpp-line);
	position: relative;
}

body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields {
	margin-bottom: 36px;
}

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .form-row textarea {
	border: 1px solid var(--dcpp-line);
	border-radius: 4px;
	padding: 11px 14px;
	font-size: 14px;
	color: var(--dcpp-text);
	background-color: #ffffff;
}

body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row select:focus,
body.woocommerce-checkout .form-row textarea:focus {
	outline: none;
	border-color: var(--dcpp-brand);
}

body.woocommerce-checkout .form-row label {
	font-size: 13px;
	color: var(--dcpp-text-secondary);
	font-weight: 500;
}

/* Resumo da encomenda + pagamento (coluna da direita) */
body.woocommerce-checkout #order_review {
	background-color: #FAF8F5;
	border: 1px solid var(--dcpp-line);
	border-radius: 8px;
	padding: 28px;
}

body.woocommerce-checkout h3#order_review_heading {
	font-size: 17px;
	font-weight: 700;
	color: var(--dcpp-text);
	margin: 0 0 20px 0;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	width: 100%;
	border: none;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	border: none;
	border-top: 1px solid var(--dcpp-line);
	padding: 12px 0;
	font-size: 14px;
	color: var(--dcpp-text-secondary);
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead {
	display: none;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .cart_item td {
	color: var(--dcpp-text);
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .cart_item .product-total {
	text-align: right;
	font-weight: 600;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .cart_item dl.variation {
	font-size: 12px;
	color: var(--dcpp-text-secondary);
	margin: 4px 0 0 0;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total td {
	font-size: 17px;
	font-weight: 700;
	color: var(--dcpp-text);
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount {
	color: var(--dcpp-brand);
}

/* Métodos de pagamento */
body.woocommerce-checkout #payment {
	background-color: transparent;
	margin-top: 20px;
}

body.woocommerce-checkout #payment ul.payment_methods {
	border-top: 1px solid var(--dcpp-line);
	padding-top: 16px;
}

body.woocommerce-checkout #payment .wc_payment_method label {
	font-size: 14px;
	color: var(--dcpp-text);
	font-weight: 500;
}

body.woocommerce-checkout #payment div.payment_box {
	background-color: #ffffff;
	border: 1px solid var(--dcpp-line);
	border-radius: 4px;
	font-size: 13px;
	color: var(--dcpp-text-secondary);
}

body.woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

.dcpp-no-payment-methods {
	background-color: #ffffff;
	border: 1px dashed var(--dcpp-line);
	border-radius: 4px;
	padding: 16px;
	font-size: 13px;
	color: var(--dcpp-text-secondary);
	line-height: 1.6;
}

/* Equivalente para o checkout em blocos — classe acrescentada por
   JavaScript (ver initNoPaymentMethodsFix), porque o bloco nativo não
   passa pelo filtro PHP usado no checkout clássico. */
body.woocommerce-checkout .dcpp-aviso-pagamento-suave {
	background-color: #ffffff !important;
	border: 1px dashed var(--dcpp-line) !important;
	color: var(--dcpp-text-secondary) !important;
	box-shadow: none !important;
}

body.woocommerce-checkout .dcpp-aviso-pagamento-suave svg {
	display: none;
}

/* Termos e condições */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: 20px 0;
	padding: 16px;
	background-color: #ffffff;
	border: 1px solid var(--dcpp-line);
	border-radius: 4px;
	font-size: 13px;
	color: var(--dcpp-text-secondary);
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
	color: var(--dcpp-brand);
}

/* Botão principal */
body.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
	background-color: var(--dcpp-brand) !important;
	border: none !important;
	color: #ffffff !important;
	padding: 15px 20px !important;
	border-radius: 4px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	box-shadow: none !important;
}

body.woocommerce-checkout #place_order:hover {
	background-color: var(--dcpp-brand-dark) !important;
}

/* --- Checkout em blocos (WooCommerce Blocks) ------------------------ */
body.woocommerce-checkout .wp-block-woocommerce-checkout {
	--dcpp-brand: #F57812;
}

body.woocommerce-checkout .wc-block-checkout__main {
	padding-right: 24px;
}

body.woocommerce-checkout .wc-block-components-checkout-step__title {
	font-size: 16px !important;
	font-weight: 700 !important;
	color: var(--dcpp-text) !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step {
	padding-bottom: 28px;
	margin-bottom: 28px;
	border-bottom: 1px solid var(--dcpp-line);
}

body.woocommerce-checkout .wc-block-components-checkout-step:last-child {
	border-bottom: none;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-combobox input,
body.woocommerce-checkout .wc-block-components-select select {
	border-radius: 4px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background-color: #FAF8F5;
	border: 1px solid var(--dcpp-line);
	border-radius: 8px;
	padding: 24px;
}

body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--dcpp-brand);
	font-weight: 700;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background-color: var(--dcpp-brand) !important;
	border: none !important;
	border-radius: 4px !important;
	font-weight: 600 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	background-color: var(--dcpp-brand-dark) !important;
}

body.woocommerce-checkout .wc-block-checkout__terms {
	margin: 20px 0;
	padding: 16px;
	background-color: #ffffff;
	border: 1px solid var(--dcpp-line);
	border-radius: 4px;
	font-size: 13px;
}

body.woocommerce-checkout .wc-block-checkout__terms a {
	color: var(--dcpp-brand);
}

@media (max-width: 900px) {
	body.woocommerce-checkout .woocommerce-checkout {
		grid-template-columns: 1fr;
	}

	body.woocommerce-checkout h3#order_review_heading {
		grid-column: 1;
	}

	body.woocommerce-checkout .wc-block-checkout__main {
		padding-right: 0;
	}
}
