/*
Theme Name: Renavac
Theme URI: https://renavac.com
Description: Tema à medida da Renavac — loja de equipamentos AVAC, fotovoltaico e bombas de calor. Child theme de GeneratePress, leve e otimizado.
Author: Renavac
Author URI: https://renavac.com
Template: generatepress
Version: 0.2.0
Text Domain: renavac
*/

/* ============================================================
   1. TOKENS
   ============================================================ */
:root {
	--rv-primary: #031f37;
	--rv-primary-2: #06283f;
	--rv-accent: #15573c;
	--rv-accent-2: #1c6e4d;
	--rv-sky: #75bae1;
	--rv-ink: #2e2e2e;
	--rv-mid: #5b6b78;
	--rv-surface: #f4f4f4;
	--rv-white: #ffffff;
	--rv-rule: #e6e9ec;

	--rv-font-head: "League Spartan", system-ui, -apple-system, sans-serif;
	--rv-font-body: "Montserrat", system-ui, -apple-system, sans-serif;

	--rv-radius: 10px;
	--rv-radius-lg: 14px;
	--rv-radius-pill: 10px;

	/* Escala de espaçamento formal (ui-ux-pro-max) */
	--rv-space-xs: 4px;
	--rv-space-sm: 8px;
	--rv-space-md: 16px;
	--rv-space-lg: 24px;
	--rv-space-xl: 32px;
	--rv-space-2xl: 48px;
	--rv-space-3xl: 64px;

	--rv-shadow-sm: 0 4px 16px -8px rgba(3, 31, 55, .18);
	--rv-shadow: 0 14px 40px -16px rgba(3, 31, 55, .22);
	--rv-shadow-lg: 0 22px 60px -22px rgba(3, 31, 55, .28);
	--rv-shadow-cta: 0 10px 26px -8px rgba(21, 87, 60, .45);

	--rv-container: 1200px;
	--rv-ease: cubic-bezier(.22, .61, .36, 1);
	--rv-t: 220ms var(--rv-ease);
}

/* ============================================================
   2. BASE
   ============================================================ */
html { scroll-behavior: smooth; }

body.wp-site-blocks,
body {
	background: var(--rv-surface);
	color: var(--rv-ink);
	font-family: var(--rv-font-body);
	font-size: 16.5px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, .site-title {
	font-family: var(--rv-font-head);
	color: var(--rv-primary);
	line-height: 1.12;
	font-weight: 700;
	letter-spacing: -.01em;
}

a { color: var(--rv-accent); text-decoration: none; }
a:hover { color: var(--rv-primary); }

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

:focus-visible { outline: 2px solid var(--rv-accent); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--rv-accent); color: #fff; }

/* ============================================================
   3. LAYOUT
   ============================================================ */
.rv-container { max-width: var(--rv-container); margin: 0 auto; padding: 0 22px; }
.rv-section { padding: 84px 0; }
.rv-section--tight { padding: 56px 0; }
.rv-center { text-align: center; }

.rv-eyebrow {
	display: inline-block;
	font-family: var(--rv-font-body);
	font-weight: 700;
	font-size: .78rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--rv-accent);
	margin-bottom: 14px;
}
.rv-title { font-size: clamp(1.7rem, 1rem + 2.4vw, 2.7rem); margin: 0 0 14px; }
.rv-lead { color: var(--rv-mid); font-size: 1.08rem; max-width: 60ch; }
.rv-center .rv-lead { margin-left: auto; margin-right: auto; }

/* ============================================================
   4. BOTÕES
   ============================================================ */
.rv-btn {
	display: inline-flex; align-items: center; gap: 9px;
	padding: 11px 22px; border-radius: var(--rv-radius-pill);
	font-family: var(--rv-font-body); font-weight: 600; font-size: .92rem;
	cursor: pointer; border: 2px solid transparent;
	transition: transform var(--rv-t), box-shadow var(--rv-t), background var(--rv-t), color var(--rv-t);
}
.rv-btn .rv-ic { width: 17px; height: 17px; }
/* CTAs mais compactos no telemóvel (tinham padding grande, sobretudo na homepage) */
@media (max-width: 768px) { .rv-btn { padding: 9px 17px; font-size: .87rem; } .rv-btn .rv-ic { width: 15px; height: 15px; } }
.rv-btn--primary { background: var(--rv-accent); color: #fff; box-shadow: var(--rv-shadow-cta); }
.rv-btn--primary:hover { background: var(--rv-accent-2); color: #fff; transform: translateY(-2px); box-shadow: 0 16px 34px -10px rgba(21, 87, 60, .55); }
.rv-btn--light { background: #fff; color: var(--rv-primary); }
.rv-btn--light:hover { transform: translateY(-2px); box-shadow: var(--rv-shadow); color: var(--rv-primary); }
.rv-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.rv-btn--ghost:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.rv-btn--outline { background: transparent; color: var(--rv-accent); border-color: var(--rv-accent); }
.rv-btn--outline:hover { background: var(--rv-accent); color: #fff; }

/* ============================================================
   5. CARTÕES
   ============================================================ */
.rv-card {
	background: var(--rv-white);
	border: 1px solid var(--rv-rule);
	border-radius: var(--rv-radius-lg);
	padding: 28px;
	box-shadow: var(--rv-shadow-sm);
	transition: transform var(--rv-t), box-shadow var(--rv-t), border-color var(--rv-t);
}
.rv-card:hover { transform: translateY(-6px); box-shadow: var(--rv-shadow); border-color: rgba(21, 87, 60, .25); }

.rv-ic-badge {
	width: 56px; height: 56px; border-radius: 16px;
	display: inline-flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, rgba(117, 186, 225, .22), rgba(21, 87, 60, .14));
	color: var(--rv-accent); margin-bottom: 18px;
}
.rv-ic-badge .rv-ic { width: 28px; height: 28px; }

/* ============================================================
   6. HEADER
   ============================================================ */
.site-header { background: #fff; box-shadow: 0 1px 0 var(--rv-rule); }
/* .inside-header vem ANTES da nav no DOM (ambas z auto) → a nav tapava o dropdown da
   pesquisa. Elevar a stacking da inside-header acima da navegação. */
.site-header .inside-header { display: flex; align-items: center; gap: 32px; padding-top: 14px; padding-bottom: 14px; position: relative; z-index: 200; }
.main-navigation .main-nav ul li > a { padding-left: 20px; padding-right: 20px; line-height: 50px; }
.rv-utility { gap: 26px; }
.site-header .site-logo { flex: 0 0 auto; }
.site-logo img, .header-image, .site-header .header-image { max-height: 52px; width: auto; image-rendering: -webkit-optimize-contrast; }
.main-title, .site-description { display: none; }

/* Linha de topo: pesquisa + ações */
.rv-header-top { flex: 1; display: flex; align-items: center; gap: 24px; }
.rv-search { display: flex; align-items: stretch; flex: 1 1 auto; max-width: 600px; background: var(--rv-surface); border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-pill); overflow: hidden; }
.rv-search input[type="search"] { flex: 1; border: 0; background: transparent; padding: 7px 18px; font-family: var(--rv-font-body); color: var(--rv-ink); font-size: .92rem; }
.rv-search input[type="search"]:focus { outline: none; }
.rv-search button { background: var(--rv-accent); border: 0; color: #fff; padding: 0 20px; cursor: pointer; display: flex; align-items: center; transition: background var(--rv-t); }
.rv-search button:hover { background: var(--rv-primary); }
.rv-search button .rv-ic { width: 20px; height: 20px; }

/* Carrinho do header: só o carrinho (sem o número) + balão "adicionado" */
.rv-cart-pop {
	position: absolute; top: calc(100% + 14px); right: 0; z-index: 100001;
	display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
	background: var(--rv-accent); color: #fff; font-weight: 700; font-size: .85rem;
	padding: 11px 15px; border-radius: 12px; box-shadow: 0 16px 40px -14px rgba(3, 31, 55, .5);
	opacity: 0; transform: translateY(-8px) scale(.96); transform-origin: top right;
	transition: opacity .25s, transform .25s; pointer-events: none;
}
.rv-cart-pop.show { opacity: 1; transform: translateY(0) scale(1); }
.rv-cart-pop::before { content: ""; position: absolute; top: -6px; right: 26px; width: 13px; height: 13px; background: var(--rv-accent); transform: rotate(45deg); border-radius: 2px; }
.rv-cart-pop-ic { width: 18px; height: 18px; border-radius: 50%; background: rgba(255, 255, 255, .22); display: inline-flex; align-items: center; justify-content: center; font-size: .7rem; }
.main-navigation, .main-navigation ul li a { font-family: var(--rv-font-body); font-weight: 600; }
.main-navigation .main-nav ul li a { color: var(--rv-primary); }
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item a { color: var(--rv-accent); }

.rv-topbar { background: var(--rv-primary); color: rgba(255, 255, 255, .82); font-size: .84rem; }
.rv-topbar-inner { display: flex; justify-content: space-between; align-items: center; padding-top: 10px; padding-bottom: 10px; flex-wrap: wrap; gap: 6px 20px; }
.rv-utility { display: flex; gap: 22px; flex-wrap: wrap; }
.rv-utility a { color: rgba(255, 255, 255, .82); font-weight: 500; }
.rv-utility a:hover { color: var(--rv-sky); }
.rv-topbar-meta { display: flex; gap: 18px; align-items: center; }
.rv-topbar-meta a { color: rgba(255, 255, 255, .82); }
.rv-topbar-meta a:hover { color: var(--rv-sky); }
@media (max-width: 760px) { .rv-topbar-meta span { display: none; } .rv-topbar-inner { justify-content: space-between; flex-wrap: nowrap; gap: 10px; } .rv-utility { gap: 14px; } }
/* Telemóvel: topbar sem email, menu centrado (em vez de quebrar para 2 linhas) */
@media (max-width: 600px) {
	.rv-topbar-meta { display: none !important; }
	.rv-topbar-inner { justify-content: center !important; flex-wrap: wrap; gap: 4px 16px; }
	.rv-utility { justify-content: center; flex-wrap: wrap; gap: 16px; width: 100%; }
}
body.is-scrolled .site-header { box-shadow: var(--rv-shadow-sm); }

.rv-header-actions { display: flex; align-items: center; gap: 18px; flex: 0 0 auto; margin-left: auto; }
.rv-header-actions .rv-h-link { display: inline-flex; align-items: center; gap: 8px; color: var(--rv-primary); font-weight: 600; font-size: .9rem; }
.rv-header-actions .rv-h-link:hover { color: var(--rv-accent); }
.rv-header-actions .rv-ic { width: 22px; height: 22px; }

/* Conta: ícone + "Olá!" / "Iniciar sessão" (ou nome) */
.rv-h-account { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; }
.rv-h-account .rv-ic { width: 24px; height: 24px; color: var(--rv-primary); flex: 0 0 auto; }
.rv-h-account:hover .rv-ic { color: var(--rv-accent); }
.rv-h-acc-txt { display: flex; flex-direction: column; line-height: 1.15; }
.rv-h-acc-top { font-size: .72rem; color: var(--rv-mid); }
.rv-h-acc-bot { font-size: .9rem; font-weight: 800; color: var(--rv-primary); }
.rv-h-account:hover .rv-h-acc-bot { color: var(--rv-accent); }

/* Carrinho: ícone + bolha com o número */
button.rv-h-cart { font: inherit; cursor: pointer; background: none; border: 0; }
.rv-h-cart { position: relative; display: inline-flex; align-items: center; justify-content: center; padding: 6px; color: var(--rv-primary); transition: color var(--rv-t), transform var(--rv-t); }
.rv-h-cart .rv-ic { width: 26px; height: 26px; color: var(--rv-primary); }
.rv-h-cart:hover { color: var(--rv-accent); transform: translateY(-1px); }
.rv-h-cart:hover .rv-ic { color: var(--rv-accent); }
.rv-cart-count {
	position: absolute; top: -4px; right: -6px; background: var(--rv-accent); color: #fff;
	font-family: var(--rv-font-body); font-size: .7rem; font-weight: 800;
	min-width: 20px; height: 20px; border-radius: 12px; border: 2px solid #fff;
	display: inline-flex; align-items: center; justify-content: center; padding: 0 4px;
}
.rv-cart-count[hidden] { display: none; }
@media (max-width: 860px) {
	.rv-h-acc-txt { display: none; }
	.site-header .inside-header { flex-wrap: wrap; }
	.rv-header-top { order: 3; flex-basis: 100%; gap: 14px; }
	.rv-search { max-width: none; }
}

/* ============================================================
   7. HERO
   ============================================================ */
.rv-hero {
	position: relative; overflow: hidden;
	background: radial-gradient(1200px 600px at 80% -10%, rgba(117, 186, 225, .28), transparent 60%),
		linear-gradient(135deg, var(--rv-primary) 0%, var(--rv-primary-2) 55%, #0a3a3f 100%);
	color: #fff; padding: 96px 0 104px;
}
.rv-hero h1 { color: #fff; font-size: clamp(2.1rem, 1.2rem + 3.4vw, 3.6rem); margin: 0 0 18px; }
.rv-hero .rv-eyebrow { color: var(--rv-sky); }
.rv-hero p { color: rgba(255, 255, 255, .86); font-size: 1.12rem; max-width: 56ch; margin: 0 0 30px; }
.rv-hero .rv-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---- HERO CARROSSEL (deslize) ---- */
/* Largura limitada e centrada → ajusta-se a qualquer ecrã sem ficar gigante.
   Fade/transparência nas extremidades esq/dir via máscara de gradiente. */
.rv-hero-carousel {
	position: relative; overflow: hidden; background: var(--rv-surface);
	max-width: 1200px; margin: 26px auto 0;
	border-radius: var(--rv-radius-lg); box-shadow: var(--rv-shadow-sm);
	aspect-ratio: 1920 / 750;
}
.rv-slides-track { display: flex; height: 100%; transition: transform .6s var(--rv-ease); will-change: transform; }
.rv-slide { flex: 0 0 100%; min-width: 100%; display: flex; align-items: center; min-height: clamp(440px, 42vw, 580px); color: #fff; }
.rv-slide-inner { width: 100%; }
.rv-slide-split { display: grid; grid-template-columns: 1.05fr .95fr; gap: 44px; align-items: center; padding: 44px 0; }
.rv-slide-text .rv-eyebrow { color: var(--rv-sky); margin-bottom: 12px; }
.rv-slide-text h1, .rv-slide-text h2 { color: #fff; font-family: var(--rv-font-head); font-weight: 700; font-size: clamp(1.9rem, 1.1rem + 2.6vw, 3rem); line-height: 1.08; margin: 0 0 16px; }
.rv-slide-text p { color: rgba(255, 255, 255, .88); font-size: 1.08rem; max-width: 46ch; margin: 0 0 26px; }
.rv-slide-text .rv-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Produto num cartão branco (resolve fundos brancos dos JPGs + destaca o produto) */
.rv-slide-media { justify-self: end; display: flex; align-items: center; justify-content: center; width: 100%; max-width: 430px; aspect-ratio: 4 / 3; background: radial-gradient(120% 120% at 50% 30%, #ffffff 52%, #e7ecf1 100%); border-radius: var(--rv-radius-lg); padding: 24px; box-shadow: 0 34px 70px -24px rgba(0, 0, 0, .5); transition: transform var(--rv-t), box-shadow var(--rv-t); }
.rv-slide-media:hover { transform: translateY(-4px); box-shadow: 0 40px 80px -24px rgba(0, 0, 0, .55); }
.rv-slide-media img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }

/* Fundos por marca / categoria */
.rv-slide--clima { background: radial-gradient(900px 520px at 82% 130%, rgba(117, 186, 225, .42), transparent 60%), linear-gradient(135deg, #062b4d, #0a4a72); }
.rv-slide--solar { background: radial-gradient(820px 480px at 82% -15%, rgba(255, 184, 77, .34), transparent 55%), linear-gradient(135deg, #04243f, #0a3a4a); }
.rv-slide--heat  { background: radial-gradient(820px 500px at 82% 130%, rgba(255, 140, 60, .28), transparent 60%), linear-gradient(135deg, #07331f, var(--rv-accent)); }
.rv-slide--nipon { background: radial-gradient(840px 480px at 82% -15%, rgba(80, 200, 230, .36), transparent 55%), linear-gradient(135deg, #053246, #0a5c7a); }
@media (prefers-reduced-motion: reduce) { .rv-slides-track { transition: none; } }

/* Slides tipo BANNER — design COMPLETO, full-bleed (edge-to-edge, sem moldura, sem
   corte). A imagem ocupa toda a largura; o botão sobrepõe-se no canto inferior. */
.rv-slide--banner { position: relative; display: block; padding: 0; min-height: 0; height: 100%; }
.rv-banner-link { display: block; height: 100%; }
.rv-banner-img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Slides de FOTO (lifestyle, sem texto na imagem) ganham scrim + título sobreposto */
.rv-slide--photo::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(90deg, rgba(3, 31, 55, .6), rgba(3, 31, 55, .18) 45%, transparent 68%); }
.rv-banner-overlay { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; pointer-events: none; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding-bottom: 38px; }
.rv-banner-overlay .rv-eyebrow { color: var(--rv-sky); margin: 0; }
.rv-banner-title { color: #fff; font-family: var(--rv-font-head); font-weight: 700; font-size: clamp(1.7rem, 1rem + 2.2vw, 2.8rem); line-height: 1.08; margin: 0; max-width: 20ch; text-shadow: 0 2px 14px rgba(0, 0, 0, .4); }
.rv-banner-overlay .rv-btn { display: none !important; }
.rv-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; white-space: nowrap; }
@media (max-width: 680px) {
	.rv-hero-carousel { aspect-ratio: auto; height: 300px; margin-top: 16px; }
	.rv-banner-overlay { padding-bottom: 22px; }
}

/* Controlos */
.rv-carousel-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 46px; height: 46px; border-radius: 12px; border: 0; background: rgba(255, 255, 255, .85); color: var(--rv-primary); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--rv-shadow-sm); transition: background var(--rv-t); }
.rv-carousel-arrow:hover { background: #fff; }
.rv-carousel-arrow .rv-ic { width: 22px; height: 22px; }
.rv-carousel-prev { left: 18px; }
.rv-carousel-next { right: 18px; }
.rv-carousel-prev .rv-ic { transform: rotate(180deg); }
.rv-carousel-dots { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); z-index: 5; display: flex; gap: 9px; }
.rv-dot { width: 11px; height: 11px; border-radius: 12px; border: 0; background: rgba(255, 255, 255, .55); cursor: pointer; padding: 0; transition: background var(--rv-t), width var(--rv-t); }
.rv-dot.is-active { background: #fff; width: 26px; }
@media (max-width: 860px) {
	.rv-slide-split { grid-template-columns: 1fr; gap: 22px; padding: 36px 0 48px; }
	.rv-slide-media { max-width: 280px; justify-self: start; padding: 18px; }
	.rv-carousel-arrow { display: none; }
}
@media (max-width: 520px) {
	.rv-slide-media { display: none; }
}

/* ============================================================
   8. GRELHAS
   ============================================================ */
.rv-grid { display: grid; gap: 22px; }
.rv-grid--cats { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 820px) { .rv-grid--cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .rv-grid--cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.rv-grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
@media (max-width: 600px) { .rv-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

.rv-section--alt { background: #fff; }
.rv-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 36px; flex-wrap: wrap; }
.rv-section-head .rv-title { margin: 0; }
.rv-section-head .rv-eyebrow { margin-bottom: 8px; }
.rv-home-products .products { margin-bottom: 0 !important; }
@media (max-width: 640px) { .rv-section-head { align-items: flex-start; } }

.rv-cat-card { display: flex; flex-direction: column; align-items: flex-start; text-align: left; }
.rv-cat-card h3 { font-size: 1.18rem; margin: 0 0 6px; }
.rv-cat-card p { color: var(--rv-mid); font-size: .92rem; margin: 0 0 16px; }
.rv-cat-card .rv-more { margin-top: auto; display: inline-flex; align-items: center; gap: 7px; color: var(--rv-accent); font-weight: 600; font-size: .9rem; }
.rv-cat-card:hover .rv-more .rv-ic { transform: translateX(4px); }
.rv-cat-card .rv-more .rv-ic { width: 16px; height: 16px; transition: transform var(--rv-t); }
/* Cards de categoria compactos no telemóvel (estavam altos/com muito espaço) */
@media (max-width: 600px) {
	.rv-grid--cats .rv-card { padding: 16px 14px; }
	.rv-grid--cats .rv-ic-badge { width: 42px; height: 42px; border-radius: 12px; margin-bottom: 10px; }
	.rv-grid--cats .rv-ic-badge .rv-ic { width: 22px; height: 22px; }
	.rv-grid--cats .rv-cat-card h3 { font-size: 1rem; margin-bottom: 4px; }
	.rv-grid--cats .rv-cat-card p { font-size: .82rem; margin-bottom: 10px; line-height: 1.35; }
	.rv-grid--cats .rv-cat-card .rv-more { font-size: .84rem; }
}

/* ============================================================
   9. BANDA / CTA / MARCAS
   ============================================================ */
.rv-band {
	background: radial-gradient(900px 400px at 100% 0, rgba(117, 186, 225, .22), transparent 60%),
		linear-gradient(120deg, var(--rv-primary), var(--rv-accent));
	color: #fff; border-radius: var(--rv-radius-lg); padding: 48px 44px;
	display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
}
.rv-band h2 { color: #fff; margin: 0 0 8px; }
.rv-band p { color: rgba(255, 255, 255, .85); margin: 0; max-width: 52ch; }

.rv-brands { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.rv-brand {
	background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg);
	padding: 28px 24px; min-height: 168px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
	box-shadow: var(--rv-shadow-sm); text-decoration: none;
	transition: transform var(--rv-t), box-shadow var(--rv-t), border-color var(--rv-t);
}
.rv-brand:hover { transform: translateY(-4px); box-shadow: var(--rv-shadow); border-color: rgba(21, 87, 60, .25); }
/* Caixa de logótipo com altura fixa → todos alinhados na mesma linha de base */
.rv-brand-logo { display: flex; align-items: center; justify-content: center; height: 58px; width: 100%; }
.rv-brand-logo img { max-height: 100%; max-width: 78%; width: auto; object-fit: contain; }
/* Marcas com logótipo só-símbolo (Mitsubishi, Huawei): símbolo + nome por baixo */
.rv-brand--mark .rv-brand-logo { height: 50px; }
.rv-brand--mark .rv-brand-logo img { max-height: 46px; max-width: 60%; }
.rv-brand-name { font-family: var(--rv-font-head); font-weight: 700; color: var(--rv-primary); font-size: 1.08rem; letter-spacing: -.01em; line-height: 1; }
.rv-brand:hover .rv-brand-name { color: var(--rv-accent); }
@media (max-width: 820px) { .rv-brands { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .rv-brands { grid-template-columns: 1fr; } }

/* ============================================================
   10. RODAPÉ
   ============================================================ */
.site-footer .site-info, .site-info { background: var(--rv-primary); color: rgba(255, 255, 255, .8); }
.site-info a { color: #fff; }

/* ============================================================
   11. REVEAL (animação leve)
   ============================================================ */
/* Animação à prova de falhas: animação CSS pura (fill-mode both → termina sempre
   visível, nunca depende de JS para o conteúdo aparecer). */
@keyframes rvFadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.js [data-reveal] { animation: rvFadeUp .6s var(--rv-ease) both; }
.js [data-reveal][data-delay="1"] { animation-delay: .08s; }
.js [data-reveal][data-delay="2"] { animation-delay: .16s; }
.js [data-reveal][data-delay="3"] { animation-delay: .24s; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.js [data-reveal] { animation: none; }
	.rv-btn, .rv-card { transition: none; }
}

/* ============================================================
   12. RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
	.rv-section { padding: 56px 0; }
	.rv-hero { padding: 72px 0 76px; }
	.rv-band { padding: 36px 26px; }
}

/* ============================================================
   13. HOMEPAGE FULL WIDTH (sem caixa/sidebar)
   ============================================================ */
.rv-fullwidth-home #page,
.rv-fullwidth-home #content,
.rv-fullwidth-home .site-content,
.rv-fullwidth-home .site-main { max-width: 100% !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
/* #content do GP é flex (conteúdo + sidebar). Em block, o <main> preenche 100%. */
.rv-fullwidth-home #content { display: block !important; }
.rv-fullwidth-home #renavac-home { width: 100% !important; flex: 1 1 100% !important; }

/* Páginas de conteúdo: largura de leitura confortável */
.page:not(.rv-fullwidth-home) .entry-content,
.page:not(.rv-fullwidth-home) .entry-header { max-width: 880px; margin-left: auto; margin-right: auto; }
.page .entry-content h2 { margin-top: 1.6em; }
.page .entry-content ul, .page .entry-content ol { padding-left: 1.2em; }
.page .entry-content li { margin: .35em 0; }

/* ============================================================
   14. MEGA MENU
   ============================================================ */
.main-navigation { position: relative; }
.main-navigation .main-nav ul li.rv-has-mega { position: static; }
.rv-megapanel {
	position: absolute; left: 0; right: 0; top: 100%;
	background: #fff; box-shadow: var(--rv-shadow-lg);
	border-top: 1px solid var(--rv-rule);
	border-radius: 0 0 var(--rv-radius-lg) var(--rv-radius-lg);
	padding: 26px 0 30px; z-index: 60;
	opacity: 0; visibility: hidden; transform: translateY(10px); pointer-events: none;
	transition: opacity var(--rv-t), transform var(--rv-t), visibility var(--rv-t);
}
/* Abre via classe .rv-open (controlada por JS ao ENTRAR no item) — não basta
   aproximar da área do painel. :focus-within mantém o acesso por teclado. */
.main-navigation .main-nav ul li.rv-has-mega.rv-open > .rv-megapanel,
.main-navigation .main-nav ul li.rv-has-mega:focus-within > .rv-megapanel {
	opacity: 1; visibility: visible; transform: none; pointer-events: auto;
}
/* Cascata 3 níveis: topo (barra) → grupos N2 (rail esq.) → folhas N3 (centro) + cartão destaque (dir.) */
.rv-megapanel-inner { position: relative; display: flex; align-items: stretch; gap: 28px; text-align: left; min-height: 318px; }
.rv-megapanel--simple .rv-megapanel-inner { min-height: 240px; }

/* Rail esquerdo — grupos (nível 2) */
.rv-mega-rail { flex: 0 0 258px; display: flex; flex-direction: column; gap: 3px; padding-right: 26px; border-right: 1px solid var(--rv-rule); }
.rv-megapanel--simple .rv-mega-rail { flex: 1; border-right: 0; padding-right: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-content: start; }

.rv-mega-g { position: static; border-radius: 12px; }
.rv-mega-g-link { display: flex; align-items: center; gap: 13px; padding: 10px 14px; border-radius: 12px; color: var(--rv-primary); font-family: var(--rv-font-head); font-weight: 600; font-size: 1.02rem; line-height: 1.2; transition: background var(--rv-t), color var(--rv-t); }
.rv-mega-g-ic { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; background: var(--rv-surface); color: var(--rv-accent); transition: background var(--rv-t), color var(--rv-t); }
.rv-mega-g-ic .rv-ic { width: 20px; height: 20px; }
.rv-mega-g-name { flex: 1 1 auto; }
.rv-mega-g-link .rv-mega-chev { width: 16px; height: 16px; flex: 0 0 auto; opacity: .4; transition: transform var(--rv-t), opacity var(--rv-t); }
/* Grupo selecionado (.rv-sub-open, gerido por JS) ou com foco de teclado → destacado */
.rv-mega-g.rv-sub-open > .rv-mega-g-link,
.rv-mega-g.has-kids:focus-within > .rv-mega-g-link { background: rgba(21, 87, 60, .07); color: var(--rv-accent); }
.rv-mega-g.rv-sub-open > .rv-mega-g-link .rv-mega-g-ic,
.rv-mega-g.has-kids:focus-within > .rv-mega-g-link .rv-mega-g-ic { background: var(--rv-accent); color: #fff; }
.rv-mega-g.rv-sub-open > .rv-mega-g-link .rv-mega-chev,
.rv-mega-g.has-kids:focus-within > .rv-mega-g-link .rv-mega-chev { opacity: 1; transform: translateX(3px); }
/* Painel simples (sem N3): grupos como mini-cartões */
.rv-megapanel--simple .rv-mega-g-link { border: 1px solid var(--rv-rule); }
.rv-megapanel--simple .rv-mega-g-link:hover { border-color: rgba(21, 87, 60, .35); background: rgba(21, 87, 60, .05); color: var(--rv-accent); }
.rv-megapanel--simple .rv-mega-g-link:hover .rv-mega-g-ic { background: var(--rv-accent); color: #fff; }

/* Painel central — folhas (nível 3) */
.rv-mega-sub {
	position: absolute; left: 286px; top: 0; right: 312px; bottom: 0;
	display: flex; flex-direction: column;
	opacity: 0; visibility: hidden; transform: translateX(8px);
	transition: opacity var(--rv-t), transform var(--rv-t), visibility var(--rv-t);
	pointer-events: none;
}
.rv-mega-sub-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 4px 6px 13px; margin-bottom: 8px; border-bottom: 1px solid var(--rv-rule); }
.rv-mega-sub-head > span { font-family: var(--rv-font-head); font-weight: 700; color: var(--rv-primary); font-size: 1.04rem; }
.rv-mega-sub-head a { display: inline-flex; align-items: center; gap: 6px; color: var(--rv-accent); font-weight: 600; font-size: .82rem; white-space: nowrap; }
.rv-mega-sub-head a .rv-ic { width: 14px; height: 14px; }
.rv-mega-sub-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: min-content; gap: 2px 18px; align-content: start; }
.rv-mega-leaf { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--rv-mid); font-weight: 500; font-size: .95rem; padding: 9px 12px; border-radius: 10px; transition: color var(--rv-t), background var(--rv-t); }
.rv-mega-leaf:hover { color: var(--rv-accent); background: var(--rv-surface); }
.rv-mega-leaf-chev { width: 15px; height: 15px; flex: 0 0 auto; opacity: 0; transform: translateX(-5px); transition: opacity var(--rv-t), transform var(--rv-t); }
.rv-mega-leaf:hover .rv-mega-leaf-chev { opacity: .65; transform: none; }

/* Sub-painel visível = grupo selecionado (.rv-sub-open, gerido por JS ao ENTRAR no
   grupo) OU com foco de teclado. Por ser baseado em classe (não :hover contínuo), o
   painel central NÃO desaparece ao atravessar o espaço entre o rail e o centro —
   por isso as subcategorias passam a ser clicáveis. Só vale com o painel aberto. */
.rv-has-mega.rv-open .rv-mega-g.rv-sub-open > .rv-mega-sub,
.rv-has-mega:focus-within .rv-mega-g.has-kids:focus-within > .rv-mega-sub { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }

/* Cartão em destaque (direita) */
.rv-mega-feature {
	flex: 0 0 280px; margin-left: auto; align-self: stretch;
	display: flex; flex-direction: column; align-items: flex-start;
	padding: 24px; border-radius: var(--rv-radius-lg); text-decoration: none; overflow: hidden;
	color: #fff;
	background: radial-gradient(420px 220px at 100% 0, rgba(117, 186, 225, .34), transparent 62%), linear-gradient(150deg, var(--rv-primary), var(--rv-accent));
	box-shadow: var(--rv-shadow-sm);
	transition: transform var(--rv-t), box-shadow var(--rv-t);
}
.rv-mega-feature:hover { transform: translateY(-3px); box-shadow: var(--rv-shadow); }
.rv-mega-feature-ic { width: 50px; height: 50px; border-radius: 14px; background: rgba(255, 255, 255, .16); display: inline-flex; align-items: center; justify-content: center; }
.rv-mega-feature-ic .rv-ic { width: 26px; height: 26px; color: #fff; }
.rv-mega-feature-body { display: flex; flex-direction: column; margin-top: auto; }
.rv-mega-feature-eyebrow { color: var(--rv-sky); font-weight: 700; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; margin-top: 16px; }
.rv-mega-feature-title { font-family: var(--rv-font-head); font-size: 1.32rem; color: #fff; margin: 5px 0 7px; line-height: 1.1; }
.rv-mega-feature-tag { color: rgba(255, 255, 255, .82); font-size: .86rem; line-height: 1.45; margin-bottom: 14px; }
.rv-mega-feature-cta { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; color: #fff; font-size: .92rem; }
.rv-mega-feature-cta .rv-ic { width: 16px; height: 16px; transition: transform var(--rv-t); }
.rv-mega-feature:hover .rv-mega-feature-cta .rv-ic { transform: translateX(4px); }

.rv-mega-g-name { min-width: 0; }

/* GeneratePress impõe display:block + padding L/R nos <a> da navegação → quebra o
   layout flex (o chevron saltava para baixo). Neutralizar DENTRO do painel com
   especificidade suficiente para vencer `.main-navigation .main-nav ul li a`. */
.main-navigation .main-nav ul li .rv-megapanel a { padding: 0; line-height: 1.25; }
.main-navigation .main-nav ul li .rv-megapanel .rv-mega-g-link { display: flex; padding: 10px 14px; }
.main-navigation .main-nav ul li .rv-megapanel .rv-mega-leaf { display: flex; padding: 9px 12px; }
.main-navigation .main-nav ul li .rv-megapanel .rv-mega-feature { display: flex; padding: 24px; }
.main-navigation .main-nav ul li .rv-megapanel .rv-mega-sub-head a { display: inline-flex; }

/* O megamenu não deve aparecer (nem por z-index) quando o carrinho/modal está aberto */
body.rv-no-scroll .rv-megapanel { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }

/* Neutralizar submenu nativo do GeneratePress dentro do mega menu */
.rv-megapanel ul { position: static !important; opacity: 1 !important; visibility: visible !important; transform: none !important; width: auto !important; min-width: 0 !important; background: none !important; box-shadow: none !important; left: auto !important; top: auto !important; }
.rv-megapanel li { position: static !important; width: auto !important; float: none !important; }

/* ============================================================
   15. CARRINHO FLUTUANTE + OFF-CANVAS
   ============================================================ */
.rv-cart-fab {
	position: fixed; right: 26px; bottom: 26px; left: auto; z-index: 90;
	width: 64px; height: 64px; border-radius: 12px; border: none;
	background: var(--rv-accent); color: #fff; cursor: pointer;
	box-shadow: 0 12px 30px -6px rgba(21, 87, 60, .5);
	display: inline-flex; align-items: center; justify-content: center;
	transition: transform var(--rv-t), box-shadow var(--rv-t), background var(--rv-t);
}
.rv-cart-fab:hover { transform: translateY(-3px) scale(1.05); background: var(--rv-accent-2); box-shadow: 0 18px 40px -8px rgba(21, 87, 60, .6); }
.rv-cart-fab .rv-ic { width: 28px; height: 28px; }
.rv-cart-fab .rv-fab-count { position: absolute; top: -4px; right: -4px; background: var(--rv-primary); color: #fff; border: 2px solid #fff; min-width: 24px; height: 24px; font-size: .76rem; }

.rv-drawer-overlay { position: fixed; inset: 0; background: rgba(3, 31, 55, .5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); z-index: 1000; opacity: 0; transition: opacity var(--rv-t); }
.rv-drawer-overlay:not([hidden]) { opacity: 1; }
.rv-drawer {
	position: fixed; top: 0; right: 0; height: 100%; width: 410px; max-width: 92vw;
	background: var(--rv-surface); z-index: 1001; box-shadow: -16px 0 50px -16px rgba(3, 31, 55, .35);
	transform: translateX(100%); transition: transform .32s var(--rv-ease);
	display: flex; flex-direction: column;
}
.rv-drawer.is-open { transform: none; }
.rv-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; background: var(--rv-primary); color: #fff; }
.rv-drawer-title { display: inline-flex; align-items: center; gap: 10px; font-family: var(--rv-font-head); font-weight: 700; font-size: 1.15rem; }
.rv-drawer-title .rv-ic { width: 22px; height: 22px; }
.rv-drawer-close { background: none; border: 0; color: #fff; font-size: 1.7rem; line-height: 1; cursor: pointer; padding: 2px 8px; border-radius: 8px; transition: background var(--rv-t); }
.rv-drawer-close:hover { background: rgba(255, 255, 255, .18); }
.rv-drawer-body { padding: 18px; overflow-y: auto; flex: 1; }

/* Badge de contagem no cabeçalho do drawer */
.rv-drawer-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 12px; background: var(--rv-sky); color: var(--rv-primary); font-family: var(--rv-font-body); font-weight: 700; font-size: .78rem; }
.rv-drawer-count[hidden] { display: none; }

/* Mini-carrinho — cartões ao estilo Lefe */
.rv-mc { display: flex; flex-direction: column; min-height: 100%; }
.rv-mc-count { margin: 0 0 14px; color: var(--rv-mid); font-size: .9rem; font-weight: 600; }
.rv-mc-list { list-style: none; margin: 0; padding: 0; }
.rv-mc-item { display: grid; grid-template-columns: 64px 1fr auto; align-items: start; gap: 14px; background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius); padding: 12px; margin: 0 0 12px; }
.rv-mc-thumb { width: 64px; height: 64px; }
.rv-mc-thumb a, .rv-mc-thumb img { display: block; width: 64px !important; height: 64px; object-fit: contain; border-radius: 10px; background: #fff; border: 1px solid var(--rv-rule); float: none !important; margin: 0 !important; padding: 5px; }
.rv-mc-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rv-mc-name { font-family: var(--rv-font-head); font-weight: 600; color: var(--rv-primary); font-size: .92rem; line-height: 1.25; text-decoration: none; }
.rv-mc-name:hover { color: var(--rv-accent); }
.rv-mc-cat { color: var(--rv-mid); font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; }
.rv-mc-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 6px; }
.rv-qty { display: inline-flex; align-items: center; border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; background: #fff; transition: opacity var(--rv-t); }
.rv-qty.is-loading { opacity: .5; pointer-events: none; }
.rv-qty-btn { width: 28px; height: 28px; border: 0; background: none; color: var(--rv-primary); font-size: 1.05rem; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background var(--rv-t), color var(--rv-t); }
.rv-qty-btn:hover { background: var(--rv-surface); color: var(--rv-accent); }
.rv-qty-n { min-width: 26px; text-align: center; font-weight: 700; font-size: .88rem; color: var(--rv-primary); }
.rv-mc-price { font-weight: 700; color: var(--rv-accent); font-size: .9rem; white-space: nowrap; }
.rv-mc-remove { align-self: start; color: var(--rv-mid) !important; display: inline-flex; padding: 4px; border-radius: 8px; background: none !important; transition: color var(--rv-t), background var(--rv-t); }
.rv-mc-remove .rv-ic { width: 17px; height: 17px; }
.rv-mc-remove:hover { color: #c62828 !important; background: rgba(198, 40, 40, .08) !important; }
.rv-mc-clear { align-self: center; background: none; border: 0; color: var(--rv-mid); font-size: .82rem; font-weight: 600; cursor: pointer; padding: 4px 8px; margin: 2px 0 4px; text-decoration: underline; text-underline-offset: 3px; transition: color var(--rv-t); }
.rv-mc-clear:hover { color: #c62828; }
.rv-mc-total { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--rv-rule); margin-top: auto; padding-top: 16px; font-family: var(--rv-font-head); color: var(--rv-primary); }
.rv-mc-total > span:first-child { font-weight: 600; }
.rv-mc-total-val { font-size: 1.2rem; font-weight: 700; }
.rv-mc-buttons { display: flex; gap: 10px; margin-top: 14px; }
.rv-mc-buttons .rv-btn { flex: 1; justify-content: center; padding: 13px 14px; font-size: .9rem; }
.rv-mc--empty { align-items: center; justify-content: center; text-align: center; gap: 16px; padding: 50px 10px; }
.rv-mc-empty-ic { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center; border-radius: 12px; background: var(--rv-surface); color: var(--rv-accent); }
.rv-mc-empty-ic .rv-ic { width: 30px; height: 30px; }
.rv-mc-empty-msg { color: var(--rv-mid); margin: 0; }
body.rv-no-scroll { overflow: hidden; }
@media (max-width: 600px) { .rv-cart-fab { width: 58px; height: 58px; right: 16px; bottom: 16px; } }

/* ============================================================
   16. WOOCOMMERCE — loja + cards de produto
   ============================================================ */
.woocommerce .woocommerce-products-header__title,
.woocommerce-page h1.entry-title { font-size: clamp(1.7rem, 1rem + 2vw, 2.4rem); color: var(--rv-primary); }

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 32px; margin: 0 0 32px; padding: 0;
}
/* Remove o clearfix do WooCommerce que, num grid, cria uma célula vazia (o "primeiro card sem produto"). */
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	float: none !important; width: auto !important; margin: 0 !important;
	background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg);
	padding: 16px 16px 22px; box-shadow: var(--rv-shadow-sm); text-align: center;
	display: flex; flex-direction: column;
	transition: transform var(--rv-t), box-shadow var(--rv-t), border-color var(--rv-t);
}
.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--rv-shadow); border-color: rgba(21, 87, 60, .25); }
.woocommerce ul.products li.product a img { border-radius: var(--rv-radius); display: block; margin: 0 auto 16px; background: #f5f6f8; border: 1px solid #e4e9ee; width: 100%; height: 210px; object-fit: contain; padding: 10px; }
.woocommerce ul.products li.product > a:first-of-type { display: flex; flex-direction: column; flex: 1 1 auto; }
.woocommerce ul.products li.product .star-rating { float: none; display: block; margin: 2px auto 10px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--rv-font-head); font-size: 1rem; line-height: 1.3; color: var(--rv-primary);
	padding: 0 0 10px; font-weight: 600; min-height: 2.6em;
}
.woocommerce ul.products li.product .price { color: var(--rv-accent); font-weight: 800; font-family: var(--rv-font-body); display: block; margin-top: auto; font-size: 1.4rem; line-height: 1.15; }
.woocommerce ul.products li.product .price .rv-price-from { display: block; font-size: .72rem; font-weight: 600; color: var(--rv-mid); text-transform: lowercase; letter-spacing: .02em; margin-bottom: 1px; }
.rv-loop-options { display: block; font-size: .78rem; color: var(--rv-mid); margin-top: 5px; }
.rv-price-consult { color: var(--rv-mid); font-weight: 600; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart { margin-top: 14px; }
.woocommerce ul.products li.product .price del { color: var(--rv-mid); font-weight: 400; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	margin-top: 14px; border-radius: var(--rv-radius-pill) !important;
	background: var(--rv-accent) !important; color: #fff !important; font-weight: 600;
	text-align: center; transition: background var(--rv-t), transform var(--rv-t);
}
.woocommerce ul.products li.product .button:hover { background: var(--rv-primary) !important; transform: translateY(-2px); }
.woocommerce ul.products li.product .button.rv-card-buy { display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; }
.rv-card-buy .rv-card-buy-ic { width: 16px; height: 16px; transition: transform var(--rv-t); }
.rv-card-buy:hover .rv-card-buy-ic { transform: translateX(3px); }

/* títulos de arquivo / breadcrumb */
.woocommerce .woocommerce-breadcrumb { color: var(--rv-mid); font-size: .85rem; margin-bottom: 18px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--rv-accent); }
/* Loja no telemóvel: reduzir o espaçamento vertical (título, breadcrumb, contagem, grelha) */
@media (max-width: 1024px) {
	.woocommerce .woocommerce-breadcrumb { margin-bottom: 8px; }
	/* no produto individual o caminho é longo → esconder no telemóvel/tablet */
	.single-product .woocommerce-breadcrumb { display: none !important; }
	.woocommerce-products-header { margin: 0 0 10px !important; padding: 0 !important; }
	.woocommerce .woocommerce-products-header__title, .woocommerce-page h1.entry-title { font-size: 1.65rem !important; margin: 0 0 4px !important; }
	.rv-shop-layout { gap: 12px !important; }
	.rv-shop-main .woocommerce-result-count { margin: 2px 0 10px !important; }
	.woocommerce ul.products, .woocommerce-page ul.products { margin: 0 0 18px !important; }
	.woocommerce-archive-wrapper .entry-content { padding-top: 6px !important; }
	/* GLOBAL no mobile/tablet: menos espaçamento lateral e de topo em TODAS as páginas
	 * (cards maiores; corrige conta, carrinho, loja, etc. que tinham folga grande) */
	.inside-article { padding-left: 14px !important; padding-right: 14px !important; padding-top: 16px !important; }
	.rv-container { padding-left: 14px; padding-right: 14px; }
	/* o .entry-content NÃO deve somar padding (senão fica 14+18=32 na conta/carrinho/checkout) */
	.entry-content { padding-left: 0 !important; padding-right: 0 !important; }
	/* checkout: folga lateral mínima (mais largura para os cartões) */
	body.woocommerce-checkout .inside-article { padding-left: 4px !important; padding-right: 4px !important; }
}

/* Paginação da loja */
.woocommerce nav.woocommerce-pagination { margin-top: 40px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { display: inline-flex; gap: 8px; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul li span.page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 44px; padding: 0 12px;
	border: 1px solid var(--rv-rule); border-radius: 12px; background: #fff;
	color: var(--rv-primary); font-weight: 600; font-size: .95rem; line-height: 1;
	transition: background var(--rv-t), color var(--rv-t), border-color var(--rv-t), transform var(--rv-t);
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover {
	background: var(--rv-surface); border-color: var(--rv-accent); color: var(--rv-accent); transform: translateY(-2px);
}
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.current {
	background: var(--rv-accent); border-color: var(--rv-accent); color: #fff;
}
.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce nav.woocommerce-pagination ul li a.prev { font-weight: 700; }
.woocommerce .woocommerce-ordering select { border-radius: var(--rv-radius); border: 1px solid var(--rv-rule); padding: 8px 12px; }

/* ---- Filtros da loja ---- */
.rv-shop-layout { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 34px; align-items: start; }
.rv-filters { position: sticky; top: 20px; }
.rv-filters-toggle { display: none; align-items: center; gap: 8px; }
.rv-filter-group { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius); padding: 18px; margin-bottom: 16px; box-shadow: var(--rv-shadow-sm); }
.rv-filter-group h3 { font-size: 1rem; margin: 0 0 12px; color: var(--rv-primary); font-family: var(--rv-font-head); }
.rv-filter-group ul { list-style: none; margin: 0; padding: 0; }
.rv-filter-cats > li { margin-bottom: 8px; }
.rv-filter-cats > li > a { font-weight: 600; color: var(--rv-primary); }
.rv-filter-cats ul { margin: 6px 0 10px; padding-left: 12px; border-left: 2px solid var(--rv-rule); }
.rv-filter-cats ul li { margin: 4px 0; }
.rv-filter-cats ul a, .rv-filter-brands a { color: var(--rv-mid); font-size: .9rem; }
.rv-filter-cats a:hover, .rv-filter-brands a:hover { color: var(--rv-accent); }
.rv-filter-brands li { margin: 6px 0; }
.rv-price-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.rv-price-row input { width: 100%; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius); padding: 9px; }
.rv-price-btn { padding: 9px 18px !important; width: 100%; justify-content: center; }
@media (max-width: 1024px) {
	.rv-shop-layout { grid-template-columns: minmax(0, 1fr); }
	.rv-filters-toggle { display: inline-flex; margin-bottom: 14px; }
	.rv-filters .rv-filters-inner { display: none; }
	.rv-filters.is-open .rv-filters-inner { display: block; }
}

/* badges de promoção */
.woocommerce span.onsale {
	background: var(--rv-accent); color: #fff; border-radius: var(--rv-radius-pill);
	font-family: var(--rv-font-body); font-weight: 700; min-height: 0; min-width: 0;
	padding: 5px 14px; top: 18px; left: 18px; margin: 0;
}

/* ---- Página de produto individual ---- */
.single-product div.product .product_title { font-size: clamp(1.5rem, 1rem + 1.6vw, 2.2rem); margin-bottom: 12px; }
.single-product div.product .woocommerce-product-gallery img { border-radius: var(--rv-radius-lg); border: 1px solid var(--rv-rule); background: #fff; }
.single-product div.product p.price,
.single-product div.product span.price { color: var(--rv-accent) !important; font-size: 1.5rem; font-weight: 700; }
.single-product div.product p.price del { color: var(--rv-mid); font-size: 1.05rem; }
.single-product .woocommerce-product-details__short-description { color: var(--rv-mid); line-height: 1.7; }
.single-product .single_add_to_cart_button,
.single-product .button.alt,
.woocommerce #respond input#submit.alt {
	background: var(--rv-accent) !important; color: #fff !important;
	border-radius: var(--rv-radius-pill) !important; font-weight: 600 !important;
	padding: 14px 32px !important; font-size: 1rem !important; transition: all var(--rv-t);
}
.single-product .single_add_to_cart_button:hover, .single-product .button.alt:hover { background: var(--rv-primary) !important; transform: translateY(-2px); }
.single-product .quantity input.qty { border-radius: var(--rv-radius); border: 1px solid var(--rv-rule); padding: 12px 8px; }
.single-product table.variations td, .single-product table.variations th { padding: 8px 0; }
.single-product table.variations select { border-radius: var(--rv-radius); border: 1px solid var(--rv-rule); padding: 10px 12px; }

/* USPs no resumo do produto */
.rv-product-usps { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; margin: 24px 0 18px; padding: 18px 0; border-top: 1px solid var(--rv-rule); border-bottom: 1px solid var(--rv-rule); }
.rv-product-usps .rv-usp { display: flex; align-items: center; gap: 10px; font-size: .9rem; color: var(--rv-ink); font-weight: 500; }
.rv-product-usps .rv-usp .rv-ic { width: 22px; height: 22px; color: var(--rv-accent); flex: 0 0 auto; }
.rv-quote-btn { margin-top: 6px; }
/* Preço sob consulta */
.rv-sob-consulta { display: inline-block; font-weight: 600; color: var(--rv-accent); font-size: 1.05rem; }
.woocommerce ul.products li.product .rv-sob-consulta { font-size: .98rem; }
a.rv-quote-btn { display: inline-flex; align-items: center; gap: 8px; }
a.rv-quote-btn .rv-ic { width: 18px; height: 18px; }
.woocommerce ul.products li.product a.button.rv-quote-btn { background: var(--rv-accent); color: #fff; }

/* Separadores */
.woocommerce-tabs { margin-top: 44px; clear: both; }
.woocommerce-tabs ul.tabs { border: 0 !important; border-bottom: 2px solid var(--rv-rule) !important; padding: 0 !important; display: flex; gap: 30px; flex-wrap: wrap; margin: 0 0 28px !important; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce-tabs ul.tabs li { background: none !important; border: 0 !important; border-radius: 0 !important; margin: 0 0 -2px 0 !important; padding: 0 !important; }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a { color: var(--rv-mid); font-weight: 600; font-size: 1.02rem; padding: 12px 2px !important; display: inline-block; border-bottom: 2px solid transparent; }
.woocommerce-tabs ul.tabs li.active a { color: var(--rv-primary); border-bottom-color: var(--rv-accent); }
.woocommerce table.shop_attributes { border: 1px solid var(--rv-rule); border-radius: var(--rv-radius); overflow: hidden; }
.woocommerce table.shop_attributes th { background: var(--rv-surface); color: var(--rv-primary); }
.related.products > h2, .upsells.products > h2 { font-family: var(--rv-font-head); color: var(--rv-primary); margin-top: 50px; }
.related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 900px) { .related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

/* Especificações técnicas (cartões com ícones) */
.rv-specs { margin: 56px 0 60px; clear: both; }
.single-product div.product::after { content: ""; display: table; clear: both; }
/* Resumo do produto: respiro e alinhamento */
.single-product div.product .summary.entry-summary { padding-left: 8px; }
.single-product div.product form.cart { margin: 22px 0 6px; }
.single-product div.product .quantity { margin-right: 12px; }
.single-product div.product .woocommerce-variation-add-to-cart { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }

/* ---- Layout premium da página de produto (grid + galeria sticky) ---- */
.single-product div.product { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px 56px; align-items: start; }
.single-product div.product::before, .single-product div.product::after { content: none !important; display: none !important; }
.single-product div.product > .woocommerce-product-gallery { float: none !important; width: auto !important; margin: 0 !important; position: sticky; top: 24px; }
.single-product div.product > .summary { float: none !important; width: auto !important; margin: 0 !important; }
.single-product div.product > .rv-specs,
.single-product div.product > .rv-brandtech,
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .rv-promo-banner,
.single-product div.product > .rv-compat,
.single-product div.product > .related,
.single-product div.product > .upsells { grid-column: 1 / -1; }
.single-product div.product .product_title { font-size: clamp(1.7rem, 1rem + 2vw, 2.5rem); margin-bottom: 14px; }
.single-product div.product p.price, .single-product div.product span.price { font-size: 1.7rem; }
@media (max-width: 900px) {
	.single-product div.product { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.single-product div.product > .woocommerce-product-gallery { position: static; }
	/* mais respiro entre a imagem e o título no telemóvel */
	.single-product div.product > .summary { padding-top: 12px; }
	.single-product div.product .product_title { margin-top: 0; }
}
.rv-specs-title { font-family: var(--rv-font-head); color: var(--rv-primary); margin-bottom: 22px; font-size: clamp(1.4rem, 1rem + 1.4vw, 1.9rem); }
/* Especificações em tiles visuais */
.rv-specgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 1000px) { .rv-specgrid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px) { .rv-specgrid { grid-template-columns: repeat(2, 1fr); } }
.rv-spec {
	position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 6px;
	background: #fff; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 15px 16px;
	transition: transform .16s, box-shadow .16s, border-color .16s;
}
.rv-spec::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--rv-accent); transform: scaleY(0); transform-origin: top; transition: transform .18s; }
.rv-spec:hover { transform: translateY(-4px); box-shadow: 0 16px 34px -20px rgba(3, 31, 55, .55); border-color: rgba(21, 87, 60, .28); }
.rv-spec:hover::before { transform: scaleY(1); }
.rv-spec-ic { width: 44px; height: 44px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, rgba(117, 186, 225, .2), rgba(21, 87, 60, .14)); color: var(--rv-accent); }
.rv-spec-ic .rv-ic, .rv-spec-ic svg { width: 22px; height: 22px; }
.rv-spec-ic { order: 0; margin-bottom: 4px; }
.rv-spec-k { order: 1; color: var(--rv-primary); font-size: .86rem; font-weight: 700; text-transform: none; letter-spacing: 0; line-height: 1.25; }
.rv-spec-v { order: 2; color: var(--rv-ink, #243b4a); font-weight: 400; font-size: .86rem; line-height: 1.35; margin: 0; }
.rv-spec--energy .rv-spec-v { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.rv-spec-vtxt { font-weight: 500; color: var(--rv-mid); font-size: .9rem; }
@media (max-width: 560px) { .rv-specgrid { grid-template-columns: 1fr 1fr; gap: 10px; } .rv-spec { padding: 14px; border-radius: 13px; } .rv-spec-v { font-size: .95rem; } }

/* Características-chave em destaque (cartões grandes com gradiente) */
.rv-spechero { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 16px; }
.rv-shero { position: relative; overflow: hidden; border-radius: 16px; padding: 22px; color: #fff; display: flex; flex-direction: column; gap: 4px; min-height: 150px; box-shadow: 0 16px 36px -22px rgba(3, 31, 55, .6); transition: transform .16s, box-shadow .16s; }
.rv-shero:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -20px rgba(3, 31, 55, .6); }
.rv-shero--green { background: linear-gradient(140deg, #0c3b2c, #1f8a5c); }
.rv-shero--blue { background: linear-gradient(140deg, #0d2f47, #2c7fb0); }
.rv-shero--sky { background: linear-gradient(140deg, #134b66, #41a3d6); }
.rv-shero--teal { background: linear-gradient(140deg, #133b3a, #2f9e86); }
.rv-shero--indigo { background: linear-gradient(140deg, #232554, #4f53b0); }
.rv-shero--purple { background: linear-gradient(140deg, #3a1f52, #8a47b0); }
.rv-shero--orange { background: linear-gradient(140deg, #5a2a0a, #d97a23); }
.rv-shero--amber { background: linear-gradient(140deg, #0d3f44, #1fa0a0); }
.rv-shero--slate { background: linear-gradient(140deg, #1f2b38, #4a667f); }
.rv-shero--dark { background: linear-gradient(140deg, #06182b, #234a6e); }
.rv-shero--energybox { background: linear-gradient(140deg, #1f2b38, #3c5267); }
.rv-shero-wm { position: absolute; right: -16px; bottom: -20px; opacity: .14; pointer-events: none; }
.rv-shero-wm svg, .rv-shero-wm .rv-ic { width: 108px; height: 108px; color: #fff; }
.rv-shero-ic { width: 46px; height: 46px; border-radius: 13px; background: rgba(255, 255, 255, .2); display: inline-flex; align-items: center; justify-content: center; }
.rv-shero-ic svg, .rv-shero-ic .rv-ic { width: 23px; height: 23px; color: #fff; }
.rv-shero-k { font-size: .74rem; text-transform: uppercase; letter-spacing: .07em; opacity: .82; font-weight: 700; margin-top: 12px; }
.rv-shero-v { font-family: var(--rv-font-head); font-size: 1.5rem; font-weight: 800; line-height: 1.18; position: relative; z-index: 1; }
.rv-shero-energy { display: inline-block; padding: 5px 14px; border-radius: 9px; color: #fff; font-weight: 900; font-size: 1.5rem; line-height: 1.1; box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .4); }
@media (max-width: 860px) { .rv-spechero { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rv-spechero { gap: 10px; } .rv-shero { min-height: 124px; padding: 16px; border-radius: 15px; } .rv-shero-v { font-size: 1.15rem; } .rv-shero-wm svg, .rv-shero-wm .rv-ic { width: 84px; height: 84px; } }
@media (max-width: 720px) { .rv-spectable { grid-template-columns: 1fr; gap: 0; padding: 6px 18px; } }
/* Selo de classe energética */
.rv-energy { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 22px; padding: 0 13px 0 7px; color: #fff; font-weight: 800; font-size: .78rem; letter-spacing: .02em; line-height: 1; clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 50%, calc(100% - 7px) 100%, 0 100%); filter: drop-shadow(0 1px 3px rgba(3, 31, 55, .3)); }
.rv-card-energy { position: absolute; left: 26px; top: 196px; z-index: 3; pointer-events: none; }
.rv-energy--chip { height: 22px; min-width: 42px; font-size: .8rem; }
.rv-energyfilter .rv-checkitem { gap: 10px; }

/* ---- Secção "Tecnologia {Marca}" ---- */
.rv-brandtech { margin: 56px 0 50px; padding: 36px 38px; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); background: linear-gradient(180deg, #fff, var(--rv-surface)); box-shadow: var(--rv-shadow-sm); }
.rv-brandtech-head { display: flex; align-items: center; gap: 22px; margin-bottom: 24px; flex-wrap: wrap; }
.rv-brandtech .rv-brandtech-logo { height: 46px !important; width: auto !important; max-width: 180px !important; flex: 0 0 auto; object-fit: contain; }
.rv-brandtech-head-txt .rv-eyebrow { margin: 0 0 2px; }
.rv-brandtech-head-txt h2 { margin: 0; font-size: clamp(1.4rem, 1rem + 1.4vw, 1.9rem); color: var(--rv-primary); }
.rv-brandtech-head-txt p { margin: 4px 0 0; color: var(--rv-mid); }
.rv-brandtech-banner { display: block; width: 100%; height: auto; border-radius: var(--rv-radius); margin: 0 0 26px; }
.rv-brandtech-video { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: 0 0 26px; border-radius: var(--rv-radius); overflow: hidden; background: #000; }
.rv-brandtech-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rv-brandtech-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.rv-brandtech-card { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius); padding: 20px; transition: transform var(--rv-t), box-shadow var(--rv-t); }
.rv-brandtech-card:hover { transform: translateY(-3px); box-shadow: var(--rv-shadow-sm); }
.rv-brandtech-ic { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, rgba(117, 186, 225, .22), rgba(21, 87, 60, .14)); color: var(--rv-accent); margin-bottom: 12px; }
.rv-brandtech-ic .rv-ic { width: 22px; height: 22px; }
.rv-brandtech-card strong { display: block; font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.02rem; margin-bottom: 5px; }
.rv-brandtech-card p { margin: 0; color: var(--rv-mid); font-size: .9rem; line-height: 1.5; }
.rv-brandtech-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.rv-brandtech-ds .rv-ds-ic { width: 18px; height: 18px; }
@media (max-width: 560px) { .rv-brandtech { padding: 26px 22px; } }

/* ---- Avaliações (reviews) ---- */
#reviews { clear: both; }
#reviews #comments > h2:first-child { display: none; } /* título redundante (a tab já diz "Avaliações") */
.woocommerce-noreviews { color: var(--rv-mid); background: var(--rv-surface); border-radius: var(--rv-radius); padding: 16px 20px; margin: 0 0 22px; }
.woocommerce #reviews #comments ol.commentlist { margin: 0 0 28px; padding: 0; }
.woocommerce #reviews #comments ol.commentlist li { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius); padding: 18px 20px; margin-bottom: 14px; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border-radius: 50%; border: 0; }
#review_form_wrapper { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); padding: 28px 30px; box-shadow: var(--rv-shadow-sm); max-width: 640px; }
#review_form #reply-title { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.25rem; display: block; margin-bottom: 6px; }
#review_form .comment-notes { color: var(--rv-mid); font-size: .9rem; margin-bottom: 16px; }
#respond .comment-form-rating label { font-weight: 600; color: var(--rv-primary); display: block; margin-bottom: 6px; }
#respond p.stars a { color: #f5a623 !important; }
#respond .comment-form label { font-weight: 600; color: var(--rv-primary); }
#respond .comment-form-comment textarea,
#respond .comment-form-author input,
#respond .comment-form-email input { border: 1px solid var(--rv-rule) !important; border-radius: var(--rv-radius) !important; padding: 12px 14px !important; width: 100%; background: var(--rv-surface); }
#respond input#submit {
	background: var(--rv-accent) !important; color: #fff !important; border: 0 !important;
	border-radius: var(--rv-radius-pill) !important; font-weight: 600 !important; padding: 13px 32px !important;
	cursor: pointer; transition: background var(--rv-t), transform var(--rv-t); font-family: var(--rv-font-body);
}
#respond input#submit:hover { background: var(--rv-primary) !important; transform: translateY(-2px); }

/* ---- Cards / banners de publicidade ---- */
.rv-promo-banner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; clear: both; margin: 44px 0; padding: 32px 38px; border-radius: var(--rv-radius-lg); text-decoration: none; background: radial-gradient(700px 300px at 100% 0, rgba(117, 186, 225, .25), transparent 60%), linear-gradient(120deg, var(--rv-primary), var(--rv-accent)); color: #fff; }
.rv-promo-banner .rv-eyebrow { color: var(--rv-sky); }
.rv-promo-banner strong { display: block; font-family: var(--rv-font-head); font-size: 1.5rem; margin: 4px 0 6px; }
.rv-promo-banner p { color: rgba(255, 255, 255, .85); margin: 0; max-width: 52ch; }
.woocommerce ul.products li.product.rv-promo-card { background: linear-gradient(135deg, var(--rv-primary), var(--rv-accent)); border: 0; color: #fff; padding: 0; box-shadow: var(--rv-shadow); }
.rv-promo-card a { display: flex; flex-direction: column; justify-content: center; height: 100%; padding: 28px 24px; color: #fff; text-decoration: none; text-align: left; }
.rv-promo-card .rv-promo-eyebrow { color: var(--rv-sky); font-weight: 700; font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; }
.rv-promo-card strong { font-family: var(--rv-font-head); font-size: 1.3rem; margin: 8px 0; display: block; line-height: 1.2; }
.rv-promo-card p { color: rgba(255, 255, 255, .85); font-size: .92rem; margin: 0 0 14px; }
.rv-promo-card .rv-promo-cta { color: #fff; font-weight: 700; }
.rv-filter-quick a { font-weight: 600 !important; color: var(--rv-primary) !important; }

/* Card de publicidade nos filtros */
.rv-filter-promo { position: relative; overflow: hidden; display: block; background: radial-gradient(320px 180px at 100% 0, rgba(117, 186, 225, .35), transparent 60%), linear-gradient(140deg, var(--rv-primary), var(--rv-accent)); color: #fff; border-radius: var(--rv-radius-lg); padding: 20px; text-decoration: none; box-shadow: 0 14px 30px -18px rgba(3, 31, 55, .55); transition: box-shadow var(--rv-t), transform var(--rv-t); }
.rv-filter-promo:hover { box-shadow: 0 20px 40px -18px rgba(3, 31, 55, .6); transform: translateY(-3px); }
.rv-filter-promo-ic { width: 40px; height: 40px; border-radius: 12px; background: rgba(255, 255, 255, .18); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.rv-filter-promo-ic svg, .rv-filter-promo-ic .rv-ic { width: 20px; height: 20px; color: #fff; }
.rv-filter-promo-eyebrow { display: block; color: #bfe2cc; font-weight: 800; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }
.rv-filter-promo strong { display: block; font-family: var(--rv-font-head); font-size: 1.12rem; margin: 5px 0 6px; line-height: 1.22; color: #fff; }
.rv-filter-promo-txt { display: block; color: rgba(255, 255, 255, .85); font-size: .85rem; line-height: 1.45; margin-bottom: 14px; }
.rv-filter-promo-cta { display: inline-flex; align-items: center; gap: 7px; color: #fff; font-weight: 700; font-size: .9rem; background: rgba(255, 255, 255, .14); padding: 9px 16px; border-radius: 12px; transition: background var(--rv-t); }
.rv-filter-promo:hover .rv-filter-promo-cta { background: rgba(255, 255, 255, .24); }
.rv-filter-promo-cta svg, .rv-filter-promo-cta .rv-ic { width: 15px; height: 15px; transition: transform var(--rv-t); }
.rv-filter-promo:hover .rv-filter-promo-cta svg { transform: translateX(3px); }

/* Promos que passaram a <button> (rv-ask-btn) */
button.rv-filter-promo, button.rv-promo-banner { width: 100%; font: inherit; cursor: pointer; border: 0; -webkit-appearance: none; appearance: none; text-align: left; }

/* ===== Filtros: marcas com logo ===== */
.rv-filter-form { margin: 0; }
.rv-brandfilter { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rv-brandchip { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 52px; padding: 9px 6px; border: 1.5px solid var(--rv-rule); border-radius: 12px; cursor: pointer; background: #fff; transition: border-color var(--rv-t), box-shadow var(--rv-t), background var(--rv-t); }
.rv-brandchip:hover { border-color: rgba(21, 87, 60, .4); }
.rv-brandchip input { position: absolute; opacity: 0; pointer-events: none; }
.rv-brandchip .rv-brandfilter-logo { height: 18px !important; width: auto !important; max-width: 56px !important; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter var(--rv-t), opacity var(--rv-t); }
.rv-brandchip-label { font-size: .72rem; color: var(--rv-mid); font-weight: 600; }
.rv-brandchip-tick { position: absolute; top: 6px; right: 6px; opacity: 0; transform: scale(.6); transition: opacity var(--rv-t), transform var(--rv-t); }
.rv-brandchip-tick .rv-ic { width: 16px; height: 16px; color: var(--rv-accent); }
.rv-brandchip.is-on, .rv-brandchip:has(input:checked) { border-color: var(--rv-accent); background: rgba(21, 87, 60, .05); box-shadow: 0 4px 14px -8px rgba(21, 87, 60, .5); }
.rv-brandchip.is-on .rv-brandfilter-logo, .rv-brandchip:has(input:checked) .rv-brandfilter-logo { filter: none; opacity: 1; }
.rv-brandchip.is-on .rv-brandchip-label, .rv-brandchip:has(input:checked) .rv-brandchip-label { color: var(--rv-primary); }
.rv-brandchip.is-on .rv-brandchip-tick, .rv-brandchip:has(input:checked) .rv-brandchip-tick { opacity: 1; transform: scale(1); }

/* ===== Filtros: slider de intervalo ===== */
.rv-range { padding: 2px 4px 0; }
.rv-range-bar { position: relative; height: 4px; background: var(--rv-rule); border-radius: 4px; margin: 22px 9px 0; }
.rv-range-fill { position: absolute; height: 100%; background: var(--rv-accent); border-radius: 4px; left: 0; right: 0; }
.rv-range input[type=range] { position: absolute; top: 50%; left: 0; width: 100%; height: 18px; margin: 0; transform: translateY(-50%); background: transparent; pointer-events: none; -webkit-appearance: none; appearance: none; }
.rv-range input[type=range]::-webkit-slider-runnable-track { -webkit-appearance: none; height: 18px; background: transparent; border: 0; }
.rv-range input[type=range]::-moz-range-track { height: 18px; background: transparent; border: 0; }
.rv-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--rv-accent); box-shadow: 0 2px 7px -1px rgba(3, 31, 55, .35); cursor: grab; transition: transform .12s; }
.rv-range input[type=range]::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.12); }
.rv-range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--rv-accent); box-shadow: 0 2px 7px -1px rgba(3, 31, 55, .35); cursor: grab; }
.rv-range-vals { display: flex; justify-content: space-between; margin-top: 16px; font-size: .82rem; font-weight: 700; color: var(--rv-primary); font-variant-numeric: tabular-nums; }
.rv-range-vals output { background: #f3f5f7; border-radius: 8px; padding: 4px 9px; }

.rv-filter-actions { display: flex; align-items: center; gap: 10px; margin: 4px 0 16px; }
.rv-filter-apply { flex: 1; }
.rv-filter-clear { font-size: .82rem; color: var(--rv-mid); white-space: nowrap; }
.rv-filter-clear:hover { color: var(--rv-accent); }

/* ===== Cards de campanha ===== */
.rv-campaign { display: block; position: relative; background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); padding: 16px; margin-top: 14px; text-decoration: none; box-shadow: 0 10px 26px -18px rgba(3, 31, 55, .45); transition: box-shadow var(--rv-t), transform var(--rv-t), border-color var(--rv-t); overflow: hidden; }
.rv-campaign:hover { box-shadow: 0 18px 38px -18px rgba(3, 31, 55, .5); transform: translateY(-3px); border-color: rgba(21, 87, 60, .25); }
.rv-campaign-eyebrow { display: inline-block; font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--rv-accent); background: rgba(21, 87, 60, .1); padding: 4px 10px; border-radius: 12px; }
.rv-campaign-eyebrow--light { color: #fff; background: rgba(255, 255, 255, .2); }
.rv-campaign-title { display: block; font-family: var(--rv-font-head); font-size: 1rem; color: var(--rv-primary); margin: 10px 0 4px; line-height: 1.25; }
.rv-campaign-imgwrap { display: flex; align-items: center; justify-content: center; height: 132px; margin: 8px 0 12px; background: var(--rv-surface); border-radius: 12px; padding: 10px; }
.rv-campaign-img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; transition: transform var(--rv-t); }
.rv-campaign:hover .rv-campaign-img { transform: scale(1.05); }
.rv-campaign-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rv-campaign-price { font-weight: 700; color: var(--rv-primary); font-size: .9rem; }
.rv-campaign-price .amount, .rv-campaign-price .rv-fprice { color: var(--rv-accent); }
.rv-campaign-price .rv-fprice-int { font-size: 1.15rem; }
.rv-campaign-price .rv-fprice-cur, .rv-campaign-price .rv-fprice-cents { font-size: .68rem; }
.rv-campaign-price .rv-price-from { font-size: .68rem; }
.rv-campaign-cta { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .82rem; color: var(--rv-accent); white-space: nowrap; border: 1px solid var(--rv-rule); padding: 7px 13px; border-radius: 12px; transition: border-color var(--rv-t), background var(--rv-t); }
.rv-campaign:hover .rv-campaign-cta { border-color: var(--rv-accent); background: rgba(21, 87, 60, .06); }
.rv-campaign-cta .rv-ic { width: 14px; height: 14px; transition: transform var(--rv-t); }
.rv-campaign:hover .rv-campaign-cta .rv-ic { transform: translateX(2px); }
/* Banner solar */
.rv-campaign--banner { min-height: 200px; display: flex; flex-direction: column; justify-content: flex-end; background-size: cover; background-position: center; border: 0; padding: 20px; }
.rv-campaign--banner:hover { transform: translateY(-3px); }
.rv-campaign-bigtitle { display: block; font-family: var(--rv-font-head); font-size: 1.25rem; line-height: 1.2; color: #fff; margin: 8px 0 12px; max-width: 92%; text-shadow: 0 1px 8px rgba(0, 0, 0, .35); }
.rv-campaign-cta--light { color: #fff; border-color: rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .14); }
.rv-campaign--banner:hover .rv-campaign-cta--light { background: rgba(255, 255, 255, .26); border-color: rgba(255, 255, 255, .7); }

/* ===== Painel de filtros estilo Worten (acordeão) ===== */
.rv-filters-panel { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius); box-shadow: var(--rv-shadow-sm); overflow: hidden; margin-bottom: 16px; }
.rv-filters-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-family: var(--rv-font-head); font-size: 1.02rem; font-weight: 700; color: var(--rv-primary); padding: 13px 18px; border-bottom: 1px solid var(--rv-rule); }
.rv-filters-head .rv-filter-clear { font-family: var(--rv-font-base, inherit); font-size: .78rem; font-weight: 600; }
.rv-filter-form.rv-filter-loading { opacity: .55; pointer-events: none; transition: opacity .15s; }
.rv-shop-main { position: relative; }
.rv-shop-loading { opacity: .45; pointer-events: none; transition: opacity .12s; }
.rv-shop-loading::after { content: ''; position: absolute; top: 140px; left: 50%; width: 34px; height: 34px; margin-left: -17px; border: 3px solid var(--rv-rule); border-top-color: var(--rv-accent); border-radius: 50%; animation: rv-spin .7s linear infinite; }
@keyframes rv-spin { to { transform: rotate(360deg); } }
.rv-acc { border-bottom: 1px solid var(--rv-rule); }
.rv-acc:last-of-type { border-bottom: 0; }
.rv-acc-sum { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 18px; cursor: pointer; font-weight: 600; font-size: .94rem; color: var(--rv-primary); list-style: none; user-select: none; }
.rv-acc-sum::-webkit-details-marker { display: none; }
.rv-acc-sum::marker { content: ''; }
.rv-acc-sum:hover { color: var(--rv-accent); }
.rv-acc-chev { width: 18px; height: 18px; color: var(--rv-mid); transition: transform var(--rv-t); flex: 0 0 auto; }
.rv-acc[open] > .rv-acc-sum .rv-acc-chev { transform: rotate(90deg); }
.rv-acc[open] > .rv-acc-sum { color: var(--rv-primary); }
.rv-acc-body { padding: 2px 18px 18px; }
.rv-acc-body ul { list-style: none; }
.rv-acc-body > ul { margin: 0; padding: 0; }
.rv-filters-panel .rv-filter-actions { padding: 0 18px 18px; margin: 0; }
.rv-filters-panel .rv-filter-cats { margin: 0; }
/* Checkboxes de filtro (categorias, refrigerante, classe, fase, etc.) */
.rv-checkfilter { display: flex; flex-direction: column; gap: 1px; }
.rv-checkitem { display: flex; align-items: center; gap: 9px; padding: 6px 2px; cursor: pointer; font-size: .87rem; color: var(--rv-mid); line-height: 1.3; }
.rv-checkitem:hover { color: var(--rv-primary); }
.rv-checkitem input { position: absolute; opacity: 0; width: 0; height: 0; }
.rv-checkbox { flex: 0 0 auto; width: 18px; height: 18px; border: 1.5px solid var(--rv-rule); border-radius: 5px; background: #fff; position: relative; transition: background var(--rv-t), border-color var(--rv-t); }
.rv-checkitem:hover .rv-checkbox { border-color: rgba(21, 87, 60, .5); }
.rv-checkitem input:checked + .rv-checkbox { background: var(--rv-accent); border-color: var(--rv-accent); }
.rv-checkitem input:checked + .rv-checkbox::after { content: ''; position: absolute; left: 5px; top: 2px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.rv-checkitem input:checked ~ .rv-checktext { color: var(--rv-primary); font-weight: 600; }
.rv-checkitem input:focus-visible + .rv-checkbox { outline: 2px solid var(--rv-sky); outline-offset: 2px; }
.rv-checkitem--parent { font-weight: 700; color: var(--rv-primary); }
.rv-catfilter > li { margin-bottom: 1px; }
.rv-catfilter ul { margin: 1px 0 6px; padding-left: 16px; border-left: 2px solid var(--rv-rule); }
/* Contagem de produtos por filtro (estilo Worten: "(N)" cinzento) */
.rv-checktext { flex: 0 1 auto; }
.rv-checkcount { margin-left: auto; padding-left: 8px; color: var(--rv-mid); font-size: .8rem; font-weight: 400; font-variant-numeric: tabular-nums; }
.rv-checkcount::before { content: '('; }
.rv-checkcount::after { content: ')'; }
.rv-checkitem--off { opacity: .42; }
.rv-checkitem--off .rv-checkbox { background: #f1f3f5; }
.rv-brandchip-label em { font-style: normal; color: var(--rv-mid); font-weight: 500; }
.rv-brandchip--off { opacity: .4; }

/* ===== Marca no card de produto (estilo Leroy Merlin) ===== */
.woocommerce ul.products li.product { position: relative; }
.rv-card-brand { position: absolute; top: 34px; left: 34px; z-index: 3; display: flex; align-items: center; justify-content: flex-start; height: 24px; margin: 0; line-height: 0; pointer-events: none; }
.woocommerce ul.products li.product .rv-card-brand img,
.rv-card-brand img { height: 24px !important; width: auto !important; max-width: 90px !important; object-fit: contain; object-position: left center; display: inline-block; background: none !important; border: 0 !important; padding: 0 !important; border-radius: 0 !important; }
.rv-card-brand--txt { font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--rv-primary); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { margin-top: 0; clear: both; }
.rv-promo-card .rv-promo-cardbtn { display: flex; flex-direction: column; justify-content: center; height: 100%; width: 100%; padding: 28px 24px; color: #fff; text-align: left; background: none; border: 0; font: inherit; cursor: pointer; -webkit-appearance: none; appearance: none; }

/* ============================================================
   MODAL "Tirar dúvidas"
   ============================================================ */
.rv-modal-overlay { position: fixed; inset: 0; background: rgba(3, 31, 55, .5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); z-index: 1100; }
.rv-modal-overlay[hidden] { display: none; }
.rv-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -47%); width: 480px; max-width: 92vw; max-height: 90vh; overflow-y: auto; background: #fff; border-radius: var(--rv-radius-lg); box-shadow: var(--rv-shadow-lg); z-index: 1101; padding: 32px; opacity: 0; visibility: hidden; transition: opacity var(--rv-t), transform var(--rv-t), visibility var(--rv-t); }
.rv-modal.is-open { opacity: 1; visibility: visible; transform: translate(-50%, -50%); }
.rv-modal-close { position: absolute; top: 12px; right: 16px; background: none; border: 0; font-size: 1.9rem; line-height: 1; color: var(--rv-mid); cursor: pointer; padding: 4px 8px; border-radius: 8px; }
.rv-modal-close:hover { color: var(--rv-primary); background: var(--rv-surface); }
.rv-modal h3 { font-size: 1.5rem; margin: 0 0 6px; }
.rv-ask-sub { color: var(--rv-mid); margin: 0 0 20px; font-size: .95rem; line-height: 1.5; }
.rv-ask-product { background: var(--rv-surface); border-radius: 10px; padding: 11px 14px; margin-bottom: 16px; font-size: .9rem; color: var(--rv-mid); }
.rv-ask-product strong { color: var(--rv-primary); }
.rv-ask-field { margin-bottom: 14px; }
.rv-ask-field label { display: block; font-weight: 600; font-size: .85rem; margin-bottom: 6px; color: var(--rv-primary); }
.rv-ask-field input, .rv-ask-field select, .rv-ask-field textarea { width: 100%; border: 1px solid var(--rv-rule); border-radius: 10px; padding: 11px 13px; font-family: var(--rv-font-body); font-size: .95rem; background: #fff; color: var(--rv-ink); }
.rv-ask-field textarea { resize: vertical; }
.rv-ask-field input:focus, .rv-ask-field select:focus, .rv-ask-field textarea:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.rv-ask-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rv-ask-submit { width: 100%; justify-content: center; margin-top: 6px; }
.rv-ask-status { margin: 12px 0 0; font-size: .9rem; font-weight: 600; }
.rv-ask-status.is-ok { color: var(--rv-accent); }
.rv-ask-status.is-err { color: #c62828; }
@media (max-width: 460px) { .rv-ask-row { grid-template-columns: 1fr; } }

/* ---- CTA cards (homepage) ---- */
.rv-cta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 22px; }
.rv-cta-card { display: flex; flex-direction: column; align-items: flex-start; padding: 34px 30px; border-radius: var(--rv-radius-lg); color: #fff; text-decoration: none; min-height: 250px; overflow: hidden; transition: transform var(--rv-t), box-shadow var(--rv-t); box-shadow: var(--rv-shadow-sm); background: linear-gradient(135deg, var(--rv-primary), var(--rv-accent)); }
.rv-cta-card--solar { background: radial-gradient(500px 260px at 100% 0, rgba(249, 168, 37, .3), transparent 60%), linear-gradient(135deg, #0a3a3f, var(--rv-accent)); }
.rv-cta-card--clima { background: radial-gradient(500px 260px at 100% 0, rgba(117, 186, 225, .42), transparent 60%), linear-gradient(135deg, var(--rv-primary), #0a4a6a); }
.rv-cta-card--install { background: linear-gradient(135deg, var(--rv-accent), var(--rv-primary)); }
.rv-cta-card:hover { transform: translateY(-5px); box-shadow: var(--rv-shadow); }
.rv-cta-card .rv-ic-badge { background: rgba(255, 255, 255, .15); color: #fff; }
.rv-cta-card h3 { color: #fff; font-size: 1.4rem; margin: 0 0 8px; }
.rv-cta-card p { color: rgba(255, 255, 255, .85); margin: 0 0 18px; flex-grow: 1; }
.rv-cta-link { font-weight: 700; color: #fff; display: inline-flex; align-items: center; gap: 8px; }
.rv-cta-link .rv-ic { width: 16px; height: 16px; }

/* ============================================================
   18. BANNER DE COOKIES
   ============================================================ */
.rv-cookie { position: fixed; left: 22px; right: 22px; bottom: 22px; z-index: 120; background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); box-shadow: var(--rv-shadow); padding: 20px 24px; display: flex; align-items: center; gap: 24px; max-width: 1080px; margin: 0 auto; }
.rv-cookie--hidden { display: none; }
.rv-cookie-text strong { color: var(--rv-primary); font-family: var(--rv-font-head); }
.rv-cookie-text p { margin: 4px 0 0; color: var(--rv-mid); font-size: .9rem; }
.rv-cookie-actions { display: flex; gap: 12px; flex: 0 0 auto; }
.rv-cookie-actions .rv-btn { padding: 11px 22px; }
@media (max-width: 700px) { .rv-cookie { flex-direction: column; align-items: stretch; left: 12px; right: 12px; bottom: 12px; } .rv-cookie-actions .rv-btn { flex: 1; justify-content: center; } }

/* ============================================================
   19. PASSOS DO CHECKOUT
   ============================================================ */
.rv-steps { display: flex; justify-content: center; margin: 0 0 34px; flex-wrap: wrap; }
.rv-step { display: flex; align-items: center; gap: 10px; padding: 0 26px; position: relative; color: var(--rv-mid); }
.rv-step:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 50%; width: 1px; height: 26px; background: var(--rv-rule); transform: translateY(-50%); }
.rv-step-n { width: 30px; height: 30px; border-radius: 12px; background: var(--rv-surface); border: 1px solid var(--rv-rule); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-family: var(--rv-font-head); font-size: .9rem; }
.rv-step-l { font-weight: 600; font-size: .92rem; }
.rv-step--active { color: var(--rv-primary); }
.rv-step--active .rv-step-n { background: var(--rv-accent); border-color: var(--rv-accent); color: #fff; }
.rv-step--done { color: var(--rv-accent); }
.rv-step--done .rv-step-n { background: var(--rv-primary); border-color: var(--rv-primary); color: #fff; }
@media (max-width: 600px) { .rv-step-l { display: none; } .rv-step { padding: 0 16px; } }

/* ---- Carrinho / Checkout / Conta ---- */
.woocommerce-cart table.cart, .woocommerce table.shop_table { border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--rv-surface); color: var(--rv-primary); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout input.input-text,
.woocommerce .select2-container .select2-selection,
.woocommerce #order_comments { border-radius: var(--rv-radius) !important; border: 1px solid var(--rv-rule) !important; padding: 12px 14px; min-height: 46px; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); padding: 24px; box-shadow: var(--rv-shadow-sm); }
.woocommerce .button.alt, .woocommerce input.button.alt, .woocommerce #place_order {
	background: var(--rv-accent) !important; border-radius: var(--rv-radius-pill) !important; color: #fff !important;
	font-weight: 600 !important; padding: 14px 32px !important;
}
.woocommerce .button.alt:hover, .woocommerce #place_order:hover { background: var(--rv-primary) !important; }
/* ===== A minha conta ===== */
body.woocommerce-account .entry-content,
body.woocommerce-account .page-content { max-width: 100% !important; width: 100% !important; }
/* Esconde o H1 "A minha conta" — o herói/cabeçalho de secção dão o título */
body.woocommerce-account .entry-header { display: none; }
/* Layout em coluna: navegação horizontal no topo, conteúdo por baixo */
.woocommerce-account .woocommerce { display: block !important; }
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after { content: none !important; display: none !important; }

/* Barra de navegação horizontal com ícones */
.woocommerce-account .rv-acc-nav { float: none !important; width: auto !important; display: block; margin: 0 0 22px; }
.woocommerce-account .rv-acc-nav ul { list-style: none; padding: 6px; margin: 0; display: flex; flex-wrap: wrap; gap: 4px; background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); box-shadow: 0 10px 30px -26px rgba(3, 31, 55, .5); }
.woocommerce-account .rv-acc-nav li { margin: 0; }
.woocommerce-account .rv-acc-nav li a { display: inline-flex; align-items: center; gap: 9px; padding: 11px 17px; border-radius: 11px; color: var(--rv-mid); font-weight: 700; font-size: .9rem; text-decoration: none; white-space: nowrap; transition: background var(--rv-t), color var(--rv-t); }
.woocommerce-account .rv-acc-nav-ic { display: inline-flex; align-items: center; }
.woocommerce-account .rv-acc-nav-ic svg, .woocommerce-account .rv-acc-nav-ic .rv-ic { width: 18px; height: 18px; }
.woocommerce-account .rv-acc-nav li a:hover { background: var(--rv-surface); color: var(--rv-primary); }
.woocommerce-account .rv-acc-nav li.is-active a { background: var(--rv-primary); color: #fff; }
.woocommerce-account .rv-acc-nav li.woocommerce-MyAccount-navigation-link--customer-logout { margin-left: auto; }
.woocommerce-account .rv-acc-nav li.woocommerce-MyAccount-navigation-link--customer-logout a { color: #cf3b3b; }
.woocommerce-account .rv-acc-nav li.woocommerce-MyAccount-navigation-link--customer-logout a:hover { background: #fbeaea; color: #cf3b3b; }

/* Conteúdo */
.woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: auto !important; margin: 0 !important; min-width: 0; background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); padding: 28px 30px; }

/* Cabeçalho de secção (orders, moradas, dados...) */
.rv-acc-head { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; margin-bottom: 22px; border-bottom: 1px solid var(--rv-rule); }
.rv-acc-head-ic { width: 46px; height: 46px; flex: 0 0 auto; border-radius: 13px; background: var(--rv-surface); color: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; }
.rv-acc-head-ic svg, .rv-acc-head-ic .rv-ic { width: 23px; height: 23px; }
.rv-acc-head h2 { font-family: var(--rv-font-head); color: var(--rv-primary); margin: 0; font-size: 1.3rem; line-height: 1.2; }
.rv-acc-head p { margin: 3px 0 0; color: var(--rv-mid); font-size: .88rem; }

/* Menu da conta no telemóvel/tablet: grelha de 2 colunas (todos os itens visíveis,
 * tap-friendly), em vez de quebrar/transbordar; "Terminar sessão" a toda a largura. */
@media (max-width: 1024px) {
	.woocommerce-account .rv-acc-nav ul { display: grid !important; grid-template-columns: 1fr 1fr; gap: 6px; flex-wrap: initial; overflow: visible; }
	.woocommerce-account .rv-acc-nav li { margin: 0; }
	.woocommerce-account .rv-acc-nav li a { width: 100%; justify-content: flex-start; white-space: normal; line-height: 1.2; font-size: .86rem; padding: 12px 14px; }
	.woocommerce-account .rv-acc-nav li.woocommerce-MyAccount-navigation-link--customer-logout { margin-left: 0; grid-column: 1 / -1; }
	.woocommerce-account .rv-acc-nav li.woocommerce-MyAccount-navigation-link--customer-logout a { justify-content: center; }
}
@media (max-width: 700px) {
	.woocommerce-account .woocommerce-MyAccount-content { padding: 20px 18px; }
}

/* Dashboard */
.rv-dash-hero { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; background: linear-gradient(140deg, var(--rv-primary), var(--rv-accent)); color: #fff; border-radius: 16px; padding: 22px 24px; margin-bottom: 20px; }
.rv-dash-hello { font-family: var(--rv-font-head); font-size: 1.4rem; font-weight: 800; display: block; }
.rv-dash-hero p { margin: 6px 0 0; color: rgba(255, 255, 255, .85); font-size: .92rem; }
.rv-dash-logout { color: #fff; font-weight: 700; font-size: .82rem; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, .16); padding: 8px 14px; border-radius: 12px; text-decoration: none; }
.rv-dash-logout:hover { background: rgba(255, 255, 255, .26); }
.rv-dash-logout svg { width: 14px; height: 14px; transform: rotate(180deg); }
.rv-dash-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; }
.rv-dash-stat { background: #fff; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 18px; text-align: center; min-width: 0; }
@media (max-width: 480px) { .rv-dash-stats { gap: 8px; } .rv-dash-stat { padding: 14px 6px; } .rv-dash-stat-n { font-size: 1.45rem; } .rv-dash-stat-k { font-size: .66rem; letter-spacing: .02em; } }
.rv-dash-stat-ic { width: 40px; height: 40px; border-radius: 11px; background: var(--rv-surface); color: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 8px; }
.rv-dash-stat-ic svg, .rv-dash-stat-ic .rv-ic { width: 20px; height: 20px; }
.rv-dash-stat-n { display: block; font-family: var(--rv-font-head); font-size: 1.8rem; font-weight: 800; color: var(--rv-primary); line-height: 1; }
.rv-dash-stat-k { display: block; color: var(--rv-mid); font-size: .74rem; margin-top: 5px; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; }
.rv-dash-sechead { display: flex; align-items: baseline; justify-content: space-between; margin: 6px 0 12px; }
.rv-dash-sechead h3 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.15rem; margin: 0; }
.rv-dash-sechead a { color: var(--rv-accent); font-weight: 700; font-size: .85rem; text-decoration: none; }
.rv-orderlist { display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; }
.rv-orderrow { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 14px; border: 1px solid var(--rv-rule); border-radius: 12px; padding: 12px 16px; }
.rv-orderrow-main { display: flex; flex-direction: column; min-width: 0; }
.rv-orderrow-num { font-weight: 800; color: var(--rv-primary); }
.rv-orderrow-date { color: var(--rv-mid); font-size: .82rem; }
.rv-orderrow-total { color: var(--rv-ink, #243b4a); font-size: .86rem; white-space: nowrap; }
.rv-orderrow-status { font-size: .72rem; font-weight: 800; padding: 4px 10px; border-radius: 12px; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.rv-orderrow-status--processing, .rv-track-status--processing { background: #e8f1fd; color: #1f6feb; }
.rv-orderrow-status--completed, .rv-track-status--completed { background: #e8f4ec; color: var(--rv-accent); }
.rv-orderrow-status--on-hold, .rv-orderrow-status--pending, .rv-track-status--on-hold, .rv-track-status--pending { background: #fff5e0; color: #b3700a; }
.rv-orderrow-status--cancelled, .rv-orderrow-status--failed, .rv-orderrow-status--refunded, .rv-track-status--cancelled, .rv-track-status--failed { background: #fbeaea; color: #d23f3f; }
.rv-orderrow-btn { color: var(--rv-accent); font-weight: 700; border: 1px solid var(--rv-rule); border-radius: 12px; padding: 7px 16px; font-size: .85rem; text-decoration: none; white-space: nowrap; }
.rv-orderrow-btn:hover { border-color: var(--rv-accent); background: rgba(21, 87, 60, .06); }
@media (max-width: 600px) { .rv-orderrow { grid-template-columns: 1fr auto; } .rv-orderrow-total { grid-column: 1 / -1; } }
.rv-dash-quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 860px) { .rv-dash-quick { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .rv-dash-quick { grid-template-columns: 1fr; } }
.rv-dash-tile { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 18px; text-decoration: none; transition: border-color var(--rv-t), transform var(--rv-t), box-shadow var(--rv-t); }
.rv-dash-tile:hover { border-color: var(--rv-accent); transform: translateY(-2px); box-shadow: 0 14px 30px -20px rgba(3, 31, 55, .5); }
.rv-dash-tile-ic { width: 42px; height: 42px; border-radius: 12px; background: var(--rv-surface); color: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 8px; }
.rv-dash-tile-ic svg, .rv-dash-tile-ic .rv-ic { width: 21px; height: 21px; }
.rv-dash-tile-t { font-weight: 800; color: var(--rv-primary); }
.rv-dash-tile-s { color: var(--rv-mid); font-size: .82rem; }
.rv-dash-empty { text-align: center; padding: 26px; border: 1px dashed var(--rv-rule); border-radius: 12px; }
.rv-dash-empty p { color: var(--rv-mid); margin: 0 0 14px; }

/* Caixa de seguimento */
.rv-track { border: 1px solid var(--rv-rule); border-radius: 14px; padding: 18px 20px; margin: 0 0 22px; background: linear-gradient(140deg, rgba(21, 87, 60, .05), rgba(117, 186, 225, .08)); }
.rv-track-head { display: flex; align-items: center; gap: 8px; font-size: 1rem; color: var(--rv-primary); }
.rv-track-head svg, .rv-track-head .rv-ic { width: 18px; height: 18px; color: var(--rv-accent); flex: 0 0 auto; }
.rv-track-status { margin-left: auto; font-size: .7rem; font-weight: 800; padding: 3px 10px; border-radius: 12px; text-transform: uppercase; }
.rv-track-rows { display: flex; flex-wrap: wrap; gap: 10px 30px; margin: 14px 0; }
.rv-track-row { display: flex; flex-direction: column; }
.rv-track-row span { color: var(--rv-mid); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.rv-track-row strong { color: var(--rv-primary); font-size: 1rem; }
.rv-track-btn { display: inline-flex; align-items: center; gap: 8px; }
.rv-track-btn svg, .rv-track-btn .rv-ic { width: 15px; height: 15px; }
.rv-track-pending { color: var(--rv-mid); font-size: .88rem; display: flex; align-items: center; gap: 8px; margin: 12px 0; }
.rv-track-pending svg, .rv-track-pending .rv-ic { width: 15px; height: 15px; color: var(--rv-accent); flex: 0 0 auto; }
.rv-track-link { display: inline-block; margin-top: 8px; margin-left: 14px; color: var(--rv-accent); font-weight: 700; font-size: .85rem; text-decoration: none; }
.rv-track-btn + .rv-track-link { margin-left: 14px; }

/* Páginas internas do WooCommerce (encomendas, moradas, dados) */
.woocommerce-MyAccount-content > p:first-child:not(.rv-acc-head):not(.form-row) { color: var(--rv-mid); }
.woocommerce-MyAccount-content table.shop_table { border: 1px solid var(--rv-rule); border-radius: 12px; border-collapse: separate; border-spacing: 0; overflow: hidden; width: 100%; margin: 0; }
.woocommerce-MyAccount-content table.shop_table thead th { background: var(--rv-surface); color: var(--rv-primary); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; padding: 13px 14px; text-align: left; border: none; }
.woocommerce-MyAccount-content table.shop_table tbody td { padding: 14px; border-top: 1px solid var(--rv-rule); color: var(--rv-ink, #243b4a); font-size: .9rem; vertical-align: middle; }
.woocommerce-MyAccount-content table.shop_table tbody tr:first-child td { border-top: none; }
.woocommerce-MyAccount-content table.shop_table tbody tr:hover td { background: rgba(21, 87, 60, .03); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-number a { font-weight: 800; color: var(--rv-primary); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-status { font-weight: 700; }

/* Botões */
.woocommerce-MyAccount-content .woocommerce-button,
.woocommerce-MyAccount-content a.button,
.woocommerce-MyAccount-content button.button,
.woocommerce-MyAccount-content input.button { background: var(--rv-primary); color: #fff; border: none; border-radius: 12px; padding: 9px 20px; font-weight: 700; font-size: .85rem; line-height: 1.3; transition: background var(--rv-t), transform var(--rv-t); }
.woocommerce-MyAccount-content .woocommerce-button:hover,
.woocommerce-MyAccount-content a.button:hover,
.woocommerce-MyAccount-content button.button:hover,
.woocommerce-MyAccount-content input.button:hover { background: var(--rv-accent); }
.woocommerce-MyAccount-content a.button.view { background: #fff; color: var(--rv-accent); border: 1px solid var(--rv-rule); }
.woocommerce-MyAccount-content a.button.view:hover { border-color: var(--rv-accent); background: rgba(21, 87, 60, .06); }

/* Avisos / mensagens */
.woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-Message { background: var(--rv-surface); border: 1px solid var(--rv-rule); border-left: 3px solid var(--rv-accent); border-radius: 10px; padding: 14px 16px; color: var(--rv-primary); }
.woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-MyAccount-content .woocommerce-message::before { display: none; }

/* Moradas */
.woocommerce-MyAccount-content .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 4px 0 0; align-items: start; }
.woocommerce-MyAccount-content .woocommerce-Addresses::before,
.woocommerce-MyAccount-content .woocommerce-Addresses::after { content: none !important; display: none !important; }
.woocommerce-MyAccount-content .woocommerce-Address { float: none !important; width: auto !important; margin: 0 !important; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 20px 22px; }
.woocommerce-MyAccount-content .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.woocommerce-MyAccount-content .woocommerce-Address-title h2,
.woocommerce-MyAccount-content .woocommerce-Address-title h3 { font-family: var(--rv-font-head); color: var(--rv-primary); margin: 0; font-size: 1.05rem; }
.woocommerce-MyAccount-content .woocommerce-Address-title .edit { font-size: .8rem; font-weight: 700; color: var(--rv-accent); text-decoration: none; }
.woocommerce-MyAccount-content .woocommerce-Address address { font-style: normal; color: var(--rv-ink, #243b4a); line-height: 1.7; font-size: .9rem; }

/* Formulários (dados da conta / morada) */
.woocommerce-MyAccount-content form .form-row { margin: 0 0 16px; }
.woocommerce-MyAccount-content form label { display: block; font-weight: 700; color: var(--rv-primary); font-size: .85rem; margin-bottom: 6px; }
.woocommerce-MyAccount-content form .input-text,
.woocommerce-MyAccount-content form input[type="text"],
.woocommerce-MyAccount-content form input[type="email"],
.woocommerce-MyAccount-content form input[type="tel"],
.woocommerce-MyAccount-content form input[type="password"],
.woocommerce-MyAccount-content form select { width: 100%; padding: 11px 14px; border: 1px solid var(--rv-rule); border-radius: 10px; font-size: .92rem; background: #fff; color: var(--rv-ink, #243b4a); transition: border-color var(--rv-t), box-shadow var(--rv-t); }
.woocommerce-MyAccount-content form .input-text:focus,
.woocommerce-MyAccount-content form select:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.woocommerce-MyAccount-content form fieldset { border: 1px solid var(--rv-rule); border-radius: 12px; padding: 16px 20px 4px; margin: 22px 0 0; }
.woocommerce-MyAccount-content form fieldset legend { font-weight: 800; color: var(--rv-primary); padding: 0 8px; font-size: .95rem; }
.woocommerce-MyAccount-content form .woocommerce-Button,
.woocommerce-MyAccount-content form button[type="submit"] { margin-top: 8px; }
@media (max-width: 600px) { .woocommerce-MyAccount-content .woocommerce-Addresses { grid-template-columns: 1fr; } }

/* Assistência e Garantias */
.rv-ass-note { background: var(--rv-surface); border: 1px solid var(--rv-rule); border-radius: 12px; padding: 16px 18px; margin: 0 0 20px; }
.rv-ass-note p { margin: 0; color: var(--rv-ink, #243b4a); font-size: .92rem; line-height: 1.6; }
.rv-ass-note-small { margin-top: 8px !important; color: var(--rv-mid) !important; font-size: .82rem !important; }
.rv-ass-list { display: flex; flex-direction: column; gap: 12px; }
.rv-ass-item { display: flex; align-items: center; gap: 16px; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 14px 16px; transition: border-color var(--rv-t), box-shadow var(--rv-t); }
.rv-ass-item:hover { border-color: var(--rv-accent); box-shadow: 0 14px 30px -22px rgba(3, 31, 55, .5); }
.rv-ass-img { width: 56px; height: 56px; flex: 0 0 auto; border-radius: 10px; overflow: hidden; background: var(--rv-surface); display: flex; align-items: center; justify-content: center; }
.rv-ass-img img { width: 100%; height: 100%; object-fit: contain; }
.rv-ass-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 auto; }
.rv-ass-name { font-weight: 800; color: var(--rv-primary); line-height: 1.3; }
.rv-ass-meta { color: var(--rv-mid); font-size: .8rem; }
.rv-ass-warr { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 800; margin-top: 4px; }
.rv-ass-warr svg, .rv-ass-warr .rv-ic { width: 14px; height: 14px; }
.rv-ass-warr--active { color: var(--rv-accent); }
.rv-ass-warr--expired { color: var(--rv-mid); }
.rv-ass-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; background: var(--rv-primary); color: #fff; border-radius: 12px; padding: 10px 18px; font-weight: 700; font-size: .85rem; text-decoration: none; transition: background var(--rv-t); white-space: nowrap; }
.rv-ass-btn:hover { background: var(--rv-accent); color: #fff; }
.rv-ass-btn svg, .rv-ass-btn .rv-ic { width: 15px; height: 15px; }
.rv-ass-foot { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--rv-rule); color: var(--rv-mid); font-size: .88rem; }
.rv-ass-foot a { color: var(--rv-accent); font-weight: 700; text-decoration: none; }
@media (max-width: 560px) {
	.rv-ass-item { flex-wrap: wrap; }
	.rv-ass-btn { width: 100%; justify-content: center; }
}

/* ============================================================
   PÁGINA CONTACTOS
   ============================================================ */
.rv-contact { color: var(--rv-ink, #243b4a); }

/* Hero */
.rv-ct-hero { background: linear-gradient(140deg, var(--rv-primary), var(--rv-accent)); color: #fff; padding: 56px 0; margin: 24px 0 40px; border-radius: var(--rv-radius-lg); overflow: hidden; }
/* contentor à largura total (igual ao hero das notícias); o texto é que é limitado */
.rv-ct-hero-inner { max-width: var(--rv-container); }
.rv-ct-eyebrow { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, .16); padding: 7px 14px; border-radius: 12px; font-weight: 700; font-size: .8rem; }
.rv-ct-eyebrow svg, .rv-ct-eyebrow .rv-ic { width: 16px; height: 16px; }
.rv-ct-hero h1 { font-family: var(--rv-font-head); font-size: clamp(2rem, 4vw, 2.9rem); margin: 14px 0 10px; color: #fff; max-width: 760px; }
.rv-ct-hero p { color: rgba(255, 255, 255, .9); font-size: 1.02rem; line-height: 1.6; margin: 0; max-width: 680px; }
.rv-ct-hero-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.rv-ct-chip { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2); color: #fff; padding: 9px 15px; border-radius: 12px; font-weight: 600; font-size: .88rem; text-decoration: none; }
.rv-ct-chip:hover { background: rgba(255, 255, 255, .22); color: #fff; }
.rv-ct-chip svg, .rv-ct-chip .rv-ic { width: 16px; height: 16px; }

/* Info + formulário */
.rv-ct-main { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 28px; align-items: start; margin-bottom: 48px; }
.rv-ct-aside { display: flex; flex-direction: column; gap: 14px; }
.rv-ct-infocard { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 16px 18px; }
.rv-ct-infoic { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 12px; background: var(--rv-surface); color: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; }
.rv-ct-infoic svg, .rv-ct-infoic .rv-ic { width: 20px; height: 20px; }
.rv-ct-infocard h3 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1rem; margin: 0 0 3px; }
.rv-ct-infocard p { margin: 0; color: var(--rv-mid); font-size: .92rem; line-height: 1.5; }
.rv-ct-infocard a { color: var(--rv-accent); font-weight: 700; text-decoration: none; }
.rv-ct-map { border: 1px solid var(--rv-rule); border-radius: 14px; overflow: hidden; line-height: 0; }
.rv-ct-map iframe { display: block; width: 100%; }

.rv-ct-formwrap { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); padding: 30px 32px; }
.rv-ct-formwrap h2 { font-family: var(--rv-font-head); color: var(--rv-primary); margin: 0 0 4px; font-size: 1.4rem; }
.rv-ct-formsub { color: var(--rv-mid); margin: 0 0 20px; font-size: .92rem; }
.rv-ct-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rv-ct-field { margin-bottom: 16px; }
.rv-ct-field label { display: block; font-weight: 700; color: var(--rv-primary); font-size: .85rem; margin-bottom: 6px; }
.rv-ct-field label span { color: #cf3b3b; }
.rv-ct-form input[type="text"], .rv-ct-form input[type="email"], .rv-ct-form select, .rv-ct-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--rv-rule); border-radius: 10px; font-size: .95rem; background: #fff; color: var(--rv-ink, #243b4a); font-family: inherit; transition: border-color var(--rv-t), box-shadow var(--rv-t); }
.rv-ct-form input:focus, .rv-ct-form select:focus, .rv-ct-form textarea:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.rv-ct-form textarea { resize: vertical; }
.rv-ct-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rv-ct-consent { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 20px; font-size: .85rem; color: var(--rv-mid); line-height: 1.5; }
.rv-ct-consent input { margin-top: 3px; flex: 0 0 auto; }
.rv-ct-consent a { color: var(--rv-accent); font-weight: 700; }
.rv-ct-submit { display: inline-flex; align-items: center; gap: 9px; background: var(--rv-primary); color: #fff; border: none; border-radius: 12px; padding: 13px 28px; font-weight: 700; font-size: .95rem; cursor: pointer; transition: background var(--rv-t), transform var(--rv-t); }
.rv-ct-submit:hover { background: var(--rv-accent); transform: translateY(-1px); }
.rv-ct-submit svg, .rv-ct-submit .rv-ic { width: 18px; height: 18px; }
.rv-ct-alert { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-radius: 10px; font-weight: 600; font-size: .9rem; margin-bottom: 18px; }
.rv-ct-alert svg, .rv-ct-alert .rv-ic { width: 18px; height: 18px; flex: 0 0 auto; }
.rv-ct-alert--ok { background: #e8f4ec; color: var(--rv-accent); border: 1px solid #bfe3cc; }
.rv-ct-alert--err { background: #fbeaea; color: #cf3b3b; border: 1px solid #f1c9c9; }

/* Secção: cabeçalho centrado */
.rv-ct-sechead { text-align: center; margin: 0 0 24px; }
.rv-ct-sechead h2 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.6rem; margin: 0 0 6px; }
.rv-ct-sechead p { color: var(--rv-mid); margin: 0; }

/* Áreas (fotografias) */
.rv-ct-areas { margin-bottom: 54px; }
.rv-ct-areagrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.rv-ct-area { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rv-rule); border-radius: 16px; overflow: hidden; text-decoration: none; position: relative; transition: border-color var(--rv-t), transform var(--rv-t), box-shadow var(--rv-t); }
.rv-ct-area:hover { border-color: var(--rv-accent); transform: translateY(-4px); box-shadow: 0 22px 40px -28px rgba(3, 31, 55, .55); }
.rv-ct-area-img { height: 172px; background: #fff; display: flex; align-items: center; justify-content: center; padding: 16px; overflow: hidden; border-bottom: 1px solid var(--rv-rule); }
.rv-ct-area-img img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.rv-ct-area-body { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px 20px; }
.rv-ct-area-body strong { color: var(--rv-primary); font-size: 1.02rem; }
.rv-ct-area-body span { color: var(--rv-mid); font-size: .84rem; }
.rv-ct-area-arrow { position: absolute; top: 14px; right: 14px; width: 22px; height: 22px; color: var(--rv-accent); opacity: 0; transform: translateX(-4px); transition: opacity var(--rv-t), transform var(--rv-t); }
.rv-ct-area:hover .rv-ct-area-arrow { opacity: 1; transform: none; }

/* FAQ */
.rv-ct-faq { margin-bottom: 54px; }
.rv-ct-faqlist { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.rv-faq-item { background: #fff; border: 1px solid var(--rv-rule); border-radius: 14px; overflow: hidden; }
.rv-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 20px; cursor: pointer; font-weight: 700; color: var(--rv-primary); font-size: 1.02rem; list-style: none; }
.rv-faq-item summary::-webkit-details-marker { display: none; }
.rv-faq-chev { width: 20px; height: 20px; color: var(--rv-accent); flex: 0 0 auto; transition: transform var(--rv-t); }
.rv-faq-item[open] summary { color: var(--rv-accent); }
.rv-faq-item[open] summary .rv-faq-chev { transform: rotate(90deg); }
.rv-faq-a { padding: 0 20px 20px; }
.rv-faq-a p { margin: 0; color: var(--rv-ink, #243b4a); line-height: 1.65; }
.rv-faq-a a { color: var(--rv-accent); font-weight: 700; }

/* CTA final */
.rv-ct-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; background: linear-gradient(135deg, var(--rv-primary), var(--rv-accent)); color: #fff; border-radius: var(--rv-radius-lg); padding: 32px 38px; margin-bottom: 54px; }
.rv-ct-cta h2 { font-family: var(--rv-font-head); color: #fff; margin: 0 0 4px; font-size: 1.5rem; }
.rv-ct-cta p { margin: 0; color: rgba(255, 255, 255, .9); }

@media (max-width: 900px) { .rv-ct-main { grid-template-columns: 1fr; } .rv-ct-areagrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rv-ct-row { grid-template-columns: 1fr; } .rv-ct-formwrap { padding: 22px 18px; } }

/* ============================================================
   NOTÍCIAS / BLOG
   ============================================================ */
.rv-news-hero { background: linear-gradient(140deg, var(--rv-primary), var(--rv-accent)); color: #fff; padding: 56px 0; margin: 24px 0 40px; border-radius: var(--rv-radius-lg); overflow: hidden; }
.rv-news-hero .rv-container { max-width: var(--rv-container); }
.rv-news-hero h1 { font-family: var(--rv-font-head); color: #fff; font-size: clamp(2rem, 4vw, 2.9rem); margin: 14px 0 10px; max-width: 760px; }
.rv-news-hero p { color: rgba(255, 255, 255, .9); max-width: 680px; font-size: 1.02rem; line-height: 1.6; margin: 0; }
/* Telemóvel: os banners não podem ficar colados às bordas + padding interno menor */
@media (max-width: 1024px) {
	.rv-ct-hero, .rv-news-hero { margin-left: 14px; margin-right: 14px; padding: 34px 0; }
	.rv-ct-hero .rv-container, .rv-news-hero .rv-container { padding-left: 18px; padding-right: 18px; }
}
/* Desktop estreito (1025–1240): o contentor ainda não está centrado, por isso o
 * banner colava às bordas — dar margem lateral também aqui. */
@media (min-width: 1025px) and (max-width: 1240px) {
	.rv-ct-hero, .rv-news-hero { margin-left: 24px; margin-right: 24px; }
}

/* Meta + texto partilhados */
.rv-news-meta { display: flex; align-items: center; gap: 10px; font-size: .78rem; }
.rv-news-cat { background: var(--rv-surface); color: var(--rv-accent); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 4px 10px; border-radius: 12px; }
.rv-news-date { color: var(--rv-mid); font-weight: 600; }
.rv-news-title { font-family: var(--rv-font-head); color: var(--rv-primary); margin: 10px 0 8px; line-height: 1.25; }
.rv-news-exc { color: var(--rv-mid); font-size: .92rem; line-height: 1.55; display: block; }
.rv-news-more { display: inline-flex; align-items: center; gap: 7px; color: var(--rv-accent); font-weight: 800; font-size: .86rem; margin-top: 12px; }
.rv-news-more svg, .rv-news-more .rv-ic { width: 16px; height: 16px; transition: transform var(--rv-t); }
.rv-news-card:hover .rv-news-more svg, .rv-news-feature:hover .rv-news-more svg { transform: translateX(3px); }

/* Imagem dos cartões — foto inteira sobre fundo branco (igual aos cards de Contactos) */
.rv-news-card-img { display: flex; align-items: center; justify-content: center; overflow: hidden; background: #fff; padding: 16px; }
.rv-news-card-img img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; transition: transform .5s ease; }
.rv-news-feature:hover .rv-news-card-img img, .rv-news-card:hover .rv-news-card-img img { transform: scale(1.04); }
.rv-news-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 190px; color: var(--rv-sky); }
.rv-news-noimg svg { width: 54px; height: 54px; }

/* Destaque */
.rv-news-feature { display: grid; grid-template-columns: 1.15fr 1fr; background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); overflow: hidden; text-decoration: none; margin-bottom: 30px; transition: box-shadow var(--rv-t), transform var(--rv-t); }
.rv-news-feature:hover { box-shadow: 0 30px 60px -40px rgba(3, 31, 55, .6); transform: translateY(-3px); }
.rv-news-feature .rv-news-card-img { min-height: 300px; border-right: 1px solid var(--rv-rule); }
.rv-news-feature .rv-news-card-body { padding: 34px 36px; display: flex; flex-direction: column; justify-content: center; }
.rv-news-feature .rv-news-title { font-size: 1.7rem; }

/* Grelha */
.rv-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 54px; }
.rv-news-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rv-rule); border-radius: 16px; overflow: hidden; text-decoration: none; transition: border-color var(--rv-t), transform var(--rv-t), box-shadow var(--rv-t); }
.rv-news-card:hover { border-color: var(--rv-accent); transform: translateY(-4px); box-shadow: 0 22px 44px -30px rgba(3, 31, 55, .55); }
.rv-news-card .rv-news-card-img { height: 172px; border-bottom: 1px solid var(--rv-rule); }
.rv-news-card .rv-news-card-body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.rv-news-card .rv-news-title { font-size: 1.12rem; }
.rv-news-card .rv-news-more { margin-top: auto; }
.rv-news-empty { text-align: center; color: var(--rv-mid); padding: 40px 0 60px; }

/* Artigo individual */
.rv-article-wrap { max-width: 820px; }
.rv-article-back { display: inline-flex; align-items: center; gap: 8px; color: var(--rv-mid); font-weight: 700; font-size: .88rem; text-decoration: none; margin: 26px 0 22px; }
.rv-article-back:hover { color: var(--rv-accent); }
.rv-article-back-ic { width: 16px; height: 16px; transform: rotate(180deg); }
.rv-article-head h1 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.2; margin: 12px 0 16px; }
.rv-article-author { display: flex; align-items: center; gap: 10px; color: var(--rv-mid); font-size: .9rem; }
.rv-article-author strong { color: var(--rv-primary); }
.rv-article-author-av { width: 38px; height: 38px; border-radius: 50%; background: var(--rv-surface); color: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; }
.rv-article-author-av svg { width: 20px; height: 20px; }
.rv-article-hero { margin: 26px 0 30px; border-radius: var(--rv-radius-lg); overflow: hidden; }
.rv-article-hero img { width: 100%; height: auto; display: block; }
.rv-article-body { color: var(--rv-ink, #243b4a); font-size: 1.05rem; line-height: 1.75; }
.rv-article-body h2 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.45rem; margin: 34px 0 12px; }
.rv-article-body h3 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.15rem; margin: 26px 0 10px; }
.rv-article-body p { margin: 0 0 16px; }
.rv-article-body ul { margin: 0 0 18px; padding-left: 0; list-style: none; }
.rv-article-body ul li { position: relative; padding-left: 30px; margin-bottom: 10px; }
.rv-article-body ul li::before { content: ""; position: absolute; left: 6px; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--rv-accent); }

.rv-article-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; background: linear-gradient(135deg, var(--rv-primary), var(--rv-accent)); color: #fff; border-radius: var(--rv-radius-lg); padding: 30px 34px; margin: 40px 0 10px; }
.rv-article-cta h2 { font-family: var(--rv-font-head); color: #fff; margin: 0 0 4px; font-size: 1.4rem; }
.rv-article-cta p { margin: 0; color: rgba(255, 255, 255, .9); }

.rv-related { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--rv-rule); }

@media (max-width: 860px) {
	.rv-news-feature { grid-template-columns: 1fr; }
	.rv-news-feature .rv-news-card-img { min-height: 220px; border-right: 0; border-bottom: 1px solid var(--rv-rule); }
	.rv-news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) { .rv-news-grid { grid-template-columns: 1fr; } }

/* ============================================================
   CHECKOUT POR PASSOS
   ============================================================ */
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout .page-content { max-width: 100% !important; width: 100% !important; }
.rv-co-source { display: none !important; }

/* Barra de progresso */
.rv-co-steps { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0 0 26px; }
.rv-co-steps li { flex: 1; display: flex; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid var(--rv-rule); border-radius: 12px; background: #fff; color: var(--rv-mid); font-weight: 700; font-size: .9rem; cursor: pointer; }
.rv-co-stepn { width: 26px; height: 26px; border-radius: 50%; background: var(--rv-surface); color: var(--rv-mid); display: inline-flex; align-items: center; justify-content: center; font-size: .82rem; flex: 0 0 auto; }
.rv-co-steps li.is-active { border-color: var(--rv-primary); color: var(--rv-primary); }
.rv-co-steps li.is-active .rv-co-stepn { background: var(--rv-primary); color: #fff; }
.rv-co-steps li.is-done .rv-co-stepn { background: var(--rv-accent); color: #fff; }
@media (max-width: 640px) { .rv-co-steplbl { display: none; } .rv-co-steps li { justify-content: center; flex: 1; } }

/* Layout empilhado: resumo (produtos) em cima, passos em baixo */
.rv-co-grid { display: flex; flex-direction: column; gap: 22px; }
.rv-co-aside { order: -1; }
.rv-co-main { min-width: 0; }
.rv-co-panel { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); padding: 26px 28px; }
.rv-co-phead h2 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.3rem; margin: 0 0 4px; }
.rv-co-phead p { color: var(--rv-mid); margin: 0 0 20px; font-size: .92rem; }
.rv-co-phead a { color: var(--rv-accent); font-weight: 700; }

/* Navegação */
.rv-co-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; }
.rv-co-nav [hidden] { display: none !important; }
.rv-co-next, .rv-co-back { display: inline-flex; align-items: center; gap: 9px; border-radius: 12px; padding: 13px 26px; font-weight: 700; font-size: .92rem; cursor: pointer; border: 1px solid var(--rv-rule); }
.rv-co-next { background: var(--rv-primary); color: #fff; border-color: var(--rv-primary); margin-left: auto; }
.rv-co-next:hover { background: var(--rv-accent); border-color: var(--rv-accent); }
.rv-co-next svg { width: 16px; height: 16px; }
.rv-co-back { background: #fff; color: var(--rv-mid); }
.rv-co-back svg { width: 16px; height: 16px; transform: rotate(180deg); }

/* Campos */
.rv-checkout .form-row { margin: 0 0 16px; padding: 0; }
.rv-checkout .rv-co-fields { display: flex; flex-wrap: wrap; gap: 0 16px; }
.rv-checkout .rv-co-fields .form-row { flex: 1 1 100%; }
.rv-checkout .rv-co-fields .form-row-first, .rv-checkout .rv-co-fields .form-row-last { flex: 1 1 calc(50% - 8px); }
.rv-checkout label { display: block; font-weight: 700; color: var(--rv-primary); font-size: .85rem; margin-bottom: 6px; }
.rv-checkout .input-text, .rv-checkout select, .rv-checkout textarea { width: 100%; padding: 11px 14px; border: 1px solid var(--rv-rule); border-radius: 10px; font-size: .95rem; background: #fff; font-family: inherit; }
.rv-checkout .input-text:focus, .rv-checkout select:focus, .rv-checkout textarea:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.rv-checkout .woocommerce-invalid .input-text, .rv-checkout .woocommerce-invalid select { border-color: #cf3b3b; }
.rv-checkout abbr.required { color: #cf3b3b; border: none; text-decoration: none; }

/* Método de entrega (passo 2) */
.rv-co-shipping { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--rv-rule); }
.rv-co-shipping h3 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.05rem; margin: 0 0 10px; }
.rv-co-shipping-inner em { color: var(--rv-mid); font-size: .9rem; }
.rv-co-shipping ul#shipping_method { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rv-co-shipping #shipping_method li { padding: 12px 14px; border: 1px solid var(--rv-rule); border-radius: 10px; }
.rv-co-shipping #shipping_method li label { display: inline; font-weight: 600; color: var(--rv-ink, #243b4a); }

.rv-co-shipdiff { margin-top: 8px; }
.rv-co-shipdiff .woocommerce-shipping-fields h3 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.05rem; }

/* Pagamento (passo 3) */
#rv-co-payment { margin-top: 22px; }
.rv-checkout #payment { background: transparent; }
.rv-checkout #payment ul.payment_methods { border: 1px solid var(--rv-rule); border-radius: 12px; padding: 14px; list-style: none; margin: 0 0 16px; }
.rv-checkout #payment .form-row.place-order { padding: 0; margin: 0; }
.rv-checkout #place_order { float: none; width: 100%; background: var(--rv-accent); color: #fff; border: none; border-radius: 12px; padding: 15px; font-weight: 800; font-size: 1rem; cursor: pointer; transition: background var(--rv-t); }
.rv-checkout #place_order:hover { background: var(--rv-primary); }

/* Resumo */
.rv-co-aside { position: sticky; top: 90px; }
.rv-co-summary { background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); padding: 22px 24px; }
.rv-co-summary h3#order_review_heading { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.15rem; margin: 0 0 16px; }
.rv-co-summary table { width: 100%; border-collapse: collapse; margin: 0; }
.rv-co-items .rv-co-item td { padding: 10px 0; border-bottom: 1px solid var(--rv-rule); vertical-align: middle; }
.rv-co-item-name { display: flex; align-items: center; gap: 12px; }
.rv-co-item-thumb { position: relative; width: 50px; height: 50px; flex: 0 0 auto; border: 1px solid var(--rv-rule); border-radius: 10px; overflow: hidden; background: #fff; }
.rv-co-item-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.rv-co-item-qty { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; background: var(--rv-primary); color: #fff; border-radius: 12px; font-size: .7rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.rv-co-item-title { font-weight: 700; color: var(--rv-primary); font-size: .88rem; line-height: 1.3; display: block; }
.rv-co-item-info .variation { margin: 2px 0 0; font-size: .78rem; color: var(--rv-mid); }
.rv-co-item-total { text-align: right; font-weight: 700; color: var(--rv-primary); white-space: nowrap; font-size: .9rem; }
.rv-co-summary tfoot th { text-align: left; font-weight: 600; color: var(--rv-mid); padding: 8px 0; font-size: .9rem; }
.rv-co-summary tfoot td { text-align: right; padding: 8px 0; font-weight: 700; color: var(--rv-primary); font-size: .9rem; }
.rv-co-summary tfoot .order-total th, .rv-co-summary tfoot .order-total td { border-top: 2px solid var(--rv-rule); padding-top: 14px; font-size: 1.05rem; }
.rv-co-summary tfoot .order-total td { color: var(--rv-accent); }

/* Override às bordas/estilos herdados de .shop_table (cart) dentro do resumo */
.rv-co-summary table.shop_table,
.rv-co-summary table.shop_table td,
.rv-co-summary table.shop_table th { border: 0 !important; background: none !important; }
.rv-co-summary table.shop_table { table-layout: auto; }
.rv-co-summary .rv-co-item td { border-bottom: 1px solid var(--rv-rule) !important; padding: 12px 0 !important; }
.rv-co-summary .rv-co-item-name { width: auto; }
.rv-co-summary .rv-co-item-total { width: 1%; white-space: nowrap; padding-left: 12px !important; vertical-align: top; }
.rv-co-summary tfoot th, .rv-co-summary tfoot td { padding: 8px 0 !important; }
/* Preço da instalação mais discreto no resumo */
.rv-co-item-info .rv-fprice { font-size: .9rem; }
.rv-co-item-info .rv-fprice-int { font-size: .95rem; }
.rv-co-item-info .rv-fprice-cents, .rv-co-item-info .rv-fprice-cur { font-size: .7rem; }
.rv-co-item-info .variation, .rv-co-item-info dl, .rv-co-item-info p { font-size: .76rem; color: var(--rv-mid); margin: 4px 0 0; line-height: 1.4; }
.rv-co-item-info .variation dt { font-weight: 700; }

@media (max-width: 980px) {
	.rv-co-grid { grid-template-columns: 1fr; }
	.rv-co-aside { position: static; order: -1; margin-bottom: 8px; }
}

/* ============================================================
   17. RODAPÉ RICO
   ============================================================ */
.rv-footer { background: var(--rv-primary); color: rgba(255, 255, 255, .78); padding: 80px 0 28px; }
.rv-footer-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr 1.35fr; gap: 48px 44px; }
.rv-social { display: flex; gap: 10px; margin-top: 16px; }
.rv-social a { width: 38px; height: 38px; border-radius: 11px; background: rgba(255, 255, 255, .1); color: rgba(255, 255, 255, .85); display: inline-flex; align-items: center; justify-content: center; transition: background var(--rv-t), color var(--rv-t), transform var(--rv-t); }
.rv-social a:hover { background: var(--rv-accent); color: #fff; transform: translateY(-2px); }
.rv-social a svg { width: 18px !important; height: 18px !important; display: block; }
.rv-newsletter { display: flex; margin-top: 18px; max-width: 280px; }
.rv-newsletter input { flex: 1; min-width: 0; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .06); color: #fff; border-radius: var(--rv-radius) 0 0 var(--rv-radius); padding: 10px 12px; font-family: var(--rv-font-body); }
.rv-newsletter input::placeholder { color: rgba(255, 255, 255, .5); }
.rv-newsletter button { background: var(--rv-accent); color: #fff; border: 0; padding: 0 16px; border-radius: 0 var(--rv-radius) var(--rv-radius) 0; cursor: pointer; font-weight: 600; }
.rv-newsletter button:hover { background: var(--rv-accent-2); }
.rv-footer h4 { color: #fff; font-size: 1.02rem; margin: 0 0 20px; }
.rv-footer ul { list-style: none; margin: 0; padding: 0; }
.rv-footer ul li { margin: 0 0 12px; }
.rv-footer a { color: rgba(255, 255, 255, .78); font-size: .92rem; }
.rv-footer a:hover { color: var(--rv-sky); }
.rv-footer-logo { height: 58px; width: auto; margin-bottom: 20px; }
.rv-footer-brand p { font-size: .92rem; line-height: 1.75; max-width: 38ch; margin: 0; }
.rv-footer-contact p { font-size: .92rem; line-height: 1.7; margin: 0 0 12px; }
/* Barra de cofinanciamento (PRR / República Portuguesa / União Europeia) */
.rv-footer-funding { margin-top: 40px; background: #fff; border-radius: var(--rv-radius); padding: 9px 24px; display: flex; justify-content: center; align-items: center; }
.rv-footer-funding img { max-width: 100%; width: auto; height: auto; max-height: 40px; }
.rv-footer-bottom-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 40px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .88rem; }
.rv-footer-tagline { color: rgba(255, 255, 255, .6); }
.rv-legal-links { display: flex; gap: 20px; flex-wrap: wrap; }
/* Pagamentos */
.rv-pay { margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .12); }
.rv-pay-label { display: block; text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; font-weight: 700; color: rgba(255, 255, 255, .55); margin-bottom: 10px; }
.rv-pay-logos { display: flex; flex-wrap: wrap; gap: 8px; }
.rv-pay-badge { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 34px; background: #fff; border-radius: 7px; padding: 5px 7px; box-shadow: 0 2px 6px rgba(0,0,0,.18); }
.rv-pay-badge img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
@media (max-width: 980px) { .rv-footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 30px; } }
@media (max-width: 640px) { .rv-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 420px) { .rv-footer-grid { grid-template-columns: 1fr; } }

/* ============================================================
   20. PESQUISA COM SUGESTÕES (autocomplete)
   ============================================================ */
.rv-search-wrap { position: relative; flex: 1 1 auto; max-width: 600px; display: flex; }
.rv-search-wrap .rv-search { flex: 1 1 auto; max-width: none; }
.rv-search-suggest {
	position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 70;
	background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius);
	box-shadow: var(--rv-shadow); padding: 8px; max-height: 70vh; overflow-y: auto;
	overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
}
.rv-search-suggest[hidden] { display: none; }
/* sugestões sempre alinhadas à esquerda (no telemóvel herdavam center do header) */
.rv-search-suggest, .rv-search-suggest .rv-sg-group, .rv-search-suggest .rv-sg-head { text-align: left !important; }
.rv-sg-group + .rv-sg-group { margin-top: 6px; border-top: 1px solid var(--rv-rule); padding-top: 6px; }
.rv-sg-head { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rv-mid); padding: 6px 10px 4px; }
.rv-sg-item { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 10px; text-decoration: none; }
.rv-sg-item:hover { background: var(--rv-surface); }
.rv-sg-thumb { width: 44px; height: 44px; flex: 0 0 auto; border-radius: 8px; background: #fff; border: 1px solid var(--rv-rule); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.rv-sg-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.rv-sg-info { display: flex; flex-direction: column; min-width: 0; }
.rv-sg-name { color: var(--rv-primary); font-weight: 600; font-size: .9rem; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rv-sg-price { color: var(--rv-accent); font-weight: 700; font-size: .85rem; }
.rv-sg-price del { color: var(--rv-mid); font-weight: 400; }
.rv-sg-cat { display: inline-flex; align-items: center; margin: 2px 4px; padding: 7px 12px; border-radius: 12px; background: var(--rv-surface); color: var(--rv-primary); font-weight: 600; font-size: .82rem; text-decoration: none; }
.rv-sg-cat:hover { background: var(--rv-accent); color: #fff; }
.rv-sg-cat span { opacity: .6; margin-left: 5px; font-weight: 500; }
.rv-sg-empty { padding: 14px 12px; color: var(--rv-mid); font-size: .88rem; }
@media (max-width: 860px) { .rv-search-wrap { max-width: none; } }

/* ============================================================
   21. VARIAÇÕES → BOTÕES DE OPÇÃO (ex.: Capacidade)
   ============================================================ */
/* Layout em bloco: etiqueta por cima, opções por baixo (sem desalinhamento à esquerda) */
.single-product table.variations,
.single-product table.variations tbody,
.single-product table.variations tr { display: block; width: 100%; margin: 0; border: 0; }
.single-product table.variations tr + tr { margin-top: 18px; }
.single-product table.variations th.label,
.single-product table.variations td.value { display: block; width: auto; padding: 0; text-align: left; }
.single-product table.variations th.label { margin-bottom: 10px; }
.single-product table.variations th.label label { margin: 0; font-family: var(--rv-font-head); font-weight: 700; font-size: 1.02rem; color: var(--rv-primary); }
.rv-select-hidden { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; clip: rect(0 0 0 0); }
.rv-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.rv-swatch {
	font-family: var(--rv-font-body); font-weight: 600; font-size: .92rem; color: var(--rv-primary);
	background: #fff; border: 1.5px solid var(--rv-rule); border-radius: var(--rv-radius);
	padding: 11px 18px; cursor: pointer; line-height: 1;
	transition: background var(--rv-t), border-color var(--rv-t), color var(--rv-t), transform var(--rv-t);
}
.rv-swatch:hover { background: rgba(21, 87, 60, .07) !important; border-color: var(--rv-accent); color: var(--rv-accent); transform: translateY(-1px); }
.rv-swatch.is-active,
.rv-swatch.is-active:hover { background: var(--rv-accent) !important; border-color: var(--rv-accent); color: #fff !important; }
.rv-swatch:disabled { opacity: .4; cursor: not-allowed; transform: none; }
/* Link "Limpar" das variações */
.single-product .reset_variations { display: inline-block; margin-top: 10px; color: var(--rv-mid); font-size: .85rem; text-decoration: underline; text-underline-offset: 3px; }
.single-product .reset_variations:hover { color: var(--rv-accent); }

/* ============================================================
   22. AVALIAÇÕES — largura total
   ============================================================ */
#review_form_wrapper { max-width: none; }
.woocommerce #reviews #comments ol.commentlist { width: 100%; }
.comment-respond, #reviews { width: 100%; }

/* ============================================================
   23. WIDGETS DE PRODUTOS (Mais procurados / Stock off…)
   ============================================================ */
.widget_products, .widget_top_rated_products, .widget_recently_viewed_products,
.widget_onsale, .widget_recent_reviews, .widget_product_search {
	background: #fff; border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg);
	padding: 22px 22px 14px; box-shadow: var(--rv-shadow-sm); margin-bottom: 24px;
}
.widget_products .widget-title, .widget_products .widgettitle,
.widget_top_rated_products .widget-title, .widget_onsale .widget-title,
.widget_recently_viewed_products .widget-title {
	font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.05rem;
	letter-spacing: .02em; margin: 0 0 8px; padding-bottom: 12px; border-bottom: 1px solid var(--rv-rule);
}
ul.product_list_widget { list-style: none; margin: 0; padding: 0; }
ul.product_list_widget li { padding: 14px 0; border-bottom: 1px solid var(--rv-rule); overflow: hidden; }
ul.product_list_widget li:last-child { border-bottom: 0; }
ul.product_list_widget li a { color: var(--rv-primary); font-family: var(--rv-font-head); font-weight: 600; font-size: .92rem; line-height: 1.3; text-decoration: none; display: block; }
ul.product_list_widget li a:hover { color: var(--rv-accent); }
/* Miniatura: ajustada (object-fit: contain) — nunca esticada */
ul.product_list_widget li img {
	float: left !important; width: 58px !important; height: 58px !important; margin: 0 14px 0 0 !important;
	object-fit: contain !important; background: var(--rv-surface); border-radius: 10px; padding: 5px;
}
ul.product_list_widget li .amount { color: var(--rv-accent); font-weight: 700; font-family: var(--rv-font-body); }
ul.product_list_widget li ins { text-decoration: none; }
ul.product_list_widget li del, ul.product_list_widget li del .amount { color: var(--rv-mid); font-weight: 400; }
ul.product_list_widget li .star-rating { font-size: .8em; margin: 4px 0; }

/* ===== Preço engraçado (€ + inteiro grande + cêntimos elevados) ===== */
.rv-fprice { display: inline-flex; align-items: flex-start; color: var(--rv-accent); font-weight: 800; line-height: 1; }
.rv-fprice-cur { font-size: 1rem; margin: .1em 2px 0 0; }
.rv-fprice-int { font-size: 1.8rem; letter-spacing: -.01em; }
.rv-fprice-cents { font-size: .92rem; margin: .04em 0 0 3px; }
.single-product div.product .rv-fprice-int { font-size: 2.1rem; }

/* ===== Ações do card: ♥ + comparar alinhados com o botão "Comprar agora" ===== */
.rv-card-actions { display: flex; align-items: stretch; gap: 8px; margin-top: 14px; }
.woocommerce ul.products li.product .rv-card-actions .button,
.woocommerce ul.products li.product .rv-card-actions .added_to_cart,
.rv-card-actions .rv-quote-btn { margin-top: 0 !important; flex: 1 1 auto; }
.rv-cardbtn { flex: 0 0 48px; width: 48px; border: 1.5px solid var(--rv-rule); border-radius: var(--rv-radius); background: #fff !important; color: var(--rv-primary) !important; display: flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; transition: color var(--rv-t), border-color var(--rv-t), background var(--rv-t); }
.rv-cardbtn svg, .rv-cardbtn .rv-ic { width: 26px !important; height: 26px !important; min-width: 26px !important; flex: 0 0 auto !important; stroke: #031f37 !important; stroke-width: 2 !important; color: #031f37 !important; display: block; opacity: .5; transition: opacity var(--rv-t), stroke var(--rv-t); }
.rv-cardbtn:hover svg, .rv-cardbtn:hover .rv-ic { stroke: var(--rv-accent) !important; opacity: 1; }
.rv-fav.is-on svg { stroke: #e0245e !important; fill: #e0245e !important; }
.rv-compare.is-on svg { stroke: #fff !important; }
.rv-cardbtn:hover { background: rgba(21, 87, 60, .07) !important; border-color: var(--rv-accent); color: var(--rv-accent); }
.rv-fav.is-on, .rv-fav.is-on:hover { color: #e0245e !important; border-color: #e0245e; background: rgba(224, 36, 94, .07) !important; }
.rv-fav.is-on .rv-ic { fill: #e0245e; }
.rv-compare.is-on, .rv-compare.is-on:hover { color: #fff !important; background: var(--rv-accent) !important; border-color: var(--rv-accent); }
.rv-busy { opacity: .5; pointer-events: none; }

/* ===== Toast ===== */
.rv-toast { position: fixed; left: 50%; bottom: 26px; transform: translate(-50%, 20px); background: var(--rv-primary); color: #fff; padding: 13px 20px; border-radius: 12px; box-shadow: var(--rv-shadow); z-index: 100000; opacity: 0; transition: opacity .25s, transform .25s; font-size: .9rem; max-width: 92vw; }
.rv-toast.show { opacity: 1; transform: translate(-50%, 0); }
/* Não sobrepor o banner de cookies (quando visível, sobe o toast e o aviso) */
body:has(.rv-cookie:not(.rv-cookie--hidden)) .rv-toast,
body:has(.rv-cookie:not(.rv-cookie--hidden)) .woocommerce-message { bottom: 120px; }
@media (max-width: 700px) { body:has(.rv-cookie:not(.rv-cookie--hidden)) .rv-toast,
	body:has(.rv-cookie:not(.rv-cookie--hidden)) .woocommerce-message { bottom: 180px; } }
.rv-toast a { color: var(--rv-sky); font-weight: 700; margin-left: 6px; white-space: nowrap; }

/* ===== Barra de comparação ===== */
.rv-cmpbar { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--rv-rule); box-shadow: var(--rv-shadow); border-radius: 12px; padding: 10px 12px 10px 22px; z-index: 9000; }
.rv-cmpbar-txt { font-weight: 700; color: var(--rv-primary); font-size: .9rem; }
.rv-cmpbar-clear { background: none; border: 0; color: var(--rv-mid); cursor: pointer; font-size: .82rem; text-decoration: underline; }
.rv-cmpbar .rv-btn { padding: 9px 20px; }

/* ===== Redesign MEGAMENU ===== */
@media (min-width: 1025px) {
	/* Página atrás escurece e desfoca quando o painel abre (header fica nítido) */
	#masthead { position: relative; z-index: 63; } .main-navigation { position: relative; z-index: 61; }
	body.rv-mega-dim::after { content: ""; position: fixed; inset: 0; background: rgba(3, 31, 55, .34); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); z-index: 55; pointer-events: none; animation: rvDimIn .25s ease; }
	@keyframes rvDimIn { from { opacity: 0; } }
	/* Sublinhado animado nos itens de topo */
	.main-navigation .main-nav > ul > li > a { position: relative; }
	.main-navigation .main-nav > ul > li > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 6px; height: 3px; border-radius: 12px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
	.main-navigation .main-nav > ul > li:hover > a::after,
	.main-navigation .main-nav > ul > li.rv-open > a::after { transform: scaleX(1); }
}
/* Painel: linha de acento no topo + sombra mais profunda */
.rv-megapanel { box-shadow: 0 40px 80px -30px rgba(3, 31, 55, .5); border-top: 0; }
.rv-megapanel::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--rv-primary), var(--rv-accent) 55%, #7fd4a8); }
/* Rail: grupo ativo com barra de acento + ícone gradiente */
.rv-mega-g.rv-sub-open > .rv-mega-g-link { box-shadow: inset 3px 0 0 var(--rv-accent); }
.rv-mega-g.rv-sub-open > .rv-mega-g-link .rv-mega-g-ic,
.rv-mega-g.has-kids:focus-within > .rv-mega-g-link .rv-mega-g-ic { background: linear-gradient(135deg, var(--rv-accent), #0d4a54); color: #fff; box-shadow: 0 8px 16px -8px rgba(21, 87, 60, .6); }
/* Folhas: deslizam ao hover */
.rv-mega-leaf:hover { transform: translateX(4px); background: rgba(21, 87, 60, .06); }
.rv-mega-leaf { transition: color var(--rv-t), background var(--rv-t), transform .2s ease; }
/* Cartão destaque com imagem de produto real (herói centrado, sem rotação) */
.rv-mega-feature { position: relative; }
.rv-mega-feature--img .rv-mega-feature-ic { display: none; }
.rv-mega-feature-img { position: static; display: block; align-self: stretch; width: 100% !important; max-width: 100% !important; height: 138px !important; object-fit: contain; margin: 0 0 8px; background: #fff; border-radius: 12px; padding: 10px; box-shadow: 0 12px 28px -14px rgba(0, 0, 0, .45); transition: transform .3s ease; pointer-events: none; }
.rv-mega-feature:hover .rv-mega-feature-img { transform: translateY(-4px) scale(1.04); }
.rv-mega-feature--img .rv-mega-feature-body { position: relative; z-index: 2; margin-top: auto; }

/* ===== Redesign PRODUTO INDIVIDUAL ===== */
/* Pill do logo da marca acima do título */
.rv-sp-brand { display: inline-flex; align-items: center; background: #fff; border: 1px solid #e4e9ee; border-radius: 10px; padding: 7px 14px; margin: 0 0 14px; transition: border-color .2s ease, box-shadow .2s ease; }
.rv-sp-brand:hover { border-color: rgba(21, 87, 60, .35); box-shadow: 0 8px 20px -12px rgba(3, 31, 55, .3); }
.rv-sp-brand img { height: 22px !important; width: auto !important; max-width: 120px !important; object-fit: contain; display: block; }
/* Galeria: placa em gradiente + cantos 20 */
.single-product .woocommerce-product-gallery { background: #f5f6f8; border: 1px solid #e4e9ee; border-radius: 16px; padding: 22px; }
.single-product .woocommerce-product-gallery__image img { border-radius: 12px; }
.single-product .flex-control-thumbs { display: flex; gap: 10px; margin: 14px 0 0; padding: 0; }
.single-product .flex-control-thumbs li { list-style: none; }
.single-product .flex-control-thumbs li img { width: 64px; height: 64px; object-fit: contain; background: #fff; border: 2px solid transparent; border-radius: 10px; cursor: pointer; opacity: .65; transition: opacity .2s ease, border-color .2s ease; }
.single-product .flex-control-thumbs li img.flex-active, .single-product .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--rv-accent); }
/* Painel de preço destacado */
.single-product .summary > .price, .single-product .woocommerce-variation-price { display: block; background: linear-gradient(135deg, #f2f8f5, #eaf3ef); border: 1px solid rgba(21, 87, 60, .16); border-radius: 14px; padding: 6px 18px 14px !important; }
.single-product .summary > .price .rv-fprice, .single-product .woocommerce-variation-price .rv-fprice { line-height: 1.05; }
.single-product .woocommerce-variation-price { margin-bottom: 12px !important; }
/* Chips de características mais vivos */
.single-product .rv-featbadges .rv-featbadge { background: #fff; border: 1px solid #e4e9ee; box-shadow: 0 6px 16px -12px rgba(3, 31, 55, .3); transition: border-color .2s ease, transform .2s ease; }
.single-product .rv-featbadges .rv-featbadge:hover { border-color: rgba(21, 87, 60, .35); transform: translateY(-2px); }
/* Botão adicionar com brilho */
.single-product form.cart .single_add_to_cart_button { box-shadow: 0 16px 32px -14px rgba(21, 87, 60, .6); }
.single-product form.cart .single_add_to_cart_button:hover { box-shadow: 0 20px 38px -14px rgba(3, 31, 55, .55); }
/* Card de instalação ativo em verde suave */
.rv-install.is-on { background: linear-gradient(135deg, #f2f8f5, #fff); box-shadow: inset 3px 0 0 var(--rv-accent); }
/* Tabs em pílula */
.single-product .woocommerce-tabs ul.tabs li a { border-radius: 12px !important; padding: 9px 20px !important; }
.single-product .woocommerce-tabs ul.tabs li.active a { background: var(--rv-accent) !important; color: #fff !important; }
/* Título da secção de relacionados com acento */
.single-product .related.products > h2 { position: relative; padding-bottom: 12px; }
.single-product .related.products > h2::after { content: ""; position: absolute; bottom: 0; left: 0; width: 46px; height: 4px; border-radius: 12px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); }

/* ===== Redesign CARDS DE PRODUTO (loja, relacionados, homepage — global) ===== */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { border-radius: 14px !important; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; overflow: hidden; }
.woocommerce ul.products li.product a img { transition: transform .3s ease; }
.woocommerce ul.products li.product:hover { box-shadow: 0 28px 60px -30px rgba(3, 31, 55, .5) !important; border-color: rgba(21, 87, 60, .3) !important; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.045); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { transition: color .2s ease; }
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title { color: var(--rv-accent); }
.woocommerce ul.products li.product .button { border-radius: 12px !important; box-shadow: 0 10px 24px -12px rgba(21, 87, 60, .5); }
.woocommerce ul.products li.product .rv-cardbtn { transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.woocommerce ul.products li.product .rv-cardbtn:hover { border-color: var(--rv-accent); background: rgba(21, 87, 60, .07); transform: translateY(-2px); }

/* ===== Redesign CARRINHO ===== */
.woocommerce-cart .rv-cart-row { transition: background .2s ease; }
.woocommerce-cart .rv-cart-row:hover { background: #fafbfd; }
.woocommerce-cart .rv-cart-row img { background: #f5f6f8; border: 1px solid #e4e9ee; border-radius: 14px; padding: 10px; }
.woocommerce-cart .cart-collaterals .cart_totals { position: relative; border-radius: 14px !important; overflow: hidden; box-shadow: 0 20px 50px -32px rgba(3, 31, 55, .45) !important; }
.woocommerce-cart .cart-collaterals .cart_totals::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--rv-primary), var(--rv-accent) 55%, #7fd4a8); }
.woocommerce-cart .cart_totals h2 { position: relative; padding-bottom: 12px; }
.woocommerce-cart .cart_totals h2::after { content: ""; position: absolute; bottom: 0; left: 0; width: 42px; height: 4px; border-radius: 12px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); }
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td { background: #f2f8f5; border-radius: 10px; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { border-radius: 12px !important; box-shadow: 0 16px 34px -14px rgba(21, 87, 60, .6); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -14px rgba(3, 31, 55, .55); }

/* ===== Redesign CHECKOUT ===== */
.rv-checkout2 .rv-co2-card { border-radius: 14px; }
.rv-checkout2 .rv-co2-title { position: relative; padding-bottom: 12px; }
.rv-checkout2 .rv-co2-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 42px; height: 4px; border-radius: 12px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); }
.rv-co2-summarycard { position: relative; border-radius: 14px !important; overflow: hidden; box-shadow: 0 20px 50px -32px rgba(3, 31, 55, .45) !important; }
.rv-co2-summarycard::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--rv-primary), var(--rv-accent) 55%, #7fd4a8); }
.woocommerce-checkout #payment .payment_box { background: #f2f8f5 !important; border-radius: 12px !important; }
.woocommerce-checkout #payment li.wc_payment_method { border-radius: 12px; transition: background .2s ease; }
.woocommerce-checkout #place_order { border-radius: 12px !important; box-shadow: 0 16px 34px -14px rgba(21, 87, 60, .6) !important; transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important; }
.woocommerce-checkout #place_order:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -14px rgba(3, 31, 55, .55) !important; }

/* Barra de compra fixa (mobile) — vidro fosco + miniatura + nome + preço sincronizado */
.rv-buybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1001; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-radius: 14px 18px 0 0; box-shadow: 0 -16px 40px -20px rgba(3, 31, 55, .55); display: flex; align-items: center; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); transform: translateY(110%); transition: transform .28s ease; }
.rv-buybar::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; border-radius: 14px 18px 0 0; background: linear-gradient(90deg, var(--rv-primary), var(--rv-accent) 55%, #7fd4a8); }
.rv-buybar.show { transform: none; }
.rv-buybar-thumb { flex: 0 0 46px; width: 46px !important; height: 46px !important; object-fit: contain; background: #f5f6f8; border: 1px solid #e4e9ee; border-radius: 10px; padding: 4px; }
.rv-buybar-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.rv-buybar-name { font-size: .72rem; font-weight: 600; color: var(--rv-mid); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-buybar-price { font-weight: 800; color: var(--rv-accent); font-size: 1.08rem; line-height: 1.1; white-space: nowrap; overflow: hidden; }
.rv-buybar-price em { font-style: normal; font-size: .68rem; font-weight: 600; color: var(--rv-mid); margin-right: 5px; }
.rv-buybar-btn { flex: 0 0 auto; background: var(--rv-accent); color: #fff; border: 0; border-radius: 12px; font-weight: 700; font-size: .95rem; padding: 13px 26px; cursor: pointer; box-shadow: 0 12px 26px -12px rgba(21, 87, 60, .6); transition: background .2s ease; }
.rv-buybar-btn:active { background: var(--rv-primary); }
@media (min-width: 1025px) { .rv-buybar { display: none !important; } }
.rv-buybar--cart .rv-buybar-btn { text-decoration: none; display: inline-block; text-align: center; }
.rv-buybar--cart .rv-buybar-price bdi { font-weight: 800; }
/* barra sempre visível no carrinho → reservar espaço no fundo da página */
body.rv-has-cartbar { padding-bottom: 84px; }

/* ===== Redesign homepage (USP strip · stats · testemunhos · polish) ===== */
/* Acento sob os títulos de secção (só na homepage) */
#renavac-home .rv-title { position: relative; padding-bottom: 14px; }
#renavac-home .rv-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 46px; height: 4px; border-radius: 12px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); }
#renavac-home .rv-center .rv-title::after { left: 50%; transform: translateX(-50%); }

/* Faixa de confiança sob o hero */
.rv-uspstrip { background: #fff; border-bottom: 1px solid #eef2f6; padding: 18px 0; }
.rv-uspstrip-inner { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.rv-usp-item { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rv-usp-ic { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, rgba(21, 87, 60, .12), rgba(21, 87, 60, .05)); color: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; }
.rv-usp-ic svg { width: 21px; height: 21px; }
.rv-usp-item strong { display: block; color: var(--rv-primary); font-size: .9rem; line-height: 1.2; }
.rv-usp-item span:not(.rv-usp-ic) { display: block; color: var(--rv-mid); font-size: .76rem; margin-top: 2px; }
@media (max-width: 900px) { .rv-uspstrip-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
@media (max-width: 480px) { .rv-usp-item span:not(.rv-usp-ic) { display: none; } .rv-usp-ic { flex-basis: 38px; width: 38px; height: 38px; } }

/* Banda de números */
.rv-stats { background: linear-gradient(120deg, #031f37 0%, #0a3a64 78%, #0d4a54 100%); padding: 46px 0; position: relative; overflow: hidden; }
.rv-stats::before { content: ""; position: absolute; right: -120px; top: -140px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(21, 87, 60, .5), transparent 70%); }
.rv-stats-inner { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; position: relative; }
.rv-stat { text-align: center; }
.rv-stat-n { display: block; font-family: var(--rv-font-head); font-weight: 800; font-size: clamp(2rem, 4vw, 2.9rem); color: #fff; line-height: 1.05; }
.rv-stat-n em { font-style: normal; color: #7fd4a8; }
.rv-stat-l { display: block; margin-top: 6px; color: rgba(255, 255, 255, .72); font-size: .84rem; font-weight: 600; }
@media (max-width: 700px) { .rv-stats { padding: 32px 0; } .rv-stats-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; } }

/* Testemunhos */
.rv-testimonials { align-items: stretch; }
.rv-testimonial { position: relative; background: #fff; border: 1px solid #e4e9ee; border-radius: 14px; padding: 26px 24px 22px; margin: 0; box-shadow: 0 14px 40px -28px rgba(3, 31, 55, .35); transition: transform .22s ease, box-shadow .22s ease; }
.rv-testimonial:hover { transform: translateY(-4px); box-shadow: 0 22px 50px -26px rgba(3, 31, 55, .45); }
.rv-testimonial::before { content: "\201C"; position: absolute; top: 6px; right: 18px; font-family: var(--rv-font-head); font-size: 4.4rem; line-height: 1; color: rgba(21, 87, 60, .12); }
.rv-testi-stars { display: block; color: #f5a623; font-size: 1rem; letter-spacing: 3px; margin-bottom: 12px; }
.rv-testimonial blockquote { margin: 0 0 16px; color: #43525f; font-size: .93rem; line-height: 1.65; }
.rv-testimonial figcaption { display: flex; align-items: baseline; gap: 8px; }
.rv-testimonial figcaption strong { color: var(--rv-primary); font-size: .9rem; }
.rv-testimonial figcaption span { color: var(--rv-mid); font-size: .78rem; }

/* Hero: setas glass + dots em pílula */
.rv-carousel-arrow { width: 60px !important; height: 60px !important; border-radius: 50% !important; background: rgba(255, 255, 255, .82) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1px solid rgba(3, 31, 55, .08) !important; box-shadow: 0 10px 26px -12px rgba(3, 31, 55, .5) !important; transition: background .18s ease, transform .18s ease !important; }
.rv-carousel-arrow:hover { background: #fff !important; transform: translateY(-50%) scale(1.06) !important; }
.rv-carousel-dots .rv-dot { width: 9px; height: 9px; border-radius: 12px; transition: width .25s ease, background .25s ease; }
.rv-carousel-dots .rv-dot.is-active { width: 30px; background: var(--rv-accent) !important; }

/* Cartões de categoria: linha de acento + hover vivo (homepage) */
#renavac-home .rv-cat-card { position: relative; overflow: hidden; border: 1px solid #e7ecf1; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
#renavac-home .rv-cat-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
#renavac-home .rv-cat-card:hover { transform: translateY(-6px); border-color: rgba(21, 87, 60, .3); box-shadow: 0 24px 50px -26px rgba(3, 31, 55, .4); }
#renavac-home .rv-cat-card:hover::before { transform: scaleX(1); }
#renavac-home .rv-cat-card .rv-ic-badge { background: linear-gradient(135deg, var(--rv-primary), #0a3a64); color: #fff; transition: transform .25s ease; }
#renavac-home .rv-cat-card:hover .rv-ic-badge { transform: scale(1.08) rotate(-4deg); }
#renavac-home .rv-cat-card .rv-more { transition: gap .2s ease, color .2s ease; }
#renavac-home .rv-cat-card:hover .rv-more { color: var(--rv-accent); }

/* ===== Animações temáticas dos cards de categoria ===== */
/* Conteúdo por cima da camada de efeito */
#renavac-home .rv-cat-card > .rv-ic-badge,
#renavac-home .rv-cat-card > h3,
#renavac-home .rv-cat-card > p,
#renavac-home .rv-cat-card > .rv-more { position: relative; z-index: 1; }
.rv-catfx { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; border-radius: inherit; opacity: .5; transition: opacity .35s ease; }
#renavac-home .rv-cat-card:hover .rv-catfx { opacity: 1; }
.rv-catfx i, .rv-catfx b { position: absolute; will-change: transform, opacity; }

/* Climatização — neve a cair */
.rv-catfx--snow { background: radial-gradient(120% 80% at 50% -10%, rgba(191,222,255,.30), transparent 60%); }
.rv-catfx--snow i {
	top: -10px; left: var(--l); width: 7px; height: 7px; border-radius: 50%;
	transform: scale(var(--s, 1));
	background: radial-gradient(circle at 40% 35%, #fff, #bcd8ff 70%);
	box-shadow: 0 0 5px rgba(150,200,255,.75);
	animation: rv-fx-snow var(--u, 8s) linear var(--d, 0s) infinite;
}
@keyframes rv-fx-snow {
	0% { transform: translate3d(0, -10px, 0) scale(var(--s,1)); opacity: 0; }
	12% { opacity: .95; }
	88% { opacity: .95; }
	100% { transform: translate3d(var(--x, 8px), 230px, 0) scale(var(--s,1)); opacity: 0; }
}

/* Aquecimento — brilho quente + brasas a subir */
.rv-catfx--heat { background: radial-gradient(120% 90% at 50% 115%, rgba(255,138,58,.28), transparent 62%); }
.rv-catfx--heat .rv-catfx-glow {
	left: 0; right: 0; bottom: -30%; height: 70%;
	background: radial-gradient(60% 100% at 50% 100%, rgba(255,120,40,.45), rgba(255,80,20,0) 70%);
	animation: rv-fx-glow 3.2s ease-in-out infinite;
}
.rv-catfx--heat i {
	bottom: -8px; left: var(--l); width: 6px; height: 6px; border-radius: 50%;
	transform: scale(var(--s, 1));
	background: radial-gradient(circle at 40% 35%, #ffe6b0, #ff7a24 75%);
	box-shadow: 0 0 6px rgba(255,140,50,.85);
	animation: rv-fx-ember var(--u, 4s) ease-in var(--d, 0s) infinite;
}
@keyframes rv-fx-ember {
	0% { transform: translate3d(0, 0, 0) scale(var(--s,1)); opacity: 0; }
	15% { opacity: .95; }
	85% { opacity: .55; }
	100% { transform: translate3d(var(--x, 6px), -150px, 0) scale(calc(var(--s,1) * .3)); opacity: 0; }
}
@keyframes rv-fx-glow { 0%,100% { opacity: .55; transform: scaleY(.92); } 50% { opacity: 1; transform: scaleY(1.06); } }

/* Ventilação — rajadas de ar horizontais */
.rv-catfx--wind { background: linear-gradient(100deg, rgba(210,232,244,.18), transparent 55%); }
.rv-catfx--wind i {
	top: var(--t); left: -40%; width: var(--w, 40%); height: 2px; border-radius: 2px;
	background: linear-gradient(90deg, transparent, rgba(120,170,205,.85), transparent);
	animation: rv-fx-wind var(--u, 3s) ease-in-out var(--d, 0s) infinite;
}
@keyframes rv-fx-wind {
	0% { transform: translateX(0); opacity: 0; }
	20% { opacity: .9; }
	80% { opacity: .9; }
	100% { transform: translateX(260%); opacity: 0; }
}

/* Energia Solar — sol a radiar */
.rv-catfx--sun { background: radial-gradient(70% 70% at 82% 22%, rgba(255,196,60,.28), transparent 60%); }
.rv-catfx--sun .rv-catfx-core {
	top: 14px; right: 16px; width: 40px; height: 40px; border-radius: 50%;
	background: radial-gradient(circle, #ffd451, #ff9e2c 70%);
	box-shadow: 0 0 18px rgba(255,170,40,.7);
	animation: rv-fx-pulse 3s ease-in-out infinite;
}
@keyframes rv-fx-pulse { 0%,100% { transform: scale(1); box-shadow: 0 0 16px rgba(255,170,40,.6); } 50% { transform: scale(1.12); box-shadow: 0 0 26px rgba(255,180,50,.9); } }
@keyframes rv-fx-spin { to { transform: rotate(360deg); } }

/* AQS — gotas de água a cair */
.rv-catfx--drops { background: radial-gradient(120% 80% at 50% -10%, rgba(120,190,235,.24), transparent 60%); }
.rv-catfx--drops i {
	top: -12px; left: var(--l); width: 6px; height: 9px;
	transform: scale(var(--s, 1));
	border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
	background: linear-gradient(180deg, rgba(190,225,245,.95), #4ea6dd);
	box-shadow: 0 0 5px rgba(90,170,220,.6);
	animation: rv-fx-drop var(--u, 3s) cubic-bezier(.55,0,.85,.5) var(--d, 0s) infinite;
}
@keyframes rv-fx-drop {
	0% { transform: translateY(-12px) scaleY(.7) scale(var(--s,1)); opacity: 0; }
	15% { opacity: .95; }
	85% { opacity: .95; }
	100% { transform: translateY(230px) scaleY(1.25) scale(var(--s,1)); opacity: 0; }
}

/* Instalação e Acessórios — engrenagem a girar */
.rv-catfx--tools { color: rgba(21,87,60,.16); }
.rv-catfx--tools svg {
	position: absolute; right: -18px; bottom: -18px; width: 96px; height: 96px;
	animation: rv-fx-spin 16s linear infinite;
}
#renavac-home .rv-cat-card--instalacao-acessorios:hover .rv-catfx--tools { color: rgba(21,87,60,.28); }

@media (prefers-reduced-motion: reduce) {
	.rv-catfx i, .rv-catfx b, .rv-catfx svg { animation: none !important; }
	.rv-catfx { opacity: .28; }
}

/* CTA final: banda em gradiente */
#renavac-home .rv-band { background: linear-gradient(120deg, #031f37 0%, #10513d 100%); position: relative; overflow: hidden; }
#renavac-home .rv-band::after { content: ""; position: absolute; left: -80px; bottom: -160px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(127, 212, 168, .25), transparent 70%); }

/* ===== Polish ronda 3: placas, botões compactos, promo a vermelho, conta ===== */
/* Carrinho: a placa da foto preenche o cartão todo, cinza claro uniforme */
.woocommerce-cart .rv-cart-row img { padding: 6px; background: #f5f6f8; border-color: #e9ecef; width: 100%; height: auto; }
/* Checkout: respiro entre a linha do topo do cartão e o título "A sua encomenda" */
.rv-checkout2 .rv-co2-summarycard > .rv-co2-title { padding-top: 20px !important; }
.rv-co2-summarycard::before { border-radius: 14px 18px 0 0; }
/* Botões mais compactos em todo o site */
.woocommerce ul.products li.product .button { padding: 10px 16px !important; font-size: .88rem !important; }
.woocommerce ul.products li.product .rv-cardbtn { width: 42px; flex-basis: 42px; }
.single-product form.cart .single_add_to_cart_button { height: 48px !important; font-size: .98rem !important; }
.single-product .rv-single-compare { height: 48px !important; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { padding: 13px !important; font-size: .98rem !important; }
.woocommerce-checkout #place_order { padding: 13px 24px !important; font-size: .98rem !important; }
.rv-buybar-btn { padding: 11px 22px; font-size: .92rem; }
.rv-mobtool-sort, .rv-mobtool-filter { padding: 11px 0 !important; }
/* Promoções: painel do preço a VERMELHO quando o produto está em saldo */
.single-product .summary > .price:has(del),
.single-product .woocommerce-variation-price:has(del) { background: linear-gradient(135deg, #fdf1f0, #fbe9e7) !important; border-color: rgba(210, 63, 63, .28) !important; }
.single-product .summary > .price:has(del) .rv-fprice:first-of-type,
.single-product .woocommerce-variation-price:has(del) ins .rv-fprice { color: #d23f3f; }
/* Cards de produto: tipografia afinada */
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .95rem; }
.woocommerce ul.products li.product .price { font-size: 1.3rem; }
.woocommerce ul.products li.product .rv-card-opts, .woocommerce ul.products li.product .rv-variations-note { font-size: .78rem; color: var(--rv-mid); }
/* Autenticação (entrar/registar): cartões e botões polidos */
.rv-auth .woocommerce-form-login, .rv-auth .woocommerce-form-register, .rv-auth form.login, .rv-auth form.register { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.rv-auth h2 { position: relative; padding-bottom: 12px; }
.rv-auth h2::after { content: ""; position: absolute; bottom: 0; left: 0; width: 42px; height: 4px; border-radius: 12px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); }
.rv-auth button[type="submit"], .rv-auth .woocommerce-form-login__submit, .rv-auth .woocommerce-form-register__submit { width: 100%; border-radius: 12px !important; padding: 12px 24px !important; font-size: .95rem !important; box-shadow: 0 14px 30px -14px rgba(21, 87, 60, .55); transition: transform .2s ease, box-shadow .2s ease; }
.rv-auth button[type="submit"]:hover { transform: translateY(-2px); }
.rv-auth input.input-text { border-radius: 10px !important; padding: 11px 14px !important; }
.rv-auth input.input-text:focus { border-color: var(--rv-accent) !important; box-shadow: 0 0 0 3px rgba(21, 87, 60, .14) !important; outline: 0; }

/* Minha conta: navegação em pílulas + conteúdo em cartão */
.woocommerce-account .rv-acc-nav a { border-radius: 12px !important; transition: background .2s ease, color .2s ease, transform .2s ease; }
.woocommerce-account .rv-acc-nav a:hover { transform: translateY(-1px); }
.woocommerce-account .rv-acc-nav li.is-active a { background: var(--rv-accent) !important; color: #fff !important; box-shadow: 0 10px 22px -12px rgba(21, 87, 60, .55); }
.woocommerce-account .woocommerce-MyAccount-content { border-radius: 14px; }
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"] { border-radius: 12px !important; padding: 12px 26px !important; box-shadow: 0 14px 30px -14px rgba(21, 87, 60, .55); }
/* Destaques de specs mais compactos no telemóvel */
@media (max-width: 560px) {
	.rv-spechero { gap: 8px; }
	.rv-shero { min-height: 96px; padding: 13px 12px; border-radius: 13px; gap: 2px; }
	.rv-shero-v { font-size: 1rem !important; }
	.rv-shero-k { font-size: .58rem !important; }
	.rv-shero-ic { display: none !important; }
	.rv-shero-wm svg, .rv-shero-wm .rv-ic { width: 64px !important; height: 64px !important; }
}

/* ===== Modal de comparação (redesign premium) ===== */
.rv-noscroll { overflow: hidden; }
.rv-cmp-overlay { position: fixed; inset: 0; background: rgba(3, 31, 55, .45); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); z-index: 100001; display: flex; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow: auto; opacity: 0; transition: opacity .25s; }
.rv-cmp-overlay.show { opacity: 1; }
.rv-cmp-modal { position: relative; background: #fff; border-radius: 16px; max-width: 960px; width: 100%; padding: 0; overflow: hidden; box-shadow: 0 40px 90px -30px rgba(3, 31, 55, .6); transform: translateY(14px) scale(.98); transition: transform .3s cubic-bezier(.22,.61,.36,1); }
.rv-cmp-overlay.show .rv-cmp-modal { transform: none; }
.rv-cmp-topbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 26px; background: linear-gradient(120deg, #031f37 0%, #0a3a64 85%); }
.rv-cmp-eyebrow { display: block; color: #7fd4a8; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 3px; }
.rv-cmp-topbar h3 { font-family: var(--rv-font-head); color: #fff; margin: 0; font-size: 1.35rem; line-height: 1.15; }
.rv-cmp-close { position: static; flex: 0 0 auto; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); font-size: 22px; line-height: 1; cursor: pointer; color: #fff; transition: background .18s ease; }
.rv-cmp-close:hover { background: rgba(255, 255, 255, .3); }
.rv-cmp-body { padding: 22px 26px 18px; }
.rv-cmp-remove { position: absolute; top: 8px; right: 8px; width: 26px; height: 26px; border: 1px solid var(--rv-rule); border-radius: 50%; background: #fff; font-size: 15px; cursor: pointer; color: var(--rv-mid); line-height: 1; display: flex; align-items: center; justify-content: center; transition: all .18s ease; z-index: 2; }
.rv-cmp-remove:hover { background: #c0392b; border-color: #c0392b; color: #fff; }
.rv-cmp-head { display: block; text-decoration: none; }
.rv-cmp-head a { text-decoration: none; }
.rv-cmp-imgwrap { display: block; height: 128px; margin-bottom: 10px; background: #f5f6f8; border-radius: 12px; padding: 10px; }
.rv-cmp-imgwrap img { width: 100%; height: 100%; object-fit: contain; }
.rv-cmp-brand { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: var(--rv-accent); font-weight: 800; }
.rv-cmp-title { display: block; font-size: .85rem; color: var(--rv-primary); font-weight: 700; margin: 3px 0 8px; line-height: 1.3; }
.rv-cmp-price { display: block; color: var(--rv-accent); font-weight: 800; font-size: 1.12rem; margin-bottom: 10px; }
.rv-cmp-buy { display: block; padding: 9px 8px; font-size: .84rem; border-radius: 12px !important; }
.rv-cmp-hint { color: var(--rv-mid); font-size: .82rem; margin: 14px 0 0; text-align: center; }
.rv-cmp-hint strong { color: var(--rv-accent); }
@media (max-width: 600px) { .rv-cmp-topbar { padding: 15px 16px; } .rv-cmp-body { padding: 14px 12px 12px; } .rv-cmp-topbar h3 { font-size: 1.1rem; } }

/* ===== Espaçamento da página de produto (preço ↔ botão) ===== */
.single-product div.product .summary > .price,
.single-product div.product p.price { display: block; margin: 4px 0 22px; }
.single-product div.product .woocommerce-variation-price { margin: 6px 0 16px; }
.single-product div.product .woocommerce-variation-price .price { margin: 0; }
.single-product div.product .single_variation_wrap { margin-top: 8px; }
/* Descrição da variação escolhida = caixa clara com as características do modelo */
.single-product .woocommerce-variation-description:not(:empty) { background: #f2f7f4; border: 1px solid #dcebe2; border-radius: 10px; padding: 10px 14px; margin: 0 0 10px; font-size: .88rem; color: #33413c; }
.single-product .woocommerce-variation-description p { margin: 0; }
.single-product .woocommerce-variation-description p::before { content: "ℹ "; color: var(--rv-accent); font-weight: 700; }
.single-product div.product form.cart { margin: 20px 0 10px; }
.single-product div.product .woocommerce-variation-add-to-cart { gap: 12px; margin-top: 6px; }
.single-product div.product .reset_variations { margin: 6px 0 2px; }

/* Produto individual: nos VARIÁVEIS esconde o preço "desde" do topo (mostra o da variação ao
 * selecionar). Nos SIMPLES tem de aparecer — eram estes que ficavam sem preço. */
.single-product div.product.product-type-variable .summary > .price { display: none !important; }

/* ===== Estrelas de avaliação douradas ===== */
.woocommerce .star-rating::before,
.star-rating::before { color: #d6dadd !important; }
.woocommerce .star-rating span::before,
.star-rating span::before { color: #f6a800 !important; }
.woocommerce p.stars a::before, .woocommerce p.stars a:hover ~ a::before { color: #f6a800; }

/* ===== Responsividade dos botões do card ===== */
.rv-card-actions { gap: 8px; flex-wrap: nowrap; align-items: stretch; }
.rv-cardbtn { flex: 0 0 38px; width: 38px; }
.rv-cardbtn svg, .rv-cardbtn .rv-ic { width: 20px !important; height: 20px !important; min-width: 20px !important; }
.woocommerce ul.products li.product .rv-card-actions .button.rv-card-buy { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 14px; font-size: .92rem; line-height: 1.15; white-space: nowrap; min-width: 0; flex: 1 1 auto; }
.rv-card-buy .rv-card-buy-ic { width: 15px; height: 15px; flex: 0 0 auto; }
@media (max-width: 1240px) { .rv-card-buy .rv-card-buy-ic { display: none; } }
@media (max-width: 460px) { .woocommerce ul.products li.product .rv-card-actions .button.rv-card-buy { font-size: .85rem; padding: 11px 8px; } .rv-cardbtn { flex: 0 0 40px; width: 40px; } .rv-cardbtn svg, .rv-cardbtn .rv-ic { width: 20px !important; height: 20px !important; } }

/* ===== Carrinho estilo Worten (2 colunas: artigos | resumo) ===== */
.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 30px; align-items: start; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .rv-cart-listhead,
.woocommerce-cart .woocommerce > .cross-sells { grid-column: 1 / -1; }
.woocommerce-cart form.woocommerce-cart-form { grid-column: 1; margin: 0; }
.woocommerce-cart .cart-collaterals { grid-column: 2; width: auto !important; float: none !important; position: sticky; top: 24px; margin: 0; }
.woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; margin: 0; }
.woocommerce-cart .cart_totals h2 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.3rem; margin: 0 0 16px; }
.woocommerce-cart .cart_totals .order-total .amount { color: var(--rv-accent); font-size: 1.35rem; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: block !important; text-align: center; width: 100%; }
@media (max-width: 900px) { .woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1fr); } .woocommerce-cart .cart-collaterals { position: static; } }
.rv-cart-pay { margin-top: 18px; text-align: center; }
.rv-cart-pay-txt { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: .85rem; color: var(--rv-mid); font-weight: 600; }
.rv-cart-pay-txt .rv-ic { width: 16px; height: 16px; color: var(--rv-accent); }
.rv-cart-pay-icons { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 10px 0; }
.rv-cart-pay-icons img { height: 26px; width: auto; }
.rv-cart-ship { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; color: var(--rv-mid); }
.rv-cart-ship .rv-ic { width: 15px; height: 15px; }
.woocommerce-cart .cross-sells { margin-top: 44px; }
.woocommerce-cart .cross-sells > h2 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.4rem; margin-bottom: 20px; }

/* ===== Carrinho estilo Worten ===== */
body.woocommerce-cart .entry-content,
body.woocommerce-cart .page-content { max-width: 100% !important; width: 100% !important; }
body.woocommerce-cart .entry-title, body.woocommerce-cart .page-header { display: none; }
.rv-cart-form { display: flex; flex-direction: column; gap: 14px; }
.rv-cart-listhead { display: flex; align-items: baseline; gap: 10px; margin: 2px 0 4px; }
.rv-cart-listtitle { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.5rem; margin: 0; }
.rv-cart-listcount { color: var(--rv-mid); font-size: .95rem; font-weight: 600; }
.rv-cart-list { border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); background: #fff; overflow: hidden; }

/* Linha = card de produto (miniatura + bloco de info) */
.rv-cart-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 22px; padding: 22px; border-bottom: 1px solid var(--rv-rule); }
.rv-cart-row:last-child { border-bottom: 0; }
.rv-cart-thumb { width: 150px; height: 130px; border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #fff; }
.rv-cart-thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.rv-cart-main { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.rv-cart-titleline { display: flex; align-items: flex-start; gap: 10px; }
.rv-energy.rv-energy-sm { flex: 0 0 auto; font-size: .72rem; font-weight: 800; color: #fff; padding: 2px 7px; border-radius: 4px; line-height: 1.4; margin-top: 2px; }
.rv-cart-name { font-weight: 700; color: var(--rv-primary); font-size: 1.05rem; line-height: 1.35; text-decoration: none; }
.rv-cart-name:hover { color: var(--rv-accent); }
.rv-cart-meta { color: var(--rv-mid); font-size: .85rem; }
.rv-cart-meta dl, .rv-cart-meta p { margin: 0; }
.rv-cart-meta dt, .rv-cart-meta dd { display: inline; margin: 0; }
.rv-cart-meta dt { font-weight: 600; }
.rv-cart-meta dd { margin: 0 6px 0 3px; }

/* Bloco de preço com desconto */
.rv-cart-price { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-top: 2px; }
.rv-cart-now .rv-fprice { color: var(--rv-accent); }
.rv-cart-now .rv-fprice-int { font-size: 1.7rem; }
.rv-cart-old { color: var(--rv-mid); text-decoration: line-through; font-size: .95rem; }
.rv-cart-pct { background: #ffd60a; color: #111; font-weight: 800; font-size: .82rem; padding: 4px 9px; border-radius: 6px; }
.rv-cart-vendor { color: var(--rv-mid); font-size: .85rem; }
.rv-cart-vendor strong { color: var(--rv-primary); }
.rv-cart-delivery { display: flex; align-items: center; gap: 7px; color: var(--rv-ink, #243b4a); font-size: .88rem; }
.rv-cart-delivery svg, .rv-cart-delivery .rv-ic { width: 17px; height: 17px; color: var(--rv-accent); flex: 0 0 auto; }
.rv-cart-free { color: var(--rv-accent); font-weight: 800; }
.rv-cart-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 3px; }
.rv-cart-chip { display: inline-flex; align-items: center; gap: 5px; background: #fff7e0; color: #6a4b00; border: 1px solid #f3e1ab; border-radius: 7px; padding: 4px 9px; font-size: .76rem; font-weight: 600; }
.rv-cart-chip svg, .rv-cart-chip .rv-ic { width: 13px; height: 13px; }

/* Rodapé da linha: guardar + stepper */
.rv-cart-rowfoot { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 8px; flex-wrap: wrap; }
.rv-cart-save { display: inline-flex; align-items: center; gap: 7px; background: none; border: 0; padding: 0; cursor: pointer; color: var(--rv-mid); font-size: .85rem; font-weight: 600; }
.rv-cart-save svg, .rv-cart-save .rv-ic { width: 17px; height: 17px; }
.rv-cart-save:hover, .rv-cart-save.is-on { color: var(--rv-accent); }
.rv-cart-save.is-on svg { fill: var(--rv-accent); }

.rv-cart-qty { display: inline-flex; align-items: center; border: 1px solid var(--rv-rule); border-radius: 10px; overflow: hidden; background: #fff; }
.rv-cart-qty.is-loading { opacity: .5; pointer-events: none; }
.rv-cqty-btn, .rv-cqty-trash { width: 40px; height: 40px; border: 0; background: #fff; color: var(--rv-primary); font-size: 1.2rem; cursor: pointer; line-height: 1; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.rv-cqty-trash svg, .rv-cqty-trash .rv-ic { width: 17px; height: 17px; }
.rv-cqty-btn:hover:not([disabled]), .rv-cqty-trash:hover { background: rgba(21, 87, 60, .08); color: var(--rv-accent); }
.rv-cqty-btn[disabled] { opacity: .3; cursor: default; }
.rv-cqty-n { width: 46px; height: 40px; text-align: center; border: 0; border-left: 1px solid var(--rv-rule); border-right: 1px solid var(--rv-rule); font-weight: 700; color: var(--rv-primary); background: #fff; -moz-appearance: textfield; appearance: textfield; padding: 0; font-size: .95rem; }
.rv-cqty-n::-webkit-outer-spin-button, .rv-cqty-n::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Por baixo da lista */
.rv-cart-underlist { display: flex; align-items: center; }
.rv-cart-continue { color: var(--rv-accent); font-weight: 700; text-decoration: none; font-size: .92rem; }
.rv-cart-continue:hover { text-decoration: underline; }

/* ===== Resumo lateral (cupões + totais) ===== */
.woocommerce-cart .cart_totals.rv-summary { border: 1px solid var(--rv-rule); border-radius: var(--rv-radius-lg); background: #fff; padding: 20px; box-shadow: 0 12px 34px -22px rgba(3, 31, 55, .55); }
.rv-coupon-acc { border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; margin-bottom: 16px; }
.rv-coupon-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #fff; border: 0; padding: 14px 16px; cursor: pointer; font-weight: 700; color: var(--rv-primary); font-size: .95rem; transition: background var(--rv-t); }
.rv-coupon-toggle:hover { background: var(--rv-surface) !important; color: var(--rv-primary) !important; }
.rv-coupon-toggle:hover .rv-coupon-toggle-l svg { color: var(--rv-accent); }
.rv-coupon-toggle-l { display: inline-flex; align-items: center; gap: 9px; }
.rv-coupon-toggle-l svg, .rv-coupon-toggle-l .rv-ic { width: 18px; height: 18px; color: var(--rv-accent); }
.rv-coupon-chev { width: 18px; height: 18px; transition: transform .2s; color: var(--rv-mid); }
.rv-coupon-toggle[aria-expanded="true"] .rv-coupon-chev { transform: rotate(90deg); }
.rv-coupon-form { display: flex; gap: 8px; padding: 0 14px 14px; }
.rv-coupon-form[hidden] { display: none; }
.rv-coupon-form .input-text { flex: 1; min-width: 0; border: 1px solid var(--rv-rule); border-radius: 9px; padding: 10px 14px; }
.rv-coupon-apply { background: var(--rv-primary); color: #fff; border: 0; border-radius: 9px; padding: 10px 18px; font-weight: 700; cursor: pointer; }
.rv-coupon-apply:hover { background: var(--rv-accent); }

.rv-sum-rows { display: flex; flex-direction: column; gap: 12px; padding-bottom: 14px; }
.rv-sum-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--rv-ink, #243b4a); font-size: .95rem; }
.rv-sum-val { font-weight: 600; }
.rv-sum-val .woocommerce-Price-amount { white-space: nowrap; }
.rv-sum-coupon .rv-sum-val { color: var(--rv-accent); }
.rv-sum-total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-top: 1px solid var(--rv-rule); padding-top: 16px; margin-bottom: 16px; }
.rv-sum-total > span:first-child { font-family: var(--rv-font-head); font-size: 1.25rem; color: var(--rv-primary); font-weight: 700; }
.rv-sum-totalval .woocommerce-Price-amount { color: var(--rv-accent); font-size: 1.5rem; font-weight: 800; }
.rv-sum-ship-note { color: var(--rv-mid); font-weight: 600; font-size: .9rem; }
/* Preços do resumo no formato dos cards (fancy) */
.rv-sum-val .rv-fprice { color: var(--rv-primary); }
.rv-sum-val .rv-fprice-int { font-size: 1.1rem; }
.rv-sum-val .rv-fprice-cur, .rv-sum-val .rv-fprice-cents { font-size: .72rem; }
.rv-sum-totalval .rv-fprice { color: var(--rv-accent); }
.rv-sum-totalval .rv-fprice-int { font-size: 1.6rem; font-weight: 800; }
.rv-sum-totalval .rv-fprice-cur { font-size: .9rem; }
.rv-sum-totalval .rv-fprice-cents { font-size: .82rem; }

/* REF por baixo do título do produto */
.rv-product-ref { color: var(--rv-mid); font-size: .82rem; font-weight: 600; letter-spacing: .02em; margin: 2px 0 10px; }

/* ===== Gases fluorados: etiqueta + card de legislação ===== */
.rv-fgas-tag { display: inline-flex; align-items: center; gap: 6px; background: #e8f4ec; color: var(--rv-accent); border: 1px solid #bfe2cc; border-radius: 7px; padding: 4px 9px; font-size: .76rem; font-weight: 700; }
.rv-fgas-tag svg, .rv-fgas-tag .rv-ic { width: 13px; height: 13px; }
.rv-fgas-card { background: var(--rv-surface); border: 1px solid var(--rv-rule); border-radius: 12px; padding: 16px 18px; margin: 14px 0; }
.rv-fgas-card-title { display: flex; align-items: center; gap: 9px; font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1rem; margin: 0 0 6px; }
.rv-fgas-card-title svg, .rv-fgas-card-title .rv-ic { width: 18px; height: 18px; color: var(--rv-accent); flex: 0 0 auto; }
.rv-fgas-card-txt { margin: 0 0 8px; color: var(--rv-mid); font-size: .87rem; line-height: 1.45; }
.rv-fgas-card-link { color: var(--rv-accent); font-weight: 700; font-size: .85rem; text-decoration: underline; }
.single-product .rv-fgas-single { margin-top: 14px; }

/* ===== Carrinho: stepper de quantidade mais limpo (botões iguais, sem bordas internas) ===== */
.rv-cart-qty { gap: 0; }
.rv-cqty-btn, .rv-cqty-trash { box-sizing: border-box; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; }
.rv-cqty-n { box-sizing: border-box; flex: 0 0 46px; width: 46px; height: 44px; font-size: 1rem; border-left: 0; border-right: 0; }
.woocommerce a.remove.rv-cqty-trash {
	box-sizing: border-box; display: flex !important; align-items: center; justify-content: center;
	flex: 0 0 44px; width: 44px !important; height: 44px !important; padding: 0 !important;
	margin: 0 !important; border: 0 !important; border-radius: 0 !important;
	background: #fff !important; color: var(--rv-mid) !important; font-size: 1rem !important; line-height: 1 !important; text-decoration: none !important;
}
.woocommerce a.remove.rv-cqty-trash:hover { color: #d23f3f !important; background: #fbeaea !important; }
.rv-cqty-trash svg, .rv-cqty-trash .rv-ic { width: 18px !important; height: 18px !important; stroke: currentColor; }

/* ===== Produto individual: compra estilo Leroy (stepper + botão + comparar) ===== */
.single-product form.cart:not(.variations_form),
.single-product .woocommerce-variation-add-to-cart { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; }
.single-product .rv-qtybox { display: inline-flex; align-items: center; border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; background: #fff; flex: 0 0 auto; }
.single-product .rv-qtybox .rv-qbtn { width: 46px; height: 54px; border: 0; background: #fff; color: var(--rv-primary); font-size: 1.3rem; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.single-product .rv-qtybox .rv-qbtn:hover:not([disabled]) { background: rgba(21, 87, 60, .08); color: var(--rv-accent); }
.single-product .rv-qtybox .rv-qbtn[disabled] { opacity: .3; cursor: default; }
.single-product .rv-qtybox .quantity { margin: 0 !important; }
.single-product .rv-qtybox input.qty { width: 44px; height: 54px; text-align: center; border: 0; box-shadow: none; outline: none; font-weight: 700; font-size: 1rem; color: var(--rv-primary); background: transparent; -moz-appearance: textfield; appearance: textfield; pointer-events: none; }
.single-product .rv-qtybox input.qty::-webkit-outer-spin-button, .single-product .rv-qtybox input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 auto; min-width: 200px; display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; height: 54px; font-size: 1.05rem !important; font-weight: 800 !important; border-radius: 12px !important; }
.single-product form.cart .single_add_to_cart_button .rv-ic { width: 20px; height: 20px; }
.single-product .rv-single-compare { flex: 0 0 54px; width: 54px; height: 54px; border: 1px solid var(--rv-rule); border-radius: 12px; background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.single-product .rv-single-compare svg, .single-product .rv-single-compare .rv-ic { width: 22px !important; height: 22px !important; stroke: var(--rv-primary); }
.single-product .rv-single-compare:hover { border-color: var(--rv-accent); }
.single-product .rv-single-compare:hover svg { stroke: var(--rv-accent); }
.single-product .rv-single-compare.is-on { border-color: var(--rv-accent); background: rgba(21, 87, 60, .08); }
/* ===== Ficha técnica completa (catálogo do fabricante) ===== */
.rv-fullspecs { margin: 26px 0 10px; border: 1px solid var(--rv-rule, #e2e8ee); border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 18px 50px -30px rgba(3, 31, 55, .35); }
.rv-fs-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 26px; background: linear-gradient(120deg, #031f37 0%, #0a3a64 85%); }
.rv-fs-head-txt { display: flex; flex-direction: column; gap: 3px; }
.rv-fs-eyebrow { color: #7fd4a8; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.rv-fs-head-txt strong { color: #fff; font-family: var(--rv-font-head, inherit); font-size: 1.35rem; font-weight: 800; line-height: 1.15; }
.rv-fs-brand { background: #fff; border-radius: 12px; padding: 8px 14px; display: inline-flex; align-items: center; flex: 0 0 auto; }
.rv-fs-brand img { height: 26px !important; width: auto !important; max-width: 140px !important; object-fit: contain; display: block; }
.rv-fs-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.rv-fs-table { width: 100%; border-collapse: collapse; font-size: .86rem; min-width: 640px; }
.rv-fs-table thead th { background: #f2f5f8; color: var(--rv-primary, #031f37); font-weight: 800; font-size: .8rem; text-align: center; padding: 12px 14px; border-bottom: 2px solid var(--rv-accent, #15573c); white-space: nowrap; }
.rv-fs-table thead th.rv-fs-lbl { text-align: left; }
.rv-fs-table td { padding: 10px 14px; border-bottom: 1px solid #eef2f6; text-align: center; color: #2e3b47; }
.rv-fs-table td.rv-fs-lbl { text-align: left; font-weight: 600; color: var(--rv-primary, #031f37); min-width: 210px; }
.rv-fs-table tbody tr:nth-child(even):not(.rv-fs-group) { background: #fafbfd; }
.rv-fs-table tbody tr:hover:not(.rv-fs-group) { background: rgba(21, 87, 60, .05); }
.rv-fs-group td { background: rgba(21, 87, 60, .08) !important; color: var(--rv-accent, #15573c) !important; font-weight: 800; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; text-align: left !important; padding: 9px 14px; border-bottom: 0; }
.rv-fs-unit { color: #8a97a3; font-weight: 500; font-size: .74rem; }
.rv-fs-na { color: #b6c0c9; }
.rv-fs-span { color: #43525f; }
.rv-fs-energy { display: inline-block; color: #fff; font-weight: 800; font-size: .74rem; padding: 2px 9px; border-radius: 6px; letter-spacing: .02em; }
.rv-fs-sep { color: #b6c0c9; margin: 0 5px; }
.rv-fs-note { margin: 0; padding: 12px 26px 16px; color: #8a97a3; font-size: .76rem; }
/* Primeira coluna fixa no scroll horizontal (mobile) */
@media (max-width: 900px) {
	.rv-fs-table td.rv-fs-lbl, .rv-fs-table th.rv-fs-lbl { position: sticky; left: 0; background: #fff; z-index: 2; box-shadow: 6px 0 8px -6px rgba(3, 31, 55, .12); min-width: 160px; max-width: 200px; }
	.rv-fs-table thead th.rv-fs-lbl { background: #f2f5f8; }
	.rv-fs-table tbody tr:nth-child(even):not(.rv-fs-group) td.rv-fs-lbl { background: #fafbfd; }
		.rv-fs-gt { position: sticky; left: 14px; display: inline-block; }
	.rv-fs-table td.rv-fs-span { text-align: left; }
	.rv-fs-head { padding: 16px 16px; }
	.rv-fs-note { padding: 10px 16px 14px; }
}

/* Toggle kW / BTU na escolha de capacidade (produto individual). */
.rv-unit-toggle { display: flex; align-items: center; gap: 10px; margin: 2px 0 14px; flex-wrap: wrap; }
.rv-unit-lbl { font-size: .82rem; color: var(--rv-mid, #5b6b7a); font-weight: 600; }
.rv-unit-seg { display: inline-flex; border-radius: 12px; overflow: hidden; border: 1px solid var(--rv-rule, #d6dde3); }
.rv-unit-btn { border: 0; background: #fff; color: var(--rv-primary, #031f37); font-weight: 700; font-size: .82rem; padding: 6px 16px; cursor: pointer; transition: background .15s ease, color .15s ease; }
.rv-unit-btn + .rv-unit-btn { border-left: 1px solid var(--rv-rule, #d6dde3); }
.rv-unit-btn.is-on { background: var(--rv-accent, #15573c); color: #fff; }
.rv-unit-btn:not(.is-on):hover { background: rgba(21, 87, 60, .08); }

/* Mobile: manter [quantidade][Adicionar][comparar] na MESMA linha — sem o botão
   comparar a saltar para baixo. MANTÉM flex-wrap:wrap (a caixa .rv-install de
   largura 100% TEM de poder quebrar p/ a sua linha); só se reduz o min-width do
   botão p/ os três caberem na 1.ª linha. NÃO usar nowrap (esconde os botões nos
   produtos com opção de instalação). */
@media (max-width: 600px) {
	.single-product form.cart:not(.variations_form),
	.single-product .woocommerce-variation-add-to-cart { gap: 8px !important; }
	.single-product form.cart .single_add_to_cart_button { min-width: 110px !important; flex: 1 1 auto !important; padding-left: 8px !important; padding-right: 8px !important; }
	.single-product .rv-qtybox .rv-qbtn { width: 40px; }
	.single-product .rv-qtybox input.qty { width: 38px; }
	.single-product .rv-single-compare { flex: 0 0 48px !important; width: 48px !important; }
}
/* Pós-adição: esconder o link nativo "Ver carrinho" do WooCommerce (o feedback é o
   popup + o botão que passa a "Adicionado ao carrinho"). */
.single-product .added_to_cart { display: none !important; }
/* Produto individual: sem seletor de quantidade (compra unitária dos equipamentos). */
.single-product .rv-qtybox { display: none !important; }
/* Sem cursor de lupa/zoom ao passar o rato na foto do produto (zoom de hover removido). */
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image a,
.single-product .woocommerce-product-gallery__image img { cursor: default !important; }
/* Lightbox (ampliar foto ao clicar): fundo semi-transparente DESFOCADO — vê-se a
   página por trás (esbatida) e o destaque fica no produto, não preto sólido. */
.pswp__bg { background: rgba(3, 31, 55, 0.42) !important; -webkit-backdrop-filter: blur(9px) !important; backdrop-filter: blur(9px) !important; }
.pswp--open .pswp__bg, .pswp--animated-in .pswp__bg { opacity: 1 !important; }
/* Produto "suspenso no ar": sombra suave por baixo da foto ampliada (PNG transparente). */
.pswp__img { filter: drop-shadow(0 38px 30px rgba(0, 0, 0, 0.55)); }

/* ===== Lightbox próprio da foto do produto (logos no topo + imagem por baixo) ===== */
.rv-lightbox { position: fixed; inset: 0; z-index: 100050; display: flex; flex-direction: column; align-items: center; background: rgba(3, 31, 55, .42); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); opacity: 0; transition: opacity .28s ease; }
.rv-lightbox.show { opacity: 1; }
.rv-lb-top { flex: 0 0 auto; width: 100%; display: flex; align-items: flex-start; justify-content: center; padding: 22px 16px 4px; }
.rv-lb-logobar { display: inline-flex; align-items: center; gap: 20px; background: #fff; border-radius: 14px; padding: 12px 24px; box-shadow: 0 10px 30px -8px rgba(0, 0, 0, .4); }
.rv-lb-logo { width: auto !important; max-width: 200px !important; object-fit: contain; display: block; }
.rv-lb-logo--renavac { height: 34px !important; }
.rv-lb-logo--brand { height: 26px !important; max-width: 130px !important; }
.rv-lb-div { width: 1px; height: 26px; background: #d6dde3; }
.rv-lb-stage { flex: 1 1 auto; width: 100%; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 16px 24px 44px; }
.rv-lb-img { max-width: min(90vw, 880px); max-height: 100%; object-fit: contain; filter: drop-shadow(0 38px 30px rgba(0, 0, 0, .55)); }
.rv-lb-close { position: absolute; top: 14px; right: 18px; width: 42px; height: 42px; border: 0; background: rgba(255, 255, 255, .16); color: #fff; font-size: 1.7rem; line-height: 1; border-radius: 50%; cursor: pointer; z-index: 3; transition: background .18s ease; }
.rv-lb-close:hover { background: rgba(255, 255, 255, .3); }
@media (max-width: 600px) {
	.rv-lb-logobar { gap: 14px; padding: 10px 16px; }
	.rv-lb-logo--renavac { height: 28px !important; }
	.rv-lb-logo--brand { height: 22px !important; max-width: 96px !important; }
	.rv-lb-stage { padding: 12px 16px 32px; }
}
/* Botão quando o produto JÁ está no carrinho → ao clicar abre o carrinho. */
.single-product .single_add_to_cart_button.rv-incart { background: var(--rv-primary) !important; border-color: var(--rv-primary) !important; }
.single-product .single_add_to_cart_button.rv-incart:hover { background: var(--rv-accent) !important; border-color: var(--rv-accent) !important; }
.single-product .single_add_to_cart_button.rv-incart .rv-atc-check { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; background: rgba(255,255,255,.22); font-weight: 900; font-size: .8rem; }

/* ===== Instalação profissional (bundle opcional) ===== */
.rv-install { flex: 0 0 100%; width: 100%; border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; margin: 2px 0 6px; background: #fff; }
.rv-install.is-on { border-color: var(--rv-accent); }
.rv-install-head { display: flex; align-items: center; gap: 12px; padding: 14px 16px; cursor: pointer; margin: 0; }
.rv-install-check { position: absolute; opacity: 0; width: 0; height: 0; }
.rv-install-box { width: 22px; height: 22px; border: 2px solid var(--rv-rule); border-radius: 6px; flex: 0 0 auto; position: relative; transition: background .15s, border-color .15s; }
.rv-install-check:checked + .rv-install-box { background: var(--rv-accent); border-color: var(--rv-accent); }
.rv-install-check:checked + .rv-install-box::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.rv-install-ttl { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--rv-primary); flex: 1; font-size: .95rem; }
.rv-install-ttl svg, .rv-install-ttl .rv-ic { width: 18px; height: 18px; color: var(--rv-accent); flex: 0 0 auto; }
.rv-install-price { font-weight: 800; color: var(--rv-accent); white-space: nowrap; }
.rv-install-body { padding: 0 16px 16px; }
.rv-install-body[hidden] { display: none; }
.rv-install-field { display: flex; flex-direction: column; gap: 6px; font-weight: 600; color: var(--rv-primary); font-size: .86rem; margin-top: 4px; }
.rv-install-district { border: 1px solid var(--rv-rule); border-radius: 9px; padding: 10px 12px; font-size: .92rem; background: #fff; max-width: 320px; }
.rv-install-note { display: flex; align-items: flex-start; gap: 7px; margin: 10px 0 0; color: var(--rv-mid); font-size: .8rem; line-height: 1.45; }
.rv-install-note svg, .rv-install-note .rv-ic { width: 14px; height: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--rv-accent); }
.rv-install-meta-note { display: block; color: var(--rv-mid); font-size: .76rem; margin-top: 2px; }
/* Preço da instalação no formato fancy (compacto no cabeçalho) */
.rv-install-price .rv-fprice { color: var(--rv-accent); }
.rv-install-price .rv-fprice-int { font-size: 1rem !important; font-weight: 800; }
.rv-install-price .rv-fprice-cur { font-size: .8rem !important; }
.rv-install-price .rv-fprice-cents { font-size: .62rem !important; }

/* Valor da instalação no carrinho (fancy compacto) */
.rv-cart-meta .rv-install-meta-val .rv-fprice { color: var(--rv-accent); }
.rv-cart-meta .rv-install-meta-val .rv-fprice-int { font-size: 1rem !important; }
.rv-cart-meta .rv-install-meta-val .rv-fprice-cur, .rv-cart-meta .rv-install-meta-val .rv-fprice-cents { font-size: .68rem !important; }

/* Sugestões (sem produtos): 3 colunas */
.rv-suggest ul.products.rv-complete-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .rv-suggest ul.products.rv-complete-grid { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 72%; } }

/* Produto: não permitir limpar a variação (tem de escolher sempre uma característica) */
.single-product .reset_variations { display: none !important; }

/* (Loja mantém o card branco de fundo.) */

/* "Sem produtos": X vermelho + grelha de sugestões (também fora do carrinho) */
.rv-noproducts-ic--x { background: #fbeaea; color: #d23f3f; }
.rv-noproducts-ic--x svg, .rv-noproducts-ic--x .rv-ic { width: 30px; height: 30px; stroke-width: 2.5; }
.rv-suggest { margin-top: 36px; }
/* scroller horizontal das sugestões (também fora do carrinho, ex.: "sem produtos") */
.rv-complete-scroller { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
ul.products.rv-complete-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; width: 100%; margin: 0; list-style: none; }
ul.products.rv-complete-grid::before, ul.products.rv-complete-grid::after { display: none !important; content: none !important; }
ul.products.rv-complete-grid li.product { width: auto !important; margin: 0 !important; float: none !important; }
/* Cards iguais: título sempre em 2 linhas para preço/botão alinharem entre cards */
ul.products.rv-complete-grid li.product .woocommerce-loop-product__title {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	min-height: 2.6em; max-height: 2.6em;
}
@media (max-width: 900px) { ul.products.rv-complete-grid { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 72%; } }


/* ===== Página 404 ===== */
.rv-404 { max-width: 760px; margin: 0 auto; padding: 64px 22px 88px; text-align: center; }
.rv-404-glyph { display: flex; align-items: center; justify-content: center; gap: 4px; font-family: var(--rv-font-head); font-weight: 800; font-size: clamp(96px, 18vw, 184px); line-height: 1; color: var(--rv-primary); }
.rv-404-snow { display: inline-flex; color: var(--rv-accent); }
.rv-404-snow svg, .rv-404-snow .rv-ic { width: clamp(64px, 12vw, 120px); height: clamp(64px, 12vw, 120px); }
.rv-404-title { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: clamp(1.5rem, 3vw, 2.1rem); margin: 8px 0 12px; }
.rv-404-text { color: var(--rv-mid); font-size: 1.02rem; line-height: 1.6; max-width: 520px; margin: 0 auto 26px; }
.rv-404-search { display: flex; max-width: 440px; margin: 0 auto 22px; background: var(--rv-surface); border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; }
.rv-404-search input { flex: 1; border: 0; background: transparent; padding: 12px 20px; font-size: .95rem; }
.rv-404-search input:focus { outline: none; }
.rv-404-search button { background: var(--rv-accent); border: 0; color: #fff; padding: 0 20px; cursor: pointer; display: flex; align-items: center; }
.rv-404-search button:hover { background: var(--rv-primary); }
.rv-404-search button svg, .rv-404-search button .rv-ic { width: 20px; height: 20px; }
.rv-404-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 34px; }
.rv-404-cats-lbl { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--rv-mid); margin-bottom: 12px; }
.rv-404-chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.rv-404-chip { background: #fff; border: 1px solid var(--rv-rule); border-radius: 12px; padding: 9px 18px; color: var(--rv-primary); font-weight: 600; font-size: .9rem; text-decoration: none; transition: border-color var(--rv-t), color var(--rv-t); }
.rv-404-chip:hover { border-color: var(--rv-accent); color: var(--rv-accent); }

/* Reduz o espaçamento no item do carrinho (info do produto) */
.rv-cart-main { gap: 5px; }
.rv-cart-main .rv-deliv { margin: 6px 0 2px; }
.rv-cart-main .rv-deliv-foot { display: none; }
.rv-cart-main .rv-cart-chips { margin-top: 4px; }
.rv-cart-rowfoot { margin-top: 10px; }

/* ===== Promoção: preço de desconto vermelho + antigo riscado + selo % ===== */
.rv-fprice--sale { color: #d23f3f !important; }
.woocommerce ul.products li.product .price .rv-price-old,
.rv-price-old { display: inline-block; margin-left: 8px; color: var(--rv-mid); font-weight: 400; font-size: .82rem; text-decoration: line-through; }
/* Mensagem "Produtos não disponíveis" na loja */
.rv-noproducts { text-align: center; padding: 60px 24px; border: 1px dashed var(--rv-rule); border-radius: var(--rv-radius-lg); background: #fff; }
.rv-noproducts-ic { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--rv-surface); color: var(--rv-mid); margin-bottom: 16px; }
.rv-noproducts-ic svg, .rv-noproducts-ic .rv-ic { width: 28px; height: 28px; }
.rv-noproducts-ttl { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.5rem; margin: 0 0 8px; }
.rv-noproducts-txt { color: var(--rv-mid); max-width: 420px; margin: 0 auto 20px; line-height: 1.5; }
.rv-noproducts-btn { display: inline-flex; align-items: center; }
/* nunca depender da animação de reveal (evita "caixa vazia" momentânea) */
.rv-noproducts, .rv-noproducts * { opacity: 1 !important; transform: none !important; }
/* Telemóvel: caixa "sem produtos" mais compacta */
@media (max-width: 768px) {
	.rv-noproducts { padding: 32px 18px; }
	.rv-noproducts-ic { width: 52px; height: 52px; margin-bottom: 12px; }
	.rv-noproducts-ttl { font-size: 1.2rem; }
	.rv-noproducts-txt { font-size: .9rem; margin-bottom: 16px; }
}

/* Botão "Só promoções" nos filtros */
.rv-promo-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; background: #fff7d6; border: 1px solid #f1d97a; border-radius: 0; padding: 11px 13px; margin-bottom: 16px; font-weight: 700; transition: background .15s, border-color .15s; }
.rv-promo-toggle-tag { border-radius: 0 !important; }
.rv-promo-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.rv-promo-toggle-tag { width: 26px; height: 26px; border-radius: 7px; background: #ffd60a; color: #111; font-weight: 900; display: flex; align-items: center; justify-content: center; font-size: 1rem; flex: 0 0 auto; }
.rv-promo-toggle-txt { flex: 1; color: var(--rv-primary); font-size: .95rem; }
.rv-promo-toggle-n { background: #fff; border: 1px solid #f1d97a; border-radius: 12px; min-width: 24px; height: 22px; padding: 0 7px; display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; color: #5a4500; }
.rv-promo-toggle:hover { border-color: #ffd60a; }
.rv-promo-toggle.is-on { background: var(--rv-primary); border-color: var(--rv-primary); }
.rv-promo-toggle.is-on .rv-promo-toggle-txt { color: #fff; }
.rv-promo-toggle.is-on .rv-promo-toggle-n { background: rgba(255, 255, 255, .22); color: #fff; border-color: transparent; }

.rv-card-disc {
	position: absolute; top: 16px; right: 0; z-index: 6;
	background: #ffd60a; color: #111; font-weight: 900; font-size: 1.2rem; line-height: 1;
	padding: 9px 15px 9px 18px; letter-spacing: -.02em;
	border-radius: 12px 0 0 999px;
	box-shadow: -4px 7px 16px -8px rgba(0, 0, 0, .4);
}
/* Esconde o selo "Promoção!" default do WooCommerce (cards e produto). */
.woocommerce ul.products li.product span.onsale,
.rv-complete span.onsale,
.single-product div.product span.onsale { display: none !important; }

/* Selo "-X%" na imagem do produto individual (igual aos cards). */
.single-product div.product .woocommerce-product-gallery { position: relative; }
.rv-prod-disc {
	position: absolute; top: 20px; left: 0; z-index: 9;
	background: #ffd60a; color: #111; font-weight: 900; font-size: 1.55rem; line-height: 1;
	padding: 12px 22px 12px 18px; letter-spacing: -.02em;
	border-radius: 0 999px 999px 0;
	box-shadow: 4px 8px 20px -8px rgba(0, 0, 0, .4);
}

/* Preço de desconto no produto individual: novo grande a vermelho, antigo pequeno cinza riscado. */
.single-product .summary .price ins,
.single-product .woocommerce-variation-price ins { text-decoration: none; background: none; }
.single-product .summary .price ins .rv-fprice,
.single-product .woocommerce-variation-price ins .rv-fprice,
.single-product .summary .price > .rv-fprice--sale { color: #d23f3f; }
.single-product .summary .price del,
.single-product .woocommerce-variation-price del { opacity: 1; margin-left: 12px; }
.single-product .summary .price del .rv-fprice,
.single-product .woocommerce-variation-price del .rv-fprice { color: var(--rv-mid); text-decoration: line-through; }
.single-product .summary .price del .rv-fprice-int,
.single-product .woocommerce-variation-price del .rv-fprice-int { font-size: 1.05rem; font-weight: 600; }
.single-product .summary .price del .rv-fprice-cur,
.single-product .summary .price del .rv-fprice-cents,
.single-product .woocommerce-variation-price del .rv-fprice-cur,
.single-product .woocommerce-variation-price del .rv-fprice-cents { font-size: .72rem; }

/* ===== Disponibilidade + prazo de entrega (produto individual e carrinho) ===== */
.rv-deliv { margin: 10px 0; }
.rv-deliv-title { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--rv-primary); font-size: .92rem; }
.rv-deliv-title svg, .rv-deliv-title .rv-ic { width: 17px; height: 17px; flex: 0 0 auto; color: var(--rv-accent); }
.rv-deliv-time { color: var(--rv-mid); font-weight: 600; font-size: .85rem; }
.rv-deliv-rows { list-style: none; margin: 9px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.rv-deliv-rows li { display: flex; align-items: center; gap: 9px; font-size: .87rem; color: var(--rv-ink, #243b4a); }
.rv-deliv-rows strong { color: var(--rv-primary); font-weight: 700; }
.rv-deliv-note { color: var(--rv-mid); }
.rv-deliv-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.rv-deliv-dot--ok { background: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .16); }
.rv-deliv-dot--enc { background: #e0a106; box-shadow: 0 0 0 3px rgba(224, 161, 6, .18); }
.rv-deliv-foot { margin: 9px 0 0; font-size: .78rem; color: var(--rv-mid); line-height: 1.4; }
/* No produto individual: cartão subtil por baixo do botão de compra. */
.single-product .summary .rv-deliv { border: 1px solid var(--rv-rule); border-radius: 12px; padding: 15px 18px; background: var(--rv-surface); margin-top: 16px; }

/* ===== Reduzir o espaço no topo da página de carrinho ===== */
body.woocommerce-cart .inside-article { padding-top: 22px; }
body.woocommerce-cart .entry-content { margin-top: 0; }
body.woocommerce-cart .woocommerce-notices-wrapper:empty { display: none; margin: 0; }
body.woocommerce-cart .rv-cart-listhead { margin-top: 0; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: flex !important; align-items: center; justify-content: center; gap: 10px; width: 100%; text-align: center; padding: 16px !important; font-size: 1.05rem !important; border-radius: 12px !important; font-weight: 800 !important; }

/* ===== "Completa a tua compra" ===== */
.woocommerce-cart .rv-complete { display: block !important; grid-template-columns: none !important; grid-column: 1 / -1; width: 100%; margin-top: 40px; clear: both; }
.rv-complete-title { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.5rem; margin: 0 0 18px; }
.woocommerce-cart .rv-complete .rv-complete-scroller { overflow-x: auto; padding-bottom: 6px; width: 100%; max-width: 100%; }
.woocommerce-cart ul.products.rv-complete-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 18px !important; width: 100% !important; margin: 0 !important; }
.woocommerce-cart ul.products.rv-complete-grid::before, .woocommerce-cart ul.products.rv-complete-grid::after { display: none; }
.woocommerce-cart ul.products.rv-complete-grid li.product { width: auto !important; margin: 0 !important; float: none !important; }

/* Responsivo — carrossel horizontal com cards de largura/altura iguais (!important
 * para vencer o repeat(4) de cima; sem conflito de grid-template-columns) */
@media (max-width: 900px) {
	.woocommerce-cart ul.products.rv-complete-grid { grid-auto-flow: column !important; grid-template-columns: none !important; grid-auto-columns: 224px !important; align-items: stretch !important; }
	.woocommerce-cart ul.products.rv-complete-grid li.product { height: 100% !important; }
}
@media (max-width: 640px) {
	.rv-cart-row { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; padding: 14px 4px; align-items: start; }
	.rv-cart-thumb { width: 88px; height: 88px; }
	.rv-cart-main { gap: 5px; }
	.rv-cart-name { font-size: .96rem; }
	.rv-cart-now .rv-fprice-int { font-size: 1.4rem; }
	.rv-cart-vendor, .rv-cart-meta, .rv-cart-delivery { font-size: .8rem; }
	/* selos de confiança (Revendedor/Apoio/Gases) são iguais em todos os produtos →
	 * no telemóvel escondem-se para o carrinho ficar limpo (continuam na pág. do produto) */
	.rv-cart-chips { display: none; }
	.rv-cart-rowfoot { gap: 10px; margin-top: 6px; }
	.woocommerce-cart ul.products.rv-complete-grid { grid-auto-columns: 200px !important; }
}

/* ===== Comparar: grelha (rótulos | 3 slots) com pesquisa de similares ===== */
.rv-cmp-modal { max-width: 1000px !important; }
.rv-cmp-grid { display: grid; grid-template-columns: 158px repeat(3, minmax(0, 1fr)); border: 1px solid #e4e9ee; border-radius: 16px; overflow: hidden; }
.rv-cmp-corner { background: linear-gradient(160deg, #f7f9fb, #eef2f6); }
.rv-cmp-cell { padding: 16px 14px; border-left: 1px solid #eef2f6; text-align: center; position: relative; }
.rv-cmp-head .rv-cmp-imgwrap { display: block; height: 108px; margin-bottom: 8px; }
.rv-cmp-head a { text-decoration: none; display: block; }
.rv-cmp-remove { position: absolute; top: 6px; right: 8px; border: 0; background: none; font-size: 18px; line-height: 1; cursor: pointer; color: var(--rv-mid); }
.rv-cmp-add { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 9px; background: repeating-linear-gradient(45deg, #fafbfd, #fafbfd 12px, #f4f7fa 12px, #f4f7fa 24px); }
.rv-cmp-add-ic { width: 44px; height: 44px; border-radius: 50%; background: var(--rv-accent); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 26px; line-height: 1; margin-top: 22px; box-shadow: 0 8px 18px -6px rgba(21, 87, 60, .5); }
.rv-cmp-add-label { font-size: .82rem; color: var(--rv-mid); font-weight: 600; }
.rv-cmp-search { width: 100%; border: 1px solid var(--rv-rule); border-radius: 8px; padding: 9px 11px; font-size: .85rem; font-family: var(--rv-font-body); }
.rv-cmp-results { width: 100%; display: flex; flex-direction: column; gap: 2px; max-height: 230px; overflow: auto; }
.rv-cmp-result { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: #fff; padding: 6px; cursor: pointer; border-radius: 8px; text-align: left; font-size: .78rem; color: var(--rv-primary); }
.rv-cmp-result:hover { background: rgba(21, 87, 60, .07); }
.rv-cmp-result img { width: 34px; height: 34px; object-fit: contain; flex: 0 0 auto; }
.rv-cmp-noresult { font-size: .8rem; color: var(--rv-mid); padding: 6px; }
.rv-cmp-rowlabel { padding: 12px 14px; border-top: 1px solid #eef2f6; background: #f2f5f8; box-shadow: inset 3px 0 0 var(--rv-accent); font-size: .72rem; font-weight: 800; color: var(--rv-primary); text-transform: uppercase; letter-spacing: .06em; display: flex; align-items: center; }
.rv-cmp-val { padding: 12px 14px; border-top: 1px solid #eef2f6; border-left: 1px solid #eef2f6; text-align: center; font-size: .85rem; color: #2e3b47; font-weight: 600; display: flex; align-items: center; justify-content: center; }
/* Comparar no telemóvel: scroll lateral com colunas de largura mínima (items legíveis) */
@media (max-width: 700px) {
	.rv-cmp-grid { grid-template-columns: 104px repeat(3, minmax(142px, 1fr)); overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
	.rv-cmp-cell, .rv-cmp-val, .rv-cmp-rowlabel { padding: 9px 8px; font-size: .8rem; }
}

/* ===== Aviso "adicionado ao carrinho" como toast verde em baixo (estilo Worten) ===== */
.woocommerce-message {
	position: fixed !important; left: 50%; bottom: 26px; transform: translateX(-50%);
	background: #2e9e5b !important; color: #fff !important; border: 0 !important; border-top: 0 !important;
	border-radius: 14px !important; padding: 15px 22px 15px 52px !important; margin: 0 !important;
	box-shadow: 0 16px 44px -12px rgba(3, 31, 55, .45); z-index: 100000; width: auto !important; max-width: 92vw;
	font-weight: 600; font-size: .95rem; display: flex; align-items: center; gap: 18px; animation: rv-toastin .3s ease;
}
.woocommerce-message::before { color: #fff !important; left: 22px !important; top: 50% !important; margin: 0 !important; transform: translateY(-50%); }
.woocommerce-message .button { background: #fff !important; color: var(--rv-accent) !important; border-radius: 12px !important; padding: 9px 18px !important; font-size: .85rem !important; margin: 0 !important; font-weight: 700 !important; white-space: nowrap; }
.woocommerce-message .button:hover { background: rgba(255, 255, 255, .88) !important; transform: none !important; }
@keyframes rv-toastin { from { opacity: 0; transform: translateX(-50%) translateY(24px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } }
.woocommerce-message.rv-hiding { opacity: 0; transform: translateX(-50%) translateY(24px); transition: opacity .3s, transform .3s; }

/* ===== Toast AJAX (rv-toast) — variantes de sucesso / info ===== */
.rv-toast { display: flex; align-items: center; gap: 14px; font-weight: 600; }
.rv-toast--ok { background: #2e9e5b; padding-left: 50px; }
.rv-toast--ok::before { content: ""; position: absolute; left: 20px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; border-radius: 50%; background: rgba(255,255,255,.22); }
.rv-toast--ok::after { content: ""; position: absolute; left: 26px; top: calc(50% - 1px); width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: translateY(-50%) rotate(45deg); }
.rv-toast--info { background: #1f6feb; }
/* Realça as opções por escolher quando se tenta adicionar sem selecionar */
.rv-needsel { animation: rv-needsel .5s ease; border-radius: 12px; }
@keyframes rv-needsel { 0%,100% { box-shadow: 0 0 0 0 rgba(210,63,63,0); } 30% { box-shadow: 0 0 0 4px rgba(210,63,63,.18); } }
.rv-toast--ok a, .rv-toast--info a { background: #fff; color: var(--rv-primary); border-radius: 12px; padding: 7px 15px; font-size: .82rem; margin-left: 4px; }
/* Telemóvel: toasts (adicionado/erro) mais pequenos e compactos */
@media (max-width: 600px) {
	.woocommerce-message, .rv-toast { bottom: 14px !important; max-width: 90vw !important; font-size: .8rem !important; gap: 10px !important; }
	.woocommerce-message { padding: 11px 16px 11px 40px !important; line-height: 1.35; align-items: center; }
	.woocommerce-message::before { left: 13px !important; width: 18px !important; height: 18px !important; }
	.woocommerce-message .button { padding: 7px 12px !important; font-size: .76rem !important; }
	.rv-toast { padding: 11px 15px !important; }
	.rv-toast--ok { padding-left: 42px !important; }
}

/* ===== Popup central "Adicionado ao carrinho" (✓ animado, abre e fecha sozinho) ===== */
.rv-cartpop2 { position: fixed; inset: 0; z-index: 100002; display: flex; align-items: center; justify-content: center; padding: 20px; pointer-events: none; }
.rv-cartpop2::before { content: ""; position: absolute; inset: 0; background: rgba(3,31,55,.32); opacity: 0; transition: opacity .25s ease; pointer-events: none; }
.rv-cartpop2.show { pointer-events: auto; }
.rv-cartpop2.show::before { opacity: 1; }
.rv-cartpop2-card { position: relative; background: #fff; border-radius: 14px; padding: 30px 28px 24px; width: min(86vw, 330px); text-align: center; box-shadow: 0 30px 80px -20px rgba(3,31,55,.55); transform: translateY(14px) scale(.93); opacity: 0; transition: transform .34s cubic-bezier(.22,.61,.36,1), opacity .25s ease; }
.rv-cartpop2.show .rv-cartpop2-card { transform: none; opacity: 1; }
.rv-cartpop2-check { position: relative; width: 66px; height: 66px; border-radius: 50%; background: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 14px; transform: scale(0); }
.rv-cartpop2.show .rv-cartpop2-check { animation: rv-cp2-pop .42s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes rv-cp2-pop { to { transform: scale(1); } }
.rv-cartpop2-check::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid var(--rv-accent); opacity: .5; transform: scale(.8); }
.rv-cartpop2.show .rv-cartpop2-check::after { animation: rv-cp2-ring .6s .2s ease-out forwards; }
@keyframes rv-cp2-ring { to { transform: scale(1.32); opacity: 0; } }
.rv-cartpop2-check svg { width: 34px; height: 34px; }
.rv-cartpop2-path { stroke: #fff; stroke-width: 3.6; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 34; stroke-dashoffset: 34; }
.rv-cartpop2.show .rv-cartpop2-path { animation: rv-cp2-draw .35s .26s ease forwards; }
@keyframes rv-cp2-draw { to { stroke-dashoffset: 0; } }
.rv-cartpop2-ttl { display: block; font-family: var(--rv-font-head, inherit); font-size: 1.2rem; font-weight: 700; color: var(--rv-primary); margin-bottom: 5px; }
.rv-cartpop2-name { display: block; color: #5b6b7a; font-size: .86rem; line-height: 1.35; margin-bottom: 16px; }
.rv-cartpop2-btn { display: inline-flex; align-items: center; justify-content: center; background: var(--rv-accent); color: #fff; font-weight: 700; padding: 11px 24px; border-radius: 12px; text-decoration: none; font-size: .92rem; transition: background .2s ease; }
.rv-cartpop2-btn:hover { background: var(--rv-primary); color: #fff; }
@media (prefers-reduced-motion: reduce) {
	.rv-cartpop2-card, .rv-cartpop2-check, .rv-cartpop2-path { animation: none !important; transition: opacity .2s ease !important; transform: none !important; stroke-dashoffset: 0 !important; opacity: 1; }
}

/* ===== Avisos do WooCommerce restilizados como alertas inline (erro / info) ===== */
.woocommerce-error,
.woocommerce-info,
.woocommerce-noreviews,
.woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-message {
	position: static !important; transform: none !important; max-width: none;
	list-style: none; margin: 0 0 22px !important; padding: 16px 20px 16px 52px !important;
	border: 1px solid var(--rv-rule); border-left-width: 4px; border-radius: 12px;
	background: #fff; box-shadow: 0 6px 22px -16px rgba(3,31,55,.4);
	font-size: .92rem; color: var(--rv-ink, #1a2b3a); position: relative !important;
	display: block; animation: none; z-index: auto;
}
.woocommerce-error::before,
.woocommerce-info::before {
	content: ""; position: absolute; left: 18px; top: 18px; width: 22px; height: 22px;
	border-radius: 50%; background-position: center; background-repeat: no-repeat; background-size: 22px 22px;
}
.woocommerce-error { border-left-color: #d23f3f; background: #fdf3f3; }
.woocommerce-error::before { content: "!"; color: #fff; background: #d23f3f; font-weight: 800; text-align: center; line-height: 22px; }
.woocommerce-info { border-left-color: var(--rv-sky, #1f6feb); background: #f1f6fd; }
.woocommerce-info::before { content: "i"; color: #fff; background: var(--rv-sky, #1f6feb); font-weight: 800; font-style: italic; text-align: center; line-height: 22px; }
.woocommerce-error li, .woocommerce-info { margin: 0; }
.woocommerce-error li + li { margin-top: 6px; }
.woocommerce-error .button,
.woocommerce-info .button {
	background: var(--rv-primary) !important; color: #fff !important; border-radius: 12px !important;
	padding: 8px 18px !important; font-size: .82rem !important; float: right; margin: -2px 0 0 12px !important;
}
/* Botões secundários do WooCommerce (ex.: "Voltar para a loja") com a marca */
.woocommerce a.button.wc-backward,
.woocommerce .return-to-shop a.button,
.woocommerce-cart .cart-empty + p.return-to-shop a {
	background: var(--rv-primary) !important; color: #fff !important; border-radius: 12px !important;
	padding: 12px 26px !important; font-weight: 700 !important;
}
.woocommerce a.button.wc-backward:hover,
.woocommerce .return-to-shop a.button:hover { background: var(--rv-accent, #15573c) !important; }

/* ============================================================
   CHECKOUT 2 COLUNAS (layout tipo "Billing + Your Order")
   ============================================================ */
/* Esconde o título do GeneratePress no checkout (usamos um próprio, alinhado com os cards) */
body.woocommerce-checkout .entry-header { display: none; }
.rv-co2-pagetitle { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 0 0 22px; }

.rv-checkout2 .rv-co2-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 26px; align-items: start; }
.rv-checkout2 .rv-co2-col { display: flex; flex-direction: column; gap: 22px; }
.rv-checkout2 .rv-co2-source { display: none !important; }
.rv-checkout2 .rv-co2-card { background: #fff; border: 1px solid var(--rv-rule); border-radius: 16px; padding: 26px 28px; box-shadow: 0 6px 18px -14px rgba(3, 31, 55, .20); }
.rv-checkout2 .rv-co2-title { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.25rem; margin: 0 0 18px; }
.rv-checkout2 .rv-co2-hint { color: var(--rv-mid); font-size: .9rem; margin: -10px 0 18px; }
.rv-checkout2 .rv-co2-hint a { color: var(--rv-accent); font-weight: 700; }

/* Barra de passos */
.rv-co2-steps { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0; }
.rv-co2-steps li { flex: 1; display: flex; align-items: center; gap: 9px; padding: 12px 14px; border: 1px solid var(--rv-rule); border-radius: 12px; background: #fff; color: var(--rv-mid); font-weight: 700; font-size: .85rem; cursor: pointer; }
.rv-co2-stepn { width: 24px; height: 24px; border-radius: 50%; background: var(--rv-surface); color: var(--rv-mid); display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; flex: 0 0 auto; }
.rv-co2-steps li.is-active { border-color: var(--rv-primary); color: var(--rv-primary); }
.rv-co2-steps li.is-active .rv-co2-stepn { background: var(--rv-primary); color: #fff; }
.rv-co2-steps li.is-done .rv-co2-stepn { background: var(--rv-accent); color: #fff; }
@media (max-width: 560px) { .rv-co2-steplbl { display: none; } .rv-co2-steps li { justify-content: center; } }

/* Navegação */
.rv-co2-nav { display: flex; justify-content: space-between; gap: 12px; }
.rv-co2-nav [hidden] { display: none !important; }
.rv-co2-next, .rv-co2-back { display: inline-flex; align-items: center; gap: 9px; border-radius: 12px; padding: 13px 26px; font-weight: 700; font-size: .92rem; cursor: pointer; border: 1px solid var(--rv-rule); }
.rv-co2-next { background: var(--rv-primary); color: #fff; border-color: var(--rv-primary); margin-left: auto; }
.rv-co2-next:hover { background: var(--rv-accent); border-color: var(--rv-accent); }
.rv-co2-next svg { width: 16px; height: 16px; }
.rv-co2-back { background: #fff; color: var(--rv-mid); }
.rv-co2-back svg { width: 16px; height: 16px; transform: rotate(180deg); }

/* Resumo fixo */
.rv-co2-right { position: sticky; top: 90px; }

/* Campos */
.rv-checkout2 .woocommerce-billing-fields > h3,
.rv-checkout2 .woocommerce-additional-fields > h3 { display: none; }
.rv-checkout2 .rv-co2-fields { display: flex; flex-wrap: wrap; gap: 0 16px; align-items: flex-start; }
.rv-checkout2 .rv-co2-fields .form-row { flex: 1 1 100%; margin: 0 0 16px; padding: 0; }
.rv-checkout2 .rv-co2-fields .form-row.form-row-first, .rv-checkout2 .rv-co2-fields .form-row.form-row-last { flex: 1 1 calc(50% - 8px); width: auto; float: none; }
.rv-checkout2 .form-row { margin: 0 0 16px; padding: 0; }
.rv-checkout2 label { display: block; font-size: .8rem; font-weight: 600; color: var(--rv-mid); margin-bottom: 6px; }
.rv-checkout2 .input-text, .rv-checkout2 select, .rv-checkout2 textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--rv-rule); border-radius: 10px; background: #fff; color: var(--rv-ink, #243b4a); font-size: .95rem; font-family: inherit; }
.rv-checkout2 .input-text:focus, .rv-checkout2 select:focus, .rv-checkout2 textarea:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.rv-checkout2 abbr.required { color: #cf3b3b; border: 0; text-decoration: none; }
.rv-checkout2 .woocommerce-invalid .input-text, .rv-checkout2 .woocommerce-invalid select { border-color: #cf3b3b; }

/* Preferência de entrega (Casa / Trabalho) */
.rv-checkout2 .rv-co2-delivery .woocommerce-input-wrapper { display: flex; flex-wrap: wrap; gap: 12px; }
.rv-checkout2 .rv-co2-delivery label.radio { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 11px 16px; border: 1px solid var(--rv-rule); border-radius: 10px; background: #fff; font-weight: 600; font-size: .9rem; color: var(--rv-ink, #243b4a); cursor: pointer; }
.rv-checkout2 .rv-co2-delivery input[type="radio"] { accent-color: var(--rv-accent); margin: 0; }

/* Morada de envio diferente / notas */
.rv-checkout2 .woocommerce-shipping-fields h3, .rv-checkout2 .woocommerce-additional-fields h3.optional { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1rem; }
.rv-checkout2 .woocommerce-shipping-fields { margin-top: 6px; }

/* Pagamento */
.rv-co2-payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.rv-co2-payment ul.payment_methods li { border: 1px solid var(--rv-rule); border-radius: 10px; padding: 14px 16px; background: #fff; }
.rv-co2-payment ul.payment_methods li > label { display: inline-flex; align-items: center; gap: 10px; margin: 0; font-weight: 700; color: var(--rv-primary); font-size: .95rem; }
.rv-co2-payment ul.payment_methods li input[type="radio"] { accent-color: var(--rv-accent); }
.rv-co2-payment ul.payment_methods li img { max-height: 24px; width: auto; }
.rv-co2-payment .payment_box { background: transparent !important; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid var(--rv-rule); font-size: .85rem; color: var(--rv-mid); }
.rv-co2-payment .payment_box::before { display: none; }

/* Encomenda (direita) */
.rv-co2-order.shop_table { border: 0 !important; background: none !important; margin: 0; padding: 0; width: 100%; }
.rv-co2-items { display: flex; flex-direction: column; gap: 14px; margin: 0 0 18px; }
.rv-co2-item { position: relative; display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--rv-rule); border-radius: 12px; padding: 12px 38px 12px 12px; }
.rv-co2-item-img { width: 88px; height: 88px; flex: 0 0 auto; border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; background: #fff; display: flex; align-items: center; justify-content: center; padding: 8px; }
.rv-co2-item-img img { width: 100%; height: 100%; object-fit: contain; }
.rv-co2-item-mid { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.rv-co2-item-name { font-weight: 700; color: var(--rv-primary); font-size: .92rem; line-height: 1.3; }
.rv-co2-item-meta { font-size: .78rem; color: var(--rv-mid); line-height: 1.45; }
.rv-co2-item-meta dl, .rv-co2-item-meta p { margin: 0; }
.rv-co2-item-meta dt { font-weight: 700; display: inline; }
.rv-co2-item-meta dd { display: inline; margin: 0 0 0 4px; }
.rv-co2-item-meta .rv-install-meta-note { display: block; margin-top: 2px; }
.rv-co2-item-meta .rv-install-meta-val .rv-fprice-int { font-size: 1rem; }
.rv-co2-item-meta .rv-install-meta-val .rv-fprice-cents, .rv-co2-item-meta .rv-install-meta-val .rv-fprice-cur { font-size: .68rem; }
.rv-co2-item-foot { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 6px; }
.rv-co2-item-qty { font-size: .8rem; color: var(--rv-mid); }
.rv-co2-item-price { font-weight: 800; color: var(--rv-primary); white-space: nowrap; }
.rv-co2-item-price .rv-fprice-int { font-size: 1.05rem; }
.rv-co2-item-price .rv-fprice-cents, .rv-co2-item-price .rv-fprice-cur { font-size: .72rem; }
.rv-co2-item-x { position: absolute; top: 8px; right: 8px; color: #cf3b3b; border: 1px solid var(--rv-rule); border-radius: 50%; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; text-decoration: none; font-size: 1rem; line-height: 1; }
.rv-co2-item-x:hover { background: #fbeaea; border-color: #cf3b3b; }

/* Cupão */
.rv-co2-coupon { display: flex; gap: 10px; margin: 0 0 18px; }
.rv-co2-coupon-input { flex: 1; min-width: 0; padding: 12px 14px; border: 1px solid var(--rv-rule); border-radius: 10px; background: #fff; font-size: .9rem; }
.rv-co2-coupon-input:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.rv-co2-applycoupon { background: var(--rv-accent); color: #fff; border: 0; border-radius: 10px; padding: 0 20px; font-weight: 700; font-size: .88rem; cursor: pointer; white-space: nowrap; transition: background var(--rv-t); }
.rv-co2-applycoupon:hover { background: var(--rv-primary); }
.rv-co2-applycoupon.is-loading { opacity: .6; cursor: default; }

/* Totais */
.rv-co2-totals-table { width: 100%; border-collapse: collapse; }
.rv-co2-totals-table th, .rv-co2-totals-table td { border: 0; padding: 9px 0; font-size: .92rem; }
.rv-co2-totals-table th { text-align: left; font-weight: 600; color: var(--rv-mid); }
.rv-co2-totals-table td { text-align: right; font-weight: 700; color: var(--rv-primary); }
.rv-co2-totals-table .woocommerce-shipping-totals th, .rv-co2-totals-table .woocommerce-shipping-totals td { vertical-align: top; }
.rv-co2-totals-table .woocommerce-shipping-totals td { text-align: left; }
.rv-co2-totals-table #shipping_method { list-style: none; margin: 0; padding: 0; }
.rv-co2-totals-table #shipping_method li { margin-bottom: 6px; font-weight: 600; color: var(--rv-ink, #243b4a); }
.rv-co2-totals-table #shipping_method li label { display: inline; font-weight: 600; color: var(--rv-ink, #243b4a); }
.rv-co2-totals-table .order-total th, .rv-co2-totals-table .order-total td { border-top: 2px solid var(--rv-rule); padding-top: 14px; font-size: 1.2rem; }
.rv-co2-totals-table .order-total td { color: var(--rv-accent); }

/* Finalizar + privacidade (na coluna direita, por baixo do resumo) */
.rv-co2-submit { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--rv-rule); }
.rv-co2-submit .woocommerce-terms-and-conditions-wrapper,
.rv-co2-submit .woocommerce-privacy-policy-text { font-size: .8rem; color: var(--rv-mid); line-height: 1.5; margin-bottom: 14px; }
.rv-co2-submit .woocommerce-privacy-policy-text a, .rv-co2-submit a { color: var(--rv-accent); }
.rv-checkout2 #place_order.rv-co2-place { float: none; width: 100%; background: var(--rv-accent); color: #fff; border: 0; border-radius: 12px; padding: 16px; font-weight: 800; font-size: 1.05rem; cursor: pointer; transition: background var(--rv-t), transform var(--rv-t); }
.rv-checkout2 #place_order.rv-co2-place:hover { background: var(--rv-primary); transform: translateY(-1px); }

/* Seletor de país (select2) arredondado, igual aos inputs */
.rv-checkout2 .select2-container--default .select2-selection--single { height: auto; border: 1px solid var(--rv-rule); border-radius: 10px; background: #fff; padding: 6px 8px; }
.rv-checkout2 .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.7; padding-left: 6px; color: var(--rv-ink, #243b4a); }
.rv-checkout2 .select2-container--default .select2-selection--single .select2-selection__arrow { top: 9px; right: 6px; }
.rv-checkout2 .select2-container--default.select2-container--focus .select2-selection--single { border-color: var(--rv-accent); }

@media (max-width: 900px) {
	.rv-checkout2 .rv-co2-grid { grid-template-columns: minmax(0, 1fr); }
	.rv-checkout2 .rv-co2-right { position: static; }
}
/* Checkout no telemóvel: cartões com menos padding interno (conteúdo mais largo) */
@media (max-width: 768px) {
	.rv-checkout2 .rv-co2-card { padding: 16px 12px; }
	.rv-checkout2 .rv-co2-grid { gap: 14px; }
}

/* ============================================================
   FIX: botões que herdavam o cinza default do tema
   ============================================================ */
.rv-coupon-toggle,
.rv-coupon-toggle:hover,
.rv-coupon-toggle:focus { background: #fff !important; color: var(--rv-primary) !important; }

/* Botões de ação do WooCommerce sem estilo próprio passam a usar a cor da marca */
.woocommerce button.button:not(.rv-cqty-btn),
.woocommerce input.button,
.woocommerce a.button:not(.rv-card-buy):not(.view):not(.wc-backward),
.wp-block-button__link {
	background-color: var(--rv-accent);
	color: #fff;
}
.woocommerce button.button:not(.rv-cqty-btn):hover,
.woocommerce input.button:hover,
.woocommerce a.button:not(.rv-card-buy):not(.view):not(.wc-backward):hover { background-color: var(--rv-primary); color: #fff; }

/* ===== Checkout: cabeçalho de artigos, resumo bloqueado, toggle faturação ===== */
.rv-co2-itemshead { font-weight: 800; color: var(--rv-primary); font-size: .95rem; margin: 20px 0 10px; padding-top: 16px; border-top: 1px solid var(--rv-rule); }
.rv-co2-totals-table { margin-bottom: 4px; }

/* Resumo bloqueado da entrega (na Faturação) */
.rv-co2-billsummary { margin: 0 0 16px; }
.rv-co2-locked { background: var(--rv-surface); border: 1px solid var(--rv-rule); border-radius: 12px; padding: 14px 16px; color: var(--rv-ink, #243b4a); font-size: .92rem; line-height: 1.6; }
.rv-co2-locked-lbl { display: inline-block; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--rv-accent); background: #fff; border: 1px solid var(--rv-rule); border-radius: 12px; padding: 3px 10px; margin-bottom: 8px; }

/* Checkbox "faturação diferente" */
.rv-checkout2 .rv-bill-diff { display: block; background: none; border: 0; border-radius: 0; padding: 0; margin: 4px 0 18px; }
.rv-checkout2 .rv-bill-diff label { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-weight: 600; color: var(--rv-primary); font-size: .9rem; cursor: pointer; line-height: 1.4; }
.rv-checkout2 .rv-bill-diff input[type="checkbox"] { margin: 1px 0 0; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--rv-accent); }
/* Painel de faturação: todos os elementos ao mesmo limite esquerdo */
.rv-checkout2 .rv-co2-panel[data-panel="3"] .rv-co2-billsummary,
.rv-checkout2 .rv-co2-panel[data-panel="3"] .rv-bill-diff,
.rv-checkout2 .rv-co2-panel[data-panel="3"] #billing_nif_field { margin-left: 0 !important; padding-left: 0 !important; }

/* Total destacado em card de cor */
.rv-co2-totalcard { display: flex; align-items: center; justify-content: space-between; gap: 14px; background: linear-gradient(135deg, var(--rv-primary), var(--rv-accent)); color: #fff; border-radius: 0; padding: 18px 28px; margin: 12px -28px; }
.rv-co2-totalcard-l { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .95rem; }
.rv-co2-totalcard-l svg, .rv-co2-totalcard-l .rv-ic { width: 18px; height: 18px; }
.rv-co2-totalcard-v { font-family: var(--rv-font-head); font-weight: 800; font-size: 1.45rem; white-space: nowrap; }
.rv-co2-totalcard-v .woocommerce-Price-amount, .rv-co2-totalcard-v bdi { color: #fff !important; }

/* Nota de IVA junto ao valor (verde; vermelho em promoção) */
.rv-vat-note--inline { display: block; margin-top: 5px; font-size: .82rem; font-weight: 700; color: var(--rv-accent); }
.rv-vat-note--inline.rv-vat-note--sale { color: #cf3b3b; }

/* ===== Checkout: refinamentos (totais, itens, cupão, envio, progresso) ===== */
/* Totais no formato da loja, sem bordas */
.rv-co2-totals { margin: 4px 0 10px; }
.rv-co2-trow { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 7px 0; font-size: .92rem; color: var(--rv-mid); }
.rv-co2-trow .rv-co2-tval { font-weight: 800; color: var(--rv-primary); white-space: nowrap; }
.rv-co2-trow .rv-co2-tval .rv-fprice-int { font-size: 1rem; }
.rv-co2-trow .rv-co2-tval .rv-fprice-cents, .rv-co2-trow .rv-co2-tval .rv-fprice-cur { font-size: .7rem; }
.rv-co2-trow--disc .rv-co2-tval { color: #cf3b3b; }
.rv-co2-trow .rv-free { color: var(--rv-accent); }
.rv-co2-shiptable { display: none; }

/* Total card — fancy a branco */
.rv-co2-totalcard-v .rv-fprice-int { font-size: 1.5rem; }
.rv-co2-totalcard-v .rv-fprice-cents, .rv-co2-totalcard-v .rv-fprice-cur { font-size: .85rem; }
.rv-co2-totalcard-v .rv-fprice, .rv-co2-totalcard-v .rv-fprice-int, .rv-co2-totalcard-v .rv-fprice-cents, .rv-co2-totalcard-v .rv-fprice-cur { color: #fff !important; }

/* Itens: linhas simples (sem card dentro de card) + imagem maior */
.rv-co2-items { gap: 0; }
.rv-co2-item { position: relative; border: 0 !important; background: none !important; border-radius: 0 !important; border-bottom: 1px solid var(--rv-rule) !important; padding: 14px 30px 14px 0 !important; }
.rv-co2-item:last-child { border-bottom: 0 !important; }
.rv-co2-item-img { width: 104px; height: 104px; border: 1px solid var(--rv-rule); border-radius: 12px; padding: 8px; }
.rv-co2-itemshead { border-top: 0; margin-top: 10px; }

/* Cupão arredondado */
.rv-co2-coupon-input, .rv-co2-applycoupon { border-radius: 10px !important; }

/* Continuar (CTA do site, verde) */
.rv-co2-next { background: var(--rv-accent) !important; border-color: var(--rv-accent) !important; color: #fff !important; }
.rv-co2-next:hover { background: var(--rv-primary) !important; border-color: var(--rv-primary) !important; }

/* Método de envio: seletores no estilo do site */
.rv-co2-shipping #shipping_method { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0; }
.rv-co2-shipping #shipping_method li { border: 1px solid var(--rv-rule); border-radius: 12px; padding: 0; background: #fff; transition: border-color var(--rv-t), box-shadow var(--rv-t); }
.rv-co2-shipping #shipping_method li label { display: flex; align-items: center; gap: 10px; margin: 0; padding: 14px 16px; cursor: pointer; font-weight: 600; color: var(--rv-primary); }
.rv-co2-shipping #shipping_method li input[type="radio"] { accent-color: var(--rv-accent); width: 18px; height: 18px; flex: 0 0 auto; }
.rv-co2-shipping #shipping_method li:has(input:checked) { border-color: var(--rv-accent); box-shadow: 0 0 0 2px rgba(21, 87, 60, .15); }
.rv-co2-shipping #shipping_method .amount { margin-left: auto; font-weight: 800; color: var(--rv-accent); }

/* Barra de progresso dos passos */
.rv-co2-progress { height: 6px; background: var(--rv-rule); border-radius: 12px; overflow: hidden; margin: 14px 0 20px; }
.rv-co2-progress span { display: block; height: 100%; width: 25%; background: linear-gradient(90deg, var(--rv-primary), var(--rv-accent)); border-radius: 12px; transition: width .35s ease; }

/* Swatches de cor (atributo "Cor") */
.rv-swatch--color { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; }
.rv-swatch-dot { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .18); flex: 0 0 auto; }
.rv-swatch--color.is-active .rv-swatch-dot { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--rv-accent); }
.rv-swatch-name { line-height: 1; }

/* Espaçamento do título do resumo mais curto + total card full-bleed sem overflow */
.rv-co2-summarycard .rv-co2-title { margin-bottom: 12px; }
.rv-co2-summarycard { overflow: hidden; }
.rv-co2-totalcard-l { font-size: 1rem; }

/* Alinhar o checkout com o container do site (cabeçalho) */
.rv-checkout2 { max-width: var(--rv-container); margin: 0 auto; padding: 0 22px; }

/* Carrinho: alinhar o topo do resumo com o 1.º produto (não com o título) */
@media (min-width: 901px) { .woocommerce-cart .cart-collaterals { margin-top: 36px; } }

/* ===== Checkout: afinações finais do resumo ===== */
/* Sem padding lateral no card → total a toda a largura sem transbordar; secções com padding próprio */
.rv-checkout2 .rv-co2-summarycard { padding: 20px 0; overflow: hidden; position: relative; }
.rv-checkout2 .rv-co2-summarycard > .rv-co2-title { padding: 0 22px; margin: 0 0 12px; }
.rv-co2-summarycard #order_review { padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; border-radius: 0 !important; }
.rv-co2-summarycard .rv-co2-coupon { padding: 0 22px; }
.rv-co2-summarycard .rv-co2-totals { padding: 0 22px; }
.rv-co2-summarycard .rv-co2-itemshead { padding: 0 22px; }
.rv-co2-summarycard .rv-co2-items { padding: 0 22px; }
.rv-co2-summarycard .rv-co2-totalcard { margin: 12px 0; border-radius: 0; padding: 18px 22px; }

/* Valor do total: maior e menos bold */
.rv-co2-totalcard-v { font-weight: 600; }
.rv-co2-totalcard-v .rv-fprice-int { font-size: 1.85rem; font-weight: 600; }
.rv-co2-totalcard-v .rv-fprice-cents, .rv-co2-totalcard-v .rv-fprice-cur { font-size: 1rem; font-weight: 600; }

/* Imagem dos produtos maior */
.rv-co2-item-img { width: 120px; height: 120px; }
.rv-co2-item { padding: 16px 30px 16px 0 !important; }

/* Passos: alinhar com a barra de progresso + menos espaço */
.rv-checkout2 .rv-co2-left { gap: 14px; }
.rv-checkout2 .rv-co2-steps { padding: 0; margin: 0; }
.rv-checkout2 .rv-co2-progress { margin: 2px 0 4px; }

/* Overlay de carregamento (WC blockUI) mais suave e arredondado */
.woocommerce-checkout .blockUI.blockOverlay { border-radius: 16px !important; background: rgba(246, 247, 249, .72) !important; }
.woocommerce-checkout .rv-co2-card .blockUI.blockOverlay { border-radius: 16px !important; }

/* Resumo: sem caixa/borda na imagem dos produtos */
.rv-co2-item-img { border: 0 !important; background: transparent !important; padding: 0 !important; }

/* Envio: nome do método predefinido + custo */
.rv-co2-trow--ship .rv-co2-shipval { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; line-height: 1.3; }
.rv-co2-shipname { font-weight: 700; color: var(--rv-primary); font-size: .82rem; text-align: right; }
.rv-co2-shipcost { font-size: .8rem; color: var(--rv-mid); font-weight: 700; }
.rv-co2-shipcost.rv-free, .rv-co2-trow--ship .rv-free { color: var(--rv-accent); }

/* Passos/progresso: alinhar tudo à esquerda do mesmo modo */
.rv-checkout2 .rv-co2-left > * { margin-left: 0 !important; }
.rv-checkout2 .rv-co2-steps { padding-left: 0 !important; margin-left: 0 !important; }
.rv-checkout2 .rv-co2-progress { margin-left: 0 !important; margin-right: 0 !important; }

/* Total a pagar: mesma fonte dos restantes valores (Montserrat, não a de títulos) */
.rv-co2-totalcard-v, .rv-co2-totalcard-v .rv-fprice, .rv-co2-totalcard-v .rv-fprice-int, .rv-co2-totalcard-v .rv-fprice-cents, .rv-co2-totalcard-v .rv-fprice-cur { font-family: var(--rv-font-body) !important; }

/* Envio: nome do método e custo separados (empilhados, alinhados à direita) */
.rv-co2-tval .rv-co2-shipname { display: block; font-weight: 700; color: var(--rv-primary); font-size: .82rem; text-align: right; line-height: 1.35; }
.rv-co2-tval .rv-co2-shipcost { display: block; font-size: .8rem; font-weight: 700; color: var(--rv-mid); text-align: right; }
.rv-co2-tval .rv-co2-shipcost.rv-free { color: var(--rv-accent); }
.rv-co2-trow { align-items: flex-start; }

/* Total a pagar: valor centrado verticalmente com o rótulo */
.rv-co2-totalcard { align-items: center; }
.rv-co2-totalcard-v { display: inline-flex; align-items: center; }
.rv-co2-totalcard-v .rv-fprice { align-items: center; }

/* Carrinho: título a toda a largura → resumo alinha com o 1.º produto (sem hack de margin) */
@media (min-width: 901px) { .woocommerce-cart .cart-collaterals { margin-top: 0 !important; } }
.woocommerce-cart .rv-cart-listhead { margin: 0 0 4px; }

/* Checkout: itens do resumo sem borda */
.rv-co2-item { border-bottom: 0 !important; padding: 12px 30px 12px 0 !important; }

/* Método de entrega: design mais limpo (sem anel; fundo verde-claro no selecionado) */
.rv-co2-shipping h3 { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1rem; margin: 0 0 10px; }
.rv-co2-shipping #shipping_method { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0; }
.rv-co2-shipping #shipping_method li { border: 1px solid var(--rv-rule); border-radius: 12px; padding: 0; background: #fff; transition: border-color var(--rv-t), background var(--rv-t); }
.rv-co2-shipping #shipping_method li label { display: flex; align-items: center; gap: 12px; margin: 0; padding: 14px 16px; cursor: pointer; font-weight: 600; color: var(--rv-ink, #243b4a); }
.rv-co2-shipping #shipping_method li input[type="radio"] { width: 20px; height: 20px; accent-color: var(--rv-accent); margin: 0; flex: 0 0 auto; }
.rv-co2-shipping #shipping_method li:has(input:checked) { border-color: var(--rv-accent); background: rgba(21, 87, 60, .06); box-shadow: none; }
.rv-co2-shipping #shipping_method .amount, .rv-co2-shipping #shipping_method .woocommerce-Price-amount { margin-left: auto; font-weight: 800; color: var(--rv-accent); }

/* A minha conta → painel de faturação (NIF + igual ao envio), fora do formulário */
.rv-billpref { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--rv-rule); }
.rv-billpref-title { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.2rem; margin: 0 0 14px; }
.rv-billpref-form { display: flex; flex-direction: column; gap: 14px; max-width: 540px; }
.rv-billpref-toggle { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--rv-primary); cursor: pointer; }
.rv-billpref-toggle input { width: 18px; height: 18px; accent-color: var(--rv-accent); flex: 0 0 auto; }
.rv-billpref-box { border: 1px solid var(--rv-rule); border-radius: 12px; padding: 16px; }
.rv-billpref-tag { display: inline-block; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--rv-mid); background: var(--rv-surface); border-radius: 12px; padding: 3px 10px; margin-bottom: 8px; }
.rv-billpref-addr { color: var(--rv-ink, #243b4a); line-height: 1.6; font-size: .92rem; }
.rv-billpref-locked { color: var(--rv-mid); background: var(--rv-surface); border: 1px dashed var(--rv-rule); border-radius: 10px; padding: 12px 14px; }
.rv-billpref-editlink { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: var(--rv-accent); font-weight: 700; font-size: .88rem; text-decoration: none; }
.rv-billpref-editlink svg, .rv-billpref-editlink .rv-ic { width: 15px; height: 15px; }
.rv-billpref-nif label { display: block; font-weight: 700; color: var(--rv-primary); font-size: .85rem; margin-bottom: 6px; }
.rv-billpref-nif input { width: 100%; padding: 11px 14px; border: 1px solid var(--rv-rule); border-radius: 10px; font-size: .95rem; background: #fff; }
.rv-billpref-nif input:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.rv-billpref-save { align-self: flex-start; background: var(--rv-primary); color: #fff; border: 0; border-radius: 12px; padding: 11px 26px; font-weight: 700; cursor: pointer; transition: background var(--rv-t); }
.rv-billpref-save:hover { background: var(--rv-accent); }

/* Painel de faturação agora vive DENTRO do card "Morada de faturação" */
.rv-addr-billing .rv-billpref-form { max-width: none; margin-top: 10px; gap: 12px; }
.rv-addr-billing .rv-billpref-box { padding: 12px 14px; }

/* Moradas: cabeçalho dos cards — título à esquerda, "Editar" à direita */
.woocommerce-MyAccount-content .woocommerce-Address-title { display: flex !important; align-items: center; justify-content: flex-start; gap: 10px; text-align: left !important; padding: 0 !important; margin: 0 0 14px !important; }
.woocommerce-MyAccount-content .woocommerce-Address-title h2 { text-align: left !important; margin: 0 !important; padding: 0 !important; text-indent: 0 !important; }
.woocommerce-MyAccount-content .woocommerce-Address-title .edit { margin-left: auto; white-space: nowrap; }
.woocommerce-MyAccount-content .woocommerce-Address address { margin: 0 !important; padding: 0 !important; text-indent: 0 !important; }
/* Faturação: mais respiração entre o título e o conteúdo do card */
.rv-addr-billing .woocommerce-Address-title { margin-bottom: 22px !important; }
.rv-addr-billing .rv-billpref-form { margin-top: 0; }

/* Seletor "É igual à morada de envio": espaçamento entre a caixa e o texto */
.rv-billpref-toggle { display: flex !important; align-items: center; gap: 10px; }
.rv-billpref-toggle input[type="checkbox"] { margin: 0 !important; flex: 0 0 auto; }
.rv-billpref-toggle span { line-height: 1.3; }

/* Método de entrega: opções maiores, centradas e com ícone */
.rv-co2-shipping #shipping_method li label { align-items: center !important; padding: 16px 18px !important; font-size: .98rem; gap: 14px !important; }
.rv-co2-shipping #shipping_method li input[type="radio"] { width: 22px; height: 22px; }
.rv-ship-ic { width: 40px; height: 40px; border-radius: 10px; background: var(--rv-surface); color: var(--rv-accent); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; transition: background var(--rv-t), color var(--rv-t); }
.rv-ship-ic svg { width: 22px; height: 22px; }
.rv-co2-shipping #shipping_method li:has(input:checked) .rv-ship-ic { background: var(--rv-accent); color: #fff; }

/* Método de entrega: juntar radio + ícone + texto (radio estava descolado) */
.rv-co2-shipping #shipping_method li { display: flex !important; align-items: center; gap: 12px; padding: 4px 18px 4px 16px !important; }
.rv-co2-shipping #shipping_method li input[type="radio"] { margin: 0 !important; flex: 0 0 auto; }
.rv-co2-shipping #shipping_method li label { flex: 1 1 auto; padding: 14px 0 !important; gap: 12px !important; }

/* Método de entrega — layout final: ícone à esquerda, texto ao centro, radio à direita */
.rv-co2-shipping #shipping_method li { display: flex !important; align-items: center; gap: 0; padding: 14px 18px !important; }
.rv-co2-shipping #shipping_method li label { order: 1; flex: 1 1 auto; display: flex !important; align-items: center; gap: 16px !important; padding: 0 !important; margin: 0; }
.rv-co2-shipping #shipping_method li input[type="radio"] { order: 2; margin: 0 0 0 16px !important; flex: 0 0 auto; }
.rv-co2-shipping #shipping_method .amount, .rv-co2-shipping #shipping_method .woocommerce-Price-amount { margin-left: auto; }
.rv-ship-ic { width: 42px; height: 42px; }

/* ===== Lote de correções (hover botões, comparação, conta) ===== */
/* Anti-cinza: nenhum botão fica cinza no hover/focus/active (default GeneratePress) */
.rv-cta-link:hover { color: #fff; }
.rv-btn--light:hover { background: #fff !important; color: var(--rv-primary) !important; }
button.button:hover, button.button:focus,
.woocommerce button.button:hover, .woocommerce button.button:focus,
.woocommerce input.button:hover, .woocommerce input.button:focus,
.wc-block-components-button:hover { background-color: var(--rv-accent) !important; color: #fff !important; }
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus { background: var(--rv-primary) !important; color: #fff !important; }

/* Comparação: X de fechar e remover com hover de marca (não cinza) */
.rv-cmp-close { transition: color var(--rv-t), background var(--rv-t); border-radius: 10px; width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; }
.rv-cmp-close:hover, .rv-cmp-close:focus { color: #c62828; background: rgba(198, 40, 40, .08); }
.rv-cmp-remove { transition: color var(--rv-t), background var(--rv-t); border-radius: 8px; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; }
.rv-cmp-remove:hover, .rv-cmp-remove:focus { color: #c62828; background: rgba(198, 40, 40, .08); }

/* Conta: título da secção alinhado verticalmente ao centro do ícone */
.rv-acc-head { align-items: center; }
.rv-acc-head > div { display: flex; flex-direction: column; justify-content: center; }

/* Checkout passo 1: com sessão iniciada, ocultar email (já vem da conta) + botão terminar sessão */
.rv-checkout2.rv-co2-logged [data-fields="1"] { display: none; }
.rv-co2-loggedactions { margin: 8px 0 0; }
.rv-co2-logout { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .82rem; color: var(--rv-accent); text-decoration: none; border: 1px solid var(--rv-rule); border-radius: 9px; padding: 6px 11px; transition: background var(--rv-t), border-color var(--rv-t); }
.rv-co2-logout:hover { background: var(--rv-surface); border-color: var(--rv-accent); }
.rv-co2-logout svg, .rv-co2-logout .rv-ic { width: 14px; height: 14px; }

/* Carrinho AJAX: feedback ao atualizar quantidade + saída suave ao remover */
.rv-cart-qty.is-loading { opacity: .55; pointer-events: none; }
.rv-cart-row { transition: opacity .2s ease, transform .2s ease; }
.rv-cart-row--out { opacity: 0; transform: translateY(-6px); }

/* ===== Login / Registo (A minha conta, sem sessão) ===== */
.rv-auth { display: grid; grid-template-columns: minmax(280px, .9fr) 1.5fr; gap: 24px; align-items: stretch; margin: 24px 0 40px; }













.rv-auth-form .form-row { margin: 0 0 16px; }
.rv-auth-form label { display: block; font-weight: 600; color: var(--rv-primary); font-size: .85rem; margin: 0 0 7px; }
.rv-auth-form label .required { color: var(--rv-accent); }
.rv-auth-form input[type="text"], .rv-auth-form input[type="email"], .rv-auth-form input[type="password"] { width: 100%; border: 1px solid var(--rv-rule); border-radius: 11px; padding: 13px 14px; font: inherit; color: var(--rv-primary); background: #fff; transition: border-color var(--rv-t), box-shadow var(--rv-t); }
.rv-auth-form input:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .14); }
.rv-auth-formfoot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin: 4px 0 18px; }
.rv-auth-remember { display: inline-flex !important; align-items: center; gap: 8px; margin: 0 !important; font-weight: 600; color: var(--rv-ink, #243b4a); font-size: .88rem; cursor: pointer; }
.rv-auth-remember input { margin: 0; width: 17px; height: 17px; accent-color: var(--rv-accent); }
.rv-auth-lost { font-weight: 700; font-size: .85rem; color: var(--rv-accent); text-decoration: none; }
.rv-auth-lost:hover { text-decoration: underline; }

.rv-auth-note { background: var(--rv-surface); border-radius: 11px; padding: 12px 14px; color: var(--rv-mid); font-size: .88rem; margin: 0 0 18px; }
@media (max-width: 900px) {


}

/* Remove a borda/box que o WooCommerce core aplica ao form de login/registo (evita card duplo) */
.woocommerce .rv-auth-form.login, .woocommerce .rv-auth-form.register,
.rv-auth-form.login, .rv-auth-form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important; }




/* Registo: texto de privacidade mais pequeno e discreto */
.rv-auth-register .woocommerce-privacy-policy-text { font-size: .78rem; line-height: 1.5; color: var(--rv-mid); margin: 0 0 16px; }
.rv-auth-register .woocommerce-privacy-policy-text a { color: var(--rv-accent); font-weight: 600; }


.rv-auth-backline { margin: 18px 0 0; }
.rv-auth-back { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .88rem; color: var(--rv-accent); text-decoration: none; }
.rv-auth-back svg, .rv-auth-back .rv-ic { width: 16px; height: 16px; transform: rotate(180deg); }
.rv-auth-back:hover { text-decoration: underline; }
/* Remove a borda/box que o WooCommerce core aplica a qualquer form de sessão */
.woocommerce .rv-auth-form, .rv-auth-form { border: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important; }

/* Resumo do checkout: garantir SEM borda/box nos itens nem nas imagens (sem dupla borda) */
.rv-co2-summarycard .rv-co2-item,
.rv-co2-summarycard .rv-co2-item-img,
.rv-co2-summarycard .rv-co2-item-img img { border: 0 !important; box-shadow: none !important; }
.rv-co2-summarycard .rv-co2-item-img { background: transparent !important; padding: 0 !important; }

/* ===== Cards de campanha da loja — redesign mais elaborado ===== */
.rv-campaign:not(.rv-campaign--banner) { padding: 0 !important; padding-bottom: 16px !important; overflow: hidden; }
.rv-campaign:not(.rv-campaign--banner)::before { content: ""; display: block; height: 6px; background: linear-gradient(90deg, var(--rv-primary), var(--rv-accent)); }
.rv-campaign:not(.rv-campaign--banner) > .rv-campaign-eyebrow { margin: 16px 16px 0; }
.rv-campaign-eyebrow { display: inline-flex !important; align-items: center; gap: 6px; }
.rv-campaign-eyebrow svg, .rv-campaign-eyebrow .rv-ic { width: 13px; height: 13px; }
.rv-campaign-title { margin: 10px 16px 4px !important; min-height: 2.4em; }
.rv-campaign-imgwrap { margin: 10px 16px 14px !important; height: 150px !important; background: radial-gradient(120% 100% at 50% 0%, #fff, var(--rv-surface)) !important; border: 1px solid var(--rv-rule); position: relative; }
.rv-campaign-imgwrap::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 10px; height: 14px; border-radius: 50%; background: rgba(3, 31, 55, .12); filter: blur(6px); z-index: 0; }
.rv-campaign-img { position: relative; z-index: 1; }
.rv-campaign-foot { margin: 0 16px !important; }
.rv-campaign-cta { background: var(--rv-accent); color: #fff !important; border-color: var(--rv-accent) !important; padding: 9px 16px !important; }
.rv-campaign-cta .rv-ic { color: #fff; }
.rv-campaign:not(.rv-campaign--banner):hover .rv-campaign-cta { background: var(--rv-primary) !important; border-color: var(--rv-primary) !important; }
.rv-campaign-price .rv-price-from, .rv-campaign-price .from { display: block; font-size: .6rem; text-transform: uppercase; letter-spacing: .08em; color: var(--rv-mid); font-weight: 800; }

/* Banner solar — mais elaborado */
.rv-campaign--banner { min-height: 232px !important; padding: 22px !important; }
.rv-campaign-banner-ic { position: absolute; top: 14px; right: 14px; width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, .16); color: #ffe9b8; backdrop-filter: blur(2px); }
.rv-campaign-banner-ic svg { width: 24px; height: 24px; }
.rv-campaign--banner .rv-campaign-eyebrow svg, .rv-campaign--banner .rv-campaign-eyebrow .rv-ic { width: 13px; height: 13px; }
.rv-campaign-bannersub { display: block; color: rgba(255, 255, 255, .88); font-size: .82rem; line-height: 1.45; margin: 2px 0 14px; max-width: 96%; text-shadow: 0 1px 6px rgba(0, 0, 0, .3); }

/* ===== Página de confirmação de encomenda (obrigado) ===== */
.rv-thankyou { max-width: 900px; margin: 24px auto 40px; }
.rv-ty-hero { text-align: center; background: linear-gradient(160deg, var(--rv-primary), var(--rv-accent)); color: #fff; border-radius: var(--rv-radius-lg); padding: 44px 28px 40px; position: relative; overflow: hidden; }
.rv-ty-hero::after { content: ""; position: absolute; width: 320px; height: 320px; right: -90px; top: -120px; border-radius: 50%; background: rgba(255, 255, 255, .07); }
.rv-ty-badge { position: relative; z-index: 1; width: 76px; height: 76px; margin: 0 auto 18px; border-radius: 50%; background: rgba(255, 255, 255, .16); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 8px rgba(255, 255, 255, .08); }
.rv-ty-badge svg { width: 38px; height: 38px; stroke-width: 2.5; color: #fff; }
.rv-ty-badge--fail { background: rgba(255, 255, 255, .18); }
.rv-ty-hero--fail { background: linear-gradient(160deg, #7c1d1d, #b3261e); }
.rv-ty-eyebrow { position: relative; z-index: 1; display: inline-block; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; background: rgba(255, 255, 255, .18); padding: 5px 12px; border-radius: 12px; }
.rv-ty-title { position: relative; z-index: 1; font-family: var(--rv-font-head); color: #fff; font-size: clamp(1.7rem, 3.4vw, 2.4rem); margin: 12px 0 8px; }
.rv-ty-sub { position: relative; z-index: 1; color: rgba(255, 255, 255, .92); max-width: 560px; margin: 0 auto; line-height: 1.6; }
.rv-ty-sub strong { color: #fff; }

.rv-ty-overview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: -26px 16px 0; position: relative; z-index: 2; }
.rv-ty-ov { background: #fff; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 16px 14px; text-align: center; box-shadow: var(--rv-shadow-sm); }
.rv-ty-ov-ic { width: 40px; height: 40px; margin: 0 auto 8px; border-radius: 11px; background: var(--rv-surface); color: var(--rv-accent); display: flex; align-items: center; justify-content: center; }
.rv-ty-ov-ic svg { width: 20px; height: 20px; }
.rv-ty-ov-lbl { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rv-mid); font-weight: 700; }
.rv-ty-ov-val { display: block; font-weight: 800; color: var(--rv-primary); margin-top: 3px; font-size: .95rem; word-break: break-word; }
.rv-ty-ov-val .amount, .rv-ty-ov-val .woocommerce-Price-amount { color: var(--rv-accent); }

.rv-ty-steps { margin: 28px 0 0; }
.rv-ty-steps-title { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.2rem; margin: 0 0 16px; text-align: center; }
.rv-ty-steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.rv-ty-step { background: #fff; border: 1px solid var(--rv-rule); border-radius: 14px; padding: 20px 18px; display: flex; flex-direction: column; gap: 6px; }
.rv-ty-step-ic { width: 42px; height: 42px; border-radius: 11px; background: rgba(21, 87, 60, .1); color: var(--rv-accent); display: flex; align-items: center; justify-content: center; margin-bottom: 4px; }
.rv-ty-step-ic svg { width: 22px; height: 22px; }
.rv-ty-step strong { color: var(--rv-primary); font-size: 1rem; }
.rv-ty-step span { color: var(--rv-mid); font-size: .88rem; line-height: 1.5; }
.rv-ty-note { display: flex; align-items: flex-start; gap: 8px; background: var(--rv-surface); border-radius: 12px; padding: 12px 14px; margin: 16px 0 0; font-size: .85rem; color: var(--rv-ink, #243b4a); }
.rv-ty-note svg, .rv-ty-note .rv-ic { width: 18px; height: 18px; color: var(--rv-accent); flex: 0 0 auto; margin-top: 1px; }
.rv-ty-note a { color: var(--rv-accent); font-weight: 700; }

.rv-ty-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 28px 0 8px; }
.rv-ty-hero .rv-ty-actions { margin-top: 22px; }

/* Detalhes da encomenda (hooks WC) — espaçamento e título */
.rv-thankyou .woocommerce-order-details, .rv-thankyou .woocommerce-customer-details { margin-top: 34px; }
.rv-thankyou .woocommerce-order-details__title, .rv-thankyou .woocommerce-column__title { font-family: var(--rv-font-head); color: var(--rv-primary); font-size: 1.15rem; }
.rv-thankyou .woocommerce-order-overview { display: none; }
@media (max-width: 760px) {
	.rv-ty-overview { grid-template-columns: repeat(2, 1fr); }
	.rv-ty-steps-grid { grid-template-columns: 1fr; }
}

/* ===== Destaques de características no produto (Wi-Fi, garantia, inverter…) ===== */
.rv-featbadges { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 6px; }
.rv-featbadge { display: inline-flex; align-items: center; gap: 7px; background: var(--rv-surface); border: 1px solid var(--rv-rule); border-radius: 12px; padding: 7px 13px; font-size: .82rem; font-weight: 700; color: var(--rv-primary); line-height: 1; }
.rv-featbadge svg, .rv-featbadge .rv-ic { width: 16px; height: 16px; color: var(--rv-accent); flex: 0 0 auto; }
.rv-featbadge--energy { padding: 5px 13px 5px 6px; gap: 8px; }
.rv-featbadge--energy .rv-energy { margin: 0; box-shadow: none; }
.rv-featbadge--energy .rv-energy-sm { font-size: .72rem; font-weight: 800; padding: 3px 7px; border-radius: 6px; color: #fff; }

/* Ícones de características no card da loja */
.rv-card-feats { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 4px; }
.rv-card-feat { width: 30px; height: 30px; border-radius: 8px; background: var(--rv-surface); border: 1px solid var(--rv-rule); display: inline-flex; align-items: center; justify-content: center; color: var(--rv-accent); flex: 0 0 auto; }
.rv-card-feat svg, .rv-card-feat .rv-ic { width: 16px; height: 16px; }

/* Fila de selos sobre a imagem do card: classe energética + ícones (estilo fabricante) */
.rv-card-imgrow { position: absolute; left: 22px; right: 22px; top: 176px; z-index: 4; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rv-card-imgrow .rv-card-energy { position: static !important; left: auto !important; top: auto !important; }
.rv-card-feat-img { width: 27px; height: 27px; border-radius: 7px; background: rgba(255, 255, 255, .96); border: 1px solid var(--rv-rule); box-shadow: 0 2px 8px rgba(3, 31, 55, .14); display: inline-flex; align-items: center; justify-content: center; color: var(--rv-accent); }
.rv-card-feat-img svg, .rv-card-feat-img .rv-ic { width: 15px; height: 15px; }

/* Chip de garantia com nº de anos — ícone + número lado a lado, centrados, peso normal */
.rv-card-feat-warr { width: auto !important; min-width: 0 !important; padding: 0 9px 0 7px !important; gap: 4px; flex-wrap: nowrap; }
.rv-card-feat-warr svg, .rv-card-feat-warr .rv-ic { width: 15px; height: 15px; flex: 0 0 auto; }
.rv-card-feat-warr b { font-size: .78rem; font-weight: 500; color: var(--rv-primary); line-height: 1; white-space: nowrap; }
/* Fila de selos junto ao fundo da imagem, com folga da borda */
.rv-card-imgrow { top: 186px; }

/* ============================================================
 * RESPONSIVIDADE — TELEMÓVEL (só dentro de media queries; PC intacto)
 * ============================================================ */
@media (max-width: 1024px) {
	/* Grelha de produtos: 2 colunas compactas em vez de 1 card gigante
	 * (NÃO inclui .rv-complete-grid — esse é um carrossel horizontal, ver regra própria) */
	.woocommerce ul.products:not(.rv-complete-grid), .woocommerce-page ul.products:not(.rv-complete-grid),
	.related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
	.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { padding: 10px 10px 14px !important; border-radius: 14px; }
	.woocommerce ul.products li.product a img { height: 172px !important; margin-bottom: 8px !important; padding: 8px !important; }
	/* Marca + selos reposicionados para a imagem maior */
	.rv-card-brand { top: 16px !important; left: 16px !important; }
	.rv-card-brand img, .rv-card-brand--txt { height: 26px !important; max-width: 92px !important; }
	.rv-card-imgrow { top: 150px !important; left: 12px; right: 12px; gap: 5px; }
	.rv-card-feat-img { width: 24px; height: 24px; border-radius: 7px; }
	.rv-card-feat-img svg, .rv-card-feat-img .rv-ic { width: 14px; height: 14px; }
	.rv-card-feat-warr { padding: 0 7px 0 5px !important; }
	.rv-card-feat-warr b { font-size: .72rem; }
	.rv-card-energy.rv-energy { font-size: .68rem; padding: 3px 6px; }
	/* Texto/preço do card legíveis no telemóvel */
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product h2 { font-size: .94rem !important; line-height: 1.3 !important; }
	.rv-card-actions { gap: 6px !important; }
	.woocommerce ul.products li.product .rv-card-actions .button.rv-card-buy { font-size: .76rem; padding: 11px 5px; }
}

/* Carrinho: forçar empilhamento real no tablet/telemóvel (o grid-column:2 do resumo impedia) */
@media (max-width: 900px) {
	.woocommerce-cart .woocommerce { grid-template-columns: 1fr !important; }
	.woocommerce-cart form.woocommerce-cart-form,
	.woocommerce-cart .cart-collaterals { grid-column: 1 / -1 !important; position: static !important; }
}

/* Hero no telemóvel: TODOS os banners com o mesmo tamanho (cover), mesmo que corte
 * o que está desenhado no fundo — uniforme em vez de alturas diferentes. */
@media (max-width: 680px) {
	.rv-hero-carousel { aspect-ratio: 16 / 9 !important; height: auto !important; }
	.rv-slide, .rv-slide--banner, .rv-slide--photo { min-height: 0 !important; height: 100% !important; }
	.rv-banner-link { display: block !important; height: 100% !important; }
	.rv-banner-img, .rv-slide--banner .rv-banner-img, .rv-slide--photo .rv-banner-img { object-fit: cover !important; height: 100% !important; width: 100% !important; max-height: none !important; }
}

/* ============================================================
 * RESPONSIVIDADE v2 — correções globais de telemóvel (PC intacto)
 * ============================================================ */
/* 0) Sem scroll horizontal no telemóvel — clip (não 'hidden', que quebra position:sticky) */
@media (max-width: 1024px) {
	html, body { overflow-x: clip; max-width: 100%; }
}

/* 1) MEGA MENU: no telemóvel o menu é uma lista vertical simples — os painéis
 *    mega (dropdowns de PC) ficavam no DOM e empurravam a página para 588px. */
@media (max-width: 1024px) {
	.main-navigation .main-nav ul li.rv-has-mega .rv-megapanel { display: none !important; }
	.main-navigation .main-nav ul li.rv-has-mega { position: relative; }
	/* itens do menu mobile com bom espaçamento e separadores */
	.main-navigation.toggled .main-nav > ul > li > a,
	.main-navigation .main-nav .menu-toggle ~ ul li a { padding-top: 14px; padding-bottom: 14px; }
}

/* 2) HEADER mais compacto no telemóvel */
@media (max-width: 1024px) {
	.rv-topbar { font-size: .8rem; }
	.rv-topbar-inner { padding-top: 6px; padding-bottom: 6px; }
	.rv-utility { gap: 14px; }
	.site-header .inside-header { gap: 14px; padding-top: 10px; padding-bottom: 10px; }
	.site-logo img, .header-image, .site-header .header-image { max-height: 42px; }
	.rv-header-top { gap: 10px; }
	.rv-search-input { padding: 11px 14px; font-size: 16px !important; }
}

/* 3) FOOTER organizado: 2 colunas, marca e contacto a toda a largura */
@media (max-width: 760px) {
	.rv-footer { padding: 46px 0 22px; }
	.rv-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 22px; }
	.rv-footer-col.rv-footer-brand,
	.rv-footer-col.rv-footer-contact { grid-column: 1 / -1; }
	.rv-newsletter { max-width: 360px; }
	.rv-footer-funding { padding: 8px 14px; margin-top: 28px; }
	.rv-footer-funding img { max-height: 30px; }
	.rv-footer-bottom-row { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 28px; padding-top: 22px; }
	.rv-footer h4 { margin-bottom: 14px; }
	.rv-footer ul li { margin-bottom: 9px; }
}

/* Cards 2-col: manter SEMPRE o formato comparar + "Comprar agora" lado a lado
 * (formato consistente em todas as larguras, igual ao print de referência) */
@media (max-width: 1024px) {
	.woocommerce ul.products li.product .rv-card-actions { flex-wrap: nowrap; gap: 5px; align-items: stretch; }
	.woocommerce ul.products li.product .rv-card-actions .rv-cardbtn { display: flex; flex: 0 0 36px; width: 36px; }
	.woocommerce ul.products li.product .rv-card-actions .rv-cardbtn svg,
	.woocommerce ul.products li.product .rv-card-actions .rv-cardbtn .rv-ic { width: 19px !important; height: 19px !important; min-width: 19px !important; }
	.woocommerce ul.products li.product .rv-card-actions .button.rv-card-buy { flex: 1 1 auto; min-width: 0; font-size: .76rem; padding: 11px 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* Fila de selos no card mobile: uma só linha (não pode quebrar para cima do título) */
@media (max-width: 1024px) {
	/* selos numa só linha, ícones grandes mas a caber (energia + garantia compactos)
	 * left/right alinhados por dentro da imagem (não em cima da borda) */
	.rv-card-imgrow { flex-wrap: nowrap !important; overflow: hidden; gap: 3px !important; left: 16px !important; right: 16px !important; top: 146px !important; }
	.rv-card-feat-img { width: 28px !important; height: 28px !important; }
	.rv-card-feat-img svg, .rv-card-feat-img .rv-ic { width: 16px !important; height: 16px !important; }
	.rv-card-feat-warr { width: auto !important; padding: 0 5px 0 4px !important; gap: 2px !important; }
	.rv-card-feat-warr svg, .rv-card-feat-warr .rv-ic { width: 15px !important; height: 15px !important; }
	.rv-card-feat-warr b { font-size: .66rem; }
	.rv-card-imgrow .rv-card-energy.rv-energy { font-size: .62rem !important; padding: 2px 5px !important; }
}

/* Páginas de texto (legais, artigos): respiro lateral confortável no telemóvel */
@media (max-width: 600px) {
	.page-template-default .entry-content,
	.single-post .entry-content,
	.page-id-223 .entry-content, .page-id-221 .entry-content,
	.page-id-222 .entry-content, .page-id-224 .entry-content { padding-left: 18px; padding-right: 18px; }
}

/* Botão "Adicionar" em carregamento: spinner CENTRADO, mantém verde de marca (não cinza) */
@keyframes rv-spin { to { transform: rotate(360deg); } }
.single-product .single_add_to_cart_button.loading,
.single-product .single_add_to_cart_button.loading:hover {
	background: var(--rv-accent) !important; color: transparent !important; opacity: 1 !important;
	position: relative; cursor: progress;
}
.single-product .single_add_to_cart_button.loading > *,
.single-product .single_add_to_cart_button.loading svg { opacity: 0 !important; }
.single-product .single_add_to_cart_button.loading::after {
	content: "" !important; position: absolute !important; left: 50% !important; top: 50% !important;
	width: 20px; height: 20px; margin: -10px 0 0 -10px; box-sizing: border-box;
	border: 2px solid rgba(255, 255, 255, .4); border-top-color: #fff; border-radius: 50%;
	background: none !important; animation: rv-spin .7s linear infinite; opacity: 1 !important;
}

/* ============================================================
 * MENU MOBILE — gaveta deslizante + acordeão de subcategorias (estilo Worten)
 * ============================================================ */
@media (max-width: 1024px) {
	/* fundo escuro */
	.rv-nav-backdrop { position: fixed; inset: 0; background: rgba(3, 31, 55, .5); z-index: 9998; opacity: 0; visibility: hidden; transition: opacity .25s ease; }
	body.rv-nav-open .rv-nav-backdrop { opacity: 1; visibility: visible; }
	body.rv-nav-open { overflow: hidden; }

	/* gaveta — abre da ESQUERDA (o ☰ está à esquerda) */
	.main-navigation.toggled { position: fixed !important; top: 0; left: 0; right: auto; bottom: 0; width: min(86vw, 360px); background: #fff; z-index: 9999; box-shadow: 14px 0 50px rgba(3, 31, 55, .3); overflow-y: auto; -webkit-overflow-scrolling: touch; animation: rv-drawer-in .3s cubic-bezier(.22, .61, .36, 1); }
	/* garantir que TUDO dentro da gaveta ocupa a largura toda do painel (sem folgas brancas) */
	.main-navigation.toggled .inside-navigation,
	.main-navigation.toggled .main-nav,
	.main-navigation.toggled .main-nav > ul,
	.main-navigation.toggled .main-nav > ul > li { width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box; float: none !important; }
	.main-navigation.toggled .main-nav > ul > li { border-bottom: 1px solid var(--rv-rule); }
	@keyframes rv-drawer-in { from { transform: translateX(-100%); } to { transform: none; } }
	.main-navigation.toggled .inside-navigation { max-width: none; padding: 0; }
	/* cabeçalho da gaveta: título "Menu" à esquerda, ✕ à direita, sobre fundo de marca */
	.main-navigation.toggled .menu-toggle { display: flex !important; flex-direction: row-reverse; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 60px; padding: 0 22px; margin: 0; border: 0; color: #fff; font-weight: 800; font-size: 1.15rem; font-family: var(--rv-font-head); background: var(--rv-primary); }
	.main-navigation.toggled .menu-toggle .gp-icon, .main-navigation.toggled .menu-toggle svg { color: #fff; }
	.main-navigation.toggled .main-nav > ul { display: block; padding: 0; }
	.main-navigation.toggled .main-nav > ul > li { border-bottom: 1px solid var(--rv-rule); position: relative; margin: 0; }
	.main-navigation.toggled .main-nav > ul > li:last-child { border-bottom: 0; }
	.main-navigation.toggled .main-nav > ul > li > a { display: block; padding: 16px 22px; font-size: 1.02rem; font-weight: 600; line-height: 1.3; color: var(--rv-primary); transition: background .15s ease, color .15s ease; }
	/* destaque a toda a largura da linha (mesmo por baixo do chevron), em verde da marca */
	.main-navigation.toggled .main-nav > ul > li:hover > a,
	.main-navigation.toggled .main-nav > ul > li > a:hover,
	.main-navigation.toggled .main-nav > ul > li > a:focus,
	.main-navigation.toggled .main-nav > ul > li > a:active { background: rgba(21, 87, 60, .1) !important; color: var(--rv-accent) !important; }
	.main-navigation.toggled .main-nav > ul > li.current-menu-item > a { color: var(--rv-accent); box-shadow: inset 3px 0 0 var(--rv-accent); }
	.main-navigation.toggled .rv-has-mega > a { padding-right: 58px; }

	/* chevron do acordeão — desenhado em CSS (sem depender de SVG), sempre visível */
	.rv-mega-acc-toggle, .rv-mega-acc-toggle:hover, .rv-mega-acc-toggle:focus, .rv-mega-acc-toggle:active { position: absolute; top: 0; right: 0; width: 56px; height: 54px; display: flex; align-items: center; justify-content: center; background: transparent !important; box-shadow: none !important; outline: none; border: 0; border-left: 1px solid var(--rv-rule); cursor: pointer; }
	.rv-mega-acc-toggle svg { display: none; }
	.rv-mega-acc-toggle::after { content: ""; width: 8px; height: 8px; border-right: 2.5px solid var(--rv-mid); border-bottom: 2.5px solid var(--rv-mid); transform: translateX(-2px) rotate(-45deg); transition: transform .25s ease, border-color .15s ease; }
	.rv-mega-acc-toggle:hover::after { border-color: var(--rv-accent); }
	/* esconder o toggle nativo do GeneratePress (usamos o nosso chevron) */
	.main-navigation.toggled .dropdown-menu-toggle { display: none !important; }
	.rv-has-mega.rv-mega-open > .rv-mega-acc-toggle::after { transform: rotate(45deg); border-color: var(--rv-accent); }

	/* painel mega → corpo de acordeão (só os grupos de nível 2) */
	.main-navigation.toggled .main-nav ul li.rv-has-mega.rv-mega-open .rv-megapanel {
		display: block !important; position: static !important; opacity: 1 !important; visibility: visible !important;
		transform: none !important; pointer-events: auto !important; box-shadow: none; border: 0; border-radius: 0;
		padding: 4px 0 10px; background: var(--rv-surface);
	}
	.main-navigation.toggled .rv-megapanel-inner { display: block !important; min-height: 0 !important; gap: 0 !important; padding: 0; }
	.main-navigation.toggled .rv-mega-rail { display: block !important; flex: none !important; border: 0 !important; padding: 0 !important; }
	.main-navigation.toggled .rv-mega-g-link { padding: 11px 22px !important; border: 0 !important; font-size: .94rem; border-radius: 0; }
	.main-navigation.toggled .rv-mega-g-ic { width: 28px; height: 28px; }
	.main-navigation.toggled .rv-mega-g-ic .rv-ic { width: 15px; height: 15px; }
	.main-navigation.toggled .rv-mega-chev { display: none; }
	/* esconder nível 3 (sub-panel absoluto) e cartão de destaque no acordeão mobile */
	.main-navigation.toggled .rv-mega-sub, .main-navigation.toggled .rv-mega-feature { display: none !important; }
}

/* Chevron do acordeão só existe no telemóvel */
@media (min-width: 1025px) { .rv-mega-acc-toggle { display: none !important; } }

/* ============================================================
 * FILTROS MOBILE — painel deslizante (sheet) estilo Worten
 * ============================================================ */
@media (max-width: 1024px) {
	.rv-filters-backdrop { position: fixed; inset: 0; background: rgba(3, 31, 55, .5); z-index: 99999; opacity: 0; visibility: hidden; transition: opacity .25s ease; }
	body.rv-filters-open .rv-filters-backdrop { opacity: 1; visibility: visible; }
	body.rv-filters-open { overflow: hidden; }
	.rv-filters-inner.rv-filters-sheet {
		display: block !important; position: fixed; top: 0; left: 0; bottom: 0; width: min(88vw, 360px);
		background: #fff; z-index: 100000; box-shadow: 12px 0 44px rgba(0, 0, 0, .25);
		overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 0 78px; margin: 0;
		animation: rv-filters-in .26s ease;
	}
	@keyframes rv-filters-in { from { transform: translateX(-100%); } to { transform: none; } }
	.rv-filters-sheet .rv-filters-panel { border: 0; border-radius: 0; box-shadow: none; margin: 0; }
	.rv-filters-sheet .rv-filters-head { position: sticky; top: 0; background: #fff; z-index: 3; font-size: 1.1rem; padding: 16px 18px; }
	.rv-filters-close { background: none; border: 0; font-size: 1.7rem; line-height: 1; color: var(--rv-mid); cursor: pointer; padding: 0 4px; margin-left: auto; }
	.rv-filters-sheet .rv-filters-apply { position: fixed; left: 0; bottom: 0; width: min(88vw, 360px); border-radius: 0 !important; justify-content: center; padding: 16px !important; z-index: 100001; box-shadow: 0 -6px 20px rgba(0, 0, 0, .12); }
}

/* Botões injetados (fechar / ver produtos) só existem dentro do sheet mobile, nunca no PC */
.rv-filters-close, .rv-filters-apply { display: none; }
.rv-filters-sheet .rv-filters-close { display: inline-flex; }
.rv-filters-sheet .rv-filters-apply { display: flex; }

/* Filtros sheet: cantos direitos arredondados (card), fundo mais escuro, promoção ativa */
@media (max-width: 1024px) {
	/* sheet de filtros sem cantos arredondados (pedido do cliente) */
	.rv-filters-inner.rv-filters-sheet { border-radius: 0; }
	.rv-filters-sheet .rv-filters-head { border-top-right-radius: 0; }
	.rv-filters-sheet .rv-filters-apply { border-radius: 0 !important; }
	.rv-filters-backdrop { background: rgba(3, 31, 55, .62); }
}
/* "Só promoções": estado selecionado imediato (sem esperar pelo recarregamento) */
.rv-promo-toggle:has(input:checked) { background: var(--rv-primary); border-color: var(--rv-primary); }
.rv-promo-toggle:has(input:checked) .rv-promo-toggle-txt { color: #fff; }
.rv-promo-toggle:has(input:checked) .rv-promo-toggle-n { background: rgba(255, 255, 255, .22); color: #fff; border-color: transparent; }

/* ============================================================
 * Barra mobile "Ordenar | Filtrar" + sheet de ordenação (estilo Worten)
 * ============================================================ */
.rv-mobtools { display: none; }
@media (max-width: 1024px) {
	.rv-mobtools { display: flex; margin: 0 0 16px; border: 1px solid var(--rv-rule); border-radius: 12px; overflow: hidden; background: #fff; box-shadow: var(--rv-shadow-sm); }
	.rv-mobtool { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 10px; background: #fff; border: 0; font-weight: 700; font-size: .92rem; color: var(--rv-primary); cursor: pointer; }
	.rv-mobtool + .rv-mobtool { border-left: 1px solid var(--rv-rule); }
	.rv-mobtool svg { width: 18px; height: 18px; color: var(--rv-accent); }
	.rv-mobtool:active { background: var(--rv-surface); }
	/* esconde o botão antigo de filtros e a ordenação WC (substituídos pela barra) */
	.rv-filters-toggle { display: none !important; }
	.rv-shop-main .woocommerce-ordering { display: none !important; }
	.rv-shop-main .woocommerce-result-count { font-size: .82rem; color: var(--rv-mid); margin: 0 0 12px; }

	/* sheet de ordenação (sobe de baixo) */
	.rv-sortsheet { position: fixed; inset: 0; z-index: 100000; display: none; }
	.rv-sortsheet.is-open { display: block; }
	.rv-sortsheet::before { content: ""; position: absolute; inset: 0; background: rgba(3, 31, 55, .55); }
	.rv-sortsheet-panel { position: absolute; left: 0; right: 0; bottom: 0; background: #fff; border-radius: 14px 18px 0 0; padding: 4px 0 14px; max-height: 80vh; overflow-y: auto; animation: rv-sheet-up .26s ease; }
	@keyframes rv-sheet-up { from { transform: translateY(100%); } to { transform: none; } }
	.rv-sortsheet-head { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; font-family: var(--rv-font-head); font-weight: 700; color: var(--rv-primary); border-bottom: 1px solid var(--rv-rule); }
	.rv-sortsheet-close { background: none; border: 0; font-size: 1.7rem; line-height: 1; color: var(--rv-mid); cursor: pointer; }
	.rv-sortopt { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 15px 20px; font-size: .95rem; color: var(--rv-primary); cursor: pointer; border-bottom: 1px solid var(--rv-surface); transition: background var(--rv-t), color var(--rv-t); }
	.rv-sortopt.is-sel { color: var(--rv-accent); font-weight: 700; }
}

/* (A) Cards de campanha dentro do sheet de filtros: espaçamento lateral */
.rv-filters-sheet .rv-filter-promo,
.rv-filters-sheet button.rv-filter-promo,
.rv-filters-sheet .rv-campaign,
.rv-filters-sheet .rv-campaign--banner { margin-left: 16px !important; margin-right: 16px !important; width: auto !important; box-sizing: border-box !important; }

/* (C) Barra Ordenar | Filtrar: fundo verde, texto/ícones brancos (estilo Worten) */
@media (max-width: 1024px) {
	.rv-mobtools { background: var(--rv-accent); border: 0; border-radius: 0; box-shadow: 0 4px 12px rgba(3, 31, 55, .14); margin: 0; position: static; }
	.rv-mobtool { background: var(--rv-accent); color: #fff; }
	.rv-mobtool svg { color: #fff; }
	.rv-mobtool + .rv-mobtool { border-left: 1px solid rgba(255, 255, 255, .3); }
	.rv-mobtool:hover, .rv-mobtool:focus, .rv-mobtool:active { background: var(--rv-primary) !important; color: #fff !important; }
	.rv-mobtool:hover svg, .rv-mobtool:focus svg { color: #fff !important; }
	/* (B) X de fechar nos sheets: hover de marca, arredondado, sem cinza do tema */
	.rv-filters-close, .rv-sortsheet-close { border-radius: 9px; transition: background var(--rv-t), color var(--rv-t); }
	.rv-filters-close:hover, .rv-filters-close:focus,
	.rv-sortsheet-close:hover, .rv-sortsheet-close:focus { background: var(--rv-surface) !important; color: var(--rv-accent) !important; }
	.rv-sortopt:hover, .rv-sortopt:focus { background: rgba(21, 87, 60, .10) !important; color: var(--rv-accent) !important; }
}

/* ============================================================
 * (D) HEADER MOBILE estilo Worten — ☰ esquerda, logo+conta+carrinho direita,
 * pesquisa em baixo (colapsa ao fazer scroll), barra Ordenar|Filtrar colada.
 * ============================================================ */
@media (max-width: 1024px) {
	/* esconder a navegação horizontal inteira até 1024px (o GeneratePress mostrava-a
	 * a partir de 769px e os 7 itens quebravam). Só aparece como gaveta (.toggled). */
	.main-navigation:not(.toggled) { display: none !important; }
	/* botão "Menu" GP por baixo desaparece (fechado); o ☰ vai para o topo */
	.main-navigation:not(.toggled) .menu-toggle { display: none !important; }

	/* header fixo no topo */
	.site-header { position: sticky; top: 0; z-index: 1000; box-shadow: 0 2px 10px rgba(3, 31, 55, .08); }
	.site-header .inside-header { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 8px 14px; }
	.rv-burger { order: 0; background: none; border: 0; color: var(--rv-primary); padding: 6px; display: inline-flex; align-items: center; cursor: pointer; border-radius: 9px; transition: background var(--rv-t); }
	.rv-burger:hover, .rv-burger:focus { background: var(--rv-surface); }
	.rv-burger svg { width: 26px; height: 26px; }
	.site-header .site-logo { order: 1; flex: 1 1 auto; margin: 0; }
	.site-logo img, .site-header .header-image { max-height: 38px; }
	.rv-header-actions { order: 2; margin-left: auto; gap: 14px; }
	.rv-header-top { order: 3; flex-basis: 100%; gap: 0; max-height: 64px; opacity: 1; overflow: visible; transition: max-height .26s ease, opacity .2s ease, margin .26s ease; }
	/* ao descer, a pesquisa colapsa (estilo Worten) — overflow:hidden só aqui, para clipar */
	body.rv-hdr-compact .rv-header-top { max-height: 0; opacity: 0; margin: 0; overflow: hidden; }
	/* sugestões de pesquisa por cima da barra Ordenar|Filtrar e do conteúdo */
	.rv-search-suggest { z-index: 1002; }

	/* barra Ordenar|Filtrar faz parte do header (flui dentro do header sticky) */
	.rv-mobtools { position: static; margin: 0; }
}

/* Header mobile: forçar ☰ + logo + ações numa só linha, pesquisa em baixo */
@media (max-width: 1024px) {
	.site-header .inside-header { justify-content: flex-start !important; align-items: center !important; gap: 6px 10px !important; }
	.site-header .site-logo { order: 1 !important; flex: 0 1 auto !important; max-width: 60% !important; margin: 0 !important; }
	.site-header .site-logo a, .site-header .site-logo img { margin: 0 !important; }
	.rv-header-actions { order: 2 !important; flex: 0 0 auto !important; margin-left: auto !important; }
	.rv-header-top { order: 3 !important; flex: 1 1 100% !important; }
	.rv-search-wrap { width: 100%; }
}

/* Header mobile: compactar para caberem ☰ + logo + ações numa só linha */
@media (max-width: 1024px) {
	.site-header .inside-header { gap: 4px 8px !important; padding: 8px 12px !important; flex-wrap: wrap !important; }
	.site-header .site-logo { max-width: 46% !important; }
	.site-logo img, .site-header .header-image { max-height: 30px !important; }
	.rv-header-actions { gap: 12px !important; }
	.rv-header-actions .rv-ic, .rv-h-account .rv-ic, .rv-h-cart .rv-ic { width: 22px !important; height: 22px !important; }
	.rv-h-cart .rv-ic { width: 24px !important; height: 24px !important; }
	.rv-burger { padding: 4px !important; }
	.rv-burger svg { width: 24px; height: 24px; }
}

/* Header mobile: alvo correto é .site-branding-container (item flex real) */
@media (max-width: 1024px) {
	.site-header .inside-header { display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: flex-start !important; gap: 4px 8px !important; }
	.site-header .site-branding-container { order: 1 !important; flex: 0 1 auto !important; min-width: 0; display: flex !important; align-items: center; margin: 0 !important; max-width: 52%; }
	.site-header .site-branding { display: none !important; } /* título de texto duplicado fora */
	.site-header .site-logo { margin: 0 !important; }
	.site-header .site-logo img, .site-header .header-image { max-height: 30px !important; width: auto !important; }
	.rv-burger { order: 0 !important; flex: 0 0 auto !important; }
	.rv-header-actions { order: 2 !important; flex: 0 0 auto !important; margin-left: auto !important; }
	.rv-header-top { order: 3 !important; flex: 1 1 100% !important; }
}

/* Header mobile: GRID com áreas explícitas (robusto, independente da ordem/larguras) */
@media (max-width: 1024px) {
	.site-header .inside-header {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr) auto !important;
		grid-template-areas: "burger logo actions" "search search search" !important;
		align-items: center !important; gap: 14px 10px !important;
		padding-top: 12px !important; padding-bottom: 14px !important;
	}
	.rv-burger { grid-area: burger; order: 0 !important; }
	.site-header .site-branding-container { grid-area: logo !important; max-width: none !important; justify-self: start; margin: 0 !important; }
	.rv-header-actions { grid-area: actions !important; margin: 0 !important; justify-self: end; }
	.rv-header-top { grid-area: search !important; }
	/* a pesquisa ocupa SEMPRE toda a largura no header mobile/tablet (tinha cap de 600px) */
	.site-header .rv-header-top, .site-header .rv-header-top .rv-search-wrap,
	.site-header .rv-header-top .rv-search { max-width: none !important; width: 100% !important; }
	/* a pesquisa colapsada não deve deixar o espaço do gap/padding */
	body.rv-hdr-compact .site-header .inside-header { padding-bottom: 8px !important; gap: 8px 10px !important; }
}

/* Burger só no telemóvel (segurança caso o JS corra noutra largura) */
@media (min-width: 1025px) { .rv-burger { display: none !important; } }

/* Desktop estreito (1025–1199): compactar o menu para caber numa só linha
 * (os 7 itens com rótulos longos quebravam para 2 linhas). */
@media (min-width: 1025px) and (max-width: 1199px) {
	.main-navigation .main-nav ul li > a { padding-left: 10px !important; padding-right: 10px !important; font-size: .9rem; line-height: 48px; }
}

/* (tablet 769–1024 agora usa a UI mobile: header com ☰, filtros em sheet, 2 colunas) */

/* Logo no telemóvel: maior e bem legível (estava demasiado pequeno a 30px) */
@media (max-width: 1024px) {
	.site-header .site-logo img, .site-header .header-image,
	.site-header img.is-logo-image, .site-header .site-branding-container img { max-height: 40px !important; height: auto !important; width: auto !important; max-width: 58vw !important; }
}

/* ===== Polish ronda 4: fotos suspensas, mobile, brandtech, encomenda ===== */
/* Fotos de produto SEM duplicação de cartões: fundo transparente + sombra por
   baixo (produto "suspenso") — loja, relacionados, carrinho, resumo, comparador */
.woocommerce ul.products li.product a img { background: transparent !important; border: 0 !important; padding: 4px 6px 16px !important; border-radius: 0 !important; filter: drop-shadow(0 16px 12px rgba(3, 31, 55, .16)); }
.woocommerce-cart .rv-cart-row img { background: transparent !important; border: 0 !important; padding: 0 0 10px !important; border-radius: 0 !important; filter: drop-shadow(0 14px 10px rgba(3, 31, 55, .16)); }
.rv-co2-item-img { background: transparent; border: 0; padding: 2px; }
.rv-co2-item-img img { filter: drop-shadow(0 8px 7px rgba(3, 31, 55, .16)); }
.rv-cmp-imgwrap { background: transparent !important; }
.rv-cmp-imgwrap img { filter: drop-shadow(0 12px 10px rgba(3, 31, 55, .16)); }
.rv-buybar-thumb { background: transparent !important; border: 0 !important; padding: 0 !important; filter: drop-shadow(0 6px 6px rgba(3, 31, 55, .2)); }
/* Mini-cart (drawer) e sugestões de pesquisa: mesmas fotos flutuantes */
.rv-drawer-item-thumb img, .rv-search-suggest img { background: transparent; border: 0; }

/* Checkout: título "A sua encomenda" sem o traço de acento */
.rv-checkout2 .rv-co2-summarycard .rv-co2-title { padding-bottom: 4px !important; }
.rv-checkout2 .rv-co2-summarycard .rv-co2-title::after { display: none; }
/* Resumo da encomenda: itens mais arrumados */
.rv-co2-item { padding: 12px 34px 12px 10px; }
.rv-co2-item-img { width: 74px; height: 74px; }
.rv-co2-item-name { font-size: .88rem; }
.rv-co2-item-meta { font-size: .74rem; }

/* Secção "Tecnologia {Marca}" mais compacta e profissional */
.rv-brandtech { margin: 40px 0 36px; padding: 24px 26px; }
.rv-brandtech-head { gap: 16px; margin-bottom: 16px; }
.rv-brandtech .rv-brandtech-logo { height: 32px !important; max-width: 130px !important; }
.rv-brandtech-head-txt h2 { font-size: clamp(1.15rem, 1rem + .8vw, 1.45rem); }
.rv-brandtech-head-txt p { font-size: .88rem; }
.rv-brandtech-banner, .rv-brandtech-video { max-height: 280px; object-fit: cover; margin-bottom: 18px; }
.rv-brandtech-grid { grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 12px; }
.rv-brandtech-card { padding: 14px 15px; }
.rv-brandtech-ic { width: 34px; height: 34px; border-radius: 9px; margin-bottom: 9px; }
.rv-brandtech-ic .rv-ic { width: 18px; height: 18px; }
.rv-brandtech-card strong { font-size: .9rem; margin-bottom: 3px; }
.rv-brandtech-card p { font-size: .8rem; line-height: 1.45; }
.rv-brandtech-actions { margin-top: 16px; }

/* Mobile: hero com margem lateral, botão dos cards sem colar, topo do produto */
@media (max-width: 680px) {
	.rv-hero-carousel { margin: 10px 12px 0 !important; border-radius: 14px !important; }
}
@media (max-width: 600px) {
	.woocommerce ul.products li.product .button { padding: 8px 10px !important; font-size: .78rem !important; }
	.woocommerce ul.products li.product .rv-card-actions { gap: 6px; }
	.woocommerce ul.products li.product .rv-card-actions .button .rv-ic { display: none; }
	.woocommerce ul.products li.product .rv-cardbtn { width: 38px; flex-basis: 38px; }
	.woocommerce ul.products li.product a img { padding: 2px 4px 12px !important; height: 168px !important; }
	.single-product .inside-article { padding-top: 6px !important; }
	.single-product .woocommerce-product-gallery { padding: 12px; }
	.single-product div.product { gap: 16px !important; }
}

/* ===== Ronda 5: galeria limpa, artigo v2, checkout itens, campanhas ===== */
/* Produto individual: galeria SEM placa — só a foto, a flutuar */
.single-product .woocommerce-product-gallery { background: transparent; border: 0; padding: 0; }
.single-product .woocommerce-product-gallery__image img { filter: drop-shadow(0 26px 22px rgba(3, 31, 55, .16)); }
/* Lightbox: X perfeitamente centrado */
.rv-lb-close { display: flex; align-items: center; justify-content: center; line-height: 1; padding: 0; }

/* Checkout: itens do resumo sem caixas — linhas limpas com separador */
.rv-co2-item { background: transparent; border: 0; border-radius: 0; border-bottom: 1px solid #eef2f6; padding: 12px 30px 12px 0; }
.rv-co2-item:last-child { border-bottom: 0; }
.rv-co2-item-img { width: 52px; height: 52px; padding: 0; }
.rv-co2-item-img img { filter: drop-shadow(0 6px 5px rgba(3, 31, 55, .14)); }
.rv-co2-item-name { font-size: .84rem; line-height: 1.25; }
.rv-co2-item-meta { font-size: .72rem; }
.rv-co2-itemshead { font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--rv-accent); }

/* ===== Artigo (notícia) v2 ===== */
.rv-arth { position: relative; background: linear-gradient(140deg, #0a3a64, #15573c); background-size: cover; background-position: center; padding: 84px 0 64px; }
.rv-arth-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 31, 55, .55), rgba(3, 31, 55, .78)); }
.rv-arth-inner { position: relative; text-align: center; max-width: 860px; }
.rv-arth-meta { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.rv-arth-cat { background: var(--rv-accent); color: #fff; font-weight: 700; font-size: .78rem; padding: 6px 14px; border-radius: 10px; }
.rv-arth-date { display: inline-flex; align-items: center; gap: 6px; color: rgba(255, 255, 255, .85); font-size: .82rem; font-weight: 600; }
.rv-arth-date .rv-ic { width: 15px; height: 15px; }
.rv-arth h1 { color: #fff; font-size: clamp(1.6rem, 1.1rem + 2vw, 2.5rem); line-height: 1.15; margin: 0 0 14px; }
.rv-arth-sub { color: rgba(255, 255, 255, .88); font-size: 1.02rem; line-height: 1.6; margin: 0 auto 16px; max-width: 720px; }
.rv-arth-author { display: inline-flex; align-items: center; gap: 7px; color: rgba(255, 255, 255, .8); font-size: .85rem; font-weight: 600; }
.rv-arth-author .rv-ic { width: 16px; height: 16px; }
.rv-art-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; padding-top: 34px; padding-bottom: 50px; align-items: start; }
.rv-art-main { min-width: 0; }
.rv-art-side { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 90px; }
.rv-art-card { background: #fff; border: 1px solid #e4e9ee; border-radius: 14px; padding: 20px; box-shadow: 0 14px 36px -28px rgba(3, 31, 55, .35); }
.rv-art-card-eyebrow { display: block; color: var(--rv-accent); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 14px; }
.rv-art-minis { display: flex; flex-direction: column; gap: 14px; }
.rv-art-mini { display: flex; gap: 12px; align-items: flex-start; text-decoration: none; }
.rv-art-mini img { width: 62px; height: 62px; object-fit: cover; border-radius: 10px; flex: 0 0 auto; }
.rv-art-mini-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rv-art-mini-txt em { font-style: normal; color: var(--rv-accent); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.rv-art-mini-txt strong { color: var(--rv-primary); font-size: .85rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rv-art-mini:hover .rv-art-mini-txt strong { color: var(--rv-accent); }
.rv-art-mini-txt > span { color: var(--rv-mid); font-size: .72rem; }
.rv-art-card-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; color: var(--rv-accent); font-weight: 700; font-size: .84rem; }
.rv-art-card-link .rv-ic { width: 14px; height: 14px; }
.rv-art-cats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rv-art-cats a { display: flex; align-items: center; gap: 11px; padding: 9px 8px; border-radius: 10px; color: var(--rv-primary); font-weight: 600; font-size: .9rem; transition: background .18s ease, color .18s ease; }
.rv-art-cats a:hover { background: rgba(21, 87, 60, .07); color: var(--rv-accent); }
.rv-art-cat-ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 8px; background: rgba(21, 87, 60, .1); color: var(--rv-accent); flex: 0 0 auto; }
.rv-art-cat-ic .rv-ic { width: 16px; height: 16px; }
.rv-art-promo { display: block; background: linear-gradient(140deg, var(--rv-primary), #10513d); color: #fff; border-radius: 14px; padding: 24px 22px; text-decoration: none; box-shadow: 0 18px 40px -26px rgba(3, 31, 55, .6); transition: transform .2s ease; }
.rv-art-promo:hover { transform: translateY(-3px); }
.rv-art-promo-eyebrow { display: block; color: #7fd4a8; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.rv-art-promo strong { display: block; color: #fff; font-family: var(--rv-font-head); font-size: 1.12rem; line-height: 1.25; margin-bottom: 8px; }
.rv-art-promo p { color: rgba(255, 255, 255, .82); font-size: .84rem; line-height: 1.5; margin: 0 0 16px; }
.rv-art-promo-btn { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--rv-accent); font-weight: 700; font-size: .88rem; padding: 10px 20px; border-radius: 12px; }
.rv-art-promo-btn .rv-ic { width: 15px; height: 15px; }
.rv-art-comments { margin-top: 40px; }
@media (max-width: 980px) {
	.rv-art-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.rv-art-side { position: static; }
	.rv-arth { padding: 56px 0 42px; }
}

/* ===== Homepage: campanhas das marcas (bento) ===== */
.rv-campaigns { display: grid; grid-template-columns: 1.35fr 1fr; grid-template-rows: repeat(2, 220px); gap: 16px; }
.rv-campaign { position: relative; display: flex; flex-direction: column; justify-content: flex-end; border-radius: 14px; overflow: hidden; text-decoration: none; background-size: cover; background-position: center; box-shadow: 0 18px 44px -28px rgba(3, 31, 55, .5); transition: transform .22s ease, box-shadow .22s ease; }
.rv-campaign:hover { transform: translateY(-4px); box-shadow: 0 26px 56px -28px rgba(3, 31, 55, .6); }
.rv-campaign::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 31, 55, 0) 30%, rgba(3, 31, 55, .82)); transition: background .25s ease; }
.rv-campaign:hover::before { background: linear-gradient(180deg, rgba(3, 31, 55, .1) 20%, rgba(3, 31, 55, .88)); }
.rv-campaign--tall { grid-row: 1 / 3; }
.rv-campaign-txt { position: relative; padding: 20px 22px; }
.rv-campaign-brand { display: block; color: #7fd4a8; font-size: .7rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; margin-bottom: 5px; }
.rv-campaign-txt strong { display: block; color: #fff; font-family: var(--rv-font-head); font-size: 1.18rem; line-height: 1.2; margin-bottom: 8px; }
.rv-campaign-cta { display: inline-flex; align-items: center; gap: 7px; color: #fff; font-weight: 700; font-size: .84rem; }
.rv-campaign-cta .rv-ic { width: 15px; height: 15px; transition: transform .2s ease; }
.rv-campaign:hover .rv-campaign-cta .rv-ic { transform: translateX(4px); }
@media (max-width: 800px) {
	.rv-campaigns { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
	.rv-campaign { min-height: 190px; }
	.rv-campaign--tall { grid-row: auto; min-height: 230px; }
}

/* Páginas legais: leitura confortável */
.page-template-default .entry-content h2 { position: relative; padding-bottom: 10px; margin-top: 40px; }
.page-template-default .entry-content h2::after { content: ""; position: absolute; bottom: 0; left: 0; width: 38px; height: 3px; border-radius: 12px; background: linear-gradient(90deg, var(--rv-accent), #7fd4a8); }
.page-template-default .entry-content ul li { margin-bottom: 6px; }
/* Artigo v2: soltar a largura do GeneratePress (mesma correção da homepage) */
.single-post #content { display: block !important; }
.single-post .content-area, .single-post .site-main { width: 100% !important; max-width: 100% !important; flex: 1 1 100% !important; }
/* Campanhas: overlay mais forte p/ fotos claras + legibilidade */
.rv-campaign::before { background: linear-gradient(180deg, rgba(3, 31, 55, .08) 10%, rgba(3, 31, 55, .55) 55%, rgba(3, 31, 55, .93) 100%); }
.rv-campaign:hover::before { background: linear-gradient(180deg, rgba(3, 31, 55, .18) 5%, rgba(3, 31, 55, .6) 50%, rgba(3, 31, 55, .95) 100%); }
.rv-campaign-txt strong, .rv-campaign-brand, .rv-campaign-cta { text-shadow: 0 2px 10px rgba(3, 31, 55, .45); }

/* ===== Ronda 6: sem sombras nas fotos, campanhas legíveis, hero notícia, filtros ===== */
/* Sombras atrás das fotos de produto: REMOVIDAS (pedido do cliente) */
.woocommerce ul.products li.product a img,
.single-product .woocommerce-product-gallery__image img,
.woocommerce-cart .rv-cart-row img,
.rv-co2-item-img img,
.rv-cmp-imgwrap img,
.rv-buybar-thumb { filter: none !important; }

/* Campanhas: nome da marca em chip sólido (legível em qualquer foto) */
.rv-campaign-brand { display: inline-block; width: fit-content; background: var(--rv-accent); color: #fff; padding: 4px 11px; border-radius: 8px; letter-spacing: .1em; margin-bottom: 8px; text-shadow: none; }

/* Notícia individual: hero contido com cantos arredondados + duotone da marca */
.rv-arth { width: min(1200px, calc(100% - 32px)); margin: 16px auto 0; border-radius: 16px; overflow: hidden; }
.rv-arth-scrim { background: linear-gradient(135deg, rgba(3, 31, 55, .82) 0%, rgba(10, 58, 100, .58) 48%, rgba(13, 74, 60, .84) 100%); }

/* Resumo do checkout: miniaturas maiores (produto inteiro) */
.rv-co2-item-img { width: 64px; height: 64px; }

/* Filtros da loja: cada grupo é um cartão */
.rv-acc { background: #fff; border: 1px solid #e4e9ee !important; border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.rv-acc:last-of-type { border-bottom: 1px solid #e4e9ee !important; }
.rv-acc-sum { padding: 13px 16px; }
.rv-acc[open] > .rv-acc-sum { color: var(--rv-accent); box-shadow: inset 0 -1px 0 #eef2f6; }
.rv-acc-body { padding: 14px 16px 16px; }

/* Mini toggle kW/BTU no slider de potência */
.rv-unitmini { display: flex; justify-content: flex-end; margin: 0 0 10px; }
.rv-unitmini button { border: 1px solid #e4e9ee; background: #fff; font-size: .68rem; font-weight: 800; padding: 4px 11px; cursor: pointer; color: var(--rv-primary); letter-spacing: .02em; }
.rv-unitmini button:first-child { border-radius: 8px 0 0 8px; }
.rv-unitmini button:last-child { border-radius: 0 8px 8px 0; border-left: 0; }
.rv-unitmini button.is-on { background: var(--rv-accent); border-color: var(--rv-accent); color: #fff; }

/* Badge de desconto nos cards: lado esquerdo volta a ser todo arredondado */
.rv-card-disc { border-radius: 999px 0 0 999px; }

/* ===== Ronda 6b: checkout topo, campanhas legíveis, foto produto mobile ===== */
/* Checkout: sem espaço morto no topo dos cartões */
.rv-checkout2 .rv-co2-card { padding-top: 20px; }
.rv-checkout2 .rv-co2-card > *:first-child { margin-top: 0 !important; }
.rv-checkout2 .rv-co2-card .woocommerce-notices-wrapper:empty { display: none; }
.rv-checkout2 .rv-co2-title { margin-top: 0 !important; }
/* Campanhas: faixa escura atrás do texto — legível em qualquer foto */
.rv-campaign-txt { width: 100%; background: linear-gradient(180deg, rgba(3, 31, 55, 0) 0%, rgba(3, 31, 55, .82) 34%); padding-top: 44px; }
/* Produto individual (mobile): foto colada ao topo */
@media (max-width: 600px) {
	.single-product .inside-article { padding-top: 0 !important; }
	.single-product .woocommerce-product-gallery { margin-top: 0 !important; }
	.single-product .woocommerce-product-gallery__wrapper { margin: 0 !important; }
	.single-product div.product { gap: 12px !important; }
}

/* Campanhas: caption SÓLIDA colada ao fundo (sem fade, sem folga) */
.rv-campaign::before, .rv-campaign:hover::before { content: none; }
.rv-campaign-txt { width: 100%; margin: 0; background: rgba(3, 31, 55, .93); padding: 14px 20px 16px; }
.rv-campaign-txt strong, .rv-campaign-brand, .rv-campaign-cta { text-shadow: none; }
.rv-campaign-txt strong { margin-bottom: 6px; font-size: 1.08rem; }
/* Caption pregada ao fundo do cartão (à prova de quirks do flex) */
.rv-campaign { position: relative; }
.rv-campaign-txt { position: absolute; left: 0; right: 0; bottom: 0; }
/* Caption com FADE suave e cor mais ligeira (colada ao fundo) */
.rv-campaign-txt { background: linear-gradient(180deg, rgba(3, 31, 55, 0) 0%, rgba(3, 31, 55, .42) 26%, rgba(3, 31, 55, .74) 62%, rgba(3, 31, 55, .8) 100%); padding-top: 52px; }

/* Fotos dos produtos nos detalhes da encomenda (obrigado + a minha conta) */
.woocommerce-order-details .rv-oditem,
.woocommerce-MyAccount-content .rv-oditem { display: flex; align-items: center; gap: 12px; }
.rv-oditem img.rv-oditem-img { width: 56px; height: 56px; object-fit: contain; flex: none; background: #fff; border: 1px solid var(--rv-rule); border-radius: 10px; padding: 4px; margin: 0; }
.rv-oditem-name { flex: 1; min-width: 0; }
@media (max-width: 600px) {
	.rv-oditem img.rv-oditem-img { width: 44px; height: 44px; }
}

/* ===== Mono/Multisplit: chips, nota e secção de compatíveis ===== */
.rv-splitchip { display: inline-block; margin: 0 0 7px; font-size: 10px; font-weight: 800; letter-spacing: .45px; text-transform: uppercase; padding: 4px 9px; border-radius: 8px; line-height: 1; }
.rv-splitchip--mono { background: #eaf5f0; color: #15573c; border: 1px solid #cfe6da; }
.rv-splitchip--multi { background: #eef4fb; color: #134a7c; border: 1px solid #cdddf0; }
.rv-split-note { display: flex; align-items: flex-start; gap: 10px; margin: 2px 0 14px; padding: 11px 14px; border-radius: 10px; font-size: 13.5px; line-height: 1.5; }
.rv-split-note .rv-ic { flex: none; width: 18px; height: 18px; margin-top: 1px; }
.rv-split-note--mono { background: #f2f8f5; border: 1px solid #cfe6da; color: #24503c; }
.rv-split-note--multi { background: #eef4fb; border: 1px solid #cdddf0; color: #17395c; }
.rv-compat { margin: 34px 0 10px; }
.rv-compat-head { margin-bottom: 16px; }
.rv-compat-head h2 { font-size: 22px; color: var(--rv-primary); margin: 0 0 6px; }
.rv-compat-head h2::after { content: ""; display: block; width: 44px; height: 3px; margin-top: 8px; background: var(--rv-accent); border-radius: 2px; }
.rv-compat-head p { color: var(--rv-mid); font-size: 14px; max-width: 720px; margin: 0; }
.rv-compat-nota { margin-top: 10px !important; background: #fff7ec; border: 1px solid #f3e2c8; border-radius: 10px; padding: 10px 14px; color: #6b5637 !important; display: flex; align-items: flex-start; gap: 8px; }
.rv-compat-nota svg { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 2px; color: #b98a3a; }
.rv-compat-vazio { color: var(--rv-mid); font-size: 14px; margin: 14px 0 0; }
.rv-linklike { background: none; border: 0; padding: 0; color: var(--rv-accent); font-weight: 700; text-decoration: underline; cursor: pointer; font-size: inherit; }
@media (max-width: 600px) {
	.rv-splitchip { font-size: 9px; padding: 3px 7px; }
	.rv-compat-head h2 { font-size: 19px; }
}
.rv-compat ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 18px; width: 100%; margin: 0; }
.rv-compat ul.products li.product { width: 100% !important; float: none !important; margin: 0 !important; }
@media (max-width: 900px) { .rv-compat ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .rv-compat ul.products { grid-template-columns: 1fr; } }

/* Mobile: chip mono/multi com respiro entre a imagem e o texto */
@media (max-width: 600px) {
	.woocommerce ul.products li.product .rv-splitchip { margin: 10px 0 7px; }
	.woocommerce ul.products li.product .rv-card-imgrow { margin-bottom: 6px; }
}
/* Títulos de produto em maiúsculas (cards + página individual) */
.woocommerce ul.products li.product .woocommerce-loop-product__title { text-transform: uppercase; font-size: .92em; letter-spacing: .02em; }
.single-product div.product .product_title { text-transform: uppercase; letter-spacing: .01em; }
.rv-complete-sub { color: var(--rv-mid); font-size: 14px; margin: -6px 0 16px; }
.rv-carousel-arrow .rv-ic { width: 30px !important; height: 30px !important; }
.rv-ct-notelegal, .rv-footer-notelegal { font-size: 11.5px; color: #8a97a1; }
/* Instalação sem preço + morada de instalação no checkout */
.rv-install-price--quote { background: #eaf5f0; color: #15573c; border: 1px solid #cfe6da; border-radius: 999px; padding: 4px 12px; font-size: 12px; font-weight: 800; }
.rv-install-note a { color: var(--rv-accent); font-weight: 700; }
.rv-install-district optgroup { font-style: normal; font-weight: 700; color: var(--rv-mid); }
.rv-install-district option:disabled { color: #b6c0c8; }
.rv-install-co { margin-top: 22px; padding: 18px; background: #f2f8f5; border: 1px solid #cfe6da; border-radius: 12px; }
.rv-install-co-title { display: flex; align-items: center; gap: 8px; font-size: 16px; color: var(--rv-primary); margin: 0 0 6px; }
.rv-install-co-sub { font-size: 13px; color: var(--rv-mid); margin: 0 0 12px; }
.rv-install-co textarea { min-height: 84px; }
/* Instalação: campos de morada em cascata */
.rv-install-addr { margin-top: 10px; display: grid; gap: 10px; }
.rv-install-row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; }
.rv-install-input { width: 100%; border: 1px solid var(--rv-rule); border-radius: 10px; padding: 10px 12px; font-size: 14px; background: #fff; }
.rv-install-input:focus { outline: none; border-color: var(--rv-accent); box-shadow: 0 0 0 3px rgba(21, 87, 60, .12); }
.rv-install-note { font-size: 12px; color: var(--rv-mid); margin: 2px 0 0; }
@media (max-width: 480px) { .rv-install-row { grid-template-columns: 1fr; } }
/* Carrinho vazio */
.rv-cart-empty { text-align: center; padding: 72px 20px 84px; max-width: 520px; margin: 0 auto; }
.rv-cart-empty-ic { display: inline-flex; align-items: center; justify-content: center; width: 84px; height: 84px; border-radius: 50%; background: #f2f8f5; border: 1px solid #cfe6da; color: var(--rv-accent); margin-bottom: 18px; }
.rv-cart-empty-ic .rv-ic { width: 38px; height: 38px; }
.rv-cart-empty h2 { color: var(--rv-primary); font-size: 26px; margin: 0 0 10px; }
.rv-cart-empty p { color: var(--rv-mid); font-size: 15px; line-height: 1.6; margin: 0 0 22px; }
.rv-cart-empty-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.woocommerce-cart .woocommerce > .rv-cart-empty { grid-column: 1 / -1; justify-self: center; width: 100%; }
.rv-cart-empty h2::after { margin-left: auto; margin-right: auto; }
.rv-cart-empty h2 { position: relative; }
.rv-cart-empty h2::before, .rv-cart-empty h2::after { position: static !important; left: auto !important; display: block; margin: 10px auto 0 !important; }
.rv-install-addr .rv-install-note { display: block; }
.rv-fs-dsbtn { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); color: #fff; font-size: 12.5px; font-weight: 700; padding: 8px 14px; border-radius: 9px; text-decoration: none; white-space: nowrap; }
.rv-fs-dsbtn:hover { background: rgba(255,255,255,.22); color: #fff; }
.rv-fs-dsbtn .rv-ic { width: 14px; height: 14px; }
@media (max-width: 600px) { .rv-fs-dsbtn { font-size: 11px; padding: 6px 10px; } }

/* ===== Recibo impresso na página de obrigado ===== */
.rv-receipt-wrap { max-width: 440px; margin: 30px auto 36px; }
.rv-receipt-printer { position: relative; z-index: 4; height: 34px; background: linear-gradient(180deg, #10283f, #031f37); border-radius: 14px; box-shadow: 0 10px 24px -10px rgba(3, 31, 55, .55); display: flex; align-items: center; justify-content: center; }
.rv-receipt-printer-slot { width: 78%; height: 7px; border-radius: 999px; background: #000c16; box-shadow: inset 0 2px 4px rgba(0,0,0,.8); }
.rv-receipt-clip { overflow: hidden; padding: 0 14px 26px; margin-top: -17px; position: relative; z-index: 6; }
.rv-receipt {
	background: #fffdf8; color: #24313c;
	font-family: "Courier New", ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 13px; line-height: 1.55;
	padding: 26px 22px 30px;
	box-shadow: 0 14px 34px -16px rgba(3, 31, 55, .35);
	animation: rvPrintOut 3s cubic-bezier(.16, .84, .3, 1) .45s both;
	--rv-zig: 12px;
	-webkit-mask:
		conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / var(--rv-zig) 51% repeat-x,
		conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / var(--rv-zig) 51% repeat-x;
	mask:
		conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / var(--rv-zig) 51% repeat-x,
		conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / var(--rv-zig) 51% repeat-x;
}
@keyframes rvPrintOut {
	0%   { transform: translateY(-104%); }
	18%  { transform: translateY(-88%); }
	26%  { transform: translateY(-84%); }
	44%  { transform: translateY(-56%); }
	52%  { transform: translateY(-52%); }
	74%  { transform: translateY(-18%); }
	82%  { transform: translateY(-14%); }
	100% { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) { .rv-receipt { animation: none; } }
.rv-receipt-head { text-align: center; display: grid; gap: 2px; margin-bottom: 14px; }
.rv-receipt-brand { font-size: 19px; letter-spacing: 3px; color: #031f37; }
.rv-receipt-head span { font-size: 11.5px; color: #5b6b78; }
.rv-receipt-tear { border-top: 2px dashed #c9d2d9; margin: 12px 0; }
.rv-receipt-meta { display: flex; justify-content: space-between; font-size: 12px; letter-spacing: .4px; }
.rv-receipt-item { display: flex; justify-content: space-between; gap: 12px; margin: 3px 0; }
.rv-receipt-item-name { flex: 1; }
.rv-receipt-item-amt { white-space: nowrap; font-weight: 700; }
.rv-receipt-item-meta { font-size: 11px; color: #7c8b96; margin: -2px 0 6px 14px; }
.rv-receipt-trow { display: flex; justify-content: space-between; margin: 2px 0; }
.rv-receipt-trow--total { font-weight: 700; font-size: 15.5px; color: #031f37; border-top: 2px solid #24313c; margin-top: 8px; padding-top: 8px; }
.rv-receipt-addr { font-size: 12px; }
.rv-receipt-addr-lbl { display: block; font-size: 10.5px; letter-spacing: 1.5px; color: #7c8b96; margin-bottom: 3px; }
.rv-receipt-foot { text-align: center; display: grid; gap: 10px; margin-top: 4px; }
.rv-receipt-thanks { font-weight: 700; letter-spacing: .5px; color: #15573c; }
.rv-receipt-barcode { height: 44px; margin: 0 auto; width: 78%; background: repeating-linear-gradient(90deg, #24313c 0 2px, transparent 2px 5px, #24313c 5px 8px, transparent 8px 10px, #24313c 10px 11px, transparent 11px 15px, #24313c 15px 18px, transparent 18px 20px); }
.rv-receipt-code { font-size: 11px; letter-spacing: 2px; color: #5b6b78; }
.rv-receipt .amount, .rv-receipt bdi { font-family: inherit; }
@media (max-width: 480px) { .rv-receipt { font-size: 12px; padding: 22px 14px 26px; } .rv-receipt-wrap { margin-top: 22px; } }
/* Pulso do carrinho quando o produto "aterra" */
.rv-h-cart.rv-cart-pop { animation: rvCartPop .5s cubic-bezier(.3,1.6,.5,1); }
@keyframes rvCartPop { 0% { transform: scale(1); } 40% { transform: scale(1.28) rotate(-4deg); } 100% { transform: scale(1); } }



@keyframes rvSway { 0%,100% { transform: rotate(-2.5deg); } 50% { transform: rotate(2.5deg); } }
.rv-eye { transform-origin: center; animation: rvBlink 4.2s infinite; }
@keyframes rvBlink { 0%, 94%, 100% { transform: scaleY(1); } 96%, 98% { transform: scaleY(.08); } }
.rv-hand { transition: transform .32s cubic-bezier(.34,1.56,.5,1); }

@keyframes rvPointWiggle { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-7deg); } }





@media (prefers-reduced-motion: reduce) { .rv-mascot-sway, .rv-eye, .rv-mascot-point { animation: none; } }






/* Registo progressivo: linhas de senha escondidas até haver email válido. */
.rv-auth2 form.register .rv-reveal {
	max-height: 0;
	opacity: 0;
	margin: 0;
	overflow: hidden;
	transition: max-height 0.45s ease, opacity 0.35s ease, margin 0.3s ease;
}
.rv-auth2 form.register .rv-reveal.rv-reveal--on {
	max-height: 150px;
	opacity: 1;
	margin: 0 0 16px;
}

/* Aviso de email por confirmar na área de conta. */
.rv-verify-warn {
	display: flex;
	align-items: center;
	gap: 14px;
	background: #fffbeb;
	border: 1px solid #fcd34d;
	border-left: 4px solid #f59e0b;
	border-radius: 12px;
	padding: 14px 18px;
	margin: 0 0 22px;
	font-size: 0.95rem;
	line-height: 1.5;
}
.rv-verify-warn svg {
	width: 26px;
	height: 26px;
	flex: 0 0 auto;
	color: #b45309;
}
.rv-verify-warn .rv-verify-resend {
	flex: 0 0 auto;
	white-space: nowrap;
	padding: 8px 16px;
	font-size: 0.85rem;
}
@media (max-width: 640px) {
	.rv-verify-warn { flex-wrap: wrap; }
}

/* ============================================================
 * Auth split-screen (v5): imagem à esquerda, formulário à direita.
 * Um formulário de cada vez, alternância login ↔ registo.
 * ============================================================ */
.rv-auth2 {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	width: 100%;
	min-height: 660px;
	margin: 6px 0 34px;
	border-radius: 22px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 22px 60px rgba(10, 40, 27, 0.14);
}

/* Painel visual: fundo verde em fade (sem fotografia), logo no topo. */
.rv-auth2-visual {
	position: relative;
	min-height: 100%;
	background: linear-gradient(150deg, var(--rv-primary), var(--rv-accent));
}
.rv-auth2-logo {
	position: absolute;
	top: 30px;
	left: 30px;
	z-index: 2;
	width: 190px;
	max-width: 55%;
	height: auto;
}
.rv-auth2-brandtxt {
	position: absolute;
	top: 30px;
	left: 30px;
	z-index: 2;
	color: #ffffff;
	font-weight: 800;
	letter-spacing: 0.06em;
	font-size: 1.15rem;
}
.rv-auth2-caption {
	position: absolute;
	left: 30px;
	right: 30px;
	bottom: 28px;
	z-index: 2;
	color: #ffffff;
	display: grid;
	gap: 6px;
}
.rv-auth2-caption strong { font-size: 1.25rem; }
.rv-auth2-caption span { font-size: 0.95rem; opacity: 0.88; line-height: 1.5; max-width: 34ch; }

/* Painel do formulário */
.rv-auth2-panel {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 56px 48px;
}
.rv-auth2-view { width: 100%; max-width: 410px; }
.rv-auth2-view--register { display: none; }
.rv-auth2--reg .rv-auth2-view--login { display: none; }
.rv-auth2--reg .rv-auth2-view--register { display: block; }
.rv-auth2-view { animation: rvAuthIn 0.35s ease both; }
@keyframes rvAuthIn {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: none; }
}

.rv-auth2-title {
	font-size: clamp(1.7rem, 2.6vw, 2.15rem);
	font-weight: 800;
	color: var(--rv-dark, #0e2a1d);
	margin: 0 0 8px;
}
.rv-auth2-sub { color: #63737f; margin: 0 0 28px; font-size: 0.98rem; }
.rv-auth2-sub a { color: var(--rv-primary, #15573c); font-weight: 700; text-decoration: none; }
.rv-auth2-sub a:hover { text-decoration: underline; }

.rv-auth2 .woocommerce-form-login,
.rv-auth2 .woocommerce-form-register,
.rv-auth2 form.login,
.rv-auth2 form.register {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
	max-width: none;
}
.rv-auth2 .form-row { margin: 0 0 18px; }
.rv-auth2 label {
	display: block;
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--rv-dark, #0e2a1d);
	margin: 0 0 6px;
}
.rv-auth2 .input-text {
	width: 100%;
	border-radius: 12px;
	min-height: 48px;
}

.rv-auth2 .rv-auth-formfoot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 2px 0 22px;
	font-size: 0.92rem;
}
.rv-auth2 .rv-auth-remember { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.rv-auth2 .rv-auth-lost { color: var(--rv-primary, #15573c); font-weight: 600; text-decoration: none; }
.rv-auth2 .rv-auth-lost:hover { text-decoration: underline; }

.rv-auth2-submit {
	width: 100%;
	justify-content: center;
	min-height: 52px;
	border-radius: 14px;
	font-size: 1rem;
}
.rv-auth2 .cf-turnstile { margin: 4px 0 14px; }

@media (max-width: 920px) {
	.rv-auth2 { grid-template-columns: 1fr; min-height: 0; }
	.rv-auth2-visual { min-height: 190px; }
	.rv-auth2-caption { display: none; }
	.rv-auth2-panel { padding: 34px 22px 40px; }
}

/* ============================================================
 * HERO 3D — galeria rotativa (anel de cartões em perspetiva).
 * --n = nº de cartões, --r = raio do anel, --i = índice do cartão.
 * ============================================================ */
.rv-hero3d {
	position: relative;
	overflow: hidden;
	background: #ffffff;
	padding: 28px 0 40px;
}





.rv-hero3d .rv-btn--ghost {
	background: rgba(255, 255, 255, 0.12);
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.35);
}
.rv-hero3d .rv-btn--ghost:hover { background: rgba(255, 255, 255, 0.22); }












@media (max-width: 760px) {
	.rv-hero3d { padding-top: 40px; }




}
@media (prefers-reduced-motion: reduce) {

}

/* ============================================================
 * HERO — carrossel cinematográfico: cartão central em destaque,
 * vizinhos a espreitar atrás; botões redondos ao centro em baixo.
 * ============================================================ */
.rv-cine { position: relative; margin-top: 36px; }
.rv-cine-stage {
	position: relative;
	isolation: isolate;
	height: clamp(200px, 28vw, 425px);
	touch-action: pan-y;
	cursor: grab;
	user-select: none;
	-webkit-user-select: none;
}
.rv-cine-slide {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: min(1060px, 94vw);
	border-radius: 24px;
	overflow: hidden;
	display: block;
	background: #0e2a1d;
	box-shadow: none;
	transform: translateX(-50%);
	transition: transform 1.15s cubic-bezier(0.45, 0.05, 0.15, 1), opacity 1.15s ease, filter 1.15s ease, box-shadow 1.15s ease;
}
.rv-cine-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	pointer-events: none;
}
/* Scrim só quando o slide tem legenda sobreposta (banners com design na imagem ficam limpos). */
.rv-cine-slide:has(.rv-cine-cap)::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 52%, rgba(0, 0, 0, 0.55) 100%);
	opacity: 0;
	transition: opacity 0.4s ease;
}
.rv-cine-slide.is-active:has(.rv-cine-cap)::after { opacity: 1; }
.rv-cine-cap {
	position: absolute;
	left: 30px;
	right: 30px;
	bottom: 26px;
	z-index: 2;
	display: grid;
	gap: 6px;
	color: #ffffff;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.6s ease 0.3s, transform 0.6s ease 0.3s;
}
.rv-cine-slide.is-active .rv-cine-cap { opacity: 1; transform: none; }
.rv-cine-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-weight: 700;
	font-size: 0.78rem;
	opacity: 0.85;
}
.rv-cine-title {
	font-family: var(--rv-font-head);
	font-weight: 800;
	font-size: clamp(1.15rem, 2.4vw, 1.7rem);
	line-height: 1.2;
	max-width: 24ch;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.4);
}
.rv-cine-nav {
	position: absolute;
	left: 50%;
	bottom: 14px;
	transform: translateX(-50%);
	z-index: 6;
	display: flex;
	gap: 10px;
}
.rv-cine-btn {
	width: 30px;
	height: 30px;
	padding: 0;
	line-height: 0;
	border-radius: 50%;
	border: 0;
	background: #ffffff;
	color: #1c1c1c;
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28); border: 1px solid #e8ece9;
	transition: transform 0.2s ease, background 0.2s ease;
}
.rv-cine-btn:hover { transform: scale(1.08); }
.rv-cine-btn svg, .rv-cine-btn .rv-ic { width: 11px; height: 11px; display: block; margin: 0 auto; }
.rv-cine-btn--prev svg, .rv-cine-btn--prev .rv-ic { transform: rotate(180deg); }
.rv-hero3d .rv-cine { padding-bottom: 10px; }

@media (max-width: 760px) {
	.rv-cine { margin-top: 24px; }
	.rv-cine-stage { height: clamp(140px, 38vw, 250px); }
	.rv-cine-slide { width: 86vw; border-radius: 16px; }
	.rv-cine-cap { left: 18px; right: 18px; bottom: 16px; }
	.rv-cine-btn { width: 26px; height: 26px; }
	.rv-cine-nav { bottom: 10px; }
}

/* Posições do carrossel cinematográfico (aplicadas por JS via classes). */
.rv-cine-slide { z-index: 1; opacity: 0; }
.rv-cine-slide.rv-c0 { transform: translateX(-50%) scale(1); z-index: 5; opacity: 1; filter: none; box-shadow: 0 18px 46px rgba(10, 40, 27, 0.2); }
.rv-cine-slide.rv-cl1 { transform: translateX(calc(-50% - 62%)) scale(0.92); z-index: 3; opacity: 1; filter: none; }
.rv-cine-slide.rv-cr1 { transform: translateX(calc(-50% + 62%)) scale(0.92); z-index: 3; opacity: 1; filter: none; }
.rv-cine-slide.rv-cl2 { transform: translateX(calc(-50% - 100%)) scale(0.85); z-index: 2; opacity: 0; filter: none; }
.rv-cine-slide.rv-cr2 { transform: translateX(calc(-50% + 100%)) scale(0.85); z-index: 2; opacity: 0; filter: none; }
.rv-cine-slide.rv-coff-l { transform: translateX(calc(-50% - 120%)) scale(0.6); z-index: 1; opacity: 0; }
.rv-cine-slide.rv-coff-r { transform: translateX(calc(-50% + 120%)) scale(0.6); z-index: 1; opacity: 0; }

/* Fade branco nas margens: o slide seguinte espreita e desvanece para branco. */
.rv-cine-stage::before,
.rv-cine-stage::after {
	content: '';
	position: absolute;
	top: -40px;
	bottom: -40px;
	width: 26%;
	z-index: 4;
	pointer-events: none;
}
.rv-cine-stage::before { left: 0; background: linear-gradient(90deg, #ffffff 42%, rgba(255, 255, 255, 0)); }
.rv-cine-stage::after { right: 0; background: linear-gradient(270deg, #ffffff 42%, rgba(255, 255, 255, 0)); }

/* ============================================================
 * Destaques por categoria (topo da loja quando há categoria ativa).
 * Produtos marcados "Em destaque" (estrela) dessa categoria.
 * ============================================================ */
.rv-cat-feat {
	position: relative;
	border: 2px solid var(--rv-accent);
	border-radius: 18px;
	background: linear-gradient(180deg, #f4faf7 0%, #ffffff 75%);
	padding: 30px 20px 6px;
	margin: 10px 0 36px;
}
.rv-cat-feat-badge {
	position: absolute;
	top: -15px;
	left: 18px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: var(--rv-accent);
	color: #ffffff;
	font-weight: 700;
	font-size: 0.85rem;
	padding: 6px 15px;
	border-radius: 999px;
	box-shadow: 0 6px 16px -6px rgba(21, 87, 60, 0.55);
	white-space: nowrap;
}
.rv-cat-feat-badge svg { width: 13px; height: 13px; flex: 0 0 auto; }
.rv-cat-feat .products { margin-bottom: 12px !important; }
@media (max-width: 760px) {
	.rv-cat-feat { padding: 26px 12px 2px; }
	.rv-cat-feat-badge { font-size: 0.78rem; padding: 5px 12px; }
}

/* Destaques responsivos: quando a moldura só cabe em 2 colunas,
 * mostra apenas 2 produtos (o 3.º esconde-se) para não ficar órfão. */
.rv-cat-feat { container-type: inline-size; }
@container (max-width: 783px) {
	.rv-cat-feat ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.rv-cat-feat ul.products li.product:nth-child(3) { display: none !important; }
}
@container (max-width: 511px) {
	.rv-cat-feat ul.products { grid-template-columns: 1fr !important; }
}
/* Fallback para browsers sem container queries. */
@supports not (container-type: inline-size) {
	@media (max-width: 900px) {
		.rv-cat-feat ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
		.rv-cat-feat ul.products li.product:nth-child(3) { display: none !important; }
	}
	@media (max-width: 520px) {
		.rv-cat-feat ul.products { grid-template-columns: 1fr !important; }
	}
}

/* Mobile: a moldura perde as bordas laterais (os cards ficam à largura
 * total, iguais aos da grelha) — resta a linha de baixo a toda a largura. */
@media (max-width: 640px) {
	.rv-cat-feat {
		border: 0;
		border-radius: 0;
		background: transparent;
		padding: 0 0 6px;
		margin: 4px 0 24px;
	}
	.rv-cat-feat-badge {
		position: static;
		display: inline-flex;
		margin: 0 0 16px;
		box-shadow: none;
	}
	.rv-cat-feat ul.products { gap: 16px; }
}

/* Mobile: hero mais compacto (menos espaço em cima/baixo) e botões
 * bem dentro do cartão. */
@media (max-width: 760px) {
	.rv-hero3d { padding: 10px 0 12px; }
	.rv-cine { margin-top: 8px; }
	.rv-hero3d .rv-cine { padding-bottom: 4px; }
	.rv-cine-nav { bottom: 16px; }
	.rv-cine-btn { width: 24px; height: 24px; }
	.rv-cine-btn svg, .rv-cine-btn .rv-ic { width: 9px; height: 9px; }
	.rv-cine-cap { bottom: 12px; }
	.rv-cine-title { font-size: 1rem; max-width: 20ch; }
	.rv-cine-eyebrow { font-size: 0.68rem; }
}

/* ============================================================
 * Alertas v2 (formato 21st): cartão branco, ícone redondo colorido
 * por tipo, botão-pílula de ação e X para fechar.
 * ============================================================ */
.woocommerce-message {
	background: #ffffff !important;
	color: var(--rv-dark, #0e2a1d) !important;
	border: 1px solid #e3eae5 !important;
	border-radius: 14px !important;
	padding: 10px 12px !important;
	gap: 12px;
	box-shadow: 0 18px 44px -14px rgba(10, 40, 27, 0.35);
}
.woocommerce-message::before {
	content: '' !important;
	position: static !important;
	transform: none !important;
	width: 30px !important;
	height: 30px !important;
	flex: 0 0 auto;
	border-radius: 50%;
	background: #e8f5ee url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315803d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l6 6L20 6'/%3E%3C/svg%3E") center/14px no-repeat !important;
}
.woocommerce-message .button {
	background: var(--rv-accent) !important;
	color: #ffffff !important;
	border-radius: 10px !important;
	padding: 7px 14px !important;
	font-size: 0.83rem !important;
	font-weight: 700 !important;
	margin: 0 !important;
	order: 9;
	white-space: nowrap;
}
.woocommerce-message .button:hover { background: #0f4530 !important; }

.woocommerce-info {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #ffffff !important;
	color: var(--rv-dark, #0e2a1d) !important;
	border: 1px solid #e0e8f2 !important;
	border-radius: 14px !important;
	padding: 10px 12px !important;
	margin: 0 0 22px !important;
	font-weight: 600;
	box-shadow: 0 12px 30px -14px rgba(15, 40, 80, 0.25);
}
.woocommerce-info::before {
	content: '' !important;
	position: static !important;
	margin: 0 !important;
	width: 30px !important;
	height: 30px !important;
	flex: 0 0 auto;
	border-radius: 50%;
	background: #e8f0fd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4ed8' stroke-width='3' stroke-linecap='round'%3E%3Ccircle cx='12' cy='6' r='1.6' fill='%231d4ed8' stroke='none'/%3E%3Cpath d='M12 10.5V18'/%3E%3C/svg%3E") center/14px no-repeat !important;
}
.woocommerce-info a.button, .woocommerce-info .button {
	background: var(--rv-accent) !important;
	color: #ffffff !important;
	border-radius: 10px !important;
	padding: 7px 14px !important;
	font-size: 0.83rem !important;
	font-weight: 700 !important;
	margin: 0 0 0 auto !important;
	order: 9;
	white-space: nowrap;
}

ul.woocommerce-error {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 0 22px !important;
	list-style: none !important;
	display: grid;
	gap: 10px;
}
ul.woocommerce-error::before { display: none !important; }
ul.woocommerce-error li {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #ffffff;
	border: 1px solid #f0dcdc;
	border-radius: 14px;
	padding: 10px 12px;
	margin: 0 !important;
	font-weight: 600;
	color: var(--rv-dark, #0e2a1d);
	box-shadow: 0 12px 30px -14px rgba(130, 25, 25, 0.22);
}
ul.woocommerce-error li::before {
	content: '';
	width: 30px;
	height: 30px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: #fdecec url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b91c1c' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v9'/%3E%3Ccircle cx='12' cy='18.6' r='1.6' fill='%23b91c1c' stroke='none'/%3E%3C/svg%3E") center/14px no-repeat;
}

/* Botão X de fechar (injetado por JS) */
.rv-alert-x {
	order: 10;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	margin-left: 2px;
	border: 0;
	background: transparent;
	color: #6b7a74;
	border-radius: 8px;
	display: grid;
	place-items: center;
	cursor: pointer;
	padding: 0;
	transition: background 0.2s ease, color 0.2s ease;
}
.rv-alert-x:hover { background: #eef3f0; color: var(--rv-dark, #0e2a1d); }
.rv-alert-x svg { width: 10px; height: 10px; display: block; }
.rv-alert-hide { opacity: 0 !important; transform: translateY(10px); transition: opacity 0.28s ease, transform 0.28s ease; }
.woocommerce-message.rv-alert-hide { transform: translateX(-50%) translateY(16px) !important; }

/* Toasts AJAX no mesmo formato */
.rv-toast {
	background: #ffffff !important;
	color: var(--rv-dark, #0e2a1d) !important;
	border: 1px solid #e3eae5;
	border-radius: 14px !important;
	box-shadow: 0 18px 44px -14px rgba(10, 40, 27, 0.35) !important;
}
.rv-toast--ok { background: #ffffff !important; }
.rv-toast--ok::before { background: #e8f5ee !important; width: 30px !important; height: 30px !important; left: 12px !important; }
.rv-toast--ok::after { border-color: #15803d !important; left: 24px !important; }
.rv-toast--info { background: #ffffff !important; padding-left: 52px !important; position: relative; }
.rv-toast--info::before {
	content: '';
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #e8f0fd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4ed8' stroke-width='3' stroke-linecap='round'%3E%3Ccircle cx='12' cy='6' r='1.6' fill='%231d4ed8' stroke='none'/%3E%3Cpath d='M12 10.5V18'/%3E%3C/svg%3E") center/14px no-repeat;
}
.rv-toast--ok a, .rv-toast--info a {
	background: var(--rv-accent) !important;
	color: #ffffff !important;
	border-radius: 10px;
	padding: 7px 14px;
	font-size: 0.83rem;
	font-weight: 700;
}
ul.woocommerce-error li .rv-alert-x { margin-left: auto; }

/* Botões: formato único em todo o site (cantos 10px, estilo do alerta). */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
button[type="submit"],
input[type="submit"],
#place_order {
	border-radius: 10px !important;
}
.rv-cine-btn { border-radius: 50% !important; }
.rv-alert-x { border-radius: 8px !important; }

/* Notices: sem moldura no contentor (os cartões dos avisos bastam)
 * e mais respiro entre o ícone e a borda. */
.woocommerce-notices-wrapper,
.woocommerce-NoticeGroup,
.woocommerce-NoticeGroup-checkoutErrors {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}
.woocommerce-NoticeGroup .woocommerce-error,
ul.woocommerce-error {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 0 24px !important;
	display: grid !important;
	gap: 14px;
}
ul.woocommerce-error li {
	padding: 13px 16px !important;
	gap: 14px;
}
.woocommerce-message, .woocommerce-info { padding: 11px 14px !important; gap: 14px; }

/* ============================================================
 * Carrinho em recibo: a secção dos produtos imprime-se a partir
 * da ranhura (mesma linguagem do recibo do pós-compra).
 * ============================================================ */
.rv-cartrc { margin: 0 0 6px; }
.rv-cartrc-bar { border-radius: 12px; }
.rv-cartrc-clip {
	overflow: hidden;
	padding: 0 12px 26px;
	margin-top: -17px;
	position: relative;
	z-index: 6;
}
.rv-cartrc-paper {
	background: #fffdf8;
	padding: 24px 18px 30px;
	box-shadow: 0 14px 34px -16px rgba(3, 31, 55, 0.35);
	--rv-zig: 12px;
	-webkit-mask:
		conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / var(--rv-zig) 51% repeat-x,
		conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / var(--rv-zig) 51% repeat-x;
	mask:
		conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / var(--rv-zig) 51% repeat-x,
		conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / var(--rv-zig) 51% repeat-x;
	animation: rvCartPrint 2.9s cubic-bezier(0.16, 0.84, 0.3, 1) 0.35s both;
}
@keyframes rvCartPrint {
	0% { transform: translateY(-103%); }
	20% { transform: translateY(-72%); }
	28% { transform: translateY(-72%); }
	50% { transform: translateY(-36%); }
	58% { transform: translateY(-36%); }
	84% { transform: translateY(-5%); }
	90% { transform: translateY(-5%); }
	100% { transform: none; }
}
.rv-cartrc-paper.rv-cartrc-still { animation: none; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.rv-cartrc-paper { animation: none; transform: none; }
}

/* Os cartões de produto ficam "impressos" no papel: sem caixa própria,
 * separados por picotado — todo o conteúdo (imagem, selos, qty) mantém-se. */
.rv-cartrc-paper .rv-cart-row {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	border-bottom: 2px dashed #ddd5c2 !important;
	padding: 20px 6px !important;
	margin: 0 !important;
}
.rv-cartrc-paper .rv-cart-row:last-child { border-bottom: 0 !important; }
.rv-cartrc-paper .rv-cart-list { gap: 0 !important; margin: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; overflow: visible !important; box-shadow: none !important; }
.rv-cartrc-paper .rv-cart-thumb img { background: #ffffff; }

@media (max-width: 640px) {
	.rv-cartrc-clip { padding: 0 8px 20px; }
	.rv-cartrc-paper { padding: 16px 12px 24px; }
}

/* ============================================================
 * Remover do recibo: tesoura corta o picotado e a secção
 * cai para fora da página.
 * ============================================================ */
.rv-cartrc-paper .rv-cart-row { position: relative; }
.rv-cut-line {
	position: absolute;
	top: -2px;
	left: 0;
	height: 4px;
	width: 0;
	background: #fffdf8;
	z-index: 2;
	transition: width 0.55s linear;
}
.rv-scissors {
	position: absolute;
	top: -15px;
	left: -8px;
	z-index: 3;
	width: 26px;
	height: 26px;
	color: #24313c;
	animation: rvScisMove 0.55s linear forwards, rvScisSnip 0.09s linear infinite;
}
.rv-scissors svg { width: 100%; height: 100%; display: block; }
@keyframes rvScisMove { to { left: calc(100% - 14px); } }
@keyframes rvScisSnip {
	0%, 100% { transform: rotate(-11deg) scaleY(0.82); }
	50% { transform: rotate(9deg) scaleY(1.12); }
}
/* A secção cortada (clone fixo) cai e roda para fora do ecrã */
.rv-fall-clone {
	position: fixed;
	z-index: 99999;
	margin: 0 !important;
	background: #fffdf8;
	box-shadow: 0 18px 44px -14px rgba(3, 31, 55, 0.4);
	border: 0 !important;
	pointer-events: none;
	animation: rvRowFall 0.72s cubic-bezier(0.55, 0, 0.9, 0.45) forwards;
	transform-origin: 18% 100%;
}
@keyframes rvRowFall {
	0% { transform: rotate(-1.4deg); opacity: 1; }
	20% { transform: rotate(2.5deg) translateY(14px); opacity: 1; }
	100% { transform: rotate(14deg) translateY(115vh); opacity: 0.85; }
}
/* O buraco no recibo fecha suavemente */
.rv-cart-row.rv-cut-away {
	overflow: hidden;
	transition: height 0.3s ease 0.25s, padding 0.3s ease 0.25s, border-bottom-width 0.3s ease 0.25s;
}
@media (prefers-reduced-motion: reduce) {
	.rv-scissors, .rv-fall-clone { animation: none; }
}

/* Enquanto corta: o lado já cortado cede/afunda ligeiramente e a fenda abre. */
.rv-cart-row.rv-cutting {
	transform-origin: 100% 0;
	animation: rvCutSag 0.55s ease-in forwards;
}
@keyframes rvCutSag {
	0% { transform: none; }
	55% { transform: rotate(-0.5deg) translateY(1px); }
	100% { transform: rotate(-1.4deg) translateY(3px); }
}
.rv-cut-line {
	height: 6px;
	top: -3px;
	box-shadow: 0 2px 3px -1px rgba(3, 31, 55, 0.25) inset, 0 -1px 0 rgba(3, 31, 55, 0.08);
	border-radius: 2px;
}

/* ============================================================
 * Loading do checkout/carrinho: o logo RENAVAC "a pensar"
 * em vez do círculo default do WooCommerce.
 * ============================================================ */
.woocommerce .blockUI.blockOverlay::before,
.woocommerce-page .blockUI.blockOverlay::before,
.woocommerce .loader::before {
	height: 58px !important;
	width: 58px !important;
	margin: -29px 0 0 -29px !important;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='19' fill='%230c0c0c'/%3E%3Cpath d='M22 8 L13 22 H19 L16.5 32 L28 17 H21 Z' fill='%23ffffff'/%3E%3C/svg%3E") center / contain no-repeat !important;
	animation: rvLogoThink 1.3s ease-in-out infinite !important;
	filter: drop-shadow(0 6px 14px rgba(3, 31, 55, 0.25));
}
@keyframes rvLogoThink {
	0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.9; }
	25% { transform: scale(1.1) rotate(-8deg); opacity: 1; }
	50% { transform: scale(1) rotate(0deg); opacity: 0.9; }
	75% { transform: scale(1.1) rotate(8deg); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce .blockUI.blockOverlay::before,
	.woocommerce .loader::before { animation: none !important; }
}

/* ============================================================
 * Auditoria UI/UX (skill ui-ux-pro-max) — correções.
 * ============================================================ */

/* <picture> no hero preenche o cartão como o img fazia. */
.rv-cine-slide picture { display: block; width: 100%; height: 100%; }

/* Alvos de toque ≥44px sem mudar o visual (área invisível à volta). */
.rv-cine-btn, .rv-alert-x, .rv-cqty-btn, .rv-cqty-trash { position: relative; }
.rv-cine-btn::after { content: ''; position: absolute; inset: -8px; border-radius: 50%; }
.rv-alert-x::after { content: ''; position: absolute; inset: -8px; }
.rv-cqty-btn::after, .rv-cqty-trash::after { content: ''; position: absolute; inset: -5px; }
@media (max-width: 760px) {
	.rv-cine-btn::after { inset: -11px; }
}

/* Preços com algarismos tabulares: os totais não "dançam" ao atualizar. */
.woocommerce-Price-amount,
.rv-cart-now, .rv-cart-old,
.cart_totals td, .rv-receipt,
.rv-cqty-n { font-variant-numeric: tabular-nums; }

/* Navegação: destaca a categoria onde o visitante está. */
.main-nav a.rv-nav-current {
	color: var(--rv-accent) !important;
	box-shadow: inset 0 -2px 0 var(--rv-accent);
}

/* Nota legal do rodapé: mínimo legível. */
.rv-footer-notelegal { font-size: 12px !important; }

/* Validação on-blur: campo obrigatório inválido fica sinalizado ao sair. */
.rv-field-invalid { border-color: #d23f3f !important; box-shadow: 0 0 0 3px rgba(210, 63, 63, 0.12) !important; }

/* ============================================================
 * SEO de imagens: logos de marca e selo PRR passam a background
 * (fora do índice do Google Imagens). Dimensões explícitas.
 * ============================================================ */
.rv-bgimg { display: inline-block; background-position: center; background-repeat: no-repeat; background-size: contain; }
.rv-card-brand .rv-bgimg { width: 90px; height: 24px; background-position: left center; }
.rv-fs-brand .rv-bgimg { width: 140px; height: 26px; }
.rv-sp-brand .rv-bgimg { width: 110px; height: 28px; }
.rv-brand-logo .rv-bgimg { width: 78%; height: 100%; }
.rv-bgimg.rv-brandfilter-logo { width: 56px !important; height: 18px !important; }
.rv-bgimg.rv-brandtech-logo { width: 180px !important; height: 46px !important; }
@media (max-width: 900px) {
	.rv-bgimg.rv-brandtech-logo { width: 130px !important; height: 32px !important; }
}
.rv-fin-badge { width: min(620px, 92%); height: 48px; margin: 0 auto; display: block; }
.rv-brandtech-banner.rv-bgimg { display: block; width: 100%; aspect-ratio: 1920 / 560; max-height: 280px; background-size: cover; border-radius: var(--rv-radius); margin: 0 0 18px; }

/* SEO: bloco "Modelos e referências" (variações indexáveis) */
.rv-refs{max-width:1180px;margin:32px auto;padding:0 20px}
.rv-refs h2{font-size:1.3rem;color:var(--rv-heading,#031f37);margin:0 0 4px;font-weight:800;letter-spacing:-.01em}
.rv-refs>p{color:var(--rv-mid,#5b6b78);margin:0 0 14px;font-size:.92rem}
.rv-refs-wrap{overflow-x:auto;border:1px solid var(--rv-rule,#e6e9ec);border-radius:14px}
.rv-refs-tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.rv-refs-tbl th{text-align:left;background:var(--rv-surface,#f4f4f4);color:var(--rv-mid,#5b6b78);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:11px 16px;border-bottom:1px solid var(--rv-rule,#e6e9ec)}
.rv-refs-tbl td{padding:11px 16px;border-bottom:1px solid var(--rv-rule,#e6e9ec);color:var(--rv-ink,#2e2e2e)}
.rv-refs-tbl tr:last-child td{border-bottom:0}
.rv-refs-tbl tbody tr:nth-child(even){background:color-mix(in srgb,var(--rv-surface,#f4f4f4) 55%,transparent)}
.rv-ref-sku{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-weight:700;color:var(--rv-primary,#031f37);white-space:nowrap}

/* Acessórios recomendados na ficha do produto */
.rv-accrec{max-width:1180px;margin:36px auto;padding:0 20px}
.rv-accrec-head{margin-bottom:8px}
.rv-accrec-head h2{font-size:1.3rem;color:var(--rv-heading,#031f37);margin:0 0 4px;font-weight:800;letter-spacing:-.01em}
.rv-accrec-head p{color:var(--rv-mid,#5b6b78);margin:0;font-size:.92rem}
