/*
 * Vacananet — estilos do tema filho (Hello Elementor + WooCommerce + Elementor Pro).
 *
 * Layout desenhado no Figma em 1920px; aqui aplicado com escala ~0,7 e container de 1320px.
 * Mobile desenhado em 390px (breakpoint: 767px).
 *
 * Índice
 *  1. Variáveis
 *  2. Base (corpo, tipografia, links, foco, utilitários)
 *  3. Componentes (botões, campos, painéis, títulos, ícones, quantidade)
 *  4. Cabeçalho
 *  5. Rodapé
 *  6. Carrinho lateral
 *  7. Home (Elementor): slider, banners, vitrine, Instagram
 *  8. Cards de produto (vitrine, loja, busca)
 *  9. Loja (filtros + grade)
 * 10. Página do produto
 * 11. Carrinho
 * 12. Finalizar compra
 * 13. Minha conta (menu, pedidos, dados, endereços, cartões)
 * 14. Login e cadastro
 * 15. Sobre nós e Contato (Elementor)
 * 16. Avisos do WooCommerce, WhatsApp flutuante
 * 17. Mobile (≤ 767px)
 * 18. Movimento reduzido
 */

/* =========================================================================
 * 1. Variáveis
 * ====================================================================== */
:root {
	--vaca-brown: #9b4228;
	--vaca-brown-dark: #7f3520;
	--vaca-blue: #5fc9f3;
	--vaca-pink: #f5a6bc;
	--vaca-pink-dark: #ee8aa6;
	--vaca-green: #7eeda4;
	--vaca-bg: #f7f7f7;
	--vaca-white: #fff;
	--vaca-text: #707070;
	--vaca-text-strong: #5c5c5c;
	--vaca-input: #eaeaea;
	--vaca-card: #f4f4f4;
	--vaca-panel-gray: #ebebeb;
	--vaca-line: #d0d0d0;
	--vaca-outline: #a8a8a8;
	--vaca-swatch: #b4b4b4;

	/* Cor de destaque: marrom no desktop, rosa no celular (como no layout). */
	--vaca-accent: var(--vaca-brown);
	--vaca-accent-hover: var(--vaca-brown-dark);
	--vaca-accent-text: #fff;

	--vaca-font-title: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--vaca-font-body: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;

	--vaca-container: 1320px;
	--vaca-gutter: 24px;
	--vaca-radius: 12px;
	--vaca-radius-sm: 8px;
	--vaca-pill: 999px;
	--vaca-shadow: 0 6px 24px rgba(0, 0, 0, .08);
	--vaca-focus: 0 0 0 3px rgba(95, 201, 243, .55);
	--vaca-ease: .25s ease;

	--vaca-fs-xs: 12px;
	--vaca-fs-sm: 14px;
	--vaca-fs-md: 16px;
	--vaca-fs-lg: 17px;
	--vaca-fs-xl: 20px;
	--vaca-fs-h2: 22px;
	--vaca-fs-h1: 28px;
}

/* =========================================================================
 * 2. Base
 * ====================================================================== */
html {
	-webkit-text-size-adjust: 100%;
}

body {
	background-color: var(--vaca-bg);
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.vaca-sidecart-open {
	overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-weight: 700;
	line-height: 1.25;
}

a {
	color: var(--vaca-brown);
	transition: color var(--vaca-ease), background-color var(--vaca-ease), border-color var(--vaca-ease);
}

a:hover,
a:active {
	color: var(--vaca-brown-dark);
}

img {
	max-width: 100%;
	height: auto;
}

::selection {
	background: var(--vaca-pink);
	color: #fff;
}

/* Foco visível em tudo que é clicável. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--vaca-blue);
	outline-offset: 2px;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus:not(:focus-visible) {
	outline: none;
}

.vaca-visually-hidden,
.screen-reader-text {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
	word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
	background: #fff;
	border-radius: var(--vaca-radius-sm);
	box-shadow: var(--vaca-shadow);
	clip: auto !important;
	clip-path: none !important;
	color: var(--vaca-brown);
	height: auto !important;
	left: 8px;
	padding: 12px 20px !important;
	top: 8px;
	width: auto !important;
	z-index: 100000;
}

[hidden] {
	display: none !important;
}

.vaca-container {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: calc(var(--vaca-container) + 2 * var(--vaca-gutter));
	padding-inline: var(--vaca-gutter);
	width: 100%;
}

/* Área de conteúdo do Hello Elementor nas páginas que não são do Elementor. */
body:not([class*=elementor-page-]) .site-main {
	box-sizing: border-box;
	max-width: calc(var(--vaca-container) + 2 * var(--vaca-gutter));
	padding-block: 40px 24px;
	padding-inline: var(--vaca-gutter);
	width: 100%;
}

/* Páginas montadas no Elementor, carrinho e conta não mostram o título padrão. */
.vaca-elementor-page .page-header,
.woocommerce-cart .page-header,
.woocommerce-account .page-header {
	display: none;
}

.page-header .entry-title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	margin: 0 0 24px;
}

.vaca-page {
	padding-block: 40px 24px;
}

.vaca-muted {
	color: #9a9a9a;
	font-weight: 400;
}

.vaca-hint {
	color: #8c8c8c;
	font-size: var(--vaca-fs-sm);
	margin: 0 0 16px;
	text-align: center;
}

.vaca-link,
a.vaca-link {
	background: none;
	border: 0;
	color: var(--vaca-brown);
	font-size: var(--vaca-fs-sm);
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vaca-link:hover {
	color: var(--vaca-brown-dark);
}

/* =========================================================================
 * 3. Componentes
 * ====================================================================== */

/* Títulos --------------------------------------------------------------- */
.vaca-title,
.elementor .vaca-title .elementor-heading-title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 24px;
}

.elementor .vaca-title {
	margin-bottom: 0;
}

/* Breadcrumb ------------------------------------------------------------- */
.vaca-breadcrumb,
.woocommerce .vaca-breadcrumb.woocommerce-breadcrumb {
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-sm);
	margin: 0 0 6px;
	padding: 0;
}

.vaca-breadcrumb a,
.woocommerce .vaca-breadcrumb.woocommerce-breadcrumb a {
	color: var(--vaca-text);
	text-decoration: none;
}

.vaca-breadcrumb a:hover {
	color: var(--vaca-brown);
	text-decoration: underline;
}

.vaca-breadcrumb__sep {
	margin-inline: 6px;
}

/* Painéis ---------------------------------------------------------------- */
.vaca-panel {
	background: var(--vaca-white);
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	padding: 24px;
}

.vaca-panel--white {
	background: var(--vaca-white);
}

/* Botões ----------------------------------------------------------------- */
:is(body, .woocommerce) :is(a, button, input).vaca-btn {
	align-items: center;
	background: var(--vaca-card);
	border: 1px solid transparent;
	border-radius: var(--vaca-pill);
	box-shadow: none;
	color: var(--vaca-text);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 500;
	gap: 10px;
	justify-content: center;
	line-height: 1.2;
	min-height: 44px;
	padding: 10px 24px;
	text-align: center;
	text-decoration: none;
	text-shadow: none;
	transition: background-color var(--vaca-ease), color var(--vaca-ease), border-color var(--vaca-ease), transform var(--vaca-ease);
	white-space: nowrap;
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn:hover {
	background: #e6e6e6;
	color: var(--vaca-text-strong);
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--primary {
	background: var(--vaca-accent);
	border-color: var(--vaca-accent);
	color: var(--vaca-accent-text);
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--primary:hover,
:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--primary:focus-visible {
	background: var(--vaca-accent-hover);
	border-color: var(--vaca-accent-hover);
	color: var(--vaca-accent-text);
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--ghost {
	background: transparent;
	border-color: var(--vaca-outline);
	color: var(--vaca-text);
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--ghost:hover {
	background: #fff;
	border-color: var(--vaca-brown);
	color: var(--vaca-brown);
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--soft {
	background: var(--vaca-card);
	color: var(--vaca-text);
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--soft:hover {
	background: var(--vaca-input);
}

:is(body, .woocommerce) :is(a, button, input).vaca-btn.vaca-btn--block {
	display: flex;
	width: 100%;
}

.vaca-btn .vaca-icon {
	height: 20px;
	width: 22px;
}

/* Botões genéricos do WooCommerce com a identidade da loja. */
.woocommerce :is(a, button, input).button,
.woocommerce #respond input#submit {
	background: var(--vaca-card);
	border: 1px solid transparent;
	border-radius: var(--vaca-pill);
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 500;
	line-height: 1.2;
	padding: 12px 24px;
}

.woocommerce :is(a, button, input).button:hover {
	background: var(--vaca-input);
	color: var(--vaca-text-strong);
}

.woocommerce :is(a, button, input).button.alt,
.woocommerce #place_order,
.woocommerce :is(a, button).button.checkout-button {
	background: var(--vaca-accent);
	border-color: var(--vaca-accent);
	color: var(--vaca-accent-text);
}

.woocommerce :is(a, button, input).button.alt:hover,
.woocommerce #place_order:hover {
	background: var(--vaca-accent-hover);
	border-color: var(--vaca-accent-hover);
	color: var(--vaca-accent-text);
}

.woocommerce :is(a, button, input).button:disabled,
.woocommerce :is(a, button, input).button.disabled,
.woocommerce :is(a, button, input).button:disabled[disabled] {
	opacity: .55;
	padding: 12px 24px;
}

/* Campos ----------------------------------------------------------------- */
.vaca-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 18px;
}

.vaca-field label,
.vaca-form label:not(.vaca-check) {
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 700;
	line-height: 1.3;
	padding-inline: 14px;
}

.vaca-field .required {
	color: var(--vaca-brown);
	text-decoration: none;
}

.vaca-field :is(input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number], input[type=search], input[type=url], select, textarea),
.vaca-form :is(input.input-text, select, textarea),
.woocommerce form .form-row :is(input.input-text, textarea, select) {
	background: transparent;
	border: 1px solid var(--vaca-outline);
	border-radius: var(--vaca-pill);
	box-shadow: none;
	box-sizing: border-box;
	color: var(--vaca-text-strong);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	line-height: 1.3;
	min-height: 46px;
	padding: 11px 20px;
	transition: border-color var(--vaca-ease), box-shadow var(--vaca-ease);
	width: 100%;
}

.vaca-field textarea,
.vaca-form textarea,
.woocommerce form .form-row textarea {
	border-radius: var(--vaca-radius);
	min-height: 140px;
	resize: vertical;
}

.vaca-field :is(input, select, textarea):focus,
.vaca-form :is(input.input-text, select, textarea):focus,
.woocommerce form .form-row :is(input.input-text, textarea, select):focus {
	border-color: var(--vaca-blue);
	box-shadow: var(--vaca-focus);
	outline: none;
}

.vaca-field ::placeholder,
.vaca-form ::placeholder,
.vaca-search ::placeholder,
.vaca-cep ::placeholder {
	color: #8c8c8c;
	opacity: 1;
}

.vaca-form__submit {
	display: flex;
	justify-content: center;
	margin: 28px 0 0;
}

/* Checkbox "Lembrar de mim". */
.vaca-check {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	font-size: var(--vaca-fs-sm);
	gap: 8px;
	line-height: 1.2;
}

.vaca-check input[type=checkbox] {
	accent-color: var(--vaca-brown);
	height: 16px;
	margin: 0;
	width: 16px;
}

/* Ícones ----------------------------------------------------------------- */
.vaca-icon {
	align-items: center;
	display: inline-flex;
	flex-shrink: 0;
	height: 1.25em;
	justify-content: center;
	line-height: 0;
	width: 1.25em;
}

.vaca-icon svg {
	display: block;
	height: 100%;
	width: 100%;
}

/* Quantidade (−  1  +) ---------------------------------------------------- */
.vaca-qty {
	align-items: center;
	display: inline-flex;
	gap: 10px;
}

.vaca-qty__btn,
button.vaca-qty__btn {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--vaca-text);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--vaca-font-body);
	font-size: 22px;
	font-weight: 400;
	height: 30px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	width: 30px;
}

button.vaca-qty__btn:hover,
button.vaca-qty__btn:focus-visible {
	background: rgba(0, 0, 0, .06);
	color: var(--vaca-brown);
}

button.vaca-qty__btn:disabled {
	cursor: not-allowed;
	opacity: .35;
}

.vaca-qty__value {
	align-items: center;
	border: 1px solid var(--vaca-outline);
	border-radius: 10px;
	color: var(--vaca-text-strong);
	display: inline-flex;
	font-size: var(--vaca-fs-sm);
	font-weight: 600;
	height: 32px;
	justify-content: center;
	min-width: 38px;
}

/* Campo de quantidade do WooCommerce com botões (produto e carrinho). */
.woocommerce .quantity.vaca-qty-ready,
.vaca-qty-ready {
	align-items: center;
	border: 1px solid var(--vaca-outline);
	border-radius: var(--vaca-pill);
	box-sizing: border-box;
	display: inline-flex;
	gap: 0;
	height: 46px;
	padding: 0 6px;
}

.woocommerce .quantity.vaca-qty-ready .qty,
.vaca-qty-ready input.qty {
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--vaca-text-strong);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-xl);
	font-weight: 600;
	height: 100%;
	min-height: 0;
	padding: 0;
	text-align: center;
	width: 2.4em;
}

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

.vaca-qty-ready input.qty:focus {
	box-shadow: none;
	outline: none;
}

.vaca-qty-ready:focus-within {
	border-color: var(--vaca-blue);
	box-shadow: var(--vaca-focus);
}

.vaca-step,
button.vaca-step {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--vaca-text);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--vaca-font-body);
	font-size: 22px;
	font-weight: 400;
	height: 32px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	width: 32px;
}

button.vaca-step:hover,
button.vaca-step:focus-visible {
	background: rgba(0, 0, 0, .06);
	color: var(--vaca-brown);
}

/* Paginação genérica. */
.vaca-pagination {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin-top: 24px;
}

.vaca-empty {
	align-items: center;
	background: #fff;
	border-radius: var(--vaca-radius);
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 40px 24px;
	text-align: center;
}

.vaca-empty p {
	margin: 0;
}

/* =========================================================================
 * 4. Cabeçalho
 * ====================================================================== */
.vaca-header {
	background: var(--vaca-bg);
	border-bottom: 1px solid #e2e2e2;
	position: relative;
	z-index: 50;
}

.vaca-header__top {
	align-items: center;
	display: grid;
	gap: 24px;
	grid-template-columns: auto minmax(200px, 1fr) auto auto;
	min-height: 112px;
	padding-block: 12px;
}

/* Marca. */
.vaca-brand,
.vaca-brand:hover {
	align-items: center;
	color: #111;
	display: inline-flex;
	gap: 14px;
	text-decoration: none;
}

.vaca-brand__logo {
	display: block;
	flex-shrink: 0;
	height: 84px;
	object-fit: contain;
	width: 84px;
}

.vaca-brand__text {
	color: #111;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-lg);
	font-weight: 700;
	letter-spacing: .01em;
	white-space: nowrap;
}

/* Busca. */
.vaca-search {
	align-items: center;
	background: var(--vaca-input);
	border-radius: var(--vaca-pill);
	display: flex;
	margin: 0 auto 0 0;
	max-width: 563px;
	position: relative;
	width: 100%;
}

.vaca-search input[type=search] {
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: var(--vaca-pill);
	box-shadow: none;
	color: var(--vaca-text-strong);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	height: 46px;
	padding: 0 56px 0 24px;
	width: 100%;
}

.vaca-search input[type=search]::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

.vaca-search input[type=search]:focus {
	box-shadow: var(--vaca-focus);
	outline: none;
}

.vaca-search button,
.vaca-search button:hover,
.vaca-search button:focus {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--vaca-text);
	cursor: pointer;
	display: inline-flex;
	height: 40px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 6px;
	top: 3px;
	width: 40px;
}

.vaca-search button:hover {
	color: var(--vaca-brown);
}

.vaca-search .vaca-icon {
	height: 20px;
	width: 20px;
}

/* Entrar / Minha conta. */
.vaca-header__account,
.vaca-header__account:hover {
	align-items: center;
	border-radius: var(--vaca-pill);
	color: var(--vaca-text);
	display: inline-flex;
	font-size: var(--vaca-fs-md);
	gap: 12px;
	justify-content: center;
	min-height: 46px;
	min-width: 140px;
	padding: 0 18px;
	text-decoration: none;
}

.vaca-header__account:hover {
	background: var(--vaca-input);
	color: var(--vaca-text-strong);
}

.vaca-header__account .vaca-icon {
	height: 22px;
	width: 24px;
}

/* Botão do carrinho. */
.vaca-cart-btn,
.vaca-cart-btn:hover {
	align-items: center;
	background: var(--vaca-brown);
	border-radius: var(--vaca-pill);
	color: #fff;
	display: inline-flex;
	font-size: var(--vaca-fs-md);
	font-weight: 500;
	gap: 14px;
	justify-content: center;
	min-height: 46px;
	min-width: 167px;
	padding: 0 24px;
	position: relative;
	text-decoration: none;
}

.vaca-cart-btn:hover,
.vaca-cart-btn:focus-visible {
	background: var(--vaca-brown-dark);
	color: #fff;
}

.vaca-cart-btn .vaca-icon {
	height: 21px;
	width: 25px;
}

.vaca-cart-count {
	align-items: center;
	background: var(--vaca-pink);
	border: 2px solid var(--vaca-bg);
	border-radius: var(--vaca-pill);
	color: #fff;
	display: inline-flex;
	font-size: 11px;
	font-weight: 700;
	height: 22px;
	justify-content: center;
	line-height: 1;
	min-width: 22px;
	padding: 0 5px;
	position: absolute;
	right: -4px;
	top: -6px;
	box-sizing: border-box;
}

.vaca-cart-count.is-empty {
	display: none;
}

/* Menu. */
.vaca-nav {
	border-top: 1px solid #e2e2e2;
}

.vaca-nav__list {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 56px;
	justify-content: center;
	list-style: none;
	margin: 0;
	min-height: 60px;
	padding: 0;
}

.vaca-nav__list li {
	margin: 0;
}

.vaca-nav__list a {
	color: var(--vaca-text);
	display: inline-block;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-lg);
	font-weight: 400;
	padding: 6px 2px;
	position: relative;
	text-decoration: none;
}

.vaca-nav__list a::after {
	background: var(--vaca-brown);
	border-radius: 2px;
	bottom: 0;
	content: "";
	height: 2px;
	left: 50%;
	position: absolute;
	transition: left var(--vaca-ease), right var(--vaca-ease);
	right: 50%;
}

.vaca-nav__list a:hover {
	color: var(--vaca-brown);
}

.vaca-nav__list a:hover::after,
.vaca-nav__list .current-menu-item > a::after,
.vaca-nav__list .current_page_item > a::after,
.vaca-nav__list .current-menu-ancestor > a::after {
	left: 0;
	right: 0;
}

.vaca-nav__list .current-menu-item > a,
.vaca-nav__list .current_page_item > a {
	color: var(--vaca-text-strong);
	font-weight: 600;
}

/* =========================================================================
 * 5. Rodapé (código e modelo do Elementor usam as mesmas classes)
 * ====================================================================== */
.vaca-footer {
	--wave-top: 58px;
	--wave-h: 46px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath fill='%235fc9f3' d='M0 22C240 62 480 2 720 2s480 60 720 20v38H0z'/%3E%3C/svg%3E") 0 var(--wave-top) / 100% var(--wave-h) no-repeat,
		linear-gradient(var(--vaca-blue), var(--vaca-blue)) 0 calc(var(--wave-top) + var(--wave-h) - 1px) / 100% 100% no-repeat;
	box-sizing: border-box;
	color: #fff;
	font-family: var(--vaca-font-body);
	margin-top: 64px;
	padding: 0 0 28px;
	position: relative;
}

.vaca-footer a {
	color: #fff;
}

.vaca-footer a:hover {
	color: #fff;
	opacity: .85;
}

.vaca-footer__logo {
	display: flex;
	justify-content: center;
	margin: 0 auto 4px;
	position: relative;
	z-index: 1;
}

.vaca-footer__logo img {
	display: block;
	height: auto;
	width: 172px;
}

.vaca-footer .vaca-footer__cols {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 0;
	padding-bottom: 32px;
}

.vaca-footer .vaca-footer__col {
	box-sizing: border-box;
	flex: 1 1 0;
	min-width: 0;
	padding: 0 32px;
	width: auto;
	--width: auto;
}

.vaca-footer .vaca-footer__col:first-child {
	padding-left: 0;
}

.vaca-footer .vaca-footer__col:last-child {
	padding-right: 0;
}

.vaca-footer .vaca-footer__col + .vaca-footer__col {
	border-left: 1px solid rgba(255, 255, 255, .75);
}

.vaca-footer .vaca-footer__col--contact {
	flex-grow: 1.25;
	padding-left: 48px;
}

.vaca-footer__title,
.elementor .vaca-footer__title .elementor-heading-title {
	color: #fff;
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 18px;
	white-space: nowrap;
}

.vaca-footer__links,
.vaca-footer__links .elementor-icon-list-items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.vaca-footer__links li,
.vaca-footer__links .elementor-icon-list-item {
	margin: 0 0 10px;
	padding: 0;
}

.vaca-footer__links a,
.elementor .vaca-footer__links .elementor-icon-list-text {
	color: #fff;
	font-size: var(--vaca-fs-sm);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vaca-footer__links .elementor-icon-list-icon {
	display: none;
}

.vaca-footer__text,
.vaca-footer__text p,
.elementor .elementor-widget.vaca-footer__text,
.elementor .elementor-widget.vaca-footer__text p {
	color: #fff;
	font-size: var(--vaca-fs-sm);
	line-height: 1.5;
	margin: 0;
}

.vaca-footer__contacts {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.vaca-footer__contact,
.vaca-footer__contact:hover {
	align-items: flex-start;
	color: #fff;
	display: flex;
	gap: 18px;
	text-decoration: none;
}

.vaca-footer__contact .vaca-icon {
	--vaca-wa-glyph: var(--vaca-blue);
	color: #fff;
	height: 28px;
	width: 28px;
}

.vaca-footer__contact span:last-child {
	display: flex;
	flex-direction: column;
	font-size: var(--vaca-fs-lg);
	line-height: 1.45;
	word-break: break-word;
}

.vaca-footer__contact strong {
	font-weight: 700;
}

.vaca-footer__social {
	border-top: 1px solid rgba(255, 255, 255, .75);
	display: flex;
	justify-content: center;
	padding-top: 24px;
}

.vaca-social {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	justify-content: center;
}

.vaca-social a {
	align-items: center;
	border-radius: 50%;
	color: inherit;
	display: inline-flex;
	justify-content: center;
	transition: transform var(--vaca-ease), opacity var(--vaca-ease);
}

.vaca-social a:hover {
	transform: translateY(-2px);
}

.vaca-footer .vaca-social .vaca-icon {
	--vaca-wa-glyph: var(--vaca-blue);
	color: #fff;
	height: 40px;
	width: 40px;
}

/* =========================================================================
 * 6. Carrinho lateral
 * ====================================================================== */
.vaca-sidecart-overlay {
	background: rgba(40, 40, 40, .28);
	inset: 0;
	opacity: 0;
	position: fixed;
	transition: opacity .3s ease;
	z-index: 9998;
}

body.vaca-sidecart-open .vaca-sidecart-overlay {
	opacity: 1;
}

.vaca-sidecart {
	background: var(--vaca-bg);
	box-shadow: -8px 0 32px rgba(0, 0, 0, .12);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100vh;
	height: 100dvh;
	max-width: 100%;
	position: fixed;
	right: 0;
	top: 0;
	transform: translateX(100%);
	transition: transform .3s ease, visibility 0s linear .3s;
	visibility: hidden;
	width: 400px;
	z-index: 9999;
}

body.vaca-sidecart-open .vaca-sidecart {
	transform: none;
	transition: transform .3s ease, visibility 0s;
	visibility: visible;
}

.vaca-sidecart:focus {
	outline: none;
}

.vaca-sidecart__head {
	align-items: center;
	display: flex;
	gap: 12px;
	min-height: 78px;
	padding: 0 24px 0 16px;
}

.vaca-sidecart__head h2 {
	color: var(--vaca-text);
	flex: 1;
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	margin: 0;
	padding-right: 44px;
	text-align: center;
}

.vaca-sidecart__back,
button.vaca-sidecart__back:hover,
button.vaca-sidecart__back:focus {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--vaca-text);
	cursor: pointer;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	padding: 0;
	width: 44px;
}

button.vaca-sidecart__back:hover {
	background: rgba(0, 0, 0, .06);
	color: var(--vaca-brown);
}

.vaca-sidecart__back .vaca-icon {
	height: 26px;
	width: 26px;
}

.vaca-sidecart__inner {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	transition: opacity .2s ease;
}

.vaca-sidecart__inner.is-loading {
	opacity: .55;
	pointer-events: none;
}

.vaca-sidecart__notice {
	align-items: center;
	background: #fff;
	display: flex;
	gap: 16px;
	padding: 16px 20px;
}

.vaca-sidecart__notice .vaca-icon {
	color: var(--vaca-brown);
	height: 30px;
	width: 40px;
}

.vaca-sidecart__notice p {
	color: var(--vaca-text);
	font-size: 13px;
	line-height: 1.5;
	margin: 0;
}

.vaca-sidecart__notice a {
	color: var(--vaca-brown);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.vaca-sidecart__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 20px;
}

.vaca-sidecart__items {
	display: flex;
	flex-direction: column;
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vaca-sidecart__item {
	align-items: center;
	display: flex;
	gap: 16px;
	margin: 0;
}

.vaca-sidecart__thumb {
	border-radius: 10px;
	display: block;
	flex: 0 0 90px;
	height: 72px;
	overflow: hidden;
}

.vaca-sidecart__thumb img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.vaca-sidecart__info {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.vaca-sidecart__row {
	align-items: baseline;
	display: flex;
	gap: 12px;
	justify-content: space-between;
}

.vaca-sidecart__name {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-sm);
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
}

.vaca-sidecart__name:hover {
	color: var(--vaca-brown);
}

.vaca-sidecart__price {
	color: var(--vaca-text);
	flex-shrink: 0;
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-sm);
	font-weight: 700;
	white-space: nowrap;
}

.vaca-sidecart__item .vaca-qty {
	margin-left: -6px;
}

.vaca-sidecart__empty {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	padding: 24px;
	text-align: center;
}

.vaca-sidecart__empty::before {
	background: var(--vaca-brown);
	content: "";
	height: 30px;
	margin-bottom: 12px;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 2.5h3.2l.9 2.5H22l-2.6 8.6c-.2.6-.7.9-1.3.9H8.4l-.6 1.6h12.3v2H5L7 13 4.4 4.5H1z'/%3E%3Ccircle cx='8.5' cy='20.5' r='1.8'/%3E%3Ccircle cx='18' cy='20.5' r='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 2.5h3.2l.9 2.5H22l-2.6 8.6c-.2.6-.7.9-1.3.9H8.4l-.6 1.6h12.3v2H5L7 13 4.4 4.5H1z'/%3E%3Ccircle cx='8.5' cy='20.5' r='1.8'/%3E%3Ccircle cx='18' cy='20.5' r='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 36px;
}

.vaca-sidecart__empty p {
	color: var(--vaca-text);
	font-size: 13px;
	margin: 0 0 6px;
	max-width: 240px;
}

.vaca-sidecart__empty .vaca-sidecart__empty-title {
	color: var(--vaca-brown);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-md);
	font-weight: 700;
	margin-bottom: 10px;
}

.vaca-sidecart__empty .vaca-link {
	margin-top: 8px;
}

.vaca-sidecart__footer {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px 20px 24px;
}

.vaca-sidecart__checkout,
.vaca-sidecart__checkout:hover {
	align-items: center;
	background: var(--vaca-accent);
	border: 1.5px solid var(--vaca-accent);
	border-radius: var(--vaca-pill);
	box-sizing: border-box;
	color: var(--vaca-accent-text);
	display: flex;
	font-size: var(--vaca-fs-md);
	justify-content: space-between;
	min-height: 48px;
	padding: 0 24px;
	text-decoration: none;
}

.vaca-sidecart__checkout span:first-child {
	font-weight: 700;
}

.vaca-sidecart__checkout:hover,
.vaca-sidecart__checkout:focus-visible {
	background: var(--vaca-accent-hover);
	border-color: var(--vaca-accent-hover);
	color: var(--vaca-accent-text);
}

.vaca-sidecart__checkout.is-disabled,
.vaca-sidecart__checkout.is-disabled:hover {
	background: transparent;
	border-color: var(--vaca-brown);
	color: var(--vaca-text);
	pointer-events: none;
}

.vaca-sidecart__checkout.is-disabled span:first-child {
	font-weight: 400;
}

.vaca-sidecart__cartlink {
	align-self: center;
	color: var(--vaca-text);
	font-size: 13px;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* =========================================================================
 * 7. Home (Elementor)
 * ====================================================================== */

/* Seções da home: containers do Elementor com 1320px. */
.elementor .vaca-section {
	--content-width: var(--vaca-container);
}

/* Slider de banners ------------------------------------------------------ */
.vaca-slider {
	position: relative;
}

.elementor .vaca-slider.is-ready,
.vaca-slider.is-ready:not(.e-con),
.elementor .vaca-slider.is-ready > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

.vaca-slider.is-ready:has(> .e-con-inner) {
	display: block;
}

.vaca-slider.is-ready .vaca-banner {
	grid-area: 1 / 1;
	opacity: 0;
	transition: opacity .6s ease, visibility 0s linear .6s;
	visibility: hidden;
}

.vaca-slider.is-ready .vaca-banner.is-active {
	opacity: 1;
	transition: opacity .6s ease, visibility 0s;
	visibility: visible;
}

.vaca-slider__dots {
	display: flex;
	gap: 10px;
	justify-content: center;
	margin: 14px 0 0;
}

.vaca-slider__dot,
button.vaca-slider__dot:hover,
button.vaca-slider__dot:focus {
	background: #c4c4c4;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	height: 10px;
	padding: 0;
	transition: background-color var(--vaca-ease), transform var(--vaca-ease);
	width: 10px;
}

button.vaca-slider__dot:hover {
	background: var(--vaca-pink-dark);
}

button.vaca-slider__dot.is-active {
	background: var(--vaca-pink);
	transform: scale(1.15);
}

/* Banner (imagem com curva + texto) ------------------------------------- */
.vaca-banner,
.elementor .vaca-banner {
	align-items: stretch;
	background-color: var(--vaca-blue);
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 0;
	min-height: 314px;
	overflow: hidden;
	padding: 0;
	position: relative;
	width: 100%;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
}

.vaca-banner--pink,
.elementor .vaca-banner--pink {
	background-color: var(--vaca-pink);
}

.vaca-banner__media,
.elementor .vaca-banner .vaca-banner__media {
	align-self: stretch;
	background-color: rgba(0, 0, 0, .08);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	clip-path: ellipse(87% 106% at 13% 36%);
	flex: 0 0 35%;
	min-height: 220px;
	width: 35%;
	--width: 35%;
}

.vaca-banner--pink .vaca-banner__media,
.elementor .vaca-banner--pink .vaca-banner__media {
	clip-path: ellipse(61% 106% at 61% 34%);
	flex-basis: 45%;
	order: 2;
	width: 45%;
	--width: 45%;
}

/* Imagens padrão (enviadas com o tema). Substitua pelo fundo do container no Elementor. */
.vaca-banner__media--vacas {
	background-image: url("../img/banner-vacas.jpg");
}

.vaca-banner__media--queijos {
	background-image: url("../img/banner-queijos.jpg");
}

.vaca-banner__content,
.elementor .vaca-banner .vaca-banner__content {
	box-sizing: border-box;
	color: #fff;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 18px;
	justify-content: center;
	min-width: 0;
	padding: 36px 64px 36px 7%;
	width: auto;
	--width: auto;
}

.vaca-banner--pink .vaca-banner__content,
.elementor .vaca-banner--pink .vaca-banner__content {
	padding: 36px 5% 36px 64px;
}

.vaca-banner__title,
.elementor .vaca-banner__title .elementor-heading-title {
	color: #fff;
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
}

.vaca-banner__text,
.vaca-banner__text p,
.elementor .elementor-widget.vaca-banner__text,
.elementor .elementor-widget.vaca-banner__text p {
	color: #fff;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-sm);
	line-height: 2.1;
	margin: 0;
}

.vaca-banner__text a {
	color: #fff;
	text-decoration: underline;
}

/* Vitrine "Queijos" na home --------------------------------------------- */
.vaca-showcase,
.elementor .vaca-showcase {
	background: #fff;
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	padding: 40px 48px 48px;
	--padding-top: 40px;
	--padding-right: 48px;
	--padding-bottom: 48px;
	--padding-left: 48px;
}

.vaca-showcase__head,
.elementor .vaca-showcase__head {
	align-items: center;
	display: flex;
	flex-direction: row;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 24px;
	padding: 0;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}

.vaca-showcase__head > .elementor-element,
.vaca-showcase__head > .e-con-inner > .elementor-element {
	width: auto;
	--width: auto;
}

/* Link "Ver tudo" (widget Botão com a classe vaca-seeall). */
.elementor .vaca-seeall .elementor-button,
.vaca-seeall a {
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--vaca-brown);
	fill: var(--vaca-brown);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-lg);
	font-weight: 400;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.elementor .vaca-seeall .elementor-button:hover,
.elementor .vaca-seeall .elementor-button:focus {
	background: transparent;
	color: var(--vaca-brown-dark);
}

/* Instagram --------------------------------------------------------------- */
.vaca-insta,
.elementor .vaca-insta {
	align-items: center;
	text-align: center;
}

.elementor .vaca-insta .elementor-icon {
	color: var(--vaca-brown);
	fill: var(--vaca-brown);
	font-size: 44px;
}

.elementor .vaca-insta__title .elementor-heading-title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	margin: 0;
}

.elementor .elementor-widget.vaca-insta__text,
.elementor .elementor-widget.vaca-insta__text p,
.vaca-insta__text p {
	color: var(--vaca-text);
	font-size: 13px;
	line-height: 1.6;
	margin: 0 auto;
	max-width: 400px;
}

.vaca-insta__feed,
.elementor .vaca-insta__feed {
	width: 100%;
}

.vaca-insta #sb_instagram {
	padding-bottom: 0 !important;
}

/* =========================================================================
 * 8. Cards de produto
 * ====================================================================== */
:is(.woocommerce, .woocommerce-page) ul.products::before,
:is(.woocommerce, .woocommerce-page) ul.products::after {
	content: none;
	display: none;
}

:is(.woocommerce, .woocommerce-page) ul.products[class*=columns-],
:is(.woocommerce, .woocommerce-page) ul.products {
	display: grid;
	gap: 40px 36px;
	grid-template-columns: repeat(var(--vaca-cols, 4), minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

:is(.woocommerce, .woocommerce-page) ul.products.columns-1 { --vaca-cols: 1; }
:is(.woocommerce, .woocommerce-page) ul.products.columns-2 { --vaca-cols: 2; }
:is(.woocommerce, .woocommerce-page) ul.products.columns-3 { --vaca-cols: 3; }
:is(.woocommerce, .woocommerce-page) ul.products.columns-4 { --vaca-cols: 4; }
:is(.woocommerce, .woocommerce-page) ul.products.columns-5 { --vaca-cols: 5; gap: 40px 48px; }
:is(.woocommerce, .woocommerce-page) ul.products.columns-6 { --vaca-cols: 6; }

:is(.woocommerce, .woocommerce-page) ul.products[class*=columns-] li.product,
:is(.woocommerce, .woocommerce-page) ul.products li.product {
	background: var(--vaca-card);
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	clear: none;
	display: flex;
	flex-direction: column;
	float: none;
	margin: 0;
	min-width: 0;
	overflow: hidden;
	padding: 0;
	position: relative;
	text-align: left;
	transition: box-shadow var(--vaca-ease), transform var(--vaca-ease);
	width: auto;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product:hover {
	box-shadow: var(--vaca-shadow);
	transform: translateY(-2px);
}

:is(.woocommerce, .woocommerce-page) ul.products li.product a.woocommerce-LoopProduct-link {
	color: inherit;
	display: flex;
	flex: 1;
	flex-direction: column;
	text-decoration: none;
}

.vaca-card__media {
	aspect-ratio: 5 / 4;
	background: var(--vaca-input);
	overflow: hidden;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .vaca-card__media img {
	display: block;
	height: 100%;
	margin: 0;
	object-fit: cover;
	transition: transform .4s ease;
	width: 100%;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product:hover .vaca-card__media img {
	transform: scale(1.04);
}

.vaca-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 2px;
	padding: 12px 12px 64px;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .woocommerce-loop-product__title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 600;
	line-height: 1.3;
	margin: 0;
	padding: 0;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .price {
	color: var(--vaca-text);
	display: block;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 700;
	margin: 0;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .price del {
	font-size: .85em;
	font-weight: 400;
	opacity: .7;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .price ins {
	text-decoration: none;
}

/* Botão redondo de carrinho no card. */
:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart {
	align-items: center;
	background: var(--vaca-accent);
	border: 0;
	border-radius: 50%;
	bottom: 12px;
	color: var(--vaca-accent-text);
	display: inline-flex;
	height: 45px;
	justify-content: center;
	margin: 0;
	min-height: 0;
	padding: 0;
	position: absolute;
	right: 12px;
	transition: background-color var(--vaca-ease), transform var(--vaca-ease);
	width: 45px;
	z-index: 1;
}

:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart:hover,
:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart:focus-visible {
	background: var(--vaca-accent-hover);
	color: var(--vaca-accent-text);
	transform: scale(1.06);
}

:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart .vaca-icon {
	height: 20px;
	width: 24px;
}

:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart.loading {
	opacity: .7;
	padding: 0;
}

:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart.loading .vaca-icon {
	opacity: 0;
}

:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart.loading::after {
	animation: vaca-spin .8s linear infinite;
	border: 2px solid currentColor;
	border-radius: 50%;
	border-right-color: transparent;
	content: "";
	font-family: inherit;
	height: 18px;
	left: 50%;
	margin: -9px 0 0 -9px;
	position: absolute;
	right: auto;
	top: 50%;
	vertical-align: 0;
	width: 18px;
}

:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart.added::after {
	content: none;
	display: none;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .added_to_cart {
	display: none;
}

@keyframes vaca-spin {
	to { transform: rotate(360deg); }
}

/* Selo de esgotado. */
:is(.woocommerce, .woocommerce-page) ul.products li.product.outofstock .vaca-card__media::after {
	background: rgba(255, 255, 255, .9);
	border-radius: var(--vaca-pill);
	color: var(--vaca-text);
	content: "Esgotado";
	font-size: var(--vaca-fs-xs);
	font-weight: 600;
	left: 10px;
	padding: 4px 10px;
	position: absolute;
	top: 10px;
}

/* =========================================================================
 * 9. Loja
 * ====================================================================== */
.vaca-shop {
	padding-block: 40px 24px;
}

.vaca-shop__grid {
	align-items: start;
	display: grid;
	gap: 32px;
	grid-template-columns: 274px minmax(0, 1fr);
}

.vaca-shop__main.vaca-panel {
	padding: 40px 64px 64px;
}

.vaca-shop__main .vaca-title {
	margin-bottom: 32px;
}

.vaca-shop__main .term-description,
.vaca-shop__main .page-description {
	margin: -16px 0 24px;
}

.vaca-shop__main .woocommerce-info {
	margin: 0;
}

/* Filtros. */
.vaca-filters.vaca-panel {
	padding: 24px 24px 40px;
	position: sticky;
	top: 24px;
}

.admin-bar .vaca-filters.vaca-panel {
	top: 56px;
}

.vaca-filters__details > summary {
	list-style: none;
}

.vaca-filters__details > summary::-webkit-details-marker {
	display: none;
}

.vaca-filters__title {
	border-bottom: 1px solid var(--vaca-outline);
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	padding-bottom: 8px;
}

.vaca-filters__label {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-md);
	margin: 18px 0 10px;
}

/* Faixa de preço com dois controles. */
.vaca-range {
	height: 24px;
	margin: 0 2px;
	position: relative;
}

.vaca-range__track {
	background: var(--vaca-line);
	border-radius: 2px;
	height: 2px;
	left: 0;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

.vaca-range__fill {
	background: var(--vaca-brown);
	border-radius: 2px;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.vaca-range input[type=range] {
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: 0;
	height: 24px;
	left: -9px;
	margin: 0;
	padding: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	width: calc(100% + 18px);
}

.vaca-range input[type=range]::-webkit-slider-runnable-track {
	background: transparent;
	border: 0;
	height: 24px;
}

.vaca-range input[type=range]::-moz-range-track {
	background: transparent;
	border: 0;
	height: 24px;
}

.vaca-range input[type=range]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	background: var(--vaca-brown);
	border: 0;
	border-radius: 50%;
	cursor: grab;
	height: 18px;
	margin-top: 3px;
	pointer-events: auto;
	transition: transform var(--vaca-ease), box-shadow var(--vaca-ease);
	width: 18px;
}

.vaca-range input[type=range]::-moz-range-thumb {
	background: var(--vaca-brown);
	border: 0;
	border-radius: 50%;
	cursor: grab;
	height: 18px;
	pointer-events: auto;
	width: 18px;
}

.vaca-range input[type=range]:active::-webkit-slider-thumb {
	cursor: grabbing;
	transform: scale(1.15);
}

.vaca-range input[type=range]:focus {
	outline: none;
}

.vaca-range input[type=range]:focus-visible::-webkit-slider-thumb {
	box-shadow: var(--vaca-focus);
}

.vaca-range input[type=range]:focus-visible::-moz-range-thumb {
	box-shadow: var(--vaca-focus);
}

.vaca-range__values {
	color: var(--vaca-text);
	display: flex;
	font-size: var(--vaca-fs-sm);
	justify-content: space-between;
	margin-top: 8px;
}

.vaca-price-filter noscript .button {
	margin-top: 12px;
}

/* Paginação da loja. */
.woocommerce nav.woocommerce-pagination {
	margin-top: 40px;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers {
	align-items: center;
	border: 0;
	display: inline-flex;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	border: 0;
	display: inline-flex;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li :is(a, span) {
	align-items: center;
	border-radius: 50%;
	color: var(--vaca-text);
	display: inline-flex;
	font-size: var(--vaca-fs-md);
	height: 38px;
	justify-content: center;
	min-width: 38px;
	padding: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li a:hover,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a:focus {
	background: var(--vaca-input);
	color: var(--vaca-text-strong);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li span.current {
	background: var(--vaca-brown);
	color: #fff;
}

/* =========================================================================
 * 10. Página do produto
 * ====================================================================== */
.single-product .site-main,
.single-product #primary .site-main {
	padding-top: 48px;
}

.woocommerce div.product.product {
	align-items: start;
	display: grid;
	gap: 0 48px;
	grid-template-columns: minmax(0, 465px) minmax(0, 1fr);
	margin: 0;
}

.woocommerce div.product.product > *:not(.woocommerce-product-gallery):not(.summary) {
	grid-column: 1 / -1;
}

.woocommerce div.product.product div.images.woocommerce-product-gallery,
.woocommerce-page div.product.product div.images.woocommerce-product-gallery {
	float: none;
	margin: 0;
	width: auto;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .flex-viewport {
	border-radius: var(--vaca-radius);
	overflow: hidden;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images img {
	aspect-ratio: 1 / 1;
	border-radius: var(--vaca-radius);
	object-fit: cover;
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(4, 1fr);
	margin-top: 10px;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: auto;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
	border-radius: var(--vaca-radius-sm);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	background: #fff;
	box-shadow: var(--vaca-shadow);
	right: 14px;
	top: 14px;
}

.woocommerce div.product.product div.summary.entry-summary,
.woocommerce-page div.product.product div.summary.entry-summary {
	float: none;
	margin: 0;
	width: auto;
}

.woocommerce div.product .product_title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 12px;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-md);
	line-height: 1.75;
}

.woocommerce div.product .woocommerce-product-details__short-description p {
	margin: 0 0 14px;
}

.woocommerce div.product .summary > p.price,
.woocommerce div.product .summary > span.price {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	margin: 22px 0 16px;
}

.woocommerce div.product .summary > .price ins {
	text-decoration: none;
}

.woocommerce div.product .summary > .price del {
	font-size: .6em;
	font-weight: 400;
	opacity: .7;
}

.woocommerce div.product .stock {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-sm);
}

.woocommerce div.product .stock.out-of-stock {
	color: var(--vaca-brown);
}

/* Formulário de compra. */
.woocommerce div.product form.cart {
	margin: 0;
}

.woocommerce div.product form.cart:not(.variations_form),
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 28px;
}

.woocommerce div.product form.cart div.quantity {
	float: none;
	margin: 0;
}

.woocommerce div.product form.cart table.variations {
	border: 0;
	margin: 0;
	width: auto;
}

.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr {
	display: block;
}

.woocommerce div.product form.cart table.variations tr + tr {
	margin-top: 14px;
}

.woocommerce div.product form.cart table.variations :is(th, td) {
	background: transparent;
	border: 0;
	display: block;
	line-height: 1.4;
	padding: 0;
	text-align: left;
}

.woocommerce div.product form.cart table.variations th.label {
	margin-bottom: 8px;
}

.vaca-swatches__label {
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 400;
}

.vaca-swatches__label strong {
	color: var(--vaca-text-strong);
	font-weight: 700;
}

.vaca-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.vaca-swatch,
button.vaca-swatch:focus {
	background: var(--vaca-swatch);
	border: 0;
	border-radius: var(--vaca-pill);
	color: #fff;
	cursor: pointer;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-sm);
	font-weight: 500;
	line-height: 1;
	min-width: 40px;
	padding: 6px 8px;
	transition: background-color var(--vaca-ease), transform var(--vaca-ease);
}

button.vaca-swatch:hover {
	background: #9e9e9e;
	color: #fff;
}

button.vaca-swatch.is-selected,
button.vaca-swatch.is-selected:hover {
	background: var(--vaca-pink);
	color: #fff;
}

/* O preço da variação já aparece no preço principal (via JS). */
.woocommerce div.product .single_variation_wrap .woocommerce-variation-price {
	display: none;
}

.woocommerce div.product .single_variation_wrap .woocommerce-variation-availability p {
	margin: 12px 0 0;
}

.woocommerce div.product .single_variation_wrap .woocommerce-variation-description p {
	font-size: var(--vaca-fs-sm);
	margin: 12px 0 0;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button,
.woocommerce div.product form.cart button.single_add_to_cart_button.alt {
	align-items: center;
	background: var(--vaca-accent);
	border: 0;
	border-radius: var(--vaca-pill);
	color: var(--vaca-accent-text);
	display: inline-flex;
	float: none;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-lg);
	font-weight: 500;
	gap: 12px;
	justify-content: center;
	min-height: 46px;
	min-width: 240px;
	padding: 10px 28px;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button::before {
	background: currentColor;
	content: "";
	height: 20px;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 2.5h3.2l.9 2.5H22l-2.6 8.6c-.2.6-.7.9-1.3.9H8.4l-.6 1.6h12.3v2H5L7 13 4.4 4.5H1z'/%3E%3Ccircle cx='8.5' cy='20.5' r='1.8'/%3E%3Ccircle cx='18' cy='20.5' r='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 2.5h3.2l.9 2.5H22l-2.6 8.6c-.2.6-.7.9-1.3.9H8.4l-.6 1.6h12.3v2H5L7 13 4.4 4.5H1z'/%3E%3Ccircle cx='8.5' cy='20.5' r='1.8'/%3E%3Ccircle cx='18' cy='20.5' r='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 24px;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button:hover {
	background: var(--vaca-accent-hover);
	color: var(--vaca-accent-text);
}

.woocommerce div.product form.cart .button.single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .button.single_add_to_cart_button:disabled {
	cursor: not-allowed;
	opacity: .5;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button.loading {
	opacity: .7;
	padding-right: 28px;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button.loading::after {
	animation: vaca-spin .8s linear infinite;
	border: 2px solid currentColor;
	border-radius: 50%;
	border-right-color: transparent;
	content: "";
	height: 14px;
	position: static;
	width: 14px;
}

/* =========================================================================
 * 11. Carrinho
 * ====================================================================== */
.vaca-cart {
	align-items: start;
	display: grid;
	gap: 48px 64px;
	grid-template-columns: minmax(0, 565px) minmax(0, 1fr);
	justify-content: space-between;
}

.vaca-cart__items {
	margin: 0;
}

.vaca-cart__head {
	align-items: center;
	border: 1px solid var(--vaca-outline);
	border-radius: var(--vaca-pill);
	color: var(--vaca-text);
	display: grid;
	font-size: var(--vaca-fs-md);
	grid-template-columns: 2fr 1fr 1.3fr 1fr;
	margin-bottom: 24px;
	min-height: 48px;
	padding: 0 24px;
	text-align: center;
}

.vaca-cart__list,
.woocommerce .vaca-cart__list.shop_table {
	border: 0;
	display: flex;
	flex-direction: column;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vaca-cart__item {
	align-items: center;
	background: var(--vaca-panel-gray);
	border-radius: var(--vaca-radius);
	display: grid;
	gap: 8px;
	grid-template-columns: 2fr 1fr 1.3fr 1fr;
	margin: 0;
	padding: 22px 24px;
	position: relative;
}

.vaca-cart__item > .product-remove {
	display: contents;
}

.vaca-cart__product {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.vaca-cart__thumb {
	border-radius: 10px;
	display: block;
	height: 68px;
	overflow: hidden;
	width: 88px;
}

.vaca-cart__thumb img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.vaca-cart__name {
	color: var(--vaca-text);
	display: flex;
	flex-direction: column;
	font-size: var(--vaca-fs-sm);
	line-height: 1.3;
}

.vaca-cart__name a {
	color: inherit;
	text-decoration: none;
}

.vaca-cart__variation {
	font-size: var(--vaca-fs-sm);
}

.vaca-cart__name dl.variation {
	font-size: var(--vaca-fs-xs);
	margin: 2px 0 0;
}

.vaca-cart__price,
.vaca-cart__subtotal {
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-sm);
	font-weight: 700;
	text-align: center;
}

.vaca-cart__qty {
	display: flex;
	justify-content: center;
}

.vaca-cart__qty .quantity.vaca-qty-ready {
	height: 40px;
	padding: 0 4px;
}

.vaca-cart__qty .quantity.vaca-qty-ready .qty {
	font-size: var(--vaca-fs-lg);
	width: 1.8em;
}

.vaca-cart__qty .vaca-step {
	font-size: 18px;
	height: 28px;
	width: 28px;
}

.woocommerce .vaca-cart a.remove.vaca-cart__remove {
	align-items: center;
	background: var(--vaca-pink);
	border-radius: 50%;
	color: #fff !important;
	display: inline-flex;
	font-family: var(--vaca-font-body);
	font-size: 18px;
	font-weight: 400;
	height: 30px;
	justify-content: center;
	line-height: 1;
	position: absolute;
	right: -14px;
	top: -14px;
	width: 30px;
}

.woocommerce .vaca-cart a.remove.vaca-cart__remove:hover {
	background: var(--vaca-pink-dark);
	color: #fff !important;
}

.vaca-cart__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
	margin-top: 24px;
}

.vaca-cart__actions .coupon {
	align-items: center;
	display: flex;
	flex: 1;
	gap: 8px;
	max-width: 420px;
}

.vaca-cart__actions .coupon .input-text,
.woocommerce .vaca-cart__actions .coupon .input-text {
	background: #fff;
	border: 1px solid transparent;
	border-radius: var(--vaca-pill);
	box-sizing: border-box;
	flex: 1;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-sm);
	height: 44px;
	margin: 0;
	padding: 0 18px;
	width: auto;
}

.vaca-cart__actions .coupon .vaca-btn {
	min-height: 44px;
	padding: 8px 18px;
}

/* O carrinho se atualiza sozinho; o botão fica só para quem navega sem JavaScript. */
.woocommerce .vaca-cart__actions button.vaca-cart__update {
	border: 1px solid var(--vaca-outline);
	font-size: var(--vaca-fs-sm);
	padding: 10px 18px;
}

.woocommerce .vaca-cart__actions button.vaca-cart__update:disabled {
	display: none;
}

/* Resumo. */
.woocommerce .vaca-cart .cart-collaterals.vaca-cart__summary {
	width: auto;
}

.woocommerce .vaca-cart .cart-collaterals .cart_totals.vaca-totals,
.woocommerce-page .vaca-cart .cart-collaterals .cart_totals.vaca-totals {
	float: none;
	width: auto;
}

.woocommerce table.shop_table.vaca-totals__table {
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
	display: block;
	margin: 0;
}

.woocommerce table.shop_table.vaca-totals__table tbody {
	display: block;
}

.woocommerce table.shop_table.vaca-totals__table tr {
	align-items: baseline;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

.woocommerce .vaca-totals__table.shop_table :is(th, td) {
	background: transparent;
	border: 0;
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-lg);
	font-weight: 400;
	line-height: 1.4;
	padding: 6px 0;
	text-align: left;
}

.woocommerce .vaca-totals__table.shop_table td {
	font-weight: 700;
	text-align: right;
}

.woocommerce .vaca-totals__table.shop_table td .amount {
	font-weight: 700;
}

.woocommerce .vaca-totals__table.shop_table .vaca-totals__cep {
	display: block;
}

.woocommerce .vaca-totals__table.shop_table .vaca-totals__cep td {
	display: block;
	padding: 18px 0 22px;
}

.vaca-cep {
	align-items: center;
	background: #fff;
	border-radius: var(--vaca-pill);
	display: flex;
	margin: 0;
	padding: 0 6px 0 0;
}

.vaca-cep input.input-text,
.woocommerce .vaca-cep input.input-text {
	background: transparent;
	border: 0;
	border-radius: var(--vaca-pill);
	box-shadow: none;
	color: var(--vaca-text-strong);
	flex: 1;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-lg);
	font-weight: 400;
	height: 48px;
	min-width: 0;
	padding: 0 24px;
}

.vaca-cep input.input-text:focus {
	outline: none;
}

.vaca-cep:focus-within {
	box-shadow: var(--vaca-focus);
}

.vaca-cep__btn,
button.vaca-cep__btn:focus {
	background: transparent;
	border: 0;
	border-radius: var(--vaca-pill);
	color: var(--vaca-brown);
	cursor: pointer;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-sm);
	font-weight: 600;
	padding: 10px 16px;
}

button.vaca-cep__btn:hover {
	background: var(--vaca-card);
	color: var(--vaca-brown-dark);
}

/* Formas de entrega. */
.woocommerce .vaca-totals__table.shop_table tr.woocommerce-shipping-totals {
	border-bottom: 1px solid var(--vaca-outline);
	border-top: 1px solid var(--vaca-outline);
	display: block;
	margin-bottom: 18px;
	padding: 14px 0;
}

.woocommerce .vaca-totals__table.shop_table tr.woocommerce-shipping-totals th {
	display: none;
}

.woocommerce .vaca-totals__table.shop_table tr.woocommerce-shipping-totals td {
	display: block;
	font-weight: 400;
	padding: 0;
	text-align: left;
}

.woocommerce ul#shipping_method {
	margin: 0;
	padding: 0;
}

.woocommerce ul#shipping_method li {
	align-items: center;
	display: flex;
	gap: 12px;
	line-height: 1.4;
	margin: 0;
	padding: 6px 0;
	text-indent: 0;
}

.woocommerce ul#shipping_method li input[type=radio] {
	-webkit-appearance: none;
	appearance: none;
	border: 1px solid var(--vaca-outline);
	border-radius: 50%;
	cursor: pointer;
	flex-shrink: 0;
	height: 16px;
	margin: 0;
	transition: background-color var(--vaca-ease), border-color var(--vaca-ease);
	width: 16px;
}

.woocommerce ul#shipping_method li input[type=radio]:checked {
	background: var(--vaca-blue);
	border-color: var(--vaca-blue);
}

.woocommerce ul#shipping_method li label {
	align-items: baseline;
	color: var(--vaca-text);
	cursor: pointer;
	display: flex;
	flex: 1;
	font-size: var(--vaca-fs-lg);
	gap: 12px;
	justify-content: space-between;
	margin: 0;
}

.woocommerce ul#shipping_method .amount,
.vaca-ship__price,
.vaca-ship__price .amount {
	font-weight: 400;
	white-space: nowrap;
}

.woocommerce .vaca-totals .woocommerce-shipping-destination,
.woocommerce .vaca-totals .woocommerce-shipping-contents {
	color: #9a9a9a;
	font-size: var(--vaca-fs-xs);
	margin: 8px 0 0;
}

.woocommerce .vaca-totals__table.shop_table tr.order-total :is(th, td) {
	font-size: var(--vaca-fs-lg);
}

.woocommerce .vaca-totals .wc-proceed-to-checkout {
	display: flex;
	justify-content: center;
	padding: 40px 0 0;
}

.woocommerce .vaca-totals .wc-proceed-to-checkout a.checkout-button.vaca-btn {
	display: inline-flex;
	font-size: var(--vaca-fs-lg);
	margin: 0;
	min-width: 220px;
	padding: 12px 28px;
}

/* Carrinho vazio. */
.woocommerce-cart .cart-empty.woocommerce-info {
	text-align: center;
}

.woocommerce-cart .return-to-shop {
	display: flex;
	justify-content: center;
}

/* =========================================================================
 * 12. Finalizar compra
 * ====================================================================== */
.woocommerce-checkout .page-header .entry-title {
	margin-bottom: 28px;
}

.woocommerce form.checkout {
	display: grid;
	gap: 0 48px;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
}

.woocommerce form.checkout > * {
	grid-column: 1 / -1;
}

.woocommerce form.checkout > #customer_details {
	grid-column: 1;
	grid-row: span 3;
}

.woocommerce form.checkout > #order_review_heading,
.woocommerce form.checkout > #order_review {
	grid-column: 2;
}

.woocommerce form.checkout #customer_details .col-1,
.woocommerce form.checkout #customer_details .col-2 {
	float: none;
	width: 100%;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review {
	background: #fff;
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	padding: 28px;
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h2);
	font-weight: 700;
	margin: 0 0 16px;
}

.woocommerce-checkout #order_review_heading {
	margin-top: 0;
}

.woocommerce form .form-row {
	margin: 0 0 14px;
	padding: 0;
}

.woocommerce form .form-row label {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-sm);
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 6px;
	padding-inline: 14px;
}

.woocommerce form .form-row .required {
	color: var(--vaca-brown);
}

.woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select) {
	border-color: #d9534f;
}

.woocommerce form .form-row.woocommerce-validated :is(input.input-text, select) {
	border-color: var(--vaca-outline);
}

.woocommerce .select2-container .select2-selection--single {
	border: 1px solid var(--vaca-outline);
	border-radius: var(--vaca-pill);
	height: 46px;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	color: var(--vaca-text-strong);
	line-height: 44px;
	padding-left: 20px;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 44px;
	right: 10px;
}

.woocommerce-checkout table.shop_table {
	border: 0;
	margin: 0 0 20px;
}

.woocommerce-checkout table.shop_table :is(th, td) {
	border-color: var(--vaca-line);
	color: var(--vaca-text);
	padding: 10px 0;
}

.woocommerce-checkout table.shop_table tfoot .order-total :is(th, td) {
	font-size: var(--vaca-fs-lg);
}

.woocommerce-checkout #payment {
	background: var(--vaca-card);
	border-radius: var(--vaca-radius);
}

.woocommerce-checkout #payment ul.payment_methods {
	border-bottom-color: var(--vaca-line);
}

.woocommerce-checkout #payment div.payment_box {
	background: #fff;
	border-radius: var(--vaca-radius-sm);
	color: var(--vaca-text);
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #fff;
}

.woocommerce-checkout #payment #place_order {
	float: none;
	font-size: var(--vaca-fs-lg);
	padding: 14px 28px;
	width: 100%;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	margin-bottom: 16px;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--vaca-line);
	border-radius: var(--vaca-radius);
}

.vaca-auth form.login,
.vaca-auth form.register {
	border: 0;
	margin: 0;
	padding: 0;
}

/* Pedido recebido. */
.woocommerce-order {
	background: #fff;
	border-radius: var(--vaca-radius);
	padding: 32px;
}

.woocommerce ul.order_details {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0 0 24px;
	padding: 0;
}

.woocommerce ul.order_details li {
	border-right-color: var(--vaca-line);
	margin: 0;
}

/* =========================================================================
 * 13. Minha conta
 * ====================================================================== */
.vaca-account {
	align-items: start;
	display: grid;
	gap: 56px;
	grid-template-columns: 342px minmax(0, 1fr);
}

/* WooCommerce adiciona larguras com float; o grid assume. */
.woocommerce-account .vaca-account .woocommerce-MyAccount-navigation,
.woocommerce-account .vaca-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}

.vaca-account__nav.vaca-panel {
	align-items: center;
	background: var(--vaca-panel-gray);
	display: flex;
	flex-direction: column;
	padding: 32px 40px 48px;
	text-align: center;
}

.vaca-account__nav-title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 24px;
}

.vaca-account__avatar {
	align-items: center;
	background: #fff;
	border-radius: 50%;
	color: var(--vaca-brown);
	display: flex;
	height: 70px;
	justify-content: center;
	width: 70px;
}

.vaca-account__avatar .vaca-icon {
	height: 34px;
	width: 34px;
}

.vaca-account__name {
	border-bottom: 1px solid var(--vaca-outline);
	color: var(--vaca-text);
	font-size: var(--vaca-fs-md);
	margin: 12px 0 28px;
	padding-bottom: 18px;
	width: 100%;
	word-break: break-word;
}

.vaca-account__nav ul {
	display: flex;
	flex-direction: column;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.vaca-account__nav li {
	margin: 0;
}

.vaca-account__nav li a {
	background: #fff;
	border-radius: var(--vaca-pill);
	color: var(--vaca-text);
	display: block;
	font-size: var(--vaca-fs-md);
	padding: 9px 16px;
	text-decoration: none;
}

.vaca-account__nav li a:hover {
	background: #fafafa;
	color: var(--vaca-brown);
}

.vaca-account__nav li.is-active a {
	background: var(--vaca-blue);
	color: #fff;
	font-weight: 600;
}

.vaca-account__content {
	min-width: 0;
}

.vaca-account__title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	margin: 22px 0 28px;
}

.vaca-account__content > h2,
.vaca-account__content .woocommerce-Address-title h2,
.vaca-account__content .woocommerce-column__title,
.vaca-account__content .woocommerce-order-details__title {
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h2);
	font-weight: 700;
}

/* Abas de pedidos. */
.vaca-tabs {
	background: #fff;
	border-radius: var(--vaca-pill);
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	margin-bottom: 14px;
}

.vaca-tabs__item {
	border-radius: var(--vaca-pill);
	color: var(--vaca-text);
	font-size: var(--vaca-fs-md);
	padding: 10px 12px;
	text-align: center;
	text-decoration: none;
}

.vaca-tabs__item:hover {
	background: var(--vaca-card);
	color: var(--vaca-text-strong);
}

.vaca-tabs__item.is-active,
.vaca-tabs__item.is-active:hover {
	background: var(--vaca-blue);
	color: #fff;
}

/* Pedidos em cartões. */
.vaca-orders {
	display: flex;
	flex-direction: column;
	gap: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vaca-order {
	align-items: start;
	background: #fff;
	border-radius: var(--vaca-radius);
	display: grid;
	gap: 10px 14px;
	grid-template-areas:
		"thumb info status"
		"actions actions actions";
	grid-template-columns: 84px minmax(0, 1fr) auto;
	margin: 0;
	padding: 22px 28px 24px;
}

.vaca-order__thumb {
	border-radius: 10px;
	grid-area: thumb;
	height: 66px;
	overflow: hidden;
	width: 84px;
}

.vaca-order__thumb img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.vaca-order__info {
	grid-area: info;
}

.vaca-order__info p {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-sm);
	line-height: 1.75;
	margin: 0;
}

.vaca-order__info .vaca-order__number {
	color: var(--vaca-text-strong);
	font-weight: 700;
}

.vaca-order__status {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-sm);
	grid-area: status;
	margin: 0;
	text-align: right;
}

.vaca-order__status strong {
	color: var(--vaca-text-strong);
}

.vaca-order__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	grid-area: actions;
	justify-content: flex-end;
}

.vaca-order__actions :is(a, button).vaca-btn {
	font-size: var(--vaca-fs-sm);
	min-height: 38px;
	padding: 8px 22px;
}

.vaca-order__actions .vaca-btn .vaca-icon {
	height: 17px;
	width: 20px;
}

/* Dados pessoais. */
.vaca-account .vaca-form.vaca-panel {
	background: transparent;
	padding: 0;
}

.woocommerce-EditAccountForm.vaca-form {
	column-gap: 22px;
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.woocommerce-EditAccountForm.vaca-form > * {
	grid-column: 1 / -1;
}

.woocommerce-EditAccountForm.vaca-form > .vaca-field:has(#account_email) {
	grid-column: 1;
}

.woocommerce-EditAccountForm.vaca-form > .vaca-field:has(#billing_phone) {
	grid-column: 2;
}

.vaca-account .vaca-field :is(input, select) {
	min-height: 42px;
	padding-block: 8px;
}

.vaca-password {
	margin: 4px 0 0;
}

.vaca-password > summary {
	color: var(--vaca-brown);
	cursor: pointer;
	display: inline-block;
	font-size: var(--vaca-fs-sm);
	margin-bottom: 16px;
	padding-inline: 14px;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vaca-account .vaca-form__submit .vaca-btn {
	font-size: var(--vaca-fs-sm);
	min-height: 40px;
	padding: 8px 26px;
}

/* Endereços e cartões (modelos padrão do WooCommerce). */
.vaca-account__content .woocommerce-Addresses.col2-set,
.vaca-account__content .u-columns.col2-set {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.vaca-account__content .woocommerce-Addresses::before,
.vaca-account__content .woocommerce-Addresses::after,
.vaca-account__content .col2-set::before,
.vaca-account__content .col2-set::after {
	content: none;
}

.woocommerce-account .vaca-account__content .woocommerce-Addresses .woocommerce-Address,
.woocommerce-account .vaca-account__content .col2-set .col-1,
.woocommerce-account .vaca-account__content .col2-set .col-2 {
	background: #fff;
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	float: none;
	margin: 0;
	padding: 22px 24px;
	width: auto;
}

.vaca-account__content .woocommerce-Address-title {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 8px;
}

.vaca-account__content .woocommerce-Address-title::before,
.vaca-account__content .woocommerce-Address-title::after {
	content: none;
}

.vaca-account__content .woocommerce-Address-title h2 {
	font-size: var(--vaca-fs-lg);
	margin: 0;
}

.vaca-account__content .woocommerce-Address-title .edit {
	float: none;
	font-size: var(--vaca-fs-sm);
}

.vaca-account__content address {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-sm);
	font-style: normal;
	line-height: 1.7;
}

.vaca-account__content > p:first-child {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-sm);
}

.vaca-account__content .woocommerce-address-fields,
.vaca-account__content form .woocommerce-address-fields__field-wrapper {
	background: #fff;
	border-radius: var(--vaca-radius);
	padding: 24px;
}

.vaca-account__content table.shop_table,
.vaca-account__content table.woocommerce-MyAccount-paymentMethods {
	background: #fff;
	border: 0;
	border-radius: var(--vaca-radius);
	overflow: hidden;
}

.vaca-account__content table.shop_table :is(th, td) {
	border-color: var(--vaca-card);
	color: var(--vaca-text);
	padding: 14px 18px;
}

.vaca-account__content .woocommerce-PaymentMethods a.button,
.vaca-account__content a.button[href*="add-payment-method"] {
	margin-top: 16px;
}

/* =========================================================================
 * 14. Login e cadastro
 * ====================================================================== */
.vaca-auth.vaca-panel {
	margin: 0 auto;
	max-width: 510px;
	padding: 36px 82px 48px;
}

.vaca-auth__title {
	border-bottom: 1px solid var(--vaca-text);
	color: var(--vaca-text);
	font-family: var(--vaca-font-title);
	font-size: var(--vaca-fs-h1);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 14px;
	padding-bottom: 18px;
	text-align: center;
}

.vaca-auth__switch {
	color: var(--vaca-text);
	font-size: 13px;
	margin: 0 0 32px;
	text-align: center;
}

.vaca-auth__switch a {
	color: var(--vaca-brown);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.vaca-auth__social {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.vaca-social-btn,
button.vaca-social-btn:focus {
	align-items: center;
	background: #fff;
	border: 1px solid var(--vaca-outline);
	border-radius: var(--vaca-pill);
	box-sizing: border-box;
	color: var(--vaca-text);
	cursor: pointer;
	display: flex;
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-sm);
	font-weight: 400;
	justify-content: center;
	min-height: 44px;
	padding: 8px 52px;
	position: relative;
	text-decoration: none;
	width: 100%;
}

.vaca-social-btn:hover,
button.vaca-social-btn:hover {
	background: var(--vaca-card);
	border-color: var(--vaca-text);
	color: var(--vaca-text-strong);
}

.vaca-social-btn .vaca-icon {
	height: 26px;
	left: 16px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 26px;
}

.vaca-auth__or {
	align-items: center;
	color: var(--vaca-text);
	display: flex;
	font-size: var(--vaca-fs-xs);
	gap: 12px;
	margin: 20px 0;
}

.vaca-auth__or::before,
.vaca-auth__or::after {
	background: var(--vaca-outline);
	content: "";
	flex: 1;
	height: 1px;
}

.vaca-auth .vaca-field {
	margin-bottom: 14px;
}

.vaca-auth .vaca-field label {
	padding-inline: 16px;
}

.vaca-auth__row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	justify-content: space-between;
	margin: 4px 0 28px;
	padding-inline: 6px;
}

.vaca-auth__row .vaca-link {
	font-size: 13px;
}

.vaca-auth :is(button, a).vaca-btn.vaca-btn--block,
.woocommerce .vaca-auth :is(button, a).vaca-btn.vaca-btn--block {
	margin: 0 auto;
	min-width: 150px;
	width: auto;
}

.vaca-auth form.register .vaca-btn--block {
	margin-top: 20px;
}

.vaca-auth .woocommerce-privacy-policy-text {
	font-size: var(--vaca-fs-xs);
	margin-top: 8px;
}

.vaca-auth .woocommerce-privacy-policy-text p {
	margin: 0;
}

/* Recuperar senha (modelo padrão do WooCommerce). */
.woocommerce-account .woocommerce-ResetPassword,
.woocommerce-account form.lost_reset_password {
	background: #fff;
	border-radius: var(--vaca-radius);
	margin: 0 auto;
	max-width: 510px;
	padding: 36px;
}

/* =========================================================================
 * 15. Sobre nós e Contato (Elementor)
 * ====================================================================== */
.vaca-about,
.elementor .vaca-about {
	background: var(--vaca-panel-gray);
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	padding: 48px 76px 56px;
	--padding-top: 48px;
	--padding-right: 76px;
	--padding-bottom: 56px;
	--padding-left: 76px;
}

.vaca-about__text,
.vaca-about__text p,
.elementor .elementor-widget.vaca-about__text,
.elementor .elementor-widget.vaca-about__text p {
	color: var(--vaca-text);
	font-size: var(--vaca-fs-md);
	line-height: 1.75;
}

.vaca-about__text p {
	margin: 0 0 4px;
}

.vaca-about__row,
.elementor .vaca-about__row {
	align-items: flex-start;
	display: flex;
	flex-direction: row;
	gap: 28px;
	padding: 0;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}

.elementor .vaca-about__row > .vaca-about__text {
	flex: 1 1 0;
	width: auto;
	--width: auto;
}

/* Fotos (containers com imagem de fundo). */
.vaca-photo,
.elementor .vaca-photo {
	background-color: rgba(0, 0, 0, .06);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border-radius: 4px;
	flex: 0 0 auto;
	min-height: 358px;
	padding: 0;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}

.elementor .vaca-photo--leite {
	flex-basis: 30%;
	width: 30%;
	--width: 30%;
}

.elementor .vaca-photo--fresco {
	flex-basis: 40%;
	width: 40%;
	--width: 40%;
}

.elementor .vaca-photo--queijos {
	flex: 1 1 0;
	width: auto;
	--width: auto;
}

.vaca-photo--leite { background-image: url("../img/sobre-1-leite.jpg"); }
.vaca-photo--fresco { background-image: url("../img/sobre-2-queijo-fresco.jpg"); }
.vaca-photo--queijos { background-image: url("../img/sobre-3-queijos.jpg"); }

/* Contato. */
.vaca-contact,
.elementor .vaca-contact {
	background: #fff;
	border-radius: var(--vaca-radius);
	box-sizing: border-box;
	flex-direction: row;
	gap: 48px;
	overflow: hidden;
	padding: 0;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}

.elementor .vaca-contact__intro {
	flex: 1 1 0;
	padding: 40px 0 0 64px;
	width: auto;
	--padding-top: 40px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 64px;
	--width: auto;
}

.elementor .vaca-contact__art,
.vaca-contact__art {
	background: url("../img/contato-telefone.png") left bottom / contain no-repeat;
	flex-grow: 1;
	margin-left: -64px;
	min-height: 420px;
	width: calc(100% + 64px);
	--width: calc(100% + 64px);
}

.elementor .vaca-contact__form-col {
	flex: 0 0 39%;
	padding: 64px 48px 40px 0;
	width: 39%;
	--padding-top: 64px;
	--padding-right: 48px;
	--padding-bottom: 40px;
	--padding-left: 0px;
	--width: 39%;
}

/* Formulário do Elementor Pro. */
.elementor .vaca-contact-form .elementor-field-group {
	margin-bottom: 18px;
}

.elementor .vaca-contact-form .elementor-field-group > label,
.elementor .vaca-contact-form .elementor-field-label {
	color: var(--vaca-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 700;
	margin-bottom: 8px;
	padding-inline: 14px;
}

.elementor .vaca-contact-form .elementor-field-group .elementor-field-textual {
	background: transparent;
	border: 1px solid var(--vaca-outline);
	border-radius: var(--vaca-pill);
	color: var(--vaca-text-strong);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	min-height: 46px;
	padding: 10px 20px;
}

.elementor .vaca-contact-form .elementor-field-group textarea.elementor-field-textual {
	border-radius: var(--vaca-radius);
	min-height: 126px;
	padding-top: 14px;
}

.elementor .vaca-contact-form .elementor-field-group .elementor-field-textual:focus {
	border-color: var(--vaca-blue);
	box-shadow: var(--vaca-focus);
	outline: none;
}

.elementor .vaca-contact-form .elementor-field-textual::placeholder {
	color: #8c8c8c;
	opacity: 1;
}

.elementor .vaca-contact-form .elementor-field-type-submit {
	justify-content: center;
}

.elementor .vaca-contact-form .elementor-button[type=submit] {
	background: var(--vaca-accent);
	border: 0;
	border-radius: var(--vaca-pill);
	color: var(--vaca-accent-text);
	font-family: var(--vaca-font-body);
	font-size: var(--vaca-fs-md);
	font-weight: 500;
	min-height: 44px;
	padding: 10px 40px;
	width: auto;
}

.elementor .vaca-contact-form .elementor-button[type=submit]:hover {
	background: var(--vaca-accent-hover);
}

.elementor .vaca-contact-form .elementor-message {
	font-size: var(--vaca-fs-sm);
	text-align: center;
}

/* Ícones de contato (shortcode [vaca_redes telefone="1"] com a classe vaca-contact-icons). */
.vaca-contact-icons .vaca-social {
	gap: 56px;
	justify-content: center;
	margin-top: 16px;
}

.vaca-contact-icons .vaca-social a {
	color: var(--vaca-brown);
}

.vaca-contact-icons .vaca-social a:hover {
	color: var(--vaca-brown-dark);
}

.vaca-contact-icons .vaca-icon {
	--vaca-wa-glyph: #fff;
	height: 32px;
	width: 32px;
}

.vaca-contact-icons .vaca-icon--whatsapp {
	--vaca-wa-glyph: #fff;
}

/* =========================================================================
 * 16. Avisos do WooCommerce, WhatsApp flutuante
 * ====================================================================== */
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
.woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	background: #fff;
	border-radius: var(--vaca-radius);
	border-top-width: 3px;
	box-shadow: none;
	color: var(--vaca-text);
	font-size: var(--vaca-fs-sm);
	line-height: 1.5;
}

.woocommerce .woocommerce-message {
	border-top-color: var(--vaca-green);
}

.woocommerce .woocommerce-message::before {
	color: #2fbf63;
}

.woocommerce .woocommerce-info {
	border-top-color: var(--vaca-blue);
}

.woocommerce .woocommerce-info::before {
	color: var(--vaca-blue);
}

.woocommerce .woocommerce-error {
	border-top-color: var(--vaca-brown);
}

.woocommerce .woocommerce-error::before {
	color: var(--vaca-brown);
}

.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button {
	font-size: var(--vaca-fs-sm);
	padding: 8px 18px;
}

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

/* Botão flutuante do WhatsApp. */
.vaca-whatsapp-float {
	--vaca-wa-glyph: var(--vaca-green);
	align-items: center;
	background: var(--vaca-green);
	border-radius: 50%;
	bottom: 24px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
	color: #fff;
	display: flex;
	height: 64px;
	justify-content: center;
	position: fixed;
	right: 24px;
	transition: transform var(--vaca-ease), box-shadow var(--vaca-ease);
	width: 64px;
	z-index: 900;
}

.vaca-whatsapp-float:hover,
.vaca-whatsapp-float:focus-visible {
	box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
	color: #fff;
	transform: scale(1.06);
}

.vaca-whatsapp-float .vaca-icon {
	height: 34px;
	width: 34px;
}

body.vaca-sidecart-open .vaca-whatsapp-float {
	opacity: 0;
	pointer-events: none;
}

/* =========================================================================
 * Tablet (≤ 1199px)
 * ====================================================================== */
@media (max-width: 1199px) {
	.vaca-header__top {
		gap: 16px;
	}

	.vaca-header__account {
		min-width: 0;
	}

	.vaca-shop__main.vaca-panel {
		padding: 32px;
	}

	:is(.woocommerce, .woocommerce-page) ul.products.columns-5 {
		--vaca-cols: 4;
		gap: 32px 24px;
	}

	:is(.woocommerce, .woocommerce-page) ul.products.columns-4 {
		--vaca-cols: 3;
		gap: 32px 24px;
	}

	.vaca-account {
		gap: 32px;
		grid-template-columns: 280px minmax(0, 1fr);
	}

	.vaca-account__nav.vaca-panel {
		padding-inline: 24px;
	}

	.vaca-cart {
		gap: 40px;
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	}

	.vaca-footer .vaca-footer__col {
		padding-inline: 20px;
	}

	.vaca-footer__title,
	.elementor .vaca-footer__title .elementor-heading-title {
		font-size: var(--vaca-fs-h2);
		white-space: normal;
	}
}

@media (max-width: 1024px) {
	.vaca-brand__text,
	.vaca-header__account-label {
		display: none;
	}

	.vaca-header__account {
		padding: 0 12px;
	}

	.vaca-cart-btn {
		min-width: 0;
	}

	:is(.woocommerce, .woocommerce-page) ul.products.columns-5,
	:is(.woocommerce, .woocommerce-page) ul.products.columns-4 {
		--vaca-cols: 3;
	}

	.vaca-shop__grid {
		grid-template-columns: 220px minmax(0, 1fr);
		gap: 24px;
	}

	.woocommerce div.product.product {
		gap: 0 32px;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.woocommerce div.product form.cart .button.single_add_to_cart_button,
	.woocommerce div.product form.cart button.single_add_to_cart_button.alt {
		min-width: 0;
	}

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

	.woocommerce form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce form.checkout > #customer_details,
	.woocommerce form.checkout > #order_review_heading,
	.woocommerce form.checkout > #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	.woocommerce form.checkout > #order_review_heading {
		margin-top: 32px;
	}

	.vaca-footer .vaca-footer__cols {
		flex-wrap: wrap;
		row-gap: 28px;
	}

	.vaca-footer .vaca-footer__col {
		flex: 1 1 40%;
	}

	.vaca-footer .vaca-footer__col:nth-child(3) {
		border-left: 0;
		padding-left: 0;
	}

	.vaca-footer .vaca-footer__col--contact {
		padding-left: 32px;
	}

	.elementor .vaca-about,
	.vaca-about {
		padding: 36px 32px;
		--padding-top: 36px;
		--padding-right: 32px;
		--padding-bottom: 36px;
		--padding-left: 32px;
	}

	.elementor .vaca-contact__form-col {
		flex-basis: 48%;
		width: 48%;
		--width: 48%;
	}
}

/* =========================================================================
 * 17. Mobile (≤ 767px) — layout de 390px
 * ====================================================================== */
@media (max-width: 767px) {
	:root {
		--vaca-gutter: 16px;
		--vaca-accent: var(--vaca-pink);
		--vaca-accent-hover: var(--vaca-pink-dark);
		--vaca-fs-h1: 22px;
		--vaca-fs-h2: 19px;
		--vaca-fs-lg: 15px;
		--vaca-fs-md: 15px;
	}

	body {
		font-size: 14px;
	}

	body:not([class*=elementor-page-]) .site-main,
	.vaca-page,
	.vaca-shop {
		padding-top: 20px;
	}

	/* Cabeçalho: conta | logo | carrinho / busca / menu */
	.vaca-header__top {
		gap: 10px;
		grid-template-areas:
			"account brand cart"
			"search search search";
		grid-template-columns: 1fr auto 1fr;
		min-height: 0;
		padding-block: 12px 14px;
	}

	.vaca-brand {
		grid-area: brand;
	}

	.vaca-brand__logo {
		height: 74px;
		width: 74px;
	}

	.vaca-search {
		grid-area: search;
		max-width: none;
	}

	.vaca-search input[type=search] {
		font-size: 16px; /* evita o zoom automático do iOS */
		height: 42px;
	}

	.vaca-search button,
	.vaca-search button:hover,
	.vaca-search button:focus {
		height: 36px;
		top: 3px;
		width: 36px;
	}

	.vaca-header__account,
	.vaca-header__account:hover {
		background: #fff;
		border-radius: 50%;
		color: var(--vaca-pink);
		grid-area: account;
		height: 56px;
		justify-self: start;
		min-height: 0;
		min-width: 0;
		padding: 0;
		width: 56px;
	}

	.vaca-header__account:hover {
		color: var(--vaca-pink-dark);
	}

	.vaca-cart-btn,
	.vaca-cart-btn:hover {
		background: var(--vaca-pink);
		border-radius: 50%;
		grid-area: cart;
		height: 56px;
		justify-self: end;
		min-height: 0;
		min-width: 0;
		padding: 0;
		width: 56px;
	}

	.vaca-cart-btn:hover {
		background: var(--vaca-pink-dark);
	}

	.vaca-cart-btn__label {
		border: 0;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		width: 1px;
	}

	.vaca-cart-count {
		background: var(--vaca-brown);
	}

	.vaca-nav .vaca-container {
		padding-inline: 8px;
	}

	.vaca-nav__list {
		flex-wrap: nowrap;
		gap: 4px;
		justify-content: space-around;
		min-height: 48px;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.vaca-nav__list::-webkit-scrollbar {
		display: none;
	}

	.vaca-nav__list a {
		font-size: 14px;
		padding: 6px 8px;
		white-space: nowrap;
	}

	/* Rodapé: só Institucional e Termos, como no layout. */
	.vaca-footer {
		--wave-top: 44px;
		--wave-h: 34px;
		margin-top: 48px;
	}

	.vaca-footer__logo img {
		width: 128px;
	}

	.vaca-footer .vaca-footer__cols {
		flex-wrap: nowrap;
		gap: 16px;
		padding-bottom: 24px;
	}

	.vaca-footer .vaca-footer__col,
	.vaca-footer .vaca-footer__col:first-child,
	.vaca-footer .vaca-footer__col + .vaca-footer__col,
	.vaca-footer .vaca-footer__col--contact {
		border-left: 0;
		flex: 1 1 0;
		padding: 0;
	}

	.vaca-footer .vaca-footer__col:nth-child(n+3) {
		display: none;
	}

	.vaca-footer__title,
	.elementor .vaca-footer__title .elementor-heading-title {
		font-size: 17px;
		margin-bottom: 16px;
		white-space: normal;
	}

	.vaca-footer__links li,
	.vaca-footer__links .elementor-icon-list-item {
		margin-bottom: 14px;
	}

	.vaca-footer__links a,
	.elementor .vaca-footer__links .elementor-icon-list-text {
		font-size: 13px;
	}

	.vaca-footer .vaca-social .vaca-icon {
		height: 36px;
		width: 36px;
	}

	/* Carrinho lateral em tela cheia. */
	.vaca-sidecart {
		width: 100%;
	}

	.vaca-sidecart__head h2 {
		font-size: 20px;
	}

	.vaca-sidecart__body {
		padding: 16px;
	}

	/* Home. */
	.vaca-banner,
	.elementor .vaca-banner {
		min-height: 110px;
	}

	.vaca-banner__media,
	.elementor .vaca-banner .vaca-banner__media {
		flex-basis: 30%;
		min-height: 100px;
		width: 30%;
		--width: 30%;
	}

	.vaca-banner--pink .vaca-banner__media,
	.elementor .vaca-banner--pink .vaca-banner__media {
		flex-basis: 34%;
		width: 34%;
		--width: 34%;
	}

	.vaca-banner__content,
	.elementor .vaca-banner .vaca-banner__content,
	.elementor .vaca-banner--pink .vaca-banner__content {
		gap: 6px;
		padding: 12px 14px;
	}

	.vaca-banner__title,
	.elementor .vaca-banner__title .elementor-heading-title {
		font-size: 14px;
	}

	.vaca-banner__text,
	.vaca-banner__text p,
	.elementor .elementor-widget.vaca-banner__text,
.elementor .elementor-widget.vaca-banner__text p {
		-webkit-box-orient: vertical;
		display: -webkit-box;
		font-size: 11px;
		-webkit-line-clamp: 4;
		line-clamp: 4;
		line-height: 1.45;
		overflow: hidden;
	}

	.vaca-showcase,
	.elementor .vaca-showcase {
		padding: 18px 16px 20px;
		--padding-top: 18px;
		--padding-right: 16px;
		--padding-bottom: 20px;
		--padding-left: 16px;
	}

	.vaca-showcase__head,
	.elementor .vaca-showcase__head {
		margin-bottom: 14px;
	}

	/* Na home do celular, a vitrine mostra 4 queijos (2 linhas), como no layout. */
	.vaca-showcase :is(.woocommerce, .woocommerce-page) ul.products[class*=columns-] li.product:nth-child(n+5) {
		display: none;
	}

	.elementor .vaca-seeall .elementor-button,
	.vaca-seeall a {
		font-size: 14px;
	}

	.elementor .vaca-insta__title .elementor-heading-title {
		font-size: 19px;
	}

	.elementor .vaca-insta .elementor-icon {
		color: var(--vaca-pink);
		fill: var(--vaca-pink);
		font-size: 34px;
	}

	/* Cards: 2 colunas. */
	:is(.woocommerce, .woocommerce-page) ul.products[class*=columns-],
	:is(.woocommerce, .woocommerce-page) ul.products.columns-5,
	:is(.woocommerce, .woocommerce-page) ul.products.columns-4,
	:is(.woocommerce, .woocommerce-page) ul.products {
		--vaca-cols: 2;
		gap: 18px 16px;
	}

	.vaca-card__body {
		padding: 10px 10px 52px;
	}

	:is(.woocommerce, .woocommerce-page) ul.products li.product .woocommerce-loop-product__title {
		font-size: 13px;
	}

	:is(.woocommerce, .woocommerce-page) ul.products li.product .price {
		font-size: 15px;
	}

	:is(.woocommerce, .woocommerce-page, body) ul.products li.product a.button.vaca-card__cart {
		bottom: 10px;
		height: 38px;
		right: 10px;
		width: 38px;
	}

	/* Loja. */
	.vaca-shop__grid {
		gap: 16px;
		grid-template-columns: minmax(0, 1fr);
	}

	.vaca-filters.vaca-panel {
		padding: 16px 20px;
		position: static;
	}

	.vaca-filters__title {
		align-items: center;
		cursor: pointer;
		display: flex;
		font-size: 19px;
		justify-content: space-between;
	}

	.vaca-filters__title::after {
		border-bottom: 2px solid currentColor;
		border-right: 2px solid currentColor;
		content: "";
		height: 8px;
		margin-right: 4px;
		transform: rotate(45deg) translateY(-3px);
		transition: transform var(--vaca-ease);
		width: 8px;
	}

	.vaca-filters__details[open] .vaca-filters__title::after {
		transform: rotate(-135deg);
	}

	.vaca-filters__details:not([open]) .vaca-filters__title {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.vaca-shop__main.vaca-panel {
		padding: 20px 16px 24px;
	}

	.vaca-shop__main .vaca-breadcrumb {
		display: none;
	}

	.vaca-shop__main .vaca-title {
		margin-bottom: 18px;
	}

	/* Produto: título → foto → preço → tamanho → descrição → comprar. */
	.woocommerce div.product.product {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.woocommerce div.product.product div.summary.entry-summary {
		display: contents;
	}

	.woocommerce div.product div.summary > :where(*) {
		order: 7;
	}

	.woocommerce div.product div.summary .product_title {
		order: 1;
	}

	.woocommerce div.product.product div.images.woocommerce-product-gallery {
		margin-bottom: 4px;
		order: 2;
		width: 100%;
	}

	.woocommerce div.product div.images img,
	.woocommerce div.product div.images .woocommerce-product-gallery__image img {
		aspect-ratio: 16 / 10;
	}

	.woocommerce div.product div.summary > p.price,
	.woocommerce div.product div.summary > span.price {
		margin: 18px 0 10px;
		order: 3;
	}

	.woocommerce div.product div.summary .woocommerce-product-details__short-description {
		border-bottom: 1px solid var(--vaca-outline);
		border-top: 1px solid var(--vaca-outline);
		font-size: 15px;
		line-height: 1.55;
		margin-top: 18px;
		order: 5;
		padding: 14px 0 4px;
	}

	.woocommerce div.product div.summary form.cart {
		display: contents;
	}

	.woocommerce div.product form.cart table.variations {
		order: 4;
	}

	.woocommerce div.product form.cart .single_variation_wrap,
	.woocommerce div.product form.cart:not(.variations_form) > * {
		order: 6;
	}

	.woocommerce div.product div.summary form.cart:not(.variations_form) {
		display: flex;
		justify-content: center;
		order: 6;
	}

	.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
		flex-wrap: nowrap;
		gap: 10px;
		justify-content: center;
	}

	.woocommerce div.product > *:not(.summary):not(.woocommerce-product-gallery) {
		order: 9;
	}

	.vaca-swatch,
	button.vaca-swatch:focus {
		font-size: 15px;
		min-width: 56px;
		padding: 8px 12px;
	}

	button.vaca-swatch.is-selected,
	button.vaca-swatch.is-selected:hover {
		background: var(--vaca-blue);
	}

	.woocommerce .quantity.vaca-qty-ready,
	.vaca-qty-ready {
		height: 34px;
		padding: 0 2px;
	}

	.woocommerce .quantity.vaca-qty-ready .qty,
	.vaca-qty-ready input.qty {
		font-size: 15px;
		width: 1.6em;
	}

	.vaca-step,
	button.vaca-step {
		font-size: 17px;
		height: 28px;
		width: 28px;
	}

	.woocommerce div.product form.cart .button.single_add_to_cart_button,
	.woocommerce div.product form.cart button.single_add_to_cart_button.alt {
		font-size: 13px;
		gap: 8px;
		min-height: 34px;
		min-width: 0;
		padding: 6px 16px;
	}

	.woocommerce div.product form.cart .button.single_add_to_cart_button::before {
		height: 14px;
		width: 16px;
	}

	/* Carrinho: cartões rosa. */
	.vaca-cart {
		gap: 24px;
	}

	.vaca-cart__head {
		display: none;
	}

	.vaca-cart__list,
	.woocommerce .vaca-cart__list.shop_table {
		gap: 16px;
	}

	.vaca-cart__item {
		background: var(--vaca-pink);
		color: #fff;
		gap: 2px 12px;
		grid-template-areas:
			"thumb name name"
			"thumb price qty";
		grid-template-columns: 86px auto 1fr;
		padding: 20px 16px;
	}

	.vaca-cart__product {
		display: contents;
	}

	.vaca-cart__thumb {
		grid-area: thumb;
		height: 58px;
		width: 86px;
	}

	.vaca-cart__name {
		color: #fff;
		grid-area: name;
		padding-right: 40px;
	}

	.vaca-cart__price {
		color: #fff;
		font-size: 17px;
		grid-area: price;
		text-align: left;
	}

	.vaca-cart__qty {
		grid-area: qty;
		justify-content: flex-start;
	}

	.vaca-cart__subtotal {
		display: none;
	}

	.vaca-cart__qty .quantity.vaca-qty-ready {
		border-color: #fff;
		height: 30px;
	}

	.vaca-cart__qty .quantity.vaca-qty-ready .qty,
	.vaca-cart__qty .vaca-step,
	.vaca-cart__qty button.vaca-step:hover {
		color: #fff;
	}

	.woocommerce .vaca-cart a.remove.vaca-cart__remove {
		background: var(--vaca-brown);
		right: 14px;
		top: 14px;
	}

	.woocommerce .vaca-cart a.remove.vaca-cart__remove:hover {
		background: var(--vaca-brown-dark);
	}

	.woocommerce .vaca-totals__table.shop_table :is(th, td),
	.woocommerce ul#shipping_method li label {
		font-size: 13px;
	}

	.woocommerce .vaca-totals__table.shop_table tr.order-total :is(th, td) {
		font-size: 15px;
	}

	.woocommerce .vaca-totals__table.shop_table .vaca-totals__cep td {
		padding: 10px 0 14px;
	}

	.vaca-cep input.input-text,
	.woocommerce .vaca-cep input.input-text {
		font-size: 16px;
		height: 38px;
		padding: 0 16px;
	}

	.woocommerce .vaca-totals .wc-proceed-to-checkout {
		padding-top: 24px;
	}

	.woocommerce .vaca-totals .wc-proceed-to-checkout a.checkout-button.vaca-btn {
		font-size: 14px;
		min-height: 36px;
		min-width: 0;
		padding: 6px 24px;
	}

	/* Finalizar compra. */
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review {
		padding: 20px 16px;
	}

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last {
		float: none;
		width: 100%;
	}

	/* Minha conta: painel rosa. */
	.vaca-account {
		gap: 24px;
		grid-template-columns: minmax(0, 1fr);
	}

	.vaca-account__nav.vaca-panel {
		background: var(--vaca-pink);
		padding: 28px 24px 32px;
	}

	.vaca-account__nav-title {
		display: none;
	}

	.vaca-account__avatar {
		color: var(--vaca-pink);
		height: 56px;
		width: 56px;
	}

	.vaca-account__name {
		border-bottom: 0;
		color: #fff;
		font-size: 14px;
		margin-bottom: 14px;
		padding-bottom: 0;
	}

	.vaca-account__nav ul {
		gap: 10px;
	}

	.vaca-account__nav li a {
		font-size: 13px;
		padding: 7px 12px;
	}

	.vaca-account__nav li.is-active a {
		background: #fff;
		color: var(--vaca-brown);
	}

	.vaca-account__title {
		margin: 0 0 18px;
	}

	.vaca-tabs__item {
		font-size: 13px;
		padding: 9px 6px;
	}

	.vaca-order {
		gap: 6px 12px;
		grid-template-areas:
			"thumb info"
			"thumb status"
			"actions actions";
		grid-template-columns: 72px minmax(0, 1fr);
		padding: 16px;
	}

	.vaca-order__thumb {
		height: 56px;
		width: 72px;
	}

	.vaca-order__status {
		text-align: left;
	}

	.vaca-order__info p,
	.vaca-order__status {
		font-size: 12px;
		line-height: 1.6;
	}

	.vaca-order__actions :is(a, button).vaca-btn {
		font-size: 12px;
		min-height: 32px;
		padding: 6px 16px;
	}

	.woocommerce-EditAccountForm.vaca-form {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-EditAccountForm.vaca-form > .vaca-field:has(#account_email),
	.woocommerce-EditAccountForm.vaca-form > .vaca-field:has(#billing_phone) {
		grid-column: 1;
	}

	.vaca-field label,
	.vaca-form label:not(.vaca-check) {
		font-size: 13px;
	}

	.vaca-field :is(input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number], input[type=search], input[type=url], select, textarea),
	.vaca-form :is(input.input-text, select, textarea),
	.woocommerce form .form-row :is(input.input-text, textarea, select) {
		font-size: 16px;
		min-height: 40px;
		padding: 8px 16px;
	}

	/* Login e cadastro. */
	.vaca-auth.vaca-panel {
		padding: 28px 20px 32px;
	}

	.vaca-auth__switch {
		margin-bottom: 24px;
	}

	.vaca-social-btn,
	button.vaca-social-btn:focus {
		font-size: 13px;
		padding-inline: 44px;
	}

	/* Sobre nós: painel rosa com texto branco. */
	.vaca-about,
	.elementor .vaca-about {
		background: var(--vaca-pink);
		padding: 20px 16px 28px;
		--padding-top: 20px;
		--padding-right: 16px;
		--padding-bottom: 28px;
		--padding-left: 16px;
	}

	.vaca-about .vaca-breadcrumb {
		display: none;
	}

	.vaca-about .vaca-title,
	.elementor .vaca-about .vaca-title .elementor-heading-title,
	.vaca-about__text,
	.vaca-about__text p,
	.elementor .elementor-widget.vaca-about__text,
.elementor .elementor-widget.vaca-about__text p {
		color: #fff;
	}

	.vaca-about__text,
	.vaca-about__text p,
	.elementor .elementor-widget.vaca-about__text,
.elementor .elementor-widget.vaca-about__text p {
		font-size: 15px;
		line-height: 1.5;
	}

	.vaca-about__row,
	.elementor .vaca-about__row {
		flex-direction: column;
		gap: 12px;
	}

	.elementor .vaca-about__row--photos {
		flex-direction: row;
	}

	.elementor .vaca-about__row--intro .vaca-photo--leite {
		order: -1;
	}

	.vaca-photo,
	.elementor .vaca-photo {
		min-height: 160px;
	}

	.elementor .vaca-photo--leite {
		flex-basis: auto;
		width: 100%;
		--width: 100%;
	}

	.elementor .vaca-photo--fresco,
	.elementor .vaca-photo--queijos {
		flex: 1 1 0;
		min-height: 110px;
		width: auto;
		--width: auto;
	}

	/* Contato: formulário, ícones e ilustração embaixo. */
	.vaca-contact,
	.elementor .vaca-contact {
		flex-direction: column;
		gap: 0;
	}

	.elementor .vaca-contact__intro {
		display: contents;
	}

	.elementor .vaca-contact__intro > .elementor-element:not(.vaca-contact__art) {
		order: 1;
		padding: 0 16px;
	}

	.elementor .vaca-contact__intro .vaca-breadcrumb {
		display: none;
	}

	.elementor .vaca-contact__intro > .elementor-element:first-child {
		padding-top: 24px;
	}

	.elementor .vaca-contact__form-col {
		flex-basis: auto;
		order: 2;
		padding: 16px;
		width: 100%;
		--padding-top: 16px;
		--padding-right: 16px;
		--padding-bottom: 16px;
		--padding-left: 16px;
		--width: 100%;
	}

	.elementor .vaca-contact__art,
	.vaca-contact__art {
		margin-left: 0;
		min-height: 230px;
		order: 3;
		width: 100%;
		--width: 100%;
	}

	.vaca-contact-icons .vaca-social {
		gap: 36px;
	}

	.vaca-contact-icons .vaca-social a {
		color: var(--vaca-pink);
	}

	.vaca-contact-icons .vaca-icon {
		height: 26px;
		width: 26px;
	}

	/* WhatsApp flutuante menor. */
	.vaca-whatsapp-float {
		bottom: 16px;
		height: 54px;
		right: 16px;
		width: 54px;
	}

	.vaca-whatsapp-float .vaca-icon {
		height: 28px;
		width: 28px;
	}
}

@media (max-width: 380px) {
	.vaca-auth.vaca-panel {
		padding-inline: 16px;
	}

	.vaca-nav__list a {
		font-size: 13px;
		padding-inline: 4px;
	}
}

/* No desktop, o filtro fica sempre aberto. */
@media (min-width: 768px) {
	.vaca-filters__details > summary {
		cursor: default;
		pointer-events: none;
	}
}

/* =========================================================================
 * 18. Movimento reduzido
 * ====================================================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}

	:is(.woocommerce, .woocommerce-page) ul.products li.product:hover,
	:is(.woocommerce, .woocommerce-page) ul.products li.product:hover .vaca-card__media img,
	.vaca-social a:hover,
	.vaca-whatsapp-float:hover {
		transform: none;
	}
}
