/*
 * FHG Nutrition — a loja com a régua da marca.
 *
 * O WooCommerce entra por ganchos (includes/loja.php) e recebe aqui o
 * acabamento: vitrine em cartões, página de produto com os três números da
 * dose em destaque, composição aberta em tabela, carrinho e checkout.
 */

.fhg-largura { max-width: var(--fhg-conteudo); margin-inline: auto; padding-inline: 20px; }
.fhg-bloco { padding-block: clamp(44px, 6vw, 88px); }
.fhg-bloco-titulo {
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: -0.6px;
	font-size: clamp(24px, 3vw, 34px); line-height: 1.15; color: var(--fhg-grafite);
	/* Centrado como todos os outros cabeçalhos de seção do site. */
	margin: 0 auto 30px; text-align: center; max-width: 820px;
}
.fhg-bloco-apoio, .fhg-junto-apoio { text-align: center; max-width: 720px; margin-inline: auto; }

/* ---------- Faixa de vantagens (corre devagar, para no hover) ---------- */
.fhg-faixa {
	background: var(--fhg-profundo); color: #E9EBE0; overflow: hidden; position: relative;
	font-size: 13px; letter-spacing: 0.2px;
}
/* O ciclo é a largura de UMA volta: o JS mede e clona voltas até cobrir duas
 * telas. Com -50% fixo, uma volta mais estreita que a tela deixava um vazio
 * correndo atrás — parecia que a faixa tinha parado. */
.fhg-faixa-trilho {
	display: flex; width: max-content;
	--fhg-ciclo: 50%; --fhg-tempo: 38s;
	animation: fhg-corre var(--fhg-tempo) linear infinite;
}
.fhg-faixa ul { display: flex; margin: 0; padding: 0; list-style: none; }
.fhg-faixa li { padding: 10px 26px; white-space: nowrap; position: relative; }
.fhg-faixa li::after {
	content: ''; position: absolute; right: 0; top: 50%; width: 3px; height: 3px; margin-top: -1.5px;
	border-radius: 50%; background: var(--fhg-limao);
}
@keyframes fhg-corre { from { transform: translateX(0); } to { transform: translateX(calc(-1 * var(--fhg-ciclo))); } }

/* ---------- Carrinho do cabeçalho ---------- */
.fhg-carrinho { position: relative; display: inline-flex; align-items: center; padding: 8px; color: var(--fhg-grafite); }
.fhg-carrinho:hover { color: var(--fhg-verde); }
.fhg-carrinho__n {
	position: absolute; top: 0; right: 0; min-width: 17px; height: 17px; padding: 0 4px;
	border-radius: 999px; background: var(--fhg-verde); color: #fff;
	font-family: var(--fhg-mono); font-size: 10px; line-height: 17px; text-align: center;
}
.fhg-carrinho-topo { display: flex; align-items: center; }
.fhg-btn-icone .elementor-button { padding: 8px !important; }
.fhg-btn-icone--claro .elementor-button { color: #E9EBE0 !important; }

/* ---------- Vitrine ---------- */
.woocommerce ul.products { display: grid; gap: 22px; margin: 0; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important; clear: none !important;
	display: flex; flex-direction: column; background: #fff; position: relative;
	border: 1px solid var(--fhg-linha); border-radius: 16px; overflow: hidden;
	transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}
.woocommerce ul.products li.product:hover {
	box-shadow: 0 18px 40px -26px rgba(46, 55, 25, 0.45); transform: translateY(-3px);
	border-color: rgba(96, 111, 54, 0.3);
}
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) {
	.woocommerce ul.products.columns-3, .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.woocommerce ul.products[class*='columns-'] { grid-template-columns: 1fr 1fr; gap: 14px; }
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; }

/* Moldura da foto: proporção fixa para a linha de cartões ficar alinhada,
 * venha a foto do estúdio, da cena ou do kit. */
.fhg-cartao-midia {
	position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--fhg-num);
	isolation: isolate;
}
.woocommerce ul.products li.product .fhg-cartao-midia img.fhg-cartao-cena {
	width: 100%; height: 100%; margin: 0; padding: 0; object-fit: cover; display: block;
	background: none; aspect-ratio: auto; border-radius: 0;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.woocommerce ul.products li.product:hover .fhg-cartao-midia img.fhg-cartao-cena { transform: scale(1.04); }
/* Segunda foto: entra em fusão no hover (no toque, nunca aparece). */
.woocommerce ul.products li.product .fhg-cartao-midia img.fhg-cartao-cena--dois {
	position: absolute; inset: 0; opacity: 0;
	transition: opacity 0.45s ease, transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
/* Pote recortado: como o PNG é transparente, precisa do fundo da marca para
 * não deixar a primeira foto aparecer por baixo. */
.woocommerce ul.products li.product .fhg-cartao-midia img.fhg-cartao-cena--recorte {
	object-fit: contain; background: var(--fhg-num); padding: 22px 18px;
}
@media (hover: hover) {
	.woocommerce ul.products li.product:hover .fhg-cartao-midia img.fhg-cartao-cena--dois { opacity: 1; }
	.woocommerce ul.products li.product:hover .fhg-cartao-midia img.fhg-cartao-cena--recorte { transform: scale(1.03); }
}
/* Véu na base: assenta o pote e segura o contraste venha a foto que vier. */
.fhg-cartao-midia::after {
	content: ''; position: absolute; inset: auto 0 0 0; height: 58%; pointer-events: none;
	background: linear-gradient(to top, rgba(46, 55, 25, 0.5), rgba(46, 55, 25, 0));
}
/* Sem foto de cena (produto novo): o pote volta a ser a imagem, sem véu. */
.fhg-cartao-midia--pote { background: var(--fhg-num); }
.fhg-cartao-midia--pote::after { content: none; }
.woocommerce ul.products li.product .fhg-cartao-midia--pote img.fhg-cartao-cena {
	object-fit: contain; padding: 20px 18px;
}
.woocommerce ul.products li.product img {
	margin: 0; background: var(--fhg-num); padding: 22px 18px; aspect-ratio: 1 / 1;
	object-fit: contain; width: 100%;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 16.5px; line-height: 1.32;
	color: var(--fhg-grafite); padding: 14px 16px 0; margin: 0;
}
.fhg-cartao-dado {
	font-family: var(--fhg-mono); font-size: 12px; color: var(--fhg-verde);
	padding: 5px 16px 0; margin: 0; letter-spacing: -0.1px;
}
.woocommerce ul.products li.product .price {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 19px; color: var(--fhg-grafite);
	padding: 9px 16px 0; margin: 0; display: block;
}
.woocommerce ul.products li.product .price del { font-weight: 400; font-size: 14px; color: var(--fhg-suave); margin-right: 8px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.fhg-parcelas-cartao { padding: 3px 16px 0; margin: 0 !important; font-size: 12px; color: var(--fhg-suave); }
.woocommerce ul.products li.product .button {
	margin: 12px 16px 16px; margin-top: auto; text-align: center; border-radius: 8px;
	background: var(--fhg-verde); color: #fff; font-weight: 600; font-size: 14px; padding: 12px 18px;
	transition: background-color 0.2s ease;
}
.woocommerce ul.products li.product .button:hover { background: var(--fhg-profundo); color: #fff; }
.woocommerce ul.products li.product .onsale {
	position: absolute; top: 12px; left: 12px; margin: 0; padding: 4px 10px; border-radius: 999px;
	background: var(--fhg-limao); color: var(--fhg-profundo); font-family: var(--fhg-mono);
	font-size: 11px; font-weight: 500; min-height: 0; min-width: 0; line-height: 1.6;
}
.woocommerce ul.products li.product .added_to_cart { display: none; }

/* ---------- Cabeçalho da loja ---------- */
.woocommerce .woocommerce-products-header { max-width: var(--fhg-conteudo); margin: 0 auto; padding: 48px 20px 8px; text-align: center; }
.woocommerce .woocommerce-products-header__title, .woocommerce h1.entry-title {
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: -1px;
	font-size: clamp(30px, 4vw, 44px); margin: 0 0 12px;
}
.woocommerce .term-description, .woocommerce .woocommerce-products-header p { max-width: 720px; margin-inline: auto; color: var(--fhg-suave); }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { display: none; }
.woocommerce-page .site-main, .woocommerce .site-main { max-width: var(--fhg-conteudo); margin: 0 auto; padding: 0 20px 72px; }

/* ---------- Página do produto ---------- */
.single-product div.product {
	display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px;
	max-width: var(--fhg-conteudo); margin: 0 auto; padding: 40px 20px 0;
}
@media (max-width: 900px) { .single-product div.product { grid-template-columns: 1fr; gap: 32px; padding-top: 24px; } }
.single-product div.product .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.single-product div.product .woocommerce-product-gallery__wrapper img { border-radius: 16px; background: var(--fhg-num); }
.single-product div.product .flex-control-thumbs { display: flex; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.single-product div.product .flex-control-thumbs li { width: 76px; }
.single-product div.product .flex-control-thumbs img { border-radius: 10px; border: 1px solid var(--fhg-linha); opacity: 0.6; }
.single-product div.product .flex-control-thumbs img.flex-active,
.single-product div.product .flex-control-thumbs img:hover { opacity: 1; border-color: var(--fhg-verde); }
.single-product div.product .summary { width: 100% !important; float: none !important; margin: 0 !important; }
/* Cinto de segurança: o nome do produto nunca herda o «esconder título» do tema. */
.single-product .product_title, .fhg-produto-nome { display: block !important; }
.single-product div.product .product_title {
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: -1.2px;
	font-size: clamp(28px, 3.4vw, 40px); line-height: 1.08; margin: 0 0 14px; color: var(--fhg-grafite);
}
.single-product .woocommerce-product-details__short-description { color: var(--fhg-suave); font-size: 17px; line-height: 1.65; }
.single-product div.product p.price, .single-product div.product span.price {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 34px; color: var(--fhg-grafite);
	margin: 22px 0 2px;
}
.single-product div.product p.price del { font-size: 18px; font-weight: 400; color: var(--fhg-suave); }
.single-product div.product p.price ins { text-decoration: none; }
.fhg-parcelas { font-size: 14px; color: var(--fhg-suave); margin: 0 0 20px; }

/* Os três números da dose */
.fhg-dose { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0 0 6px; padding: 0; }
.fhg-dose li {
	flex: 1 1 110px; background: var(--fhg-num); border-radius: 12px; padding: 14px 16px;
	display: flex; flex-direction: column; gap: 2px;
}
.fhg-dose strong { font-family: var(--fhg-mono); font-size: 22px; font-weight: 500; color: var(--fhg-verde); letter-spacing: -0.5px; }
.fhg-dose span { font-size: 12px; color: var(--fhg-suave); line-height: 1.35; }
.fhg-dose-nota { font-family: var(--fhg-mono); font-size: 11px; color: var(--fhg-suave); margin: 0 0 18px; }

/* Compra */
.single-product form.cart { margin: 24px 0 0 !important; display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.single-product form.cart.variations_form { display: block; }
.single-product table.variations { margin: 0 0 18px; }
.single-product table.variations th, .single-product table.variations td { padding: 0 0 8px; }
.single-product table.variations label {
	font-family: var(--fhg-mono); font-size: 12px; text-transform: uppercase;
	letter-spacing: 1px; color: var(--fhg-suave);
}
.single-product table.variations select {
	border: 1px solid var(--fhg-linha); border-radius: 10px; padding: 12px 14px; min-width: 220px;
	font-size: 15px; background: #fff; color: var(--fhg-grafite);
}
.single-product .quantity input.qty {
	height: 52px; width: 76px; border: 1px solid var(--fhg-linha); border-radius: 10px;
	text-align: center; font-size: 16px; background: #fff;
}
.single-product form.cart .button, .single-product .single_add_to_cart_button {
	height: 52px; padding: 0 34px; border-radius: 10px; background: var(--fhg-verde); color: #fff;
	font-weight: 600; font-size: 15px; flex: 1 1 220px; transition: background-color 0.2s ease;
}
.single-product form.cart .button:hover { background: var(--fhg-profundo); }
.single-product .woocommerce-variation-price { margin-bottom: 14px; }

/* Garantias */
.fhg-garantias { list-style: none; margin: 26px 0 0; padding: 22px 0 0; border-top: 1px solid var(--fhg-linha); display: grid; gap: 10px; }
.fhg-garantias li { position: relative; padding-left: 26px; font-size: 14px; color: var(--fhg-suave); }
.fhg-garantias li::before {
	content: ''; position: absolute; left: 0; top: 0.42em; width: 12px; height: 7px;
	border-left: 2px solid var(--fhg-verde); border-bottom: 2px solid var(--fhg-verde); transform: rotate(-45deg);
}

/* Benefícios */
.fhg-beneficios { background: var(--fhg-areia); margin-top: 64px; }
.fhg-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 1024px) { .fhg-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .fhg-cards { grid-template-columns: 1fr; } }
.fhg-card { background: #fff; border: 1px solid var(--fhg-linha); border-radius: 14px; padding: 26px 24px; }
.fhg-card h3 { font-family: 'Archivo', sans-serif; font-size: 18px; font-weight: 600; margin: 0 0 8px; color: var(--fhg-grafite); }
.fhg-card p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--fhg-suave); }

/* Ficha: composição, técnica, advertências */
.fhg-ficha-texto { max-width: 760px; margin-bottom: 44px; color: var(--fhg-suave); }
.fhg-ficha-texto p { margin: 0 0 14px; }
.fhg-ficha-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; }
@media (max-width: 860px) { .fhg-ficha-grade { grid-template-columns: 1fr; } }
.fhg-ficha-caixa { border: 1px solid var(--fhg-linha); border-radius: 14px; padding: 26px 26px 24px; background: #fff; }
.fhg-ficha-caixa h3 {
	font-family: var(--fhg-mono); font-size: 12px; font-weight: 500; text-transform: uppercase;
	letter-spacing: 1.2px; color: var(--fhg-verde); margin: 0 0 16px;
}
.fhg-ficha-caixa ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.fhg-ficha-caixa li { font-size: 14px; line-height: 1.6; color: var(--fhg-suave); padding-left: 16px; position: relative; }
.fhg-ficha-caixa li::before {
	content: ''; position: absolute; left: 0; top: 0.62em; width: 5px; height: 5px;
	border-radius: 50%; background: var(--fhg-claro);
}
.fhg-ficha-tabela table { width: 100%; border-collapse: collapse; }
.fhg-ficha-tabela th, .fhg-ficha-tabela td { text-align: left; padding: 11px 0; border-bottom: 1px solid var(--fhg-linha); font-size: 15px; }
.fhg-ficha-tabela th { font-weight: 500; color: var(--fhg-grafite); }
.fhg-ficha-tabela td { font-family: var(--fhg-mono); color: var(--fhg-verde); text-align: right; white-space: nowrap; }
.fhg-ficha-tabela tr:last-child th, .fhg-ficha-tabela tr:last-child td { border-bottom: 0; }
.fhg-ficha-aviso { background: #FDFDF4; border-color: rgba(175, 183, 85, 0.45); }
.fhg-combina { background: var(--fhg-areia); }
.fhg-legal { font-size: 12px; color: var(--fhg-suave); line-height: 1.6; margin: 48px auto 0; max-width: 900px; }

/* Avaliações */
.woocommerce #reviews { max-width: var(--fhg-conteudo); margin: 0 auto; padding: 56px 20px 0; }
.woocommerce #reviews h2 { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 26px; }
.woocommerce #review_form input[type=text], .woocommerce #review_form input[type=email], .woocommerce #review_form textarea {
	border: 1px solid var(--fhg-linha); border-radius: 10px; padding: 12px 14px; width: 100%;
}
.woocommerce #respond input#submit { background: var(--fhg-verde); color: #fff; border-radius: 8px; padding: 12px 26px; font-weight: 600; }

/* ---------- Carrinho e checkout ---------- */
.woocommerce table.shop_table { border: 1px solid var(--fhg-linha); border-radius: 14px; border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--fhg-areia); font-family: 'Archivo', sans-serif; font-weight: 600; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: 16px 14px; }
.woocommerce .cart_item img { border-radius: 8px; background: var(--fhg-num); }
.woocommerce .cart-collaterals .cart_totals > h2, .woocommerce-checkout h3 { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 20px; }
.woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce .button, .woocommerce a.button { background: var(--fhg-verde); color: #fff; border-radius: 8px; font-weight: 600; }
.woocommerce #respond input#submit.alt:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce .button:hover, .woocommerce a.button:hover { background: var(--fhg-profundo); color: #fff; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	border: 1px solid var(--fhg-linha); border-radius: 10px; padding: 12px 14px; background: #fff;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-top-color: var(--fhg-verde); border-radius: 10px; background: var(--fhg-areia);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--fhg-verde); }

/* ---------- Blocos da home que usam shortcode ---------- */
.fhg-vitrine .woocommerce { margin: 0; }
.fhg-vitrine ul.products { gap: 20px; }
.fhg-cat { text-decoration: none; height: 100%; transition: box-shadow 0.25s ease, transform 0.25s ease; }
.fhg-cat:hover { box-shadow: 0 18px 40px -26px rgba(46, 55, 25, 0.4); transform: translateY(-3px); }
.fhg-objetivo { text-decoration: none; transition: background-color 0.2s ease; }
.fhg-objetivo:hover { background: var(--fhg-limao) !important; }
.fhg-cartao { height: 100%; }

/* ---------- Busca ---------- */
.search-results .site-main, .search-no-results .site-main { max-width: var(--fhg-conteudo); margin: 0 auto; padding: 56px 20px; }

/* ---------- Ajustes de encaixe ---------- */
/* As seções que entram depois do bloco de compra são filhas do mesmo grid. */
.single-product div.product > .fhg-bloco,
.single-product div.product > #reviews,
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .fhg-legal { grid-column: 1 / -1; }
.single-product div.product > .fhg-bloco { margin-top: 8px; }
.single-product div.product > .fhg-bloco .fhg-largura { padding-inline: 0; }
.fhg-beneficios { border-radius: 18px; }
.fhg-beneficios .fhg-largura, .fhg-ficha .fhg-largura, .fhg-combina .fhg-largura { max-width: 100%; }

/* Cartões da vitrine com a mesma altura de título e preço alinhado. */
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 2.6em; }
.woocommerce ul.products li.product .price { margin-top: auto; }

/* Cartões de categoria: a foto ocupa sempre a mesma altura. */
/* A foto da família preenche a moldura, como nos cartões da vitrine. */
.fhg-cat__foto { overflow: hidden; }
.fhg-cat__foto, .fhg-cat__foto .elementor-widget-image, .fhg-cat__foto .elementor-widget-container { height: 100%; }
.fhg-cat__foto img {
	width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.fhg-cat:hover .fhg-cat__foto img { transform: scale(1.04); }

/* Objetivos: texto sempre centrado, mesma altura. */
.fhg-objetivo .elementor-widget-heading { width: 100%; }

/* A tabela de composição não herda as bordas do tema. */
.fhg-ficha-tabela table, .fhg-ficha-tabela tr, .fhg-ficha-tabela th, .fhg-ficha-tabela td { border-left: 0; border-right: 0; background: none; }
.fhg-ficha-tabela tr:nth-child(odd) th, .fhg-ficha-tabela tr:nth-child(odd) td { background: none; }

/* ---------- Faixa de famílias ---------- */
.fhg-loja-apoio { max-width: 720px; margin: 0 auto 8px; text-align: center; color: var(--fhg-suave); font-size: 17px; }
.fhg-filtro { margin: 26px 0 34px; }
.fhg-filtro ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; justify-content: center; }
.fhg-filtro a {
	display: inline-flex; align-items: baseline; gap: 6px; padding: 9px 16px; border-radius: 999px;
	border: 1px solid var(--fhg-linha); color: var(--fhg-grafite); text-decoration: none;
	font-size: 14px; font-weight: 500; transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.fhg-filtro a span { font-family: var(--fhg-mono); font-size: 11px; color: var(--fhg-suave); }
.fhg-filtro a:hover { border-color: var(--fhg-verde); color: var(--fhg-verde); }
.fhg-filtro a[aria-current] { background: var(--fhg-verde); border-color: var(--fhg-verde); color: #fff; }
.fhg-filtro a[aria-current] span { color: rgba(255, 255, 255, 0.75); }

/* O menu do cabeçalho não quebra em duas linhas em telas de 1280–1440. */
.fhg-menu .hfe-nav-menu, .fhg-menu .hfe-nav-menu > li { flex-wrap: nowrap; }
.fhg-menu .hfe-nav-menu > li > a { white-space: nowrap; }
@media (min-width: 1025px) and (max-width: 1500px) {
	.fhg-menu .hfe-nav-menu > li > a.hfe-menu-item { padding-left: 10px !important; padding-right: 10px !important; }
}
.fhg-menu ul.hfe-nav-menu li.menu-item a.hfe-menu-item,
.fhg-menu ul.hfe-nav-menu li.menu-item a.hfe-sub-menu-item { white-space: nowrap !important; }
.fhg-menu ul.hfe-nav-menu { flex-wrap: nowrap !important; }

/* Cupom e quantidades do carrinho. */
.woocommerce .coupon { display: flex; gap: 10px; align-items: center; }
.woocommerce .coupon #coupon_code { width: 200px; min-width: 140px; }
.woocommerce-checkout #customer_details, .woocommerce-checkout .woocommerce-checkout-review-order { font-size: 15px; }

/* ---------- Página de produto como landing ---------- */
.fhg-p-rotulo {
	font-family: var(--fhg-mono); font-size: 12px; letter-spacing: 1.6px; text-transform: uppercase;
	color: var(--fhg-verde); margin: 0 0 12px;
}
.fhg-escuro .fhg-p-rotulo { color: var(--fhg-limao); }
.fhg-p-titulo {
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: -1px; line-height: 1.12;
	font-size: clamp(26px, 3vw, 38px); color: var(--fhg-grafite); margin: 0 0 14px;
}
.fhg-escuro .fhg-p-titulo { color: #F1F3E8; }
.fhg-p-texto { font-size: 17px; line-height: 1.65; color: var(--fhg-suave); margin: 0; }
.fhg-escuro .fhg-p-texto { color: rgba(233, 235, 224, 0.8); }
.fhg-p-pontos { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 11px; }
.fhg-p-pontos li { position: relative; padding-left: 26px; color: var(--fhg-grafite); line-height: 1.5; }
.fhg-p-pontos li::before {
	content: ''; position: absolute; left: 0; top: 0.45em; width: 12px; height: 12px;
	background: url('../midia/simbolo-fhg.svg') center / contain no-repeat;
}

/* Cena: foto e texto lado a lado */
.fhg-p-cena { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 52px; align-items: center; }
.fhg-p-cena--direita .fhg-p-cena__foto { order: 2; }
.fhg-p-cena__foto img { width: 100%; height: 100%; max-height: 460px; object-fit: cover; border-radius: 18px; display: block; }
@media (max-width: 860px) {
	.fhg-p-cena { grid-template-columns: 1fr; gap: 28px; }
	.fhg-p-cena--direita .fhg-p-cena__foto { order: 0; }
}

/* Tabela nutricional publicada */
.fhg-p-tabela { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 52px; align-items: center; }
.fhg-p-tabela__foto { margin: 0; background: #fff; border-radius: 18px; padding: 18px; }
.fhg-p-tabela__foto img { width: 100%; height: auto; display: block; border-radius: 10px; }
@media (max-width: 860px) {
	.fhg-p-tabela { grid-template-columns: 1fr; gap: 26px; }
}

/* Chamada final */
.fhg-p-chamada {
	display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between;
	background: #fff; border: 1px solid var(--fhg-linha); border-radius: 18px; padding: 34px 36px;
}
.fhg-p-chamada__texto { flex: 1 1 380px; }
.fhg-p-chamada__texto .fhg-p-titulo { margin-bottom: 8px; }
.fhg-p-chamada__compra { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.fhg-p-chamada__preco {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 30px; color: var(--fhg-grafite); margin: 0;
}
.fhg-p-chamada__preco del { font-size: 17px; font-weight: 400; color: var(--fhg-suave); margin-right: 8px; }
.fhg-p-chamada__preco ins { text-decoration: none; }
.fhg-p-chamada__botao {
	display: inline-block; background: var(--fhg-verde); color: #fff; text-decoration: none;
	font-weight: 600; font-size: 15px; padding: 14px 30px; border-radius: 10px;
	transition: background-color 0.2s ease;
}
.fhg-p-chamada__botao:hover { background: var(--fhg-profundo); color: #fff; }
@media (max-width: 620px) {
	.fhg-p-chamada { padding: 26px 22px; }
	.fhg-p-chamada__compra { width: 100%; }
	.fhg-p-chamada__botao { width: 100%; text-align: center; }
}

/* ---------- Carrinho, checkout e conta: uma régua só ----------
 * O tema entrega essas páginas na caixa de 1140px do Elementor, enquanto o
 * resto do site corre em 1240 com 20 de respiro. Os títulos ficavam 50px
 * fora do eixo de tudo o mais. */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main,
.woocommerce-order-received .site-main {
	max-width: var(--fhg-conteudo) !important;
	width: 100%;
	margin-inline: auto;
	padding-inline: 20px;
}
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-account .entry-title {
	text-align: center;
	margin: 0 auto 26px;
}
/* O «produto adicionado» não serve de nada em cima do checkout. */
.woocommerce-checkout .woocommerce-message { display: none; }
/* Títulos que o WooCommerce repete dentro das etapas. */
.fhg-etapa-caixa .woocommerce-billing-fields > h3,
.fhg-etapa-caixa .woocommerce-additional-fields > h3,
.fhg-etapa-caixa > .woocommerce-additional-fields:empty,
.fhg-etapa-caixa > .woocommerce-billing-fields:empty { display: none; }
.fhg-etapa-titulo {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 22px;
	color: var(--fhg-grafite); margin: 0 0 22px;
}
/* O CEP a ser buscado. */
.form-row.is-buscando input { background-image: linear-gradient(90deg, transparent, rgba(192, 204, 80, 0.25), transparent); background-size: 200% 100%; animation: fhg-busca 1s linear infinite; }
@keyframes fhg-busca { from { background-position: 200% 0; } to { background-position: -200% 0; } }
/* Só vendemos no Brasil: o campo de país é informação, não escolha. */
#billing_country_field, #shipping_country_field { display: none !important; }

/* ==========================================================================
   Minha conta: entrar, criar conta e painel
   ========================================================================== */
.woocommerce-account .site-main { padding-top: 0; }
.fhg-conta-topo {
	/* Dentro do painel a página é um flex (menu + conteúdo): o topo toma a
	 * primeira linha inteira em vez de disputar espaço com o menu. */
	order: -1; width: 100%; flex: 0 0 100%;
	margin: 0 -20px 40px; padding: 68px 20px 52px; background: var(--fhg-off);
	text-align: center;
}
.fhg-conta-topo__dentro { max-width: 760px; margin: 0 auto; }
.fhg-conta-titulo {
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: -1.4px;
	font-size: clamp(30px, 4vw, 44px); line-height: 1.08; color: var(--fhg-grafite); margin: 0 0 12px;
}
.fhg-conta-apoio { color: var(--fhg-suave); font-size: 17px; line-height: 1.6; margin: 0; }
.woocommerce-account .entry-title { display: none; }

/* Duas colunas: entrar | criar conta */
/* Entrar de um lado, convite para criar conta do outro. O formulário de
 * cadastro tem página própria, então o «col2-set» do WooCommerce fica com uma
 * coluna só e a grade passa a ser a nossa. */
.fhg-conta-colunas {
	padding-bottom: 72px;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px;
	align-items: start;
}
.fhg-conta-colunas #customer_login { display: block; }
.fhg-conta-entrar {
	background: #fff; border: 1px solid var(--fhg-linha); border-radius: 18px; padding: 34px 32px;
}
.fhg-conta-entrar h2 {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 22px;
	color: var(--fhg-grafite); margin: 0 0 6px;
}
.woocommerce-account .u-columns.col2-set {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px;
	align-items: start;
}
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after { content: none !important; }
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
	width: auto !important; float: none !important; margin: 0 !important;
	background: #fff; border: 1px solid var(--fhg-linha); border-radius: 18px;
	padding: 34px 32px;
}
.woocommerce-account .u-column2 { background: var(--fhg-areia); }
.woocommerce-account .u-column1 h2,
.woocommerce-account .u-column2 h2 {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 22px;
	color: var(--fhg-grafite); margin: 0 0 6px;
}
.woocommerce-account form.login, .woocommerce-account form.register {
	border: 0 !important; padding: 0 !important; margin: 18px 0 0 !important; border-radius: 0;
}
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit {
	background: var(--fhg-verde) !important; color: #fff !important; border-radius: 10px;
	padding: 14px 30px; font-size: 15px; font-weight: 600; width: 100%; margin: 6px 0 0 !important;
	float: none !important;
}
.woocommerce-account .woocommerce-form-login__submit:hover,
.woocommerce-account .woocommerce-form-register__submit:hover { background: var(--fhg-profundo) !important; }
.woocommerce-account .woocommerce-form-login__rememberme { margin: 14px 0 6px; display: block; font-size: 14px; color: var(--fhg-suave); }
.woocommerce-account .lost_password { margin: 14px 0 0; font-size: 14px; }
.woocommerce-account .lost_password a { color: var(--fhg-verde); }
.fhg-conta-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fhg-conta-linha .form-row { width: auto !important; padding: 0 !important; margin: 0 0 14px !important; float: none !important; }
.woocommerce-account .woocommerce-privacy-policy-text p { font-size: 13px; color: var(--fhg-suave); }
.fhg-conta-vantagens { list-style: none; margin: 22px 0 0; padding: 20px 0 0; border-top: 1px solid var(--fhg-linha); display: grid; gap: 10px; }
.fhg-conta-vantagens li { position: relative; padding-left: 26px; font-size: 14px; color: var(--fhg-suave); line-height: 1.5; }
.fhg-conta-vantagens li::before {
	content: ''; position: absolute; left: 0; top: 0.3em; width: 13px; height: 13px;
	background: url('../midia/simbolo-fhg.svg') center / contain no-repeat;
}
@media (max-width: 860px) {
	.fhg-conta-colunas,
	.fhg-conta-colunas #customer_login,
	.woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}

/* Painel de quem está logado */
.woocommerce-account .woocommerce-MyAccount-navigation {
	width: 250px !important; float: none !important; margin: 0 34px 0 0 !important;
}
.woocommerce-account .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block; padding: 12px 16px; border-radius: 10px; text-decoration: none;
	color: var(--fhg-grafite); font-size: 15px; transition: background-color 0.2s ease, color 0.2s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--fhg-areia); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--fhg-verde); color: #fff; }
/* O painel (logado) é que tem menu lateral + conteúdo; a tela de entrar não. */
.woocommerce-account:not(.woocommerce-page) .woocommerce,
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: flex; flex-wrap: wrap; align-items: flex-start; padding-bottom: 72px;
}
.woocommerce-account .woocommerce-MyAccount-content { flex: 1 1 380px; min-width: 0; }
@media (max-width: 860px) {
	.woocommerce-account .woocommerce-MyAccount-navigation { width: 100% !important; margin: 0 0 22px !important; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(2, 1fr); }
}

.fhg-painel-ola { font-size: 17px; color: var(--fhg-suave); margin: 0 0 22px; }
.fhg-painel-atalhos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.fhg-painel-cartao {
	display: flex; flex-direction: column; gap: 6px; padding: 22px 20px; border-radius: 14px;
	background: #fff; border: 1px solid var(--fhg-linha); text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fhg-painel-cartao:hover {
	transform: translateY(-3px); border-color: rgba(96, 111, 54, 0.35);
	box-shadow: 0 20px 40px -30px rgba(46, 55, 25, 0.5);
}
.fhg-painel-cartao, .fhg-painel-cartao span, .fhg-painel-pedidos a, .fhg-painel-botao {
	text-decoration: none !important; border-bottom: 0 !important;
}
.fhg-painel-cartao__titulo { font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 16px; color: var(--fhg-grafite); }
.fhg-painel-cartao__texto { font-size: 13.5px; color: var(--fhg-suave); line-height: 1.5; }
.fhg-painel-cartao__ir { font-family: var(--fhg-mono); font-size: 12px; color: var(--fhg-verde); margin-top: 6px; }
.fhg-painel-h2 { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 20px; margin: 38px 0 14px; }
.fhg-painel-pedidos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fhg-painel-pedidos a {
	display: grid; grid-template-columns: 90px 1fr 140px auto; gap: 14px; align-items: center;
	padding: 16px 18px; border: 1px solid var(--fhg-linha); border-radius: 12px;
	text-decoration: none; color: var(--fhg-grafite); background: #fff;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.fhg-painel-pedidos a:hover { border-color: var(--fhg-verde); background: var(--fhg-off); }
.fhg-pedido-n { font-family: var(--fhg-mono); color: var(--fhg-verde); }
.fhg-pedido-data { color: var(--fhg-suave); font-size: 14px; }
.fhg-pedido-estado { font-size: 13px; color: var(--fhg-grafite); }
.fhg-pedido-total { font-weight: 700; }
@media (max-width: 720px) {
	.fhg-painel-atalhos { grid-template-columns: 1fr; }
	.fhg-painel-pedidos a { grid-template-columns: 1fr auto; row-gap: 4px; }
	.fhg-pedido-data, .fhg-pedido-estado { grid-column: 1 / -1; }
}
.fhg-painel-vazio {
	padding: 34px 28px; border: 1px dashed var(--fhg-linha); border-radius: 14px; text-align: center;
	background: var(--fhg-off);
}
.fhg-painel-vazio p { color: var(--fhg-suave); margin: 0 0 16px; }
.fhg-painel-botao {
	display: inline-block; background: var(--fhg-verde); color: #fff !important; text-decoration: none;
	padding: 13px 26px; border-radius: 10px; font-weight: 600; font-size: 15px;
}
.fhg-painel-botao:hover { background: var(--fhg-profundo); color: #fff; }

/* ==========================================================================
   Pedido recebido
   ========================================================================== */
.fhg-obrigado {
	position: relative; overflow: hidden; isolation: isolate;
	margin: 0 0 40px; padding: 56px 48px;
	border-radius: 22px; color: #F3F5E9;
	background: linear-gradient(150deg, #2E3719 0%, var(--fhg-verde) 62%, #7A8B44 100%);
}
.fhg-obrigado__marca {
	position: absolute; z-index: -1; inset: auto -70px -80px auto;
	width: 280px; height: 280px; opacity: 0.1;
	background: url('../midia/simbolo-fhg.svg') center / contain no-repeat;
}
/* O h1 da página repete o que o bloco já diz. */
.woocommerce-order-received .entry-title,
.woocommerce-order-received .fhg-conta-topo { display: none; }
.woocommerce-order-received .site-main { padding-top: 40px; }
.fhg-obrigado .fhg-p-rotulo { color: var(--fhg-limao); }
.fhg-obrigado__titulo {
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: -1.4px;
	font-size: clamp(30px, 4vw, 44px); line-height: 1.06; margin: 0 0 12px; color: #fff;
}
.fhg-obrigado__texto { font-size: 17px; line-height: 1.6; color: rgba(243, 245, 233, 0.88); margin: 0 0 30px; max-width: 620px; }
.fhg-obrigado__passos { list-style: none; margin: 0 0 32px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fhg-obrigado__passos li {
	display: grid; gap: 6px; padding: 20px 18px; border-radius: 14px;
	background: rgba(250, 250, 247, 0.08); border: 1px solid rgba(250, 250, 247, 0.14);
}
.fhg-passo-n {
	font-family: var(--fhg-mono); font-size: 12px; color: var(--fhg-limao);
	width: 26px; height: 26px; display: grid; place-items: center;
	border: 1px solid rgba(192, 204, 80, 0.5); border-radius: 999px;
}
.fhg-passo-t { font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 15.5px; color: #fff; }
.fhg-passo-x { font-size: 13.5px; line-height: 1.5; color: rgba(243, 245, 233, 0.78); }
.fhg-obrigado__botoes { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.fhg-obrigado__botao {
	background: var(--fhg-limao); color: var(--fhg-profundo) !important;
	text-decoration: none !important; border-bottom: 0 !important;
	padding: 14px 28px; border-radius: 10px; font-weight: 600; font-size: 15px;
}
.fhg-obrigado__botao:hover { background: #fff; color: var(--fhg-profundo); }
.fhg-obrigado__link {
	color: #FFFFFF !important; text-decoration: none !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.55) !important; font-size: 15px; padding-bottom: 2px;
}
.fhg-obrigado__link:hover { color: var(--fhg-limao); border-color: var(--fhg-limao); }
@media (max-width: 767px) {
	.fhg-obrigado { padding: 38px 24px; border-radius: 16px; }
	.fhg-obrigado__passos { grid-template-columns: 1fr; }
	.fhg-obrigado__botoes { flex-direction: column; align-items: stretch; text-align: center; }
}
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 20px; margin: 0 0 14px;
}

/* ---------- Objetivos: foto de fundo com véu da marca ---------- */
.fhg-objetivo {
	position: relative; overflow: hidden; isolation: isolate;
	background-size: cover !important; background-position: center !important;
	text-decoration: none;
	transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.4s ease;
}
/* Véu escuro para o nome ficar legível venha a foto que vier (AA garantido). */
.fhg-objetivo::after {
	content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(to top, rgba(26, 32, 12, 0.88) 0%, rgba(26, 32, 12, 0.5) 45%, rgba(26, 32, 12, 0.25) 100%);
	transition: background 0.4s ease;
}
.fhg-objetivo .elementor-heading-title { color: #F3F5E9 !important; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45); }
.fhg-objetivo:hover { transform: translateY(-4px); box-shadow: 0 26px 46px -30px rgba(20, 26, 8, 0.7); }
.fhg-objetivo:hover::after {
	background: linear-gradient(to top, rgba(46, 55, 25, 0.9) 0%, rgba(96, 111, 54, 0.55) 60%, rgba(96, 111, 54, 0.3) 100%);
}
.fhg-objetivo:hover .elementor-heading-title { color: #fff !important; }

/* ---------- Chamada final: degradê, para não repetir o rodapé ---------- */
.fhg-chamada-final {
	background-image: linear-gradient(135deg, #46532A 0%, var(--fhg-verde) 55%, #79883F 100%) !important;
}

/* ---------- Avisos do WooCommerce ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce-thankyou-order-received {
	position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
	margin: 0 0 16px; padding: 16px 20px 16px 58px;
	background: #fff !important; border: 1px solid var(--fhg-linha) !important;
	border-left: 3px solid var(--fhg-verde) !important; border-radius: 12px;
	box-shadow: 0 16px 34px -30px rgba(46, 55, 25, 0.5);
	color: var(--fhg-grafite); font-size: 15px; line-height: 1.5; list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	content: ''; position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
	width: 26px; height: 26px; border-radius: 999px; padding: 0; margin: 0;
	background-color: rgba(96, 111, 54, 0.12);
	background-repeat: no-repeat; background-position: center; background-size: 14px 14px;
	color: transparent; font-size: 0;
}
.woocommerce-message::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23606F36' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
}
.woocommerce-info::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23606F36' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7.6v.1'/%3E%3C/svg%3E");
}
.woocommerce-error {
	border-left-color: #B4402F !important; background: #FFF8F6 !important;
}
.woocommerce-error::before {
	background-color: rgba(180, 64, 47, 0.12);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4402F' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 7v7M12 17.4v.1'/%3E%3C/svg%3E");
}
.woocommerce-error li { margin: 0; padding: 0; list-style: none; }
/* O WooCommerce foca o aviso ao carregar a página e o navegador desenha um
 * anel preto por cima do cartão. Fica o anel, mas na cor da marca. */
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(96, 111, 54, 0.18), 0 16px 34px -30px rgba(46, 55, 25, 0.5);
}
.woocommerce-message .button,
.woocommerce-info .button {
	margin-left: auto; background: var(--fhg-verde) !important; color: #fff !important;
	border-radius: 9px; padding: 10px 20px; font-size: 14px; font-weight: 600; float: none !important;
}
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button) { color: var(--fhg-verde); }
@media (max-width: 560px) {
	.woocommerce-message, .woocommerce-info, .woocommerce-error { padding: 16px 18px 16px 52px; }
	.woocommerce-message .button, .woocommerce-info .button { margin: 6px 0 0; width: 100%; text-align: center; }
}

/* ---------- Selo de oferta: à esquerda, como uma etiqueta ---------- */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	position: absolute; top: 14px; left: 14px; right: auto; bottom: auto;
	margin: 0 !important; padding: 5px 12px; border-radius: 8px;
	background: var(--fhg-limao); color: var(--fhg-profundo);
	font-family: var(--fhg-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.4px;
	line-height: 1.6; min-height: 0; min-width: 0; z-index: 2;
	transform: none; text-align: left;
}
.single-product span.onsale { top: 18px; left: 18px; }

/* ---------- Convite para criar conta (ao lado do entrar) ---------- */
.fhg-conta-convite {
	position: relative; overflow: hidden; isolation: isolate;
	padding: 34px 32px; border-radius: 18px;
	background: linear-gradient(150deg, #2E3719 0%, var(--fhg-verde) 62%, #78873F 100%);
	color: #F3F5E9;
}
.fhg-conta-convite::after {
	content: ''; position: absolute; z-index: -1; pointer-events: none;
	inset: auto -60px -70px auto; width: 230px; height: 230px; opacity: 0.12;
	background: url('../midia/simbolo-fhg.svg') center / contain no-repeat;
}
.fhg-conta-convite h2 {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 22px;
	color: #fff; margin: 0 0 8px;
}
.fhg-conta-convite__texto { color: rgba(243, 245, 233, 0.86); font-size: 15.5px; line-height: 1.6; margin: 0; }
.fhg-conta-convite .fhg-conta-vantagens {
	border-top-color: rgba(250, 250, 247, 0.22);
	margin-top: 20px; padding-top: 18px;
}
.fhg-conta-convite .fhg-conta-vantagens li { color: rgba(243, 245, 233, 0.86); }
.fhg-conta-botao {
	display: inline-block; margin-top: 24px; padding: 14px 28px; border-radius: 10px;
	background: var(--fhg-limao); color: var(--fhg-profundo) !important;
	font-weight: 600; font-size: 15px; text-decoration: none !important;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.fhg-conta-botao:hover { background: #fff; transform: translateY(-2px); }

/* ---------- Página «Criar conta» ---------- */
.fhg-cadastro { max-width: 560px; margin: 0 auto; padding: 56px 0 80px; }
.fhg-cadastro__caixa {
	background: #fff; border: 1px solid var(--fhg-linha); border-radius: 18px; padding: 38px 34px;
	box-shadow: 0 30px 60px -48px rgba(46, 55, 25, 0.6);
}
.fhg-cadastro__caixa h2 {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 26px;
	color: var(--fhg-grafite); margin: 0 0 8px;
}
.fhg-cadastro__apoio { color: var(--fhg-suave); font-size: 15.5px; line-height: 1.6; margin: 0 0 26px; }
.fhg-cadastro form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.fhg-cadastro .woocommerce-form-register__submit {
	background: var(--fhg-verde) !important; color: #fff !important; border-radius: 10px;
	padding: 15px 30px; font-size: 15px; font-weight: 600; width: 100%; margin-top: 8px !important;
	float: none !important;
}
.fhg-cadastro .woocommerce-form-register__submit:hover { background: var(--fhg-profundo) !important; }
.fhg-cadastro__volta { margin: 22px 0 0; text-align: center; font-size: 14.5px; color: var(--fhg-suave); }
.fhg-cadastro__volta a { color: var(--fhg-verde); font-weight: 600; }
.fhg-cadastro .woocommerce-privacy-policy-text p { font-size: 13px; color: var(--fhg-suave); }

/* ==========================================================================
   Checkout: etapas em cartão, campos com respiração
   ========================================================================== */

/* Trilho centrado, com os números ligados por uma linha. */
.woocommerce-checkout .fhg-etapas {
	max-width: 620px; margin: 0 auto 30px; gap: 0;
	display: flex; align-items: center; justify-content: center;
}
.woocommerce-checkout .fhg-etapa {
	flex: 0 1 auto; border-top: 0 !important; padding: 0 14px; gap: 9px;
	position: relative;
}
.woocommerce-checkout .fhg-etapa + .fhg-etapa::before {
	content: ''; position: absolute; left: -22px; top: 50%; width: 44px; height: 1px;
	background: var(--fhg-linha);
}
.woocommerce-checkout .fhg-etapa.is-feita + .fhg-etapa::before,
.woocommerce-checkout .fhg-etapa.is-ativa::before { background: var(--fhg-claro); }
.woocommerce-checkout .fhg-etapa-n {
	width: 30px; height: 30px; font-size: 13px;
	border: 1px solid var(--fhg-linha); background: #fff;
}
.woocommerce-checkout .fhg-etapa.is-ativa .fhg-etapa-n { border-color: var(--fhg-verde); }
.woocommerce-checkout .fhg-etapa-nome { font-size: 14.5px; font-weight: 600; }

/* Cada etapa é um cartão. */
.fhg-etapa-caixa.is-ativa {
	background: #fff; border: 1px solid var(--fhg-linha); border-radius: 18px;
	padding: 34px 32px; box-shadow: 0 30px 60px -52px rgba(46, 55, 25, 0.55);
}
.fhg-etapa-titulo {
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 21px;
	color: var(--fhg-grafite); margin: 0 0 4px;
}
.fhg-etapa-sub { color: var(--fhg-suave); font-size: 14.5px; line-height: 1.55; margin: 0 0 26px; }

/* Campos: rótulo curto em cima, caixa alta, foco da marca. */
.woocommerce-checkout .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce-checkout .form-row label {
	display: block; font-size: 12.5px; font-weight: 600; letter-spacing: 0.3px;
	color: var(--fhg-grafite); margin: 0 0 7px; text-transform: none;
}
.woocommerce-checkout .form-row label .required { color: #B4402F; text-decoration: none; border: 0; }
.woocommerce-checkout .form-row .woocommerce-input-wrapper { width: 100%; display: block; }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single {
	width: 100%; height: auto; min-height: 52px; padding: 14px 16px;
	border: 1px solid var(--fhg-linha); border-radius: 12px; background: var(--fhg-off);
	font-size: 15.5px; color: var(--fhg-grafite);
	transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.woocommerce-checkout .form-row textarea { min-height: 96px; line-height: 1.5; }
.woocommerce-checkout .form-row input.input-text:hover,
.woocommerce-checkout .form-row select:hover { border-color: rgba(96, 111, 54, 0.4); }
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
	outline: none; background: #fff;
	border-color: var(--fhg-verde); box-shadow: 0 0 0 3px rgba(96, 111, 54, 0.14);
}
.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder { color: rgba(113, 113, 107, 0.7); }
/* Ajuda e erro do campo. */
.woocommerce-checkout .form-row .description,
.woocommerce-checkout .form-row small {
	display: block; margin: 7px 0 0; font-size: 12.5px; color: var(--fhg-suave); line-height: 1.45;
}
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select {
	border-color: #B4402F; background: #FFF8F6;
}
.woocommerce-checkout .form-row.woocommerce-validated input.input-text { border-color: rgba(96, 111, 54, 0.45); }
/* Duas colunas de verdade no computador. */
@media (min-width: 720px) {
	.fhg-etapa-caixa .form-row-first,
	.fhg-etapa-caixa .form-row-last { width: calc(50% - 9px); float: none; display: inline-block; vertical-align: top; }
	.fhg-etapa-caixa .form-row-first { margin-right: 14px; }
}
@media (max-width: 719px) {
	/* Uma coluna: o WooCommerce insiste em 47% com float e no celular os
	 * campos ficam curtos demais (o telefone corta o próprio exemplo). */
	.woocommerce-checkout .fhg-etapa-caixa .form-row-first,
	.woocommerce-checkout .fhg-etapa-caixa .form-row-last,
	.woocommerce-checkout .fhg-etapa-caixa .form-row {
		width: 100% !important; float: none !important; margin-right: 0 !important;
		display: block !important;
	}
	.fhg-etapa-caixa.is-ativa { padding: 26px 20px; }
	/* O nome da etapa em que a pessoa está continua à vista. */
	.woocommerce-checkout .fhg-etapa.is-ativa .fhg-etapa-nome { display: inline; }
	.woocommerce-checkout .fhg-etapas { gap: 4px; }
	.woocommerce-checkout .fhg-etapa { padding: 0 8px; }
	.woocommerce-checkout .fhg-etapa + .fhg-etapa::before { width: 22px; left: -12px; }
}

/* Pé da etapa: o botão diz para onde leva. */
.woocommerce-checkout .fhg-etapa-pe { margin-top: 30px; gap: 14px; }
.woocommerce-checkout .fhg-etapa-pe .fhg-etapa-seguir {
	flex: 1 1 auto; border-radius: 999px !important; padding: 16px 32px; font-size: 15.5px;
}
.woocommerce-checkout .fhg-etapa-pe .fhg-etapa-voltar {
	border-radius: 999px !important; padding: 16px 26px; flex: 0 0 auto;
}
@media (max-width: 560px) {
	.fhg-etapa-pe { flex-direction: column-reverse; }
	.fhg-etapa-voltar, .fhg-etapa-seguir { width: 100%; }
}
/* O «Finalizar pedido» segue a mesma régua. */
.woocommerce-checkout #place_order {
	width: 100%; border-radius: 999px !important; padding: 17px 32px; font-size: 16px; font-weight: 600;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 18px; }
.woocommerce-checkout .wc_payment_methods {
	list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 10px;
}
.woocommerce-checkout .wc_payment_method > label {
	display: flex; align-items: center; gap: 10px; padding: 16px 18px;
	border: 1px solid var(--fhg-linha); border-radius: 12px; background: var(--fhg-off);
	font-size: 15px; font-weight: 600; cursor: pointer; margin: 0;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.woocommerce-checkout .wc_payment_method input:checked + label {
	border-color: var(--fhg-verde); background: #fff; box-shadow: 0 0 0 3px rgba(96, 111, 54, 0.12);
}
.woocommerce-checkout .payment_box {
	background: var(--fhg-areia) !important; border-radius: 12px; margin: 8px 0 0; padding: 16px 18px;
	font-size: 14px; color: var(--fhg-suave);
}
.woocommerce-checkout .payment_box::before { display: none !important; }

/* ==========================================================================
   Celular: cartões de produto e de família
   ========================================================================== */

/* A foto da família pedia 100% da altura do cartão e empurrava o texto para
 * fora (o cartão tem overflow:hidden): sumia o nome, a descrição e o «ver
 * produtos». A proporção fixa resolve e mantém a linha alinhada. */
.fhg-cat__foto, .fhg-cat__foto .elementor-widget-image, .fhg-cat__foto .elementor-widget-container { height: auto; }
.fhg-cat__foto img { height: auto; aspect-ratio: 4 / 3; }

@media (max-width: 560px) {
	/* Uma coluna, cartão de pé: foto em cima, texto embaixo — o mesmo desenho
	 * do computador, só que ocupando a largura inteira. */
	.woocommerce ul.products[class*='columns-'] { grid-template-columns: 1fr; gap: 14px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 17px; padding: 14px 16px 0;
	}
	.woocommerce ul.products li.product .fhg-cartao-dado { padding: 5px 16px 0; font-size: 12px; }
	.woocommerce ul.products li.product .price { padding: 9px 16px 0; font-size: 20px; }
	.fhg-parcelas-cartao { padding: 3px 16px 0; font-size: 12.5px; }
	.woocommerce ul.products li.product .button { margin: 12px 16px 16px; padding: 13px 20px; font-size: 14.5px; }
	.woocommerce ul.products li.product .onsale { top: 14px; left: 14px; }
}

/* Entre 561 e 720px ainda cabem duas colunas, mas com texto contido. */
@media (min-width: 561px) and (max-width: 720px) {
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 15px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
	}
	.woocommerce ul.products li.product .fhg-cartao-dado {
		display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	}
	.fhg-parcelas-cartao { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* ==========================================================================
   Filtros laterais da loja
   ========================================================================== */
.fhg-coluna-filtros { position: sticky; top: 110px; }
.fhg-filtros__caixa {
	background: var(--fhg-off); border: 1px solid var(--fhg-linha); border-radius: 16px;
	padding: 4px 22px 22px;
}
.fhg-filtros__abre {
	list-style: none; cursor: default; padding: 18px 0 0; margin: 0;
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 16px; color: var(--fhg-grafite);
}
.fhg-filtros__abre::-webkit-details-marker { display: none; }
.fhg-filtros__grupo + .fhg-filtros__grupo { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--fhg-linha); }
.fhg-filtros__grupo:first-child { margin-top: 18px; }
.fhg-filtros__titulo {
	font-family: var(--fhg-mono); font-size: 11.5px; letter-spacing: 1.4px; text-transform: uppercase;
	color: var(--fhg-suave); margin: 0 0 12px; font-weight: 500;
}
.fhg-filtros__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.fhg-filtros__lista a {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 9px 12px; border-radius: 9px; text-decoration: none;
	color: var(--fhg-grafite); font-size: 14.5px; line-height: 1.35;
	transition: background-color 0.18s ease, color 0.18s ease;
}
.fhg-filtros__lista a span {
	font-family: var(--fhg-mono); font-size: 11px; color: var(--fhg-suave);
	background: #fff; border: 1px solid var(--fhg-linha); border-radius: 999px; padding: 1px 8px;
}
.fhg-filtros__lista a:hover { background: #fff; color: var(--fhg-verde); }
.fhg-filtros__lista a[aria-current] {
	background: var(--fhg-verde); color: #fff; font-weight: 600;
}
.fhg-filtros__lista a[aria-current] span { background: rgba(255, 255, 255, 0.16); border-color: transparent; color: #fff; }
.fhg-filtros__limpar {
	display: inline-block; margin-top: 20px; font-size: 13.5px; color: var(--fhg-verde);
	border-bottom: 1px solid currentColor; text-decoration: none;
}
.fhg-filtros__limpar:hover { color: var(--fhg-profundo); }

/* No celular a barra vira um painel que abre e fecha. */
@media (max-width: 1024px) {
	.fhg-coluna-filtros { position: static; width: 100% !important; flex-basis: auto !important; }
	.fhg-filtros__caixa { padding: 0 18px 0; }
	.fhg-filtros__abre {
		display: flex; align-items: center; justify-content: space-between; gap: 10px;
		cursor: pointer; padding: 16px 0; margin: 0;
	}
	.fhg-filtros__abre::after {
		content: ''; width: 10px; height: 10px; flex: none;
		border-right: 2px solid var(--fhg-verde); border-bottom: 2px solid var(--fhg-verde);
		transform: rotate(45deg); transition: transform 0.25s ease; margin-bottom: 3px;
	}
	.fhg-filtros__caixa[open] .fhg-filtros__abre::after { transform: rotate(-135deg); margin-bottom: -3px; }
	.fhg-filtros__dentro { padding-bottom: 18px; }
	.fhg-filtros__grupo:first-child { margin-top: 0; }
	/* Duas colunas de links no tablet, para o painel não ficar comprido. */
	.fhg-filtros__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.fhg-filtros__lista { grid-template-columns: 1fr; }
}

/* A vitrine perdeu a faixa de famílias no topo: o respiro vem daqui. */
.fhg-coluna-produtos .woocommerce { margin: 0; }
/* A coluna dos filtros não encolhe e a da vitrine toma o resto. */
.fhg-coluna-filtros { flex: 0 0 262px !important; max-width: 262px; }
.fhg-coluna-produtos { flex: 1 1 0 !important; min-width: 0; max-width: none; }
@media (max-width: 1024px) {
	.fhg-coluna-filtros { flex: 1 1 100% !important; max-width: none; }
}

/* ---------- Ícones nos blocos da loja ---------- */
/* Garantias da página de produto */
.fhg-garantias li {
	display: flex; align-items: center; gap: 10px;
	padding-left: 0 !important; font-size: 14px; color: var(--fhg-suave);
}
.fhg-garantias li::before { content: none !important; }
.fhg-garantias li .fhg-icone-svg { color: var(--fhg-verde); flex: none; }
/* Faixa de vantagens do topo */
.fhg-faixa li { display: inline-flex; align-items: center; gap: 8px; }
.fhg-faixa li .fhg-icone-svg { color: var(--fhg-limao); opacity: 0.9; flex: none; }
/* Filtros */
.fhg-filtros__titulo { display: flex; align-items: center; gap: 7px; }
.fhg-filtros__titulo .fhg-icone-svg { color: var(--fhg-claro); flex: none; }
.fhg-filtros__abre span { display: inline-flex; align-items: center; gap: 8px; }
.fhg-filtros__abre .fhg-icone-svg { color: var(--fhg-verde); flex: none; }
/* Atalhos da conta */
.fhg-painel-cartao .fhg-icone-bloco { width: 40px; height: 40px; margin-bottom: 10px; }
/* Ícone dos benefícios do produto */
.fhg-card .fhg-icone-bloco { width: 42px; height: 42px; margin-bottom: 14px; }

/* ==========================================================================
   Página do carrinho
   Topo no desenho das páginas internas, itens em linhas (não em planilha),
   resumo fixo ao lado e sugestões dentro do formulário — o cart.js do
   WooCommerce redesenha o form e o .cart_totals a cada mudança, e o que está
   dentro deles acompanha.
   ========================================================================== */

/* ---------- Topo ---------- */
.woocommerce-cart .fhg-cart-topo {
	margin: 0 -20px 36px; padding: 56px 20px 0; background: var(--fhg-off); text-align: center;
}
.fhg-cart-topo__dentro { max-width: 720px; margin: 0 auto; }
.fhg-cart-titulo {
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: -1.4px;
	font-size: clamp(30px, 4vw, 44px); line-height: 1.08; color: var(--fhg-grafite); margin: 0 0 12px;
}
.fhg-cart-apoio { color: var(--fhg-suave); font-size: 16px; margin: 0; }
.fhg-cart-apoio__sep { margin: 0 10px; }
.fhg-cart-apoio a { color: var(--fhg-verde); font-weight: 600; text-decoration: none; }
.fhg-cart-apoio a:hover { text-decoration: underline; }

/* Trilho das etapas: o carrinho é a primeira; as outras são o checkout. */
.fhg-cart-etapas {
	list-style: none; margin: 34px auto 0; padding: 22px 0; max-width: 620px;
	display: flex; align-items: center; justify-content: center;
	border-top: 1px solid var(--fhg-linha);
}
.fhg-cart-etapa { position: relative; display: flex; align-items: center; gap: 9px; padding: 0 14px; color: var(--fhg-suave); }
.fhg-cart-etapa + .fhg-cart-etapa::before {
	content: ''; position: absolute; left: -22px; top: 50%; width: 44px; height: 1px; background: var(--fhg-linha);
}
.fhg-cart-etapa__n {
	display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
	border: 1px solid var(--fhg-linha); background: #fff; font-family: var(--fhg-mono); font-size: 13px;
}
.fhg-cart-etapa__nome { font-size: 14.5px; font-weight: 600; }
.fhg-cart-etapa.is-ativa { color: var(--fhg-grafite); }
.fhg-cart-etapa.is-ativa .fhg-cart-etapa__n { border-color: var(--fhg-verde); background: var(--fhg-verde); color: #fff; }

/* ---------- Grade ---------- */
.fhg-cart-grade { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 36px; align-items: start; }
.fhg-cart-itens { min-width: 0; }
.woocommerce-cart .cart-collaterals { position: sticky; top: 96px; min-width: 0; }
.woocommerce-cart .cart-collaterals::before, .woocommerce-cart .cart-collaterals::after { content: none; }

/* Avisos (produto adicionado, cupom, erro) em cartão, no eixo da coluna. */
.woocommerce-cart .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error {
	display: flex; align-items: center; gap: 10px; padding: 14px 18px; margin: 0 0 14px;
	border: 1px solid var(--fhg-linha); border-radius: 12px; background: #fff; font-size: 15px; color: var(--fhg-grafite);
}
.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before,
.woocommerce-cart .woocommerce-error::before { position: static; margin: 0; }
.woocommerce-cart .woocommerce-message .button { margin-left: auto; }

/* ---------- Itens: linhas com foto, nome, dado, quantidade e subtotal ---------- */
.woocommerce-cart .woocommerce-cart-form {
	border: 1px solid var(--fhg-linha); border-radius: 16px; background: #fff; padding: 6px 26px 22px;
}
.woocommerce-cart table.shop_table.cart,
.woocommerce-cart table.shop_table.cart tbody,
.woocommerce-cart table.shop_table.cart tr,
.woocommerce-cart table.shop_table.cart td { display: block; width: auto; border: 0; background: none; padding: 0; border-radius: 0; }
.woocommerce-cart table.shop_table.cart { border: 0; margin: 0; overflow: visible; }
.woocommerce-cart table.shop_table.cart thead { display: none; }
.woocommerce-cart table.shop_table.cart td::before { content: none !important; }
.woocommerce-cart table.shop_table.cart tr.cart_item {
	display: grid; grid-template-columns: 96px minmax(0, 1fr) 132px 112px 36px;
	grid-template-areas: 'foto nome qtd total x' 'foto preco qtd total x';
	column-gap: 20px; row-gap: 4px; align-items: center; align-content: center;
	padding: 20px 0; border-bottom: 1px solid var(--fhg-linha);
}
.woocommerce-cart table.shop_table.cart td.product-thumbnail { grid-area: foto; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	display: block; width: 96px; height: 96px; object-fit: cover; border-radius: 12px; background: var(--fhg-num);
}
.woocommerce-cart table.shop_table.cart td.product-name { grid-area: nome; align-self: end; }
.woocommerce-cart table.shop_table.cart td.product-name > a {
	font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 16px; line-height: 1.3; color: var(--fhg-grafite); text-decoration: none;
}
.woocommerce-cart table.shop_table.cart td.product-name > a:hover { color: var(--fhg-verde); }
.fhg-cart-dado { margin: 3px 0 0; font-size: 13px; color: var(--fhg-suave); }
.woocommerce-cart td.product-name dl.variation { display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 3px 0 0; font-size: 13px; color: var(--fhg-suave); }
.woocommerce-cart td.product-name dl.variation dt, .woocommerce-cart td.product-name dl.variation dd { margin: 0; padding: 0; border: 0; font-weight: 400; }
.woocommerce-cart td.product-name dl.variation dd p { margin: 0; display: inline; }
.woocommerce-cart table.shop_table.cart td.product-price { grid-area: preco; align-self: start; font-size: 13.5px; color: var(--fhg-suave); }
.woocommerce-cart table.shop_table.cart td.product-price .amount { font-family: var(--fhg-mono); color: var(--fhg-grafite); }
.woocommerce-cart table.shop_table.cart td.product-price del .amount { color: var(--fhg-suave); }
.fhg-cart-unidade { margin-left: 2px; }
.woocommerce-cart table.shop_table.cart td.product-quantity { grid-area: qtd; justify-self: start; }
.woocommerce-cart table.shop_table.cart td.product-subtotal {
	grid-area: total; text-align: right; font-family: var(--fhg-mono); font-weight: 600; font-size: 16px; color: var(--fhg-grafite);
}
.woocommerce-cart table.shop_table.cart td.product-remove { grid-area: x; justify-self: end; }
.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
	display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
	color: var(--fhg-suave) !important; background: none; font-size: 0; transition: background 0.2s, color 0.2s;
}
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover,
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:focus-visible { background: rgba(180, 64, 47, 0.1); color: #B4402F !important; }

/* Quantidade com − e + (os botões entram por JavaScript, como na página do produto). */
.woocommerce-cart .quantity {
	display: inline-flex; align-items: center; height: 42px; border: 1px solid var(--fhg-linha); border-radius: 999px; overflow: hidden; background: #fff;
}
.woocommerce-cart .quantity .fhg-passo {
	width: 38px; height: 100%; border: 0; background: none; color: var(--fhg-grafite); font-size: 18px; line-height: 1; cursor: pointer; padding: 0;
}
.woocommerce-cart .quantity .fhg-passo:hover { background: var(--fhg-areia); color: var(--fhg-verde); }
.woocommerce-cart .quantity input.qty {
	width: 44px; height: 100%; border: 0; padding: 0; text-align: center; font-family: var(--fhg-mono); font-size: 15px; color: var(--fhg-grafite);
	background: none; -moz-appearance: textfield; appearance: textfield; box-shadow: none;
}
.woocommerce-cart .quantity input.qty::-webkit-inner-spin-button, .woocommerce-cart .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-cart .quantity input.qty:focus { outline: none; }
.woocommerce-cart .quantity:focus-within { border-color: var(--fhg-verde); box-shadow: 0 0 0 3px rgba(96, 111, 54, 0.15); }

/* Cupom e atualização. O «Atualizar» some: a tabela se atualiza sozinha. */
.woocommerce-cart table.shop_table.cart td.actions { display: flow-root; padding: 20px 0 0; }
.woocommerce-cart td.actions > button[name='update_cart'] { display: none !important; }
.woocommerce-cart .coupon { float: none !important; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.woocommerce-cart .coupon label {
	position: static !important; width: auto !important; height: auto !important; margin: 0 4px 0 0 !important; clip: auto !important; clip-path: none !important; overflow: visible !important;
	font-size: 14px; font-weight: 600; color: var(--fhg-grafite);
}
.woocommerce-cart .coupon #coupon_code {
	flex: 0 1 240px; min-width: 0; height: 42px; padding: 0 14px; border: 1px solid var(--fhg-linha); border-radius: 10px; font-size: 14px; background: var(--fhg-off);
}
.woocommerce-cart .coupon #coupon_code:focus { outline: none; border-color: var(--fhg-verde); background: #fff; box-shadow: 0 0 0 3px rgba(96, 111, 54, 0.15); }
.woocommerce-cart .coupon .button {
	height: 42px; padding: 0 18px; background: none; color: var(--fhg-verde); border: 1px solid var(--fhg-verde); border-radius: 10px; font-size: 14px;
}
.woocommerce-cart .coupon .button:hover { background: var(--fhg-verde); color: #fff; }
.woocommerce-cart .coupon .coupon-error-notice { flex-basis: 100%; }

/* ---------- Resumo ---------- */
.woocommerce-cart .cart_totals { float: none !important; width: 100% !important; border: 1px solid var(--fhg-linha); border-radius: 16px; padding: 22px 24px 24px; background: #fff; }
.woocommerce-cart .cart_totals > h2 {
	margin: 0 0 16px; font-family: var(--fhg-mono) !important; font-size: 11px !important; font-weight: 500 !important;
	text-transform: uppercase; letter-spacing: 1.2px; color: var(--fhg-verde);
}
.woocommerce-cart .cart_totals table.shop_table,
.woocommerce-cart .cart_totals table.shop_table tbody,
.woocommerce-cart .cart_totals table.shop_table tr,
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td { display: block; border: 0; background: none; padding: 0; width: auto; }
.woocommerce-cart .cart_totals table.shop_table { border: 0; margin: 0; overflow: visible; }
.woocommerce-cart .cart_totals table.shop_table td::before { content: none !important; }
.woocommerce-cart .cart_totals table.shop_table tr {
	display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--fhg-linha);
}
.woocommerce-cart .cart_totals table.shop_table th { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 14.5px; color: var(--fhg-suave); text-transform: none; }
.woocommerce-cart .cart_totals table.shop_table td { font-family: var(--fhg-mono); font-size: 15px; color: var(--fhg-grafite); text-align: right; }
.woocommerce-cart .cart_totals table.shop_table tr.fee td, .woocommerce-cart .cart_totals table.shop_table tr.cart-discount td { color: var(--fhg-verde); }
.woocommerce-cart .cart_totals table.shop_table tr.order-total { padding: 16px 0 4px; border-bottom: 0; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total th { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 17px; color: var(--fhg-grafite); }
.woocommerce-cart .cart_totals table.shop_table tr.order-total td { font-size: 24px; font-weight: 600; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total td .tax_label, .woocommerce-cart .cart_totals table.shop_table tr.order-total td small { font-size: 12px; font-weight: 400; color: var(--fhg-suave); }
/* Frete (se um dia calcular aqui): as opções em lista, uma por linha. */
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals { display: block; }
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals th { margin-bottom: 8px; }
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals td { text-align: left; font-family: 'Inter', sans-serif; }
.woocommerce-cart .cart_totals #shipping_method { list-style: none; margin: 0; padding: 0; }
.woocommerce-cart .cart_totals #shipping_method li { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; padding: 0; font-size: 14px; }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination { font-size: 13px; color: var(--fhg-suave); margin: 6px 0 0; }
.woocommerce-cart .cart_totals .shipping-calculator-button { font-size: 13px; color: var(--fhg-verde); }
.woocommerce-cart .cart_totals .shipping-calculator-form .form-row { margin: 8px 0; }
.woocommerce-cart .cart_totals .shipping-calculator-form input, .woocommerce-cart .cart_totals .shipping-calculator-form select { width: 100%; }
/* A barra do frete grátis, em cima do resumo. */
.fhg-cart-frete {
	display: flex; align-items: flex-start; gap: 12px; margin: 0 0 18px; padding: 14px 16px; border-radius: 12px; background: var(--fhg-areia); color: var(--fhg-verde);
}
.fhg-cart-frete > svg { flex: 0 0 auto; margin-top: 1px; }
.fhg-cart-frete > div { flex: 1 1 auto; min-width: 0; }
.fhg-cart-frete p { margin: 0 0 9px; font-size: 13.5px; line-height: 1.4; color: var(--fhg-grafite); }
.fhg-cart-frete strong { font-family: var(--fhg-mono); font-weight: 600; }
.fhg-cart-barra-frete { display: block; height: 6px; border-radius: 999px; background: rgba(60, 60, 59, 0.12); overflow: hidden; }
.fhg-cart-barra-frete i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--fhg-verde), var(--fhg-limao)); transition: width 0.4s ease; }
.fhg-cart-frete--ok { background: rgba(192, 204, 80, 0.22); }
.fhg-cart-frete--ok p { color: var(--fhg-verde); font-weight: 600; }
/* Botão, parcelas, voltar, garantias. */
.woocommerce-cart .wc-proceed-to-checkout { padding: 18px 0 0 !important; margin: 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block; width: 100%; margin: 0 !important; padding: 17px 24px !important; border-radius: 10px; text-align: center;
	font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 16px !important; background: var(--fhg-verde); color: #fff;
	transition: background 0.2s, transform 0.2s;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--fhg-profundo); transform: translateY(-1px); }
.fhg-cart-parcelas { margin: 12px 0 0; text-align: center; font-size: 13px; color: var(--fhg-suave); }
.fhg-cart-voltar { display: block; margin: 12px 0 0; text-align: center; font-size: 14px; font-weight: 600; color: var(--fhg-verde); text-decoration: none; }
.fhg-cart-voltar:hover { text-decoration: underline; }
.fhg-cart-garantias { list-style: none; margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid var(--fhg-linha); display: grid; gap: 10px; }
.fhg-cart-garantias li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--fhg-suave); }
.fhg-cart-garantias svg { flex: 0 0 auto; color: var(--fhg-verde); }

/* ---------- Sugestões (dentro do formulário) ---------- */
.fhg-cart-sugestoes { margin: 30px 0 0; padding: 26px 0 0; border-top: 1px solid var(--fhg-linha); }
.fhg-cart-sugestoes__topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin: 0 0 18px; }
.fhg-cart-sugestoes h2 { margin: 0 0 4px; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 22px; letter-spacing: -0.4px; color: var(--fhg-grafite); }
.fhg-cart-sugestoes__topo p { margin: 0; font-size: 14px; color: var(--fhg-suave); }
.fhg-cart-bonus {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; padding: 9px 14px; border-radius: 999px;
	background: rgba(192, 204, 80, 0.22); color: var(--fhg-profundo) !important; font-size: 13px !important; font-weight: 600;
}
.fhg-cart-bonus svg { flex: 0 0 auto; color: var(--fhg-verde); }
.woocommerce-cart .fhg-cart-sugestoes ul.products { gap: 16px; }
.woocommerce-cart .fhg-cart-sugestoes ul.products li.product .woocommerce-loop-product__title { font-size: 15px; }

/* ---------- Carrinho vazio ---------- */
.fhg-cart-vazio {
	max-width: 560px; margin: 0 auto; padding: 40px 24px; text-align: center; border: 1px solid var(--fhg-linha); border-radius: 16px; background: #fff;
}
.fhg-cart-vazio__icone {
	display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--fhg-areia); color: var(--fhg-verde); margin: 0 0 16px;
}
.fhg-cart-vazio h2 { margin: 0 0 8px; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 24px; letter-spacing: -0.5px; color: var(--fhg-grafite); }
.fhg-cart-vazio p { margin: 0 0 20px; font-size: 15px; line-height: 1.6; color: var(--fhg-suave); }
.fhg-cart-vazio__botao {
	display: inline-block; padding: 14px 28px; border-radius: 10px; background: var(--fhg-verde); color: #fff !important; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 15px; text-decoration: none;
}
.fhg-cart-vazio__botao:hover { background: var(--fhg-profundo); }
.woocommerce-cart .return-to-shop { display: none; }
.woocommerce-cart .fhg-cart-populares { margin: 48px 0 0; }
.fhg-cart-populares h2 { margin: 0 0 18px; text-align: center; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 24px; letter-spacing: -0.5px; color: var(--fhg-grafite); }

/* ---------- Barra fixa do celular: total e botão sempre à mão ---------- */
.fhg-cart-barra {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: none; align-items: center; justify-content: space-between; gap: 14px;
	padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, 0.97); border-top: 1px solid var(--fhg-linha);
	backdrop-filter: blur(8px); transform: translateY(110%); transition: transform 0.3s ease;
}
.fhg-cart-barra.is-visivel { transform: translateY(0); }
.fhg-cart-barra p { margin: 0; }
.fhg-cart-barra__rotulo { font-size: 12px; color: var(--fhg-suave); }
.fhg-cart-barra__total { font-family: var(--fhg-mono); font-weight: 600; font-size: 18px; color: var(--fhg-grafite); }
.fhg-cart-barra a {
	flex: 0 0 auto; padding: 13px 20px; border-radius: 10px; background: var(--fhg-verde); color: #fff; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 15px; text-decoration: none;
}

/* ---------- Larguras ---------- */
@media (max-width: 1100px) {
	.fhg-cart-grade { grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; }
	.woocommerce-cart table.shop_table.cart tr.cart_item { grid-template-columns: 84px minmax(0, 1fr) 124px 100px 34px; column-gap: 14px; }
	.woocommerce-cart table.shop_table.cart td.product-thumbnail img { width: 84px; height: 84px; }
}
@media (max-width: 900px) {
	.fhg-cart-grade { grid-template-columns: 1fr; gap: 24px; }
	.woocommerce-cart .cart-collaterals { position: static; }
	.woocommerce-cart .fhg-cart-topo { margin-bottom: 24px; padding-top: 40px; }
	.fhg-cart-etapas { margin-top: 24px; padding: 16px 0; }
	.fhg-cart-etapa { padding: 0 8px; gap: 6px; }
	.fhg-cart-etapa + .fhg-cart-etapa::before { left: -14px; width: 28px; }
	.fhg-cart-etapa__n { width: 26px; height: 26px; font-size: 12px; }
	.fhg-cart-etapa__nome { font-size: 13px; }
	.fhg-cart-barra { display: flex; }
	.fhg-com-barra .fhg-wa { bottom: 92px; }
}
@media (max-width: 640px) {
	.woocommerce-cart .fhg-cart-topo { margin: 0 -20px 20px; padding: 34px 16px 0; }
	.fhg-cart-apoio { font-size: 14px; }
	.fhg-cart-etapa:not(.is-ativa) .fhg-cart-etapa__nome { display: none; }
	.fhg-cart-etapa { padding: 0 6px; }
	.fhg-cart-etapa + .fhg-cart-etapa::before { left: -12px; width: 24px; }
	.woocommerce-cart .woocommerce-cart-form { padding: 4px 16px 18px; border-radius: 14px; }
	.woocommerce-cart table.shop_table.cart tr.cart_item {
		grid-template-columns: 76px minmax(0, 1fr) 34px;
		grid-template-areas: 'foto nome x' 'foto preco x' 'qtd total total';
		column-gap: 12px; row-gap: 6px; padding: 16px 0;
	}
	/* O CSS «responsivo» do WooCommerce esconde a foto e alinha tudo à direita, com !important. */
	.woocommerce-cart table.shop_table.cart tr td { text-align: left !important; }
	.woocommerce-cart table.shop_table.cart tr td.product-subtotal { text-align: right !important; }
	.woocommerce-cart table.shop_table.cart td.product-thumbnail { display: block !important; align-self: start; }
	.woocommerce-cart table.shop_table.cart td.product-thumbnail img { width: 76px; height: 76px; }
	.woocommerce-cart table.shop_table.cart td.product-name > a { font-size: 15px; }
	.woocommerce-cart table.shop_table.cart td.product-remove { align-self: start; }
	.woocommerce-cart table.shop_table.cart td.product-quantity { margin-top: 6px; }
	.woocommerce-cart table.shop_table.cart td.product-subtotal { margin-top: 6px; font-size: 17px; }
	.woocommerce-cart .quantity { height: 40px; }
	.woocommerce-cart .coupon { gap: 8px; }
	.woocommerce-cart .coupon label { flex-basis: 100%; }
	.woocommerce-cart .coupon #coupon_code { flex: 1 1 140px; }
	.woocommerce-cart .cart_totals { padding: 18px 18px 20px; }
	/* Sugestões: uma fila que corre de lado, como numa loja de celular. */
	.woocommerce-cart .fhg-cart-sugestoes ul.products[class*='columns-'] {
		display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 2px 16px 10px; margin: 0 -16px;
		scrollbar-width: none;
	}
	.woocommerce-cart .fhg-cart-sugestoes ul.products::-webkit-scrollbar { display: none; }
	.woocommerce-cart .fhg-cart-sugestoes ul.products li.product { flex: 0 0 68%; scroll-snap-align: start; }
	.woocommerce-cart .fhg-cart-populares ul.products[class*='columns-'] { grid-template-columns: 1fr 1fr; gap: 12px; }
}
