/*
 * RVRT 2026 — componentes próprios do tema: botões, campos, páginas Jobs e Wish List, coração da
 * wish list e banner de cookies. Usam os tokens globais do kit (body.rv-kit-60) e copiam as
 * medidas dos componentes que o site já tinha: botões em pílula (25 px) de 16 px maiúsculos 600,
 * campos em pílula com contorno preto de 1 px, cartões com cantos de 25 px, tipografia General Sans.
 */

/* O atributo hidden ganha sempre (os componentes têm display próprio). */
.rv-botao[hidden], .rv-cookies[hidden], .rv-cookies [hidden], .rv-desejos__vazio[hidden] { display: none !important; }

:root {
	--rv-preto: var(--rv-global-color-primary, #191919);
	--rv-branco: var(--rv-global-color-secondary, #fff);
	--rv-azul: var(--rv-global-color-text, #0153ff);
	--rv-azul-escuro: var(--rv-global-color-b6582f7, #0040c5);
	--rv-fundo: var(--rv-global-color-accent, #f0f0f0);
	--rv-cinza: var(--rv-global-color-1346c54, #d9d9d9);
	--rv-letra: "General Sans", sans-serif;
	--rv-raio: 25px;
}

/* ── Botões (como «Find our products», «View bags», «Find more») ───────────── */

.rv-botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 40px;
	padding: 10px 24px 8px;
	border: 1px solid transparent;
	border-radius: var(--rv-raio);
	font-family: var(--rv-letra);
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
	letter-spacing: 0.05rem;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .3s, color .3s, border-color .3s;
}
.rv-botao:focus-visible { outline: 2px solid var(--rv-azul); outline-offset: 2px; }
.rv-botao[disabled] { opacity: .5; cursor: progress; }
.rv-botao--azul { background: var(--rv-azul); color: var(--rv-branco); }
.rv-botao--azul:hover, .rv-botao--azul:focus { background: var(--rv-azul-escuro); color: var(--rv-branco); }
.rv-botao--preto { background: var(--rv-preto); color: var(--rv-branco); }
.rv-botao--preto:hover, .rv-botao--preto:focus { background: var(--rv-azul); color: var(--rv-branco); }
.rv-botao--contorno { background: transparent; color: var(--rv-preto); border-color: var(--rv-preto); }
.rv-botao--contorno:hover, .rv-botao--contorno:focus { background: var(--rv-preto); color: var(--rv-branco); }
.rv-botao--contorno-claro { background: transparent; color: var(--rv-branco); border-color: var(--rv-branco); }
.rv-botao--contorno-claro:hover, .rv-botao--contorno-claro:focus { background: var(--rv-branco); color: var(--rv-preto); }
.rv-botao__seta { width: 14px; height: 14px; fill: currentColor; flex: none; }

/* ── Páginas (como as páginas de conteúdo: 1196 px, margens de 30 px) ───────── */

.rv-main { display: block; }
.rv-pagina {
	box-sizing: content-box;
	max-width: 1196px;
	margin: 0 auto;
	padding: 20px 30px 60px;
	color: var(--rv-preto);
	font-family: var(--rv-letra);
}
.rv-pagina__topo { margin-bottom: 30px; }
.rv-titulo {
	margin: 0 0 20px;
	font-family: var(--rv-letra);
	font-size: 24px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.1rem;
	text-transform: uppercase;
	color: var(--rv-preto);
}
.rv-subtitulo {
	margin: 0 0 20px;
	font-family: var(--rv-letra);
	font-size: 16px;
	font-weight: 500;
	line-height: 22px;
	letter-spacing: 0.05rem;
	text-transform: uppercase;
	color: var(--rv-preto);
}
.rv-texto, .rv-texto p {
	font-family: var(--rv-letra);
	font-size: 14px;
	font-weight: 500;
	line-height: 21px;
	letter-spacing: 0.05rem;
	color: var(--rv-preto);
}
.rv-texto p { margin: 0 0 14px; }
.rv-texto p:last-child { margin-bottom: 0; }
.rv-texto a { color: var(--rv-azul); }
.rv-pagina__intro { max-width: 760px; }
.rv-bloco + .rv-bloco { margin-top: 50px; }

@media (max-width: 767px) {
	.rv-pagina { padding: 20px 15px 40px; }
	.rv-titulo { font-size: 22px; }
	.rv-bloco + .rv-bloco { margin-top: 40px; }
}

/* ── Jobs: vagas ────────────────────────────────────────────────────────────── */

.rv-vagas { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.rv-vaga {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: start;
	gap: 14px 30px;
	padding: 30px;
	border-radius: var(--rv-raio);
	background: linear-gradient(292deg, #f0ebef 0%, var(--rv-cinza) 100%);
}
.rv-vaga__cabeca, .rv-vaga__resumo, .rv-vaga__detalhes { grid-column: 1; }
.rv-vaga__candidatar { grid-column: 2; grid-row: 1; align-self: start; }
.rv-vaga__titulo {
	margin: 0;
	font-family: var(--rv-letra);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.1rem;
	text-transform: uppercase;
	color: var(--rv-preto);
}
.rv-vaga__meta { margin: 8px 0 0; font-size: 12px; font-weight: 500; letter-spacing: 0.05rem; text-transform: uppercase; color: var(--rv-azul); }
.rv-vaga__resumo { margin: 0; max-width: 760px; }
.rv-vaga__mais {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	list-style: none;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05rem;
	color: var(--rv-preto);
}
.rv-vaga__mais::-webkit-details-marker { display: none; }
.rv-vaga__mais::before { content: "+"; font-size: 16px; line-height: 1; width: 11px; }
.rv-vaga__detalhes[open] .rv-vaga__mais::before { content: "–"; }
.rv-vaga__texto { margin-top: 14px; max-width: 760px; }
.rv-vaga__texto ul { margin: 0 0 14px; padding-left: 18px; }
.rv-vagas__vazio { max-width: 760px; margin: 0; }

@media (max-width: 767px) {
	.rv-vaga { grid-template-columns: 1fr; padding: 24px 20px; }
	.rv-vaga__candidatar { grid-column: 1; grid-row: auto; justify-self: start; }
	.rv-vaga__titulo { font-size: 20px; }
}

/* ── Jobs: formulário (campos como os da newsletter do rodapé) ──────────────── */

.rv-cartao-form { padding: 30px; border-radius: var(--rv-raio); background: var(--rv-branco); }
.rv-form__grelha { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.rv-campo { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.rv-campo--largo { grid-column: 1 / -1; }
.rv-campo__rotulo { font-size: 12px; font-weight: 500; letter-spacing: 0.05rem; text-transform: uppercase; color: var(--rv-preto); }
.rv-form .rv-input {
	box-sizing: border-box;
	width: 100%;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--rv-preto);
	border-radius: var(--rv-raio);
	background: transparent;
	font-family: var(--rv-letra);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.05rem;
	color: var(--rv-preto);
	transition: border-color .3s, box-shadow .3s;
}
.rv-form .rv-input::placeholder { color: var(--rv-preto); opacity: .45; }
.rv-form .rv-input:focus { outline: none; border-color: var(--rv-azul); box-shadow: 0 0 0 1px var(--rv-azul); }
.rv-form .rv-input--area { min-height: 130px; padding: 12px 16px; resize: vertical; border-radius: 20px; }
.rv-form .rv-input--select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23191919' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 12px 8px;
}
.rv-ficheiro { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; cursor: pointer; }
.rv-ficheiro input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.rv-ficheiro input:focus-visible + .rv-botao { outline: 2px solid var(--rv-azul); outline-offset: 2px; }
.rv-ficheiro__nome { font-size: 14px; font-weight: 500; letter-spacing: 0.05rem; color: var(--rv-preto); opacity: .7; word-break: break-all; }
.rv-consentimento { display: flex; gap: 10px; align-items: flex-start; margin: 20px 0 0; font-size: 13px; font-weight: 500; line-height: 19px; letter-spacing: 0.05rem; color: var(--rv-preto); cursor: pointer; }
.rv-consentimento input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--rv-azul); }
.rv-consentimento a { color: var(--rv-azul); }
.rv-form__fim { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 24px; }
.rv-form__mensagem { margin: 0; font-size: 14px; font-weight: 500; letter-spacing: 0.05rem; }
.rv-form__mensagem--ok { color: var(--rv-preto); }
.rv-form__mensagem--erro { color: #c62828; }
.rv-form--a-enviar { opacity: .7; }

@media (max-width: 767px) {
	.rv-cartao-form { padding: 24px 20px; }
	.rv-form__grelha { grid-template-columns: 1fr; }
	.rv-form__fim .rv-botao { width: 100%; }
}

/* ── Wish list: o coração ───────────────────────────────────────────────────── */

.rv-desejo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	cursor: pointer;
	color: var(--rv-preto);
	transition: color .3s, background-color .3s, transform .2s;
}
.rv-desejo svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; transition: fill .3s; }
.rv-desejo[aria-pressed="true"] { color: var(--rv-azul); }
.rv-desejo[aria-pressed="true"] svg { fill: currentColor; }
.rv-desejo:focus-visible { outline: 2px solid var(--rv-azul); outline-offset: 2px; }
.rv-desejo--pulso { animation: rv-pulso .35s ease; }
@keyframes rv-pulso { 50% { transform: scale(1.18); } }

/* Nos cartões: um círculo branco no canto da imagem. */
.rv-1263 .rv-widget-image .rv-widget-container { position: relative; }
.rv-desejo--cartao {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--rv-branco);
	box-shadow: 0 1px 6px rgba(0, 0, 0, .08);
	z-index: 2;
}
.rv-desejo--cartao:hover { color: var(--rv-azul); }
@media (max-width: 767px) {
	.rv-desejo--cartao { top: 8px; right: 8px; width: 32px; height: 32px; }
	.rv-desejo--cartao svg { width: 17px; height: 17px; }
}

/*
 * Na ficha: um círculo com contorno, à altura do «Add to cart». O CSS do Elementor estiliza todos os
 * botões do formulário (azul, flex-basis 100%), por isso aqui as regras ganham com !important.
 */
.rv-widget-woocommerce-product-add-to-cart form.cart .rv-desejo--ficha {
	flex: 0 0 50px !important;
	width: 50px !important;
	height: 50px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 0 0 10px !important;
	border: 1px solid var(--rv-preto) !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: var(--rv-preto) !important;
	box-shadow: none !important;
}
.rv-widget-woocommerce-product-add-to-cart form.cart .rv-desejo--ficha:hover,
.rv-widget-woocommerce-product-add-to-cart form.cart .rv-desejo--ficha[aria-pressed="true"] {
	border-color: var(--rv-azul) !important;
	color: var(--rv-azul) !important;
}

/* A página /wishlist/. */
.rv-desejos[aria-busy="true"] { min-height: 300px; }
.rv-desejos__vazio .rv-texto { margin: 0 0 20px; }

/* ── Interruptor (seletor de cookies) ───────────────────────────────────────── */

.rv-interruptor {
	appearance: none;
	-webkit-appearance: none;
	flex: none;
	position: relative;
	width: 40px;
	height: 22px;
	margin: 0;
	border-radius: 11px;
	background: rgba(255, 255, 255, .25);
	cursor: pointer;
	transition: background-color .25s;
}
.rv-interruptor::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--rv-branco);
	transition: transform .25s;
}
.rv-interruptor:checked { background: var(--rv-azul); }
.rv-interruptor:checked::after { transform: translateX(18px); }
.rv-interruptor:disabled { opacity: .55; cursor: default; }
.rv-interruptor:focus-visible { outline: 2px solid var(--rv-branco); outline-offset: 2px; }

/* ── Banner e seletor de cookies (como o rodapé: preto, cantos de 25 px) ───── */

.rv-cookies {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 100000;
	width: min(440px, calc(100vw - 40px));
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .25s, transform .25s;
	font-family: var(--rv-letra);
}
.rv-cookies--visivel { opacity: 1; transform: none; }
.rv-cookies__caixa {
	padding: 24px;
	border-radius: var(--rv-raio);
	background: var(--rv-preto);
	color: var(--rv-branco);
	box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
	max-height: calc(100vh - 40px);
	overflow-y: auto;
}
.rv-cookies__titulo { margin: 0 0 10px; font-size: 16px; font-weight: 500; line-height: 22px; letter-spacing: 0.05rem; text-transform: uppercase; color: var(--rv-branco); }
.rv-cookies__texto { margin: 0; font-size: 14px; font-weight: 500; line-height: 21px; letter-spacing: 0.05rem; color: var(--rv-branco); }
.rv-cookies__texto a { color: var(--rv-branco); text-decoration: underline; }
.rv-cookies__opcoes { margin: 18px 0 0; border-top: 1px solid rgba(255, 255, 255, .2); }
.rv-cookies__opcao { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .2); cursor: pointer; }
.rv-cookies__opcao-texto { display: flex; flex-direction: column; gap: 3px; }
.rv-cookies__opcao-nome { font-size: 14px; font-weight: 600; letter-spacing: 0.05rem; text-transform: uppercase; color: var(--rv-branco); }
.rv-cookies__opcao-desc { font-size: 12px; font-weight: 500; line-height: 17px; letter-spacing: 0.05rem; color: rgba(255, 255, 255, .7); }
.rv-cookies__botoes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 20px; }
.rv-cookies__botoes .rv-botao { font-size: 14px; min-height: 38px; padding: 9px 20px 7px; }
.rv-cookies__mais {
	padding: 0;
	margin-left: 4px;
	border: 0;
	background: none;
	font-family: var(--rv-letra);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05rem;
	color: var(--rv-branco);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.rv-cookies__mais:hover, .rv-cookies__mais:focus { color: var(--rv-cinza); }
.rv-cookies--preferencias { width: min(520px, calc(100vw - 40px)); }

@media (max-width: 767px) {
	.rv-cookies { left: 10px; right: 10px; bottom: 10px; width: auto; }
	.rv-cookies__caixa { padding: 20px; }
	.rv-cookies__botoes .rv-botao { flex: 1 1 auto; }
}

/*
 * Na wish list misturam-se chapéus (fotos quadradas, fundo branco) e malas (fotos verticais):
 * os cartões ficam todos da mesma altura, com a foto inteira ao centro num fundo branco e a faixa
 * preta do nome em baixo.
 */
.rv-desejos .rv-loop-item { height: 100%; }
.rv-desejos .rv-loop-item > .rv-con { height: 100%; background: var(--rv-branco); border-radius: var(--rv-raio); overflow: hidden; }
.rv-desejos .rv-loop-item .rv-widget-image { flex: 1 1 auto; display: flex; }
.rv-desejos .rv-loop-item .rv-widget-image > .rv-widget-container { flex: 1; display: flex; align-items: center; justify-content: center; }
.rv-desejos .rv-loop-item > .rv-con > a.rv-con { margin-top: auto; }

/* ── 404, pesquisa e arquivos ───────────────────────────────────────────────── */

.rv-pagina--curta { min-height: 45vh; }
.rv-pagina--curta .rv-pagina__topo .rv-texto { margin: 0; }
.rv-lista { list-style: none; margin: 0 0 30px; padding: 0; border-top: 1px solid var(--rv-preto); }
.rv-lista__item { border-bottom: 1px solid var(--rv-preto); }
.rv-lista__ligacao { display: flex; flex-direction: column; gap: 6px; padding: 18px 0; text-decoration: none; color: var(--rv-preto); }
.rv-lista__ligacao:hover .rv-lista__titulo { color: var(--rv-azul); }
.rv-lista__titulo { font-size: 16px; font-weight: 500; line-height: 22px; letter-spacing: 0.05rem; text-transform: uppercase; transition: color .3s; }
.rv-lista__resumo { max-width: 760px; }
.rv-paginacao .nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.rv-paginacao .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 14px;
	border: 1px solid var(--rv-preto); border-radius: var(--rv-raio); font-size: 14px; font-weight: 600; letter-spacing: 0.05rem;
	text-decoration: none; color: var(--rv-preto);
}
.rv-paginacao .page-numbers.current, .rv-paginacao .page-numbers:hover { background: var(--rv-preto); color: var(--rv-branco); }
.rv-desejos__vazio, .rv-pagina:has(.rv-desejos) { min-height: 0; }
.rv-pagina:has(.rv-desejos) { min-height: 45vh; }

/*
 * O reset do Hello pinta todos os <button> de rosa (#c36) em :hover e :focus. Os botões do tema
 * mantêm o fundo deles (o coração dos cartões fica branco, o da ficha e o «Preferences» transparentes).
 */
button.rv-desejo--cartao, button.rv-desejo--cartao:hover, button.rv-desejo--cartao:focus {
	background-color: var(--rv-branco);
	border: 0;
}
button.rv-desejo--cartao:hover, button.rv-desejo--cartao:focus-visible { color: var(--rv-azul); }
button.rv-desejo--cartao[aria-pressed="false"]:focus:not(:focus-visible) { color: var(--rv-preto); }
button.rv-cookies__mais, button.rv-cookies__mais:hover, button.rv-cookies__mais:focus {
	background-color: transparent;
	border: 0;
}

/* ══ Vistoria de 2026-10-18 (UI/UX, acessibilidade, conversão) ══════════════ */

/* Foco visível e da marca em todo o site (teclado). */
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--rv-azul);
	outline-offset: 2px;
}
.rv-field-textual:focus, .rv-form .rv-input:focus {
	outline: none;
	border-color: var(--rv-azul) !important;
	box-shadow: 0 0 0 1px var(--rv-azul);
}

/* Rodapé: texto legal com contraste suficiente (tinha 2,6:1). */
.rv-location-footer p.rv-heading-title, .rv-location-footer p.rv-heading-title a {
	color: rgba(25, 25, 25, .72) !important;
}

/* Cabeçalho: alvos de toque de 44 px no hambúrguer e no carrinho, sem mudar o desenho. */
.hamburger, #rv-menu-cart__toggle_button { position: relative; }
.hamburger::after { content: ""; position: absolute; inset: -15px -6px; }
#rv-menu-cart__toggle_button::after { content: ""; position: absolute; inset: -9px; }
/* Número de artigos: um círculo azul legível (era transparente). */
.rv-menu-cart__toggle .rv-button-icon-qty[data-counter] {
	background-color: var(--rv-azul) !important;
	color: var(--rv-branco) !important;
	font-family: var(--rv-letra);
	font-size: 10px;
	font-weight: 600;
	min-width: 17px;
	height: 17px;
	line-height: 17px;
	padding: 0 3px;
	border-radius: 9px;
}
/* Cabeçalho ao fazer scroll: fundo quase opaco, o texto deixa de se ver por trás. */
.frosted-glass.scrolled { background-color: rgba(240, 240, 240, .92) !important; }

/* Mini-carrinho: «×» de remover visível. */
.rv-menu-cart__product-remove { color: var(--rv-preto) !important; border-color: rgba(25, 25, 25, .45) !important; }
.rv-menu-cart__product-remove:hover { border-color: var(--rv-preto) !important; }

/* Cartões: o «Add to cart» de passar o rato também aparece com o teclado. */
.item-loop:focus-within .showhover { opacity: 1; }

/* Selos «1 of 1» e «Sold» nos cartões. */
.rv-selo {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 6px 10px 5px;
	border-radius: var(--rv-raio);
	background: var(--rv-branco);
	color: var(--rv-preto);
	font-family: var(--rv-letra);
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.08rem;
	text-transform: uppercase;
	pointer-events: none;
}
.rv-selo--vendido { background: var(--rv-preto); color: var(--rv-branco); }
.rv-esgotado .rv-widget-image img { opacity: .55; filter: grayscale(.4); }
@media (max-width: 767px) {
	.rv-selo { top: 8px; left: 8px; padding: 5px 8px 4px; font-size: 10px; }
}

/* Ficha: «One of a kind» / «Sold» e a linha de envio debaixo do botão. */
.rv-widget-woocommerce-product-add-to-cart p.stock {
	margin: 0 0 12px;
	font-family: var(--rv-letra);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08rem;
	text-transform: uppercase;
	color: var(--rv-azul) !important;
}
.rv-widget-woocommerce-product-add-to-cart p.stock.out-of-stock {
	display: inline-block;
	padding: 10px 24px 8px;
	border-radius: var(--rv-raio);
	background: var(--rv-preto);
	color: var(--rv-branco) !important;
	font-size: 16px;
}
.rv-envio-resumo {
	margin: 14px 0 0;
	font-family: var(--rv-letra);
	font-size: 12px;
	font-weight: 500;
	line-height: 18px;
	letter-spacing: 0.05rem;
	color: rgba(25, 25, 25, .72);
}
.rv-envio-resumo a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Ficha no telemóvel: barra de compra fixa quando o botão sai do ecrã. */
.rv-barra-compra {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 15px calc(12px + env(safe-area-inset-bottom));
	background: var(--rv-fundo);
	border-top: 1px solid rgba(25, 25, 25, .12);
	box-shadow: 0 -6px 20px rgba(0, 0, 0, .06);
	transform: translateY(110%);
	transition: transform .25s ease;
	font-family: var(--rv-letra);
}
.rv-barra-compra--visivel { transform: none; }
.rv-barra-compra__info { display: flex; flex-direction: column; min-width: 0; }
.rv-barra-compra__nome { font-size: 12px; font-weight: 500; letter-spacing: 0.05rem; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--rv-preto); }
.rv-barra-compra__preco { font-size: 14px; font-weight: 600; color: var(--rv-preto); }
.rv-barra-compra .rv-botao { flex: none; min-height: 44px; }
@media (min-width: 768px) { .rv-barra-compra { display: none; } }

/* ── Carrinho e checkout com a marca (eram WooCommerce Blocks genéricos) ── */
.rv-cabeca-loja { box-sizing: content-box; max-width: 1140px; margin: 0 auto; padding: 20px 0 10px; }
.rv-cabeca-loja .rv-titulo { margin: 0; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart *, .wp-block-woocommerce-checkout * {
	font-family: var(--rv-letra);
}
.wc-block-components-product-name, .wc-block-components-product-name:hover { color: var(--rv-preto) !important; font-weight: 600; }
.wc-block-components-title, .wc-block-cart-items__header, .wc-block-components-checkout-step__title {
	text-transform: uppercase;
	letter-spacing: 0.05rem;
	font-weight: 500 !important;
}
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button,
.wc-block-components-button.contained {
	min-height: 50px;
	border: 0 !important;
	border-radius: var(--rv-raio) !important;
	background: var(--rv-azul) !important;
	color: var(--rv-branco) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	letter-spacing: 0.05rem;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .3s;
}
.wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button.contained:hover { background: var(--rv-azul-escuro) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea {
	border: 1px solid var(--rv-preto) !important;
	border-radius: var(--rv-raio) !important;
	background-color: transparent !important;
}
.wc-block-components-text-input input:focus, .wc-blocks-components-select__select:focus, .wc-block-components-textarea:focus {
	box-shadow: 0 0 0 1px var(--rv-azul) !important;
	border-color: var(--rv-azul) !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label { padding-left: 4px; }
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-components-totals-wrapper { border-color: rgba(25, 25, 25, .12); }
/* Caixa «Express Checkout» vazia (sem Apple Pay / Google Pay neste aparelho): fica escondida. */
.wp-block-woocommerce-checkout-express-payment-block:not(:has(iframe, button)) { display: none; }
.wc-block-components-express-payment-continue-rule:only-child { display: none; }
.rv-envio-resumo--carrinho { text-align: center; margin-top: 12px; }

/* Home: o título «How to find us?» estava num castanho fora da paleta. */
.rv-2 .rv-element.rv-element-0372c26 .rv-heading-title { color: var(--rv-preto) !important; }
/* Carrinho e checkout: o «alignwide» do reset puxava o bloco 80 px para fora da coluna (colava à margem entre ~1200 e 1360 px). */
.woocommerce-cart .page-content > .alignwide, .woocommerce-checkout .page-content > .alignwide {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100%;
}

/* ── My Account (template-parts/conta.php e woocommerce/myaccount/) ─────────── */

.rv-conta__topo { margin-bottom: 40px; }
.rv-conta__topo .rv-titulo { margin-bottom: 14px; }
.rv-conta__intro { max-width: 560px; margin: 0; }
.rv-conta .rv-subtitulo { margin-bottom: 24px; }
.rv-conta .rv-conta__nota { margin: -10px 0 24px; max-width: 460px; }

/* Botões: os da WooCommerce (.woocommerce button.button) passavam à frente do .rv-botao. */
.rv-conta .woocommerce :is(button.button, a.button, .rv-botao) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 44px;
	margin: 0;
	padding: 11px 26px 9px;
	border: 1px solid var(--rv-azul);
	border-radius: var(--rv-raio);
	background: var(--rv-azul);
	color: var(--rv-branco);
	font-family: var(--rv-letra);
	font-size: 15px;
	font-weight: 600;
	line-height: 20px;
	letter-spacing: 0.05rem;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .3s, color .3s, border-color .3s;
}
.rv-conta .woocommerce :is(button.button, a.button, .rv-botao):hover { background: var(--rv-azul-escuro); border-color: var(--rv-azul-escuro); color: var(--rv-branco); }
.rv-conta .woocommerce :is(button.button, a.button, .rv-botao):focus-visible { outline: 2px solid var(--rv-preto); outline-offset: 2px; }
.rv-conta .woocommerce a.rv-botao--preto { background: var(--rv-preto); border-color: var(--rv-preto); }
.rv-conta .woocommerce a.rv-botao--preto:hover { background: var(--rv-azul); border-color: var(--rv-azul); }
.rv-conta .woocommerce :is(.rv-botao--contorno, .woocommerce-orders-table a.button) { min-height: 36px; padding: 8px 18px 6px; background: transparent; border-color: var(--rv-preto); color: var(--rv-preto); font-size: 13px; }
.rv-conta .woocommerce :is(.rv-botao--contorno, .woocommerce-orders-table a.button):hover { background: var(--rv-preto); border-color: var(--rv-preto); color: var(--rv-branco); }
.rv-conta .woocommerce button.rv-conta__botao-claro { background: var(--rv-branco); border-color: var(--rv-branco); color: var(--rv-azul); }
.rv-conta .woocommerce button.rv-conta__botao-claro:hover { background: var(--rv-preto); border-color: var(--rv-preto); color: var(--rv-branco); }
.rv-conta .woocommerce button.rv-conta__botao-claro:focus-visible { outline-color: var(--rv-branco); }

/* Campos: etiqueta pequena em maiúsculas e campo em pílula. */
.rv-conta .woocommerce form .form-row { margin: 0 0 18px; padding: 0; }
.rv-conta .woocommerce form .form-row label:not(.woocommerce-form__label-for-checkbox) {
	display: block;
	margin: 0 0 8px 4px;
	font-family: var(--rv-letra);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.08rem;
	text-transform: uppercase;
	color: inherit;
}
.rv-conta .woocommerce form .form-row .required { color: inherit; text-decoration: none; }
.rv-conta .woocommerce form .form-row :is(.input-text, select),
.rv-conta .woocommerce form .form-row .select2-container .select2-selection {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 12px 22px;
	border: 1px solid var(--rv-preto) !important;
	border-radius: var(--rv-raio) !important;
	background: transparent !important;
	color: var(--rv-preto);
	font-family: var(--rv-letra);
	font-size: 15px;
	font-weight: 500;
	line-height: 22px;
	box-shadow: none;
	outline: 0;
	transition: border-color .2s, box-shadow .2s;
}
.rv-conta .woocommerce form .form-row .select2-container .select2-selection { display: flex; align-items: center; padding-block: 0; }
.rv-conta .woocommerce form .form-row .select2-selection__arrow { top: 50%; right: 14px; transform: translateY(-50%); }
.rv-conta .woocommerce form .form-row :is(.input-text, select):focus { border-color: var(--rv-azul) !important; box-shadow: 0 0 0 1px var(--rv-azul); }
.rv-conta .woocommerce form .form-row.woocommerce-invalid .input-text { border-color: #d63638 !important; }
.rv-conta .woocommerce form .form-row .show-password-input { top: 50%; right: 18px; transform: translateY(-50%); }
.rv-conta .woocommerce form .password-input { display: block; }
.rv-conta .woocommerce-password-strength { margin-top: 8px; border-radius: var(--rv-raio); font-family: var(--rv-letra); font-size: 13px; }
.rv-conta .woocommerce-password-hint { display: block; margin-top: 6px; font-size: 13px; line-height: 1.5; }
.rv-conta .cf-turnstile { margin: 4px 0 18px; }

/* ── Sem sessão: login no cartão branco, registo no painel azul ── */
.rv-conta__entrada {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	align-items: stretch;
}
.rv-conta__entrada--so-login { grid-template-columns: minmax(0, 560px); }
.rv-conta__cartao {
	padding: 44px 48px;
	border-radius: var(--rv-raio);
	background: var(--rv-branco);
	color: var(--rv-preto);
}
.rv-conta .woocommerce .rv-conta__cartao form.woocommerce-form { margin: 0; padding: 0; border: 0; border-radius: 0; }
.rv-conta__cartao--registo { background: var(--rv-azul); color: var(--rv-branco); }
.rv-conta__cartao--registo :is(.rv-subtitulo, .rv-texto, .rv-texto p) { color: var(--rv-branco); }
.rv-conta .rv-conta__cartao--registo form .form-row .input-text { border-color: var(--rv-branco) !important; background: var(--rv-branco) !important; }
.rv-conta .rv-conta__cartao--registo form .form-row .input-text:focus { border-color: var(--rv-preto) !important; box-shadow: 0 0 0 1px var(--rv-preto); }
.rv-conta__cartao--registo .woocommerce-privacy-policy-text p { font-size: 13px; line-height: 1.5; color: var(--rv-branco); }
.rv-conta__cartao--registo a { color: var(--rv-branco); text-decoration: underline; }
.rv-conta .woocommerce form .rv-conta__linha::before, .rv-conta .woocommerce form .rv-conta__linha::after { display: none; }
.rv-conta__linha {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 20px;
}
.rv-conta .woocommerce .rv-conta__lembrar {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05rem;
	cursor: pointer;
}
.rv-conta__lembrar input { width: 18px; height: 18px; margin: 0; accent-color: var(--rv-azul); }
.rv-conta__esqueci, .rv-conta .woocommerce-LostPassword a {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05rem;
	color: var(--rv-preto);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.rv-conta__esqueci:hover { color: var(--rv-azul); }
.rv-conta .woocommerce form .rv-conta__acao { margin: 26px 0 0; }

/* Recuperar e repor a palavra-passe: o mesmo cartão branco. */
.rv-conta .woocommerce-ResetPassword {
	max-width: 560px;
	margin: 0;
	padding: 44px 48px;
	border: 0;
	border-radius: var(--rv-raio);
	background: var(--rv-branco);
}
.rv-conta .woocommerce-ResetPassword > p:first-child { margin: 0 0 24px; font-size: 14px; line-height: 21px; letter-spacing: 0.05rem; }
.rv-conta .woocommerce-ResetPassword :is(.form-row-first, .form-row-last) { float: none; width: auto; }

/* ── Com sessão: menu em pílulas + conteúdo ── */
.rv-conta--sessao .woocommerce {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 20px 60px;
	align-items: start;
}
.rv-conta--sessao .woocommerce::before, .rv-conta--sessao .woocommerce::after { display: none; }
.rv-conta--sessao .woocommerce > :not(.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content) { grid-column: 1 / -1; }
.rv-conta .woocommerce-MyAccount-navigation, .rv-conta .woocommerce-MyAccount-content { float: none; width: auto; }
.rv-conta__menu { position: sticky; top: 110px; }
.rv-conta__menu ul { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; }
.rv-conta__menu li { margin: 0; }
.rv-conta__menu a {
	display: block;
	padding: 11px 20px 9px;
	border-radius: var(--rv-raio);
	font-family: var(--rv-letra);
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0.05rem;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--rv-preto);
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.rv-conta__menu a:hover { background: var(--rv-branco); color: var(--rv-preto); }
.rv-conta__menu .is-active a, .rv-conta__menu a[aria-current="page"] { background: var(--rv-preto); color: var(--rv-branco); }
.rv-conta__menu .rv-conta__sair { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(25, 25, 25, .15); }
.rv-conta__menu .rv-conta__sair a { color: rgba(25, 25, 25, .72); }
.rv-conta__menu .rv-conta__sair a:hover { color: var(--rv-preto); }
.rv-conta .woocommerce-MyAccount-content { font-family: var(--rv-letra); font-size: 14px; line-height: 21px; letter-spacing: 0.05rem; color: var(--rv-preto); }
.rv-conta .woocommerce-MyAccount-content > p:first-child:not([class]) { margin-top: 0; }
.rv-conta .woocommerce-MyAccount-content :is(h2, h3, legend) {
	margin: 0 0 20px;
	padding: 0;
	font-family: var(--rv-letra);
	font-size: 16px;
	font-weight: 500;
	line-height: 22px;
	letter-spacing: 0.05rem;
	text-transform: uppercase;
	color: inherit;
}
.rv-conta .woocommerce-MyAccount-content a:not(.button, .rv-botao) { color: var(--rv-azul); }

/* Painel: a última encomenda e os atalhos (lista, não cartões iguais). */
.rv-conta__encomenda {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 40px;
	padding: 30px 36px;
	border-radius: var(--rv-raio);
	background: var(--rv-branco);
}
.rv-conta__encomenda--vazia p { margin: 0; }
.rv-conta__dados { display: flex; flex-wrap: wrap; gap: 20px 48px; margin: 0; }
.rv-conta__dados dt { margin: 0 0 6px; font-size: 12px; font-weight: 500; letter-spacing: 0.08rem; text-transform: uppercase; color: rgba(25, 25, 25, .72); }
.rv-conta__dados dd { margin: 0; font-size: 16px; font-weight: 500; line-height: 22px; }
.rv-conta__estado {
	display: inline-block;
	padding: 3px 12px 2px;
	border-radius: var(--rv-raio);
	background: var(--rv-fundo);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.05rem;
	text-transform: uppercase;
}
.rv-conta__estado--processing { background: var(--rv-azul); color: var(--rv-branco); }
.rv-conta__estado--completed { background: var(--rv-preto); color: var(--rv-branco); }
.rv-conta__atalhos { margin: 50px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(25, 25, 25, .15); }
.rv-conta__atalhos li { margin: 0; border-bottom: 1px solid rgba(25, 25, 25, .15); }
.rv-conta .woocommerce-MyAccount-content .rv-conta__atalhos a {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 4px 20px;
	padding: 22px 6px;
	color: var(--rv-preto);
	text-decoration: none;
}
.rv-conta__atalho-nome { font-size: 16px; font-weight: 500; line-height: 22px; letter-spacing: 0.05rem; text-transform: uppercase; }
.rv-conta__atalho-texto { grid-column: 1; font-size: 14px; color: rgba(25, 25, 25, .72); }
.rv-conta__atalhos .rv-botao__seta { grid-column: 2; grid-row: 1 / 3; width: 16px; height: 16px; transition: transform .25s; }
.rv-conta .woocommerce-MyAccount-content .rv-conta__atalhos a:hover { color: var(--rv-azul); }
.rv-conta__atalhos a:hover .rv-botao__seta { transform: translateX(4px); }

/* Encomendas */
.rv-conta .woocommerce-orders-table, .rv-conta .woocommerce-table--order-details, .rv-conta .woocommerce-MyAccount-paymentMethods {
	width: 100%;
	margin: 0 0 30px;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--rv-raio);
	background: var(--rv-branco);
	overflow: hidden;
}
.rv-conta .woocommerce-MyAccount-content table :is(th, td) { padding: 16px 22px; border: 0; border-top: 1px solid rgba(25, 25, 25, .1); background: transparent; text-align: left; vertical-align: middle; }
.rv-conta .woocommerce-MyAccount-content table thead th { border-top: 0; font-size: 12px; font-weight: 500; letter-spacing: 0.08rem; text-transform: uppercase; color: rgba(25, 25, 25, .72); }
.rv-conta .woocommerce-MyAccount-content table tbody tr:hover > * { background: transparent; }
.rv-conta .woocommerce-orders-table__cell-order-actions { text-align: right !important; }
.rv-conta .woocommerce-orders-table__cell-order-actions .button + .button { margin-left: 8px; }
.rv-conta .woocommerce-pagination { display: flex; gap: 10px; }
.rv-conta mark { background: transparent; color: inherit; font-weight: 600; }
.rv-conta .woocommerce-customer-details address { padding: 26px 30px; border: 0; border-radius: var(--rv-raio); background: var(--rv-branco); font-style: normal; line-height: 1.6; }

/* Moradas */
.rv-conta .col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; width: auto; }
.rv-conta .col2-set::before, .rv-conta .col2-set::after { display: none; }
.rv-conta .col2-set > * { float: none !important; width: auto !important; max-width: none; }
.rv-conta__morada { padding: 30px 32px; border-radius: var(--rv-raio); background: var(--rv-branco); }
.rv-conta .woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.rv-conta .woocommerce-Address-title :is(h2, h3) { margin: 0; }
.rv-conta .woocommerce .woocommerce-Address-title::before, .rv-conta .woocommerce .woocommerce-Address-title::after { display: none; }
.rv-conta .woocommerce-Address-title .edit { float: none; }
.rv-conta .woocommerce-Address address { margin: 0; font-style: normal; line-height: 1.6; }

/* Formulários de dados da conta e de morada */
.rv-conta :is(.woocommerce-EditAccountForm, .woocommerce-address-fields) { padding: 36px 40px; border-radius: var(--rv-raio); background: var(--rv-branco); }
.rv-conta .woocommerce-EditAccountForm fieldset { margin: 30px 0 10px; padding: 0; border: 0; }
.rv-conta .woocommerce form .form-row :is(em, .description) { display: block; margin: 6px 0 0 4px; font-size: 13px; font-style: normal; color: rgba(25, 25, 25, .72); }
.rv-conta .woocommerce-address-fields__field-wrapper::after { content: ""; display: table; clear: both; }

/* Avisos da WooCommerce dentro da conta */
.rv-conta :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	margin: 0 0 24px;
	padding: 18px 24px 18px 52px;
	border: 0 !important;
	border-radius: var(--rv-raio);
	background: var(--rv-branco);
	color: var(--rv-preto);
	font-family: var(--rv-letra);
	font-size: 14px;
	line-height: 21px;
	letter-spacing: 0.05rem;
	list-style: none;
}
.rv-conta :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { top: 50%; left: 22px; transform: translateY(-50%); }
.rv-conta :is(.woocommerce-message, .woocommerce-info)::before { color: var(--rv-azul); }
.rv-conta :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::after { display: none; }
.rv-conta .woocommerce-error li { margin: 0; width: 100%; }
.rv-conta :is(.woocommerce-message, .woocommerce-info) .button { order: 2; float: none; }

@media (max-width: 1024px) {
	.rv-conta--sessao .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.rv-conta__menu { position: static; margin: 0 -30px; }
	.rv-conta__menu ul { flex-direction: row; gap: 6px; padding: 0 30px; overflow-x: auto; scrollbar-width: none; }
	.rv-conta__menu ul::-webkit-scrollbar { display: none; }
	.rv-conta__menu .rv-conta__sair { margin: 0 0 0 10px; padding: 0 0 0 16px; border-top: 0; border-left: 1px solid rgba(25, 25, 25, .15); }
	.rv-conta__menu a { border: 1px solid rgba(25, 25, 25, .15); }
	.rv-conta__menu .is-active a { border-color: var(--rv-preto); }
	.rv-conta__cartao, .rv-conta .woocommerce-ResetPassword { padding: 36px 32px; }
}
@media (max-width: 767px) {
	.rv-conta__topo { margin-bottom: 26px; }
	.rv-conta__entrada { grid-template-columns: minmax(0, 1fr); }
	.rv-conta__cartao, .rv-conta .woocommerce-ResetPassword, .rv-conta :is(.woocommerce-EditAccountForm, .woocommerce-address-fields) { padding: 30px 22px; }
	.rv-conta__menu { margin: 0 -15px; }
	.rv-conta__menu ul { padding: 0 15px; }
	.rv-conta .woocommerce form .rv-conta__acao .button, .rv-conta .woocommerce-ResetPassword .button { width: 100%; }
	.rv-conta__encomenda { padding: 26px 22px; }
	.rv-conta__encomenda .rv-botao { width: 100%; }
	.rv-conta__dados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
	.rv-conta .col2-set { grid-template-columns: minmax(0, 1fr); }
	.rv-conta__morada { padding: 26px 22px; }
	.rv-conta .woocommerce form :is(.form-row-first, .form-row-last) { float: none; width: 100%; }
	/* Tabela de encomendas: a WooCommerce passa-a a linhas com a etiqueta de cada célula. */
	.rv-conta .shop_table_responsive tr { display: block; padding: 8px 0; border-top: 1px solid rgba(25, 25, 25, .1); }
	.rv-conta .shop_table_responsive tr:first-child { border-top: 0; }
	.rv-conta .woocommerce-MyAccount-content .shop_table_responsive :is(th, td) { padding: 8px 20px; border-top: 0; }
	.rv-conta .shop_table_responsive td::before { font-weight: 500; text-transform: uppercase; font-size: 12px; letter-spacing: 0.08rem; color: rgba(25, 25, 25, .72); }
	.rv-conta .woocommerce-orders-table__cell-order-actions { text-align: left !important; }
}

/* ── Ficha de produto (revisão 2026-10-18) ──────────────────────────────────── */

/* Galeria: os mesmos cantos de 25 px com uma ou várias fotos (só a de várias fotos os tinha). */
.single-product .woocommerce-product-gallery__image { border-radius: var(--rv-raio); overflow: hidden; }
.single-product .woocommerce-product-gallery__trigger { background: var(--rv-branco); border-radius: 50%; }

/* Título e preço lidos como um bloco; o preço com mais peso. */
.single-product .rv-element-4c6f60f { margin-top: -10px; }
.single-product .rv-element-4c6f60f .price { font-size: 18px !important; font-weight: 500; line-height: 24px !important; letter-spacing: 0.05rem; color: var(--rv-preto); }

/* Linha de envio: cada parte inteira, sem «·» a começar uma linha. */
.rv-envio-resumo span { white-space: nowrap; }

/* Acordeão (Details, Care, Shipping): a linha passa a fechar cada item, aberto ou fechado. */
.rv-element-78938c8 > .rv-widget-container > .rv-n-accordion > .rv-n-accordion-item > .rv-n-accordion-item-title { border-bottom-width: 0 !important; padding: 14px 6px; }
.rv-element-78938c8 > .rv-widget-container > .rv-n-accordion > .rv-n-accordion-item { border-bottom: 1px solid rgba(25, 25, 25, .25); }
.rv-element-78938c8 > .rv-widget-container > .rv-n-accordion > .rv-n-accordion-item:first-child { border-top: 1px solid rgba(25, 25, 25, .25); }
.rv-element-78938c8 .rv-n-accordion-item-title-text { font-weight: 500; letter-spacing: 0.05rem; text-transform: uppercase; font-size: 14px; }
.rv-element-78938c8 .rv-n-accordion-item-title:hover .rv-n-accordion-item-title-text { color: var(--rv-azul); }
.rv-element-78938c8 .rv-n-accordion-item > [role="region"] { padding: 0 6px 22px 30px; }
.rv-element-78938c8 .rv-n-accordion-item > [role="region"] p { max-width: 62ch; }
@media (max-width: 767px) {
	.rv-element-78938c8 .rv-n-accordion-item > [role="region"] { padding: 0 6px 20px; }
}

/* Acordeão: só um ícone de cada vez (− aberto, + fechado). */
.rv-element-78938c8 .rv-n-accordion-item:not([open]) .rv-opened,
.rv-element-78938c8 .rv-n-accordion-item[open] .rv-closed { display: none !important; }
.rv-element-78938c8 .rv-n-accordion-item[open] .rv-opened,
.rv-element-78938c8 .rv-n-accordion-item:not([open]) .rv-closed { display: flex !important; }

/* Quantidade: pílula com − e + (tema.js). */
.single-product .rv-add-to-cart .quantity.rv-qtd {
	display: inline-flex;
	align-items: center;
	flex: none;
	height: 50px;
	margin: 0;
	border: 1px solid var(--rv-preto);
	border-radius: var(--rv-raio);
	background: transparent;
	overflow: hidden;
}
.single-product .rv-add-to-cart .rv-qtd input.qty {
	width: 34px !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	font-family: var(--rv-letra);
	font-size: 16px !important;
	font-weight: 500;
	text-align: center;
	color: var(--rv-preto);
	-moz-appearance: textfield;
	appearance: textfield;
	transition: none !important;
}
.single-product .rv-add-to-cart .rv-qtd input.qty::-webkit-inner-spin-button,
.single-product .rv-add-to-cart .rv-qtd input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.single-product .rv-add-to-cart .rv-qtd input.qty:focus-visible { outline: 2px solid var(--rv-azul); outline-offset: -2px; }
.single-product .rv-add-to-cart .rv-qtd .rv-qtd__botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 100%;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--rv-preto) !important;
	font-family: var(--rv-letra);
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	transition: color .2s, background-color .2s;
}
.single-product .rv-add-to-cart .rv-qtd .rv-qtd__botao:hover:not(:disabled) { color: var(--rv-azul) !important; }
.rv-qtd__botao:focus-visible { outline: 2px solid var(--rv-azul); outline-offset: -4px; border-radius: var(--rv-raio); }
.rv-qtd__botao:disabled { opacity: .3; cursor: default; }

/* Meios de pagamento por baixo do «Add to cart». */
.rv-pagamentos {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.rv-pagamentos li { margin: 0; line-height: 0; }
.rv-pagamentos img { display: block; width: 38px; height: 24px; border-radius: 4px; box-shadow: 0 0 0 1px rgba(25, 25, 25, .12); }
.wcpay-express-checkout-wrapper + .rv-pagamentos { margin-top: 0; }
@media (max-width: 767px) {
	.single-product .rv-add-to-cart .quantity.rv-qtd { gap: 0; padding: 0; }
	.single-product .rv-add-to-cart .rv-qtd .rv-qtd__botao { flex: 0 0 32px !important; width: 32px; }
	.single-product .rv-add-to-cart .rv-qtd input.qty { flex: 0 0 26px; width: 26px !important; }
	.single-product .rv-add-to-cart form.cart .single_add_to_cart_button { flex: 1 1 auto !important; min-width: 0; }
	.rv-pagamentos { gap: 5px; }
	.rv-pagamentos img { width: 34px; height: 21px; }
}
/* Mais ar entre o preço e a compra (pedido do Rafael, 2026-10-18). */
.single-product .rv-element-3786ecf form.cart { margin-top: 16px !important; }
@media (max-width: 767px) { .single-product .rv-element-3786ecf form.cart { margin-top: 10px !important; } }

/* ── Galeria da ficha (2026-10-18) ──────────────────────────────────────────── */
.single-product .woocommerce-product-gallery { position: relative; }
.single-product .woocommerce-product-gallery .flex-viewport { border-radius: var(--rv-raio); }

/* Setas: círculos brancos como a lupa; só com mais de uma foto. */
.single-product .woocommerce-product-gallery .flex-direction-nav { margin: 0; padding: 0; list-style: none; }
.single-product .woocommerce-product-gallery .flex-direction-nav li { margin: 0; }
.single-product .woocommerce-product-gallery .flex-direction-nav a {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-top: -22px;
	border-radius: 50%;
	background: var(--rv-branco);
	color: transparent;
	font-size: 0;
	text-decoration: none;
	box-shadow: 0 1px 3px rgba(25, 25, 25, .12);
	opacity: 0;
	transition: opacity .2s, transform .2s;
}
.single-product .woocommerce-product-gallery .flex-direction-nav a::before {
	content: "";
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--rv-preto);
	border-right: 2px solid var(--rv-preto);
}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev::before { transform: translateX(2px) rotate(-135deg); }
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next::before { transform: translateX(-2px) rotate(45deg); }
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev { left: 16px; }
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next { right: 16px; }
.single-product .woocommerce-product-gallery:hover .flex-direction-nav a,
.single-product .woocommerce-product-gallery .flex-direction-nav a:focus-visible { opacity: 1; }
.single-product .woocommerce-product-gallery .flex-direction-nav a:hover { transform: scale(1.06); }
.single-product .woocommerce-product-gallery .flex-direction-nav a:focus-visible { outline: 2px solid var(--rv-azul); outline-offset: 2px; }
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-disabled { opacity: 0 !important; pointer-events: none; }

/* Miniaturas */
.single-product .woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
.single-product .woocommerce-product-gallery .flex-control-thumbs li { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.single-product .woocommerce-product-gallery .flex-control-thumbs img {
	display: block;
	border-radius: 14px;
	opacity: .5;
	cursor: pointer;
	transition: opacity .2s, box-shadow .2s;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: .85; }
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; box-shadow: 0 0 0 1px var(--rv-preto); }

/* Desktop: miniaturas em coluna à esquerda, a foto principal cabe no ecrã. */
@media (min-width: 1025px) {
	.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) {
		display: grid !important;
		grid-template-columns: 84px minmax(0, 1fr);
		gap: 14px;
		align-items: start;
	}
	.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) .flex-viewport { grid-column: 2; grid-row: 1; margin: 0 !important; }
	.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) .flex-control-thumbs { grid-column: 1; grid-row: 1; flex-direction: column; }
	.single-product .woocommerce-product-gallery .flex-control-thumbs img { width: 84px; height: auto; }
	.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) .flex-direction-nav { position: absolute; inset: 0 0 0 98px; pointer-events: none; }
	.single-product .woocommerce-product-gallery:has(.flex-control-thumbs) .flex-direction-nav a { pointer-events: auto; }
}

/* Telemóvel e tablet: setas sempre visíveis; no telemóvel, foto quadrada e pontos em vez de miniaturas. */
@media (max-width: 1024px) {
	.single-product .woocommerce-product-gallery .flex-direction-nav a { opacity: .92; width: 38px; height: 38px; margin-top: -19px; }
	.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev { left: 10px; }
	.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next { right: 10px; }
	.single-product .woocommerce-product-gallery .flex-control-thumbs { margin-top: 10px; }
	.single-product .woocommerce-product-gallery .flex-control-thumbs img { width: 72px; height: auto; }
}
@media (max-width: 767px) {
	.single-product .woocommerce-product-gallery { margin-bottom: 0 !important; }
	.single-product .rv-element-3849e13 > .rv-widget-container { margin-bottom: -6px !important; }
	.single-product .woocommerce-product-gallery .flex-viewport { margin-bottom: 0 !important; }
	.single-product .woocommerce-product-gallery__image img { aspect-ratio: 1 / 1; width: 100%; height: auto !important; object-fit: cover; }
	.single-product .woocommerce-product-gallery .flex-control-thumbs { justify-content: center; gap: 2px; margin-top: 6px; }
	.single-product .woocommerce-product-gallery .flex-control-thumbs li { position: relative; width: 22px !important; height: 22px; }
	.single-product .woocommerce-product-gallery .flex-control-thumbs li::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 7px;
		height: 7px;
		margin: -3.5px 0 0 -3.5px;
		border-radius: 50%;
		background: rgba(25, 25, 25, .25);
		pointer-events: none;
		transition: background-color .2s, transform .2s;
	}
	.single-product .woocommerce-product-gallery .flex-control-thumbs li:has(img.flex-active)::after { background: var(--rv-preto); transform: scale(1.15); }
	.single-product .woocommerce-product-gallery .flex-control-thumbs img { position: absolute; inset: 0; width: 100% !important; height: 100%; opacity: 0 !important; box-shadow: none !important; }
}
