/**
 * Al teu Ventre — camada de design acima dos tokens (brand-tokens.css).
 *
 * Implementa o redesign da loja (2026-08, secção a secção, screenshots do
 * cliente). Regras da casa: cores SÓ via tokens --av-*; tipografia via ponte
 * --porto-*-ff; WCAG conforme a auditoria dos tokens (Azul e Oliva nunca como
 * cor de texto — no chip ALQUILER o texto é verde-escuro sobre azul: 4,7:1 ✓).
 *
 * Índice: 1 Header (top bar info · faixa principal · nav) · 2 Hero da home.
 */

/* =====================================================================
   0. LARGURA DO CONTEÚDO
   O container do Porto é quase fluido; o design assenta em ~1300px
   centrados. Capamos os NOSSOS componentes (não o tema todo).
   ===================================================================== */
:root { --av-largura-max: 1320px; }
.av-topbar-info__inner,
.av-header-main__inner,
.av-header-nav__inner,
.av-hero__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
}

/* =====================================================================
   1. HEADER
   ===================================================================== */

/* --- 1.1 top bar informativa ---------------------------------------- */
.av-topbar-info {
	background: var(--av-verde-escuro);
	color: var(--av-branco-linho);
	font-size: .8125rem;
	letter-spacing: .01em;
}
.av-topbar-info__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	min-height: 38px;
	flex-wrap: wrap;
}
.av-topbar-info__left,
.av-topbar-info__right {
	display: flex;
	align-items: center;
	gap: .9rem;
}
.av-topbar-info a {
	color: var(--av-branco-linho);
	opacity: .92;
}
.av-topbar-info a:hover { opacity: 1; color: #fff; }
.av-topbar-info__sep { opacity: .35; }
.av-lang { display: inline-flex; gap: .55rem; }
.av-lang a { opacity: .55; font-weight: 600; }
.av-lang a.av-lang--activa { opacity: 1; }

/* --- 1.2 faixa principal: logo · pesquisa · acções ------------------- */
.av-header { background: var(--av-branco-linho); }
.av-header-main__inner {
	display: flex;
	align-items: center;
	gap: 2rem;
	padding: 1.1rem 0;
}
.av-header-logo { flex: 0 0 auto; line-height: 0; }
.av-header-logo img { width: 196px; height: auto; }

.av-header-search { flex: 1 1 auto; max-width: 620px; margin-inline: auto; }
/* pílula sobre o YITH Ajax Search (inline; sugestões AJAX incluídas) */
.av-header-search form,
.av-header-search .yith-ajaxsearchform-container {
	position: relative;
	width: 100%;
}
.av-header-search form { display: flex; align-items: center; }
.av-header-search form::before {
	/* lupa à esquerda (mask → cor pelo token) */
	content: "";
	position: absolute;
	left: 1.05rem;
	top: 50%;
	translate: 0 -50%;
	width: 18px;
	height: 18px;
	background: rgba(10, 60, 35, .55);
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.8-3.8"/></svg>') no-repeat center / contain;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.8-3.8"/></svg>') no-repeat center / contain;
	pointer-events: none;
	z-index: 2;
}
.av-header-search input[type="text"],
.av-header-search input[type="search"],
.av-header-search .yith-s {
	flex: 1 1 auto;
	width: 100%;
	border: 1px solid rgba(10, 60, 35, .12);
	border-radius: 999px;
	background: #fff;
	font-size: .9rem;
	height: 46px;
	padding: 0 1.2rem 0 2.6rem;
	color: var(--av-verde-escuro);
	box-shadow: none;
}
.av-header-search input:focus {
	outline: none;
	box-shadow: none;
	border-color: rgba(10, 60, 35, .3);
}
/* botão submit do YITH escondido — enter pesquisa, a lupa é decorativa */
.av-header-search button[type="submit"],
.av-header-search input[type="submit"],
.av-header-search .search-toggle { display: none; }
.av-header-search ::placeholder { color: rgba(10, 60, 35, .45); }
/* dropdown de sugestões alinhado à pílula */
.av-header-search .yith_wcas_group,
.av-header-search .autocomplete-suggestions {
	border-radius: 14px;
	border: 1px solid rgba(10, 60, 35, .1);
	box-shadow: 0 12px 30px rgba(10, 60, 35, .12);
}

.av-header-acciones {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	flex: 0 0 auto;
}
.av-accion {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: .2rem;
	color: var(--av-verde-escuro);
	font-size: .72rem;
	line-height: 1;
}
.av-accion:hover { color: var(--av-verde-floresta); }
.av-accion--cesta { position: relative; }
.av-accion--cesta .av-accion__rotulo { font-size: .72rem; }
/* mini-cart do Porto (wrapper real: .mini-cart): só ícone + badge */
#header .av-accion--cesta .cart-items-text { display: none; }
#header .av-accion--cesta .cart-head { padding: 0; }
#header .av-accion--cesta .cart-icon { position: relative; display: inline-block; }
/* ícone saco (mask → cor por token), no lugar do glifo default do Porto */
#header .av-accion--cesta .minicart-icon {
	display: inline-block;
	width: 22px;
	height: 22px;
	background: var(--av-verde-escuro);
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7" stroke-linejoin="round"><path d="M5.5 8h13l-1.2 12.2a1 1 0 0 1-1 .8H7.7a1 1 0 0 1-1-.8L5.5 8z"/><path d="M9 8V6.5a3 3 0 0 1 6 0V8"/></svg>') no-repeat center / contain;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7" stroke-linejoin="round"><path d="M5.5 8h13l-1.2 12.2a1 1 0 0 1-1 .8H7.7a1 1 0 0 1-1-.8L5.5 8z"/><path d="M9 8V6.5a3 3 0 0 1 6 0V8"/></svg>') no-repeat center / contain;
}
#header .av-accion--cesta .minicart-icon::before,
#header .av-accion--cesta .minicart-icon::after { content: none; }
/* badge: azul do design, dígito verde-escuro (coerente com a auditoria) */
#header .av-accion--cesta .cart-items {
	background: var(--av-azul-kawaii);
	color: var(--av-verde-escuro);
	border-radius: 999px;
	font-size: .66rem;
	font-weight: 700;
	min-width: 17px;
	height: 17px;
	line-height: 17px;
	text-align: center;
	position: absolute;
	top: -9px;
	right: -9px;
	padding: 0 3px;
}
.av-header .mobile-toggle { display: none; color: var(--av-verde-escuro); }

/* --- 1.3 linha de navegação ------------------------------------------ */
.av-header-nav {
	background: var(--av-branco-linho);
	border-bottom: 1px solid rgba(10, 60, 35, .08);
}
.av-header-nav .main-menu { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; }
#header .av-header-nav .main-menu > li > a {
	font-family: var(--av-font-text) !important;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--av-verde-escuro);
	padding: .9rem 1.05rem;
	background: transparent;
}
/* #header à frente: ganha ao skin dinâmico do Porto (que pinta caixa no activo) */
#header .av-header-nav .main-menu > li:hover > a,
#header .av-header-nav .main-menu > li.active > a,
#header .av-header-nav .main-menu > li.current-menu-item > a,
#header .av-header-nav .main-menu > li.current-menu-ancestor > a {
	color: var(--av-verde-floresta);
	background: transparent;
}
/* chip ALQUILER: azul-kawaii de fundo, texto verde-escuro (WCAG 4,7:1 —
   branco sobre azul daria 2,6:1 e chumbava a auditoria dos tokens) */
.av-header-nav .main-menu > li.av-chip-alquiler > a {
	background: var(--av-azul-kawaii);
	color: var(--av-verde-escuro);
	border-radius: 999px;
	padding: .55rem 1.3rem;
}
.av-header-nav .main-menu > li.av-chip-alquiler:hover > a {
	background: var(--av-azul-kawaii);
	color: var(--av-verde-escuro);
	filter: brightness(1.05);
}

/* =====================================================================
   1a. ENCOSTAR O CONTEÚDO AO CABEÇALHO
   O Porto mete 20px de padding no .main-content e pinta o wrapper de
   branco, o que criava uma barra branca entre a navbar e o hero (e o
   mesmo em todas as páginas). Os nossos templates trazem o seu próprio
   espaçamento de topo, por isso o padding sai e o fundo passa a linho.
   ===================================================================== */
#main.column1 .main-content { padding-top: 0; }
#main.column1.boxed,
#main.main { background: var(--av-branco-linho); }

/* =====================================================================
   1b. COMPONENTES PARTILHADOS
   Vivem aqui de propósito: estavam dentro da secção do hero e
   desapareceram quando o hero foi substituído pelo design novo — o que
   deixou TODOS os botões do site sem forma (raio 0, display inline).
   Não voltar a metê-los dentro de uma secção.
   ===================================================================== */
.av-btn {
	font-family: var(--av-font-text) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: .8rem 1.7rem;
	font-family: var(--av-font-text);
	font-weight: 600;
	font-size: .9375rem;
	transition: filter .15s ease, background .15s ease;
}
.av-btn--solido { background: var(--av-verde-floresta); color: #fff; }
.av-btn--solido:hover { background: var(--av-verde-escuro); color: #fff; }
.av-btn--contorno {
	background: transparent;
	color: var(--av-verde-escuro);
	border: 1.5px solid rgba(10, 60, 35, .35);
}
.av-btn--contorno:hover { border-color: var(--av-verde-escuro); color: var(--av-verde-escuro); }
.av-home { background: var(--av-branco-linho); }
.av-estrellas { color: var(--av-verde-floresta); letter-spacing: .12em; margin-right: .35rem; }
.av-chip {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	background: #fff;
	border-radius: 999px;
	padding: .45rem 1rem;
	font-size: .8125rem;
	color: var(--av-verde-escuro);
	box-shadow: 0 1px 2px rgba(10, 60, 35, .06);
	margin-bottom: 1.6rem;
}
.av-chip__punto {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--av-verde-oliva);
}

/* =====================================================================
   2. HERO (homepage) — design da designer, 2026-08-14
   ===================================================================== */
.av-hero {
	position: relative;
	background: var(--av-branco-linho);
	overflow: hidden;
	/* sangrar até às bordas: o .container do Porto estrangula a 1140px e no
	   design o fundo e o grafismo vão de ponta a ponta */
	width: 100vw;
	margin-inline: calc(50% - 50vw);
}
/* grafismo orgânico à direita (desenhado em SVG no template) */
.av-hero__grafismo {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(62%, 900px);
	pointer-events: none;
	z-index: 0;
}
.av-hero__grafismo svg { width: 100%; height: 100%; display: block; }

.av-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: clamp(2.5rem, 5vw, 4.5rem) 1.25rem 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
	gap: 2rem;
	align-items: end;
	min-height: min(78vh, 680px);
}
.av-hero__texto { padding-bottom: clamp(3rem, 8vw, 6.5rem); }

.av-hero__titulo {
	font-family: var(--av-font-display) !important;
	font-weight: 700;
	font-size: clamp(2.6rem, 6.2vw, 4.75rem);
	line-height: 1.06;
	letter-spacing: -.01em;
	margin: 0 0 clamp(1.6rem, 3vw, 2.4rem);
}
.av-hero__titulo span { display: block; }
.av-hero__titulo-leve  { color: var(--av-verde-oliva); font-weight: 400; }
.av-hero__titulo-forte { color: var(--av-verde-floresta); }

.av-hero__cta {
	background: var(--av-verde-oliva);
	color: #fff;
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	padding: 1rem 2.2rem;
	box-shadow: 0 10px 26px rgba(152, 183, 92, .35);
}
.av-hero__cta:hover { background: var(--av-verde-floresta); color: #fff; }

.av-hero__media { align-self: end; justify-self: center; width: 100%; }
.av-hero__media img {
	display: block;
	width: 100%;
	max-width: 640px;
	height: auto;
	margin-inline: auto;
	/* o recorte assenta na base da secção, como no design */
	filter: drop-shadow(0 18px 30px rgba(10, 60, 35, .10));
}

/* =====================================================================
   2b. TIRA DE MARCAS (carrossel infinito, logo abaixo do hero)
   ===================================================================== */
.av-marcas-tira {
	background: var(--av-verde-floresta);
	overflow: hidden;
	padding: clamp(1.1rem, 2vw, 1.6rem) 0;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
}
.av-marcas-tira__pista {
	display: flex;
	width: max-content;
	animation: av-marcas-desliza 46s linear infinite;
}
.av-marcas-tira:hover .av-marcas-tira__pista,
.av-marcas-tira:focus-within .av-marcas-tira__pista { animation-play-state: paused; }
.av-marcas-tira__grupo {
	display: flex;
	align-items: center;
	gap: clamp(2.5rem, 5vw, 5rem);
	margin: 0;
	padding: 0 clamp(1.25rem, 2.5vw, 2.5rem) 0 0;
	list-style: none;
	flex: 0 0 auto;
}
.av-marcas-tira__item {
	font-family: var(--av-font-display);
	font-size: clamp(1.1rem, 1.8vw, 1.5rem);
	color: var(--av-branco-linho);
	white-space: nowrap;
	opacity: .92;
}
.av-marcas-tira__item a { color: inherit; transition: opacity .15s ease; }
.av-marcas-tira__item a:hover,
.av-marcas-tira__item a:focus-visible { color: #fff; opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
@keyframes av-marcas-desliza {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.av-marcas-tira__pista { animation: none; flex-wrap: wrap; width: 100%; justify-content: center; }
	.av-marcas-tira__grupo[aria-hidden="true"] { display: none; }
	.av-marcas-tira__grupo { flex-wrap: wrap; justify-content: center; row-gap: .6rem; }
}

/* =====================================================================
   3. FAIXA DE CONFIANÇA (USPs, secção 2a)
   ===================================================================== */
.av-usps { background: #fff; }
.av-usps__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 1.6rem 1.25rem;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}
.av-usp { display: flex; align-items: center; gap: .9rem; }
.av-usp__picto { flex: 0 0 auto; width: 46px; height: 46px; }
.av-usp__texto {
	font-size: .875rem;
	line-height: 1.4;
	color: var(--av-verde-escuro);
	display: block;
}
.av-usp__texto strong { display: block; font-size: .9375rem; }

/* =====================================================================
   4. CATEGORIAS "Todo para cada etapa" (secção 2b)
/* =====================================================================
   5. DESTACADOS "Elegidos con criterio" (secção 3a)
   ===================================================================== */
.av-destacados { padding: 4.5rem 0; }
.av-destacados__inner { max-width: var(--av-largura-max); margin-inline: auto; padding-inline: 1.25rem; }
.av-destacados__cabeca {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 2.2rem;
}
.av-carrossel-setas { display: flex; gap: .6rem; }
.av-seta {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.05rem;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.av-seta--tras { background: transparent; border: 1.5px solid rgba(10, 60, 35, .25); color: var(--av-verde-escuro); }
.av-seta--frente { background: var(--av-verde-floresta); border: 1.5px solid var(--av-verde-floresta); color: #fff; }
.av-seta:hover { background: var(--av-verde-escuro); border-color: var(--av-verde-escuro); color: #fff; }

.av-carrossel {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc(25% - 1.125rem);
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: .5rem;
}
.av-carrossel::-webkit-scrollbar { display: none; }

.av-card-prod {
	position: relative; /* âncora do saco de add-to-cart */
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	border-radius: 20px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 2px rgba(10, 60, 35, .05);
	transition: box-shadow .18s ease, translate .18s ease;
}
.av-card-prod:hover { box-shadow: 0 14px 34px rgba(10, 60, 35, .13); translate: 0 -3px; }
.av-card-prod__foto {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	background: #fff;
	overflow: hidden;
}
.av-card-prod__img { width: 100%; height: 100%; object-fit: contain; }
.av-badge {
	position: absolute;
	top: .9rem;
	left: .9rem;
	z-index: 2;
	border-radius: 999px;
	padding: .3rem .75rem;
	font-family: var(--av-font-text);
	font-size: .75rem;
	font-weight: 700;
}
.av-badge--promo { background: var(--av-verde-oliva); color: var(--av-verde-escuro); }
.av-badge--novedad { background: var(--av-azul-kawaii); color: var(--av-verde-escuro); }

.av-card-prod__corpo { display: flex; flex-direction: column; gap: .3rem; padding: 1.1rem 1.2rem 1.2rem; }
.av-card-prod__eyebrow {
	font-family: var(--av-font-text);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--av-verde-floresta); /* auditoria: oliva chumba em fundo branco */
}
.av-card-prod__titulo {
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.25;
	color: var(--av-verde-escuro);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.5em;
}
.av-card-prod__preco-linha {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: .6rem;
}
.av-card-prod__preco {
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--av-verde-floresta);
}
.av-card-prod__preco del {
	font-size: .85rem;
	font-weight: 400;
	color: rgba(10, 60, 35, .45);
	margin-left: .35rem;
}
.av-card-prod__saco {
	/* fora do link do produto: posicionado no sítio exacto onde estava
	   (alinhado com o padding do corpo do cartão) */
	position: absolute;
	right: 1.2rem;
	bottom: 1.2rem;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--av-branco-linho);
	z-index: 2;
	transition: background .15s ease, transform .15s ease;
}
.av-card-prod__saco:hover { transform: scale(1.08); }
.av-card-prod__saco:focus-visible { outline: 2px solid var(--av-verde-floresta); outline-offset: 2px; }
.av-card-prod__saco.loading { opacity: .6; }
.av-card-prod__saco.added::after { background: #fff; }
.av-card-prod__saco::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 18px;
	height: 18px;
	background: var(--av-verde-escuro);
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7" stroke-linejoin="round"><path d="M5.5 8h13l-1.2 12.2a1 1 0 0 1-1 .8H7.7a1 1 0 0 1-1-.8L5.5 8z"/><path d="M9 8V6.5a3 3 0 0 1 6 0V8"/></svg>') no-repeat center / contain;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7" stroke-linejoin="round"><path d="M5.5 8h13l-1.2 12.2a1 1 0 0 1-1 .8H7.7a1 1 0 0 1-1-.8L5.5 8z"/><path d="M9 8V6.5a3 3 0 0 1 6 0V8"/></svg>') no-repeat center / contain;
	transition: background .15s ease;
}
.av-card-prod:hover .av-card-prod__saco { background: var(--av-verde-floresta); }
.av-card-prod:hover .av-card-prod__saco::after { background: #fff; }

/* =====================================================================
   6. QUIÉNES SOMOS (secção 3b, banda escura)
   ===================================================================== */
.av-quienes { background: var(--av-verde-escuro); position: relative; overflow: hidden; }
.av-quienes::after {
	/* rabisco decorativo no canto sup. direito (mask → azul suave) */
	content: "";
	position: absolute;
	top: 3rem;
	right: 4rem;
	width: 150px;
	height: 90px;
	background: var(--av-azul-kawaii);
	opacity: .55;
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
	pointer-events: none;
}
.av-quienes__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 5rem 1.25rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 4rem;
	align-items: center;
}
.av-quienes__foto { border-radius: 24px; aspect-ratio: 16 / 11; }
.av-placeholder-riscas--escuro {
	background: repeating-linear-gradient(
		135deg,
		rgba(245, 238, 230, .07) 0 14px,
		rgba(245, 238, 230, .02) 14px 28px
	);
}
.av-placeholder-riscas__etiqueta--escuro {
	background: rgba(245, 238, 230, .12);
	color: var(--av-branco-linho);
}
.av-eyebrow--oliva { color: var(--av-verde-oliva); }
.av-h2--claro { color: var(--av-branco-linho); }
.av-quienes__p {
	color: rgba(245, 238, 230, .88);
	font-size: 1rem;
	line-height: 1.65;
	max-width: 56ch;
	margin: 1.2rem 0 1.8rem;
}
.av-btn--linho { background: var(--av-branco-linho); color: var(--av-verde-escuro); }
.av-btn--linho:hover { background: #fff; color: var(--av-verde-escuro); }

/* (secção 7 antiga — tira de marcas em texto — substituída pela 2b) */
/* =====================================================================
   8. BLOG "Consejos que acompañan" (secção 4)
   ===================================================================== */
.av-blog { padding: 4.5rem 0 5rem; }
.av-blog__inner { max-width: var(--av-largura-max); margin-inline: auto; padding-inline: 1.25rem; }
.av-blog__cabeca {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 2.2rem;
}
.av-blog__grelha {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}
.av-card-blog {
	display: flex;
	flex-direction: column;
	border-radius: 24px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 2px rgba(10, 60, 35, .05);
	transition: box-shadow .18s ease, translate .18s ease;
}
.av-card-blog:hover { box-shadow: 0 14px 34px rgba(10, 60, 35, .13); translate: 0 -3px; }
.av-card-blog__foto { display: block; aspect-ratio: 16 / 9.6; overflow: hidden; }
.av-card-blog__img { width: 100%; height: 100%; object-fit: cover; }
.av-card-blog__corpo { display: flex; flex-direction: column; gap: .35rem; padding: 1.2rem 1.3rem 1.3rem; }
.av-card-blog__eyebrow {
	font-family: var(--av-font-text);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--av-verde-floresta); /* auditoria: azul do mock chumba (2,6:1) */
}
.av-card-blog__titulo {
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	line-height: 1.3;
	color: var(--av-verde-escuro);
}
.av-card-blog__meta { font-size: .8125rem; color: rgba(10, 60, 35, .55); }

/* =====================================================================
   9. NEWSLETTER + RODAPÉ (footer/footer.php) — design 2026-08-14
   ===================================================================== */
.av-footer-wrapper { background: var(--av-branco-linho); }

/* --- faixa da newsletter --- */
.av-news { background: var(--av-verde-oliva); padding: clamp(1.4rem, 2.2vw, 1.9rem) 0; }
.av-news__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}
.av-news__cabeca { display: flex; align-items: center; gap: 1.1rem; }
.av-news__picto { flex-shrink: 0; }
.av-news__titulo {
	font-family: var(--av-font-display) !important;
	font-size: clamp(1.2rem, 2vw, 1.6rem);
	color: var(--av-verde-escuro);
	margin: 0 0 .2rem;
}
.av-news__sub { font-size: .9375rem; color: var(--av-verde-escuro); margin: 0; opacity: .9; }
.av-news__form { flex: 1 1 clamp(300px, 40%, 460px); }
.av-news__form form { display: flex; gap: .6rem; flex-wrap: wrap; }
.av-news__form p { margin: 0; flex: 1 1 auto; }
.av-news__form input[type="email"] {
	width: 100%;
	background: #fff;
	border: 0;
	border-radius: 999px;
	padding: .85rem 1.3rem;
	font-family: var(--av-font-text);
	font-size: .9375rem;
	color: var(--av-verde-escuro);
}
.av-news__form .wpcf7-submit {
	background: var(--av-verde-escuro);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: .85rem 1.8rem;
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: .9375rem;
	cursor: pointer;
}
.av-news__form .wpcf7-submit:hover { background: var(--av-verde-floresta); }
.av-news__form .wpcf7-list-item { margin: 0; }
.av-news__form .wpcf7-acceptance { font-size: .8125rem; color: var(--av-verde-escuro); }
.av-news__form .wpcf7-response-output { border-radius: 10px; font-size: .875rem; margin: .6rem 0 0; }

/* --- rodapé: banda oliva + base escura --- */
.av-rodape__topo {
	background: var(--av-verde-oliva);
	padding: clamp(1.8rem, 2.5vw, 2.1rem) 0;
	/* a newsletter por cima é do mesmo oliva: sem isto lê-se como uma
	   mancha verde só */
	border-top: 1px solid rgba(10, 60, 35, .16);
}
.av-rodape__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr) minmax(0, .8fr);
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: start;
}
.av-rodape__marca img { width: 100%; max-width: 268px; height: auto; display: block; }

.av-rodape__rotulo {
	font-family: var(--av-font-display) !important;
	font-size: 1.1rem;
	color: var(--av-branco-linho);
	margin: 0 0 .85rem;
}
/* texto sobre oliva em verde-escuro: branco dá 2,27:1 e chumba */
.av-rodape__dados {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .5rem 2rem;
	color: var(--av-verde-escuro);
	font-size: .9375rem;
	line-height: 1.55;
}
.av-rodape__dados p { margin: 0 0 .5rem; }
.av-rodape__dados a { color: var(--av-verde-escuro); }
.av-rodape__dados a:hover { color: var(--av-verde-floresta); text-decoration: underline; }

.av-rodape__redes {
	margin-top: 1rem;
	display: inline-flex;
	align-items: center;
	gap: .8rem;
	border: 1.5px solid rgba(10, 60, 35, .3);
	border-radius: 999px;
	padding: .5rem .6rem .5rem 1.2rem;
	color: var(--av-verde-escuro);
	font-size: .9375rem;
}
.av-rodape__redes a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--av-branco-linho);
	color: var(--av-verde-escuro);
	transition: background .15s ease;
}
.av-rodape__redes a:hover { background: #fff; color: var(--av-verde-floresta); }

.av-rodape__info ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.av-rodape__info a { color: var(--av-verde-escuro); font-size: .9375rem; }
.av-rodape__info a:hover { color: var(--av-verde-floresta); text-decoration: underline; }

.av-rodape__base { background: var(--av-verde-floresta); padding: .8rem 0; }
.av-rodape__base-inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
}
.av-rodape__copy { margin: 0; font-size: .875rem; color: var(--av-branco-linho); }
.av-rodape__pagos { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: .8125rem; color: var(--av-branco-linho); }
.av-rodape__chip {
	background: var(--av-branco-linho);
	color: var(--av-verde-escuro);
	border-radius: 6px;
	padding: .25rem .6rem;
	font-size: .75rem;
	font-weight: 700;
}
.av-rodape__langs { display: flex; gap: .8rem; font-size: .875rem; }
.av-rodape__langs a { color: rgba(245, 238, 230, .75); }
.av-rodape__langs a:hover,
.av-rodape__lang--activa { color: #fff; font-weight: 700; }

@media (max-width: 991px) {
	.av-rodape__inner { grid-template-columns: 1fr; gap: 2.5rem; }
	.av-rodape__dados { grid-template-columns: 1fr; gap: 0; }
	.av-news__inner { flex-direction: column; align-items: flex-start; }
	.av-news__form { width: 100%; flex: none; }
	.av-rodape__base-inner { flex-direction: column; align-items: flex-start; gap: .8rem; }
}

/* =====================================================================
   10. ARQUIVO DE PRODUTOS (categoria/loja)
   ===================================================================== */
.av-arquivo { background: var(--av-branco-linho); }
.av-migas__inner,
.av-arquivo__cabeca-inner,
.av-chips-cat__inner,
.av-arquivo__corpo {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
}
.av-migas { padding: 1.4rem 0 .4rem; font-size: .875rem; }
.av-migas a { color: rgba(10, 60, 35, .6); }
.av-migas a:hover { color: var(--av-verde-floresta); }
.av-migas span[aria-hidden] { margin: 0 .5rem; color: rgba(10, 60, 35, .35); }
.av-migas__actual { color: var(--av-verde-floresta); font-weight: 700; }

.av-arquivo__cabeca-inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 2.5rem;
	padding-top: .8rem;
	padding-bottom: 1.8rem;
}
.av-arquivo__titulo {
	font-family: var(--av-font-display);
	font-weight: 700;
	color: var(--av-verde-escuro);
	font-size: clamp(2.2rem, 4.2vw, 3.4rem);
	line-height: 1.05;
	margin: 0 0 1rem;
}
.av-arquivo__intro {
	font-size: 1.0313rem;
	line-height: 1.6;
	color: var(--av-verde-escuro);
	max-width: 62ch;
	margin: 0;
}
.av-card-servico {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: .8rem;
	background: #fff;
	border-radius: 16px;
	padding: 1rem 1.3rem;
	box-shadow: 0 8px 24px rgba(10, 60, 35, .08);
	max-width: 340px;
	font-size: .875rem;
	line-height: 1.45;
	color: var(--av-verde-escuro);
	margin-top: .4rem;
}
.av-card-servico__icono {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: rgba(152, 183, 92, .18);
	display: flex;
	align-items: center;
	justify-content: center;
}

.av-chips-cat { padding-bottom: 1.6rem; }
.av-chips-cat__inner { display: flex; flex-wrap: wrap; gap: .7rem; }
.av-chip-cat {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: .55rem 1.15rem;
	font-family: var(--av-font-text);
	font-weight: 600;
	font-size: .875rem;
	background: #fff;
	color: var(--av-verde-escuro);
	border: 1px solid rgba(10, 60, 35, .1);
	transition: border-color .15s ease, background .15s ease, color .15s ease;
}
a.av-chip-cat:hover { border-color: var(--av-verde-escuro); color: var(--av-verde-escuro); }
.av-chip-cat--activa { background: var(--av-verde-escuro); color: #fff; border-color: var(--av-verde-escuro); }

.av-arquivo__corpo {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
	padding-bottom: 4rem;
}
.av-filtros-caixa {
	background: #fff;
	border-radius: 20px;
	padding: 1.5rem 1.4rem;
	box-shadow: 0 1px 2px rgba(10, 60, 35, .05);
}
/* pele mínima sobre o HUSKY (mantém o comportamento) */
.av-filtros-caixa .woof_container { margin-bottom: 1.4rem; padding-bottom: 1.4rem; border-bottom: 1px solid rgba(10, 60, 35, .08); }
.av-filtros-caixa .woof_container:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.av-filtros-caixa .woof_container h4 {
	font-family: var(--av-font-text);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--av-verde-floresta);
	margin: 0 0 .9rem;
}
.av-filtros-caixa .woof_list li { margin: 0 0 .55rem; }
.av-filtros-caixa .woof_list label { font-size: .9063rem; color: var(--av-verde-escuro); }
.av-filtros-caixa input[type="checkbox"] { accent-color: var(--av-verde-floresta); width: 17px; height: 17px; }
.av-filtros-caixa .woof_submit_search_form_container .button,
.av-filtros-caixa button[type="submit"] {
	border: 0;
	border-radius: 999px;
	background: var(--av-verde-escuro);
	color: #fff;
	padding: .6rem 1.4rem;
	font-family: var(--av-font-text);
	font-weight: 700;
	cursor: pointer;
}

.av-card-ajuda {
	background: var(--av-azul-kawaii);
	border-radius: 20px;
	padding: 1.6rem 1.5rem;
	margin-top: 1.5rem;
	color: var(--av-verde-escuro); /* texto escuro sobre azul: 4,7:1 ✓ */
}
.av-card-ajuda strong {
	display: block;
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	margin: .8rem 0 .4rem;
}
.av-card-ajuda p { font-size: .875rem; line-height: 1.5; margin: 0 0 1.1rem; }
.av-btn--branco { background: #fff; color: var(--av-verde-escuro); width: 100%; }
.av-btn--branco:hover { background: var(--av-branco-linho); color: var(--av-verde-escuro); }

.av-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.6rem;
	flex-wrap: wrap;
}
.av-toolbar__conta { font-size: .9375rem; color: var(--av-verde-escuro); }
.av-toolbar__ordem { display: flex; align-items: center; gap: .7rem; font-size: .9375rem; color: var(--av-verde-escuro); }
.av-toolbar__ordem form { margin: 0; }
.av-toolbar__ordem .woocommerce-ordering label { display: none; } /* o WC traz o seu "Ordenar por:" — o nosso já lá está */
.av-toolbar__ordem select {
	border: 1px solid rgba(10, 60, 35, .12);
	border-radius: 999px;
	background: #fff;
	height: 44px;
	padding: 0 2.2rem 0 1.2rem;
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: .9063rem;
	color: var(--av-verde-escuro);
}

/* grelha WC */
.av-arquivo__principal ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.av-arquivo__principal ul.products::before,
.av-arquivo__principal ul.products::after { content: none; }
li.av-card-prod--loop { width: auto !important; margin: 0 !important; float: none !important; }
.av-card-prod__enlace { display: flex; flex-direction: column; height: 100%; }
.av-card-prod__sub { font-size: .8438rem; color: rgba(10, 60, 35, .6); }
.av-card-prod--loop .av-card-prod__preco del { display: inline-block; }
.av-card-prod--loop .av-card-prod__preco ins { text-decoration: none; }

/* slider de preço do HUSKY (ion.rangeSlider) — pele azul default → tokens */
.av-filtros-caixa .irs-bar,
.av-filtros-caixa .irs-bar-edge { background: var(--av-verde-floresta) !important; border-color: var(--av-verde-floresta) !important; }
.av-filtros-caixa .irs-line { background: rgba(10, 60, 35, .12) !important; border: 0 !important; }
.av-filtros-caixa .irs-slider {
	background: #fff !important;
	border: 3px solid var(--av-verde-floresta) !important;
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(10, 60, 35, .2);
}
.av-filtros-caixa .irs-from,
.av-filtros-caixa .irs-to,
.av-filtros-caixa .irs-single {
	background: var(--av-verde-escuro) !important;
	color: #fff !important;
	border-radius: 6px;
}
.av-filtros-caixa .irs-grid-text { color: rgba(10, 60, 35, .5); }

/* chips de filtros activos na toolbar */
.av-chip-filtro {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	background: #fff;
	border: 1px solid rgba(10, 60, 35, .15);
	border-radius: 999px;
	padding: .3rem .8rem;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--av-verde-escuro);
	margin-left: .45rem;
}
.av-chip-filtro:hover { border-color: var(--av-verde-escuro); color: var(--av-verde-escuro); }
.av-chip-filtro span { opacity: .6; }
.av-toolbar__filtrado { color: rgba(10, 60, 35, .6); margin-left: .3rem; }

/* tile promocional dentro da grelha */
li.av-tile-promo {
	background: var(--av-verde-escuro);
	border-radius: 20px;
	padding: 1.8rem 1.6rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 1rem;
	position: relative;
	overflow: hidden;
	min-height: 320px;
	margin: 0 !important;
	width: auto !important;
	float: none !important;
}
li.av-tile-promo::after {
	content: "";
	position: absolute;
	right: -22px;
	bottom: 34%;
	width: 150px;
	height: 100px;
	background: var(--av-azul-kawaii);
	opacity: .5;
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
	pointer-events: none;
}
.av-tile-promo__icono {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: rgba(245, 238, 230, .14);
	display: flex;
	align-items: center;
	justify-content: center;
}
.av-tile-promo__titulo {
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: 1.45rem;
	line-height: 1.2;
	color: var(--av-branco-linho);
	max-width: 16ch;
}
.av-btn--oliva { background: var(--av-verde-oliva); color: var(--av-verde-escuro); align-self: flex-start; }
.av-btn--oliva:hover { background: var(--av-branco-linho); color: var(--av-verde-escuro); }

/* sublinhado da secção actual na nav (mock: barra verde sob o item) */
#header .av-header-nav .main-menu > li { position: relative; }
#header .av-header-nav .main-menu > li.current-menu-item > a::after,
#header .av-header-nav .main-menu > li.current-menu-ancestor > a::after {
	content: "";
	position: absolute;
	left: .9rem;
	right: .9rem;
	bottom: -1px;
	height: 3px;
	border-radius: 3px 3px 0 0;
	background: var(--av-verde-floresta);
}
#header .av-header-nav .main-menu > li.av-chip-alquiler > a::after { content: none; }

.av-paginacao { margin-top: 2.6rem; display: flex; justify-content: center; }
.av-paginacao ul.page-numbers {
	display: flex;
	gap: .6rem;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
}
.av-paginacao .page-numbers li > * {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 46px;
	border-radius: 999px;
	background: #fff;
	color: var(--av-verde-escuro);
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: .9375rem;
	padding: 0 1rem;
	border: 1px solid rgba(10, 60, 35, .1);
}
.av-paginacao .page-numbers li > .current { background: var(--av-verde-escuro); color: #fff; border-color: var(--av-verde-escuro); }
.av-paginacao .page-numbers li > a:hover { border-color: var(--av-verde-escuro); }
.av-paginacao .page-numbers li > .dots { border: 0; background: transparent; min-width: auto; padding: 0 .2rem; }

/* =====================================================================
   11. FICHA DE PRODUTO
   ===================================================================== */
.av-ficha {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 0 1.25rem 3rem;
}
.av-ficha__migas { padding: 1.4rem 0 1.2rem; }
.av-ficha__topo {
	display: grid;
	grid-template-columns: minmax(0, 11fr) minmax(0, 10fr);
	gap: 3rem;
	align-items: start;
	margin-bottom: 2.5rem;
}

/* galeria: cartão branco + miniaturas em cartões */
.av-ficha__galeria { position: relative; }
.av-ficha__galeria > .av-badge { top: 1.2rem; left: 1.2rem; z-index: 5; }
.av-ficha__wishlist { position: absolute; top: 1rem; right: 1rem; z-index: 5; }
.av-ficha__wishlist .yith-wcwl-add-to-wishlist { margin: 0; }
.av-ficha__wishlist a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--av-branco-linho);
	color: var(--av-verde-escuro);
	font-size: 1.05rem;
}
.av-ficha__wishlist a:hover { background: var(--av-verde-floresta); color: #fff; }
.av-ficha__wishlist .feedback, .av-ficha__wishlist span.yith-wcwl-label { display: none; }
/* SVI desactivado (zero dados no catálogo) — galeria nativa Porto/WC com
   swap de imagem por variação. O slider principal e o thumbs-slider owl
   levam a pele do design. */
.av-ficha__galeria .svi-mainsection,
.av-ficha__galeria .svi-gallery-top,
.av-ficha__galeria .svi-initial-main {
	background: #fff;
	border-radius: 24px;
	overflow: hidden;
}
.av-ficha__galeria .svi-initial-main { aspect-ratio: 1 / 1; }
.av-ficha__galeria .woocommerce-product-gallery { width: 100% !important; float: none !important; }
.av-ficha__galeria .product-image-slider,
.av-ficha__galeria .product-image-slider .img-thumbnail { background: #fff; border-radius: 24px; overflow: hidden; border: 0; box-shadow: none; }
.av-ficha__galeria .product-thumbs-slider { margin-top: 1rem; }
.av-ficha__galeria .product-thumbs-slider .img-thumbnail {
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
	border: 1.5px solid transparent;
	box-shadow: none;
	cursor: pointer;
}
.av-ficha__galeria .product-thumbs-slider .img-thumbnail:hover,
.av-ficha__galeria .product-thumbs-slider .owl-item.selected .img-thumbnail { border-color: var(--av-verde-floresta); }
.av-ficha__galeria .woocommerce-product-gallery__wrapper { background: #fff; border-radius: 24px; overflow: hidden; }
.av-ficha__galeria .woocommerce-product-gallery__image { background: #fff; }
.av-ficha__galeria .woocommerce-product-gallery__image img { object-fit: contain; }
/* miniaturas: o SVI rende ul.svithumbnails (li em float por colunas — era
   a grelha que partia a página); o flexslider clássico usa
   .flex-control-thumbs; o esqueleto pré-Vue usa .svi-initial-thumbs.
   Todos viram carrossel de 1 linha, 4 visíveis, scroll com snap. */
.av-ficha__galeria ul.svithumbnails,
.av-ficha__galeria ul.svi-initial-thumbs,
.av-ficha__galeria .flex-control-thumbs {
	display: grid !important;
	grid-auto-flow: column;
	grid-auto-columns: calc(25% - .75rem);
	gap: 1rem;
	margin: 1rem 0 0 !important;
	padding: 0 0 .4rem;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.av-ficha__galeria ul.svithumbnails::-webkit-scrollbar,
.av-ficha__galeria ul.svi-initial-thumbs::-webkit-scrollbar,
.av-ficha__galeria .flex-control-thumbs::-webkit-scrollbar { display: none; }
.av-ficha__galeria ul.svithumbnails li,
.av-ficha__galeria ul.svi-initial-thumbs li,
.av-ficha__galeria .flex-control-thumbs li {
	scroll-snap-align: start;
	aspect-ratio: 1 / 1;
	/* anular o float/width por colunas do CSS do SVI */
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
	border: 1.5px solid transparent;
	cursor: pointer;
}
.av-ficha__galeria ul.svithumbnails li img,
.av-ficha__galeria ul.svi-initial-thumbs li img,
.av-ficha__galeria .flex-control-thumbs li img { width: 100% !important; height: 100%; object-fit: cover; }
.av-ficha__galeria ul.svithumbnails li.svitn_current_img,
.av-ficha__galeria ul.svithumbnails li:has(img.svi-opacity) { border-color: var(--av-verde-floresta); }
.av-ficha__galeria .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
	border: 1.5px solid transparent;
	cursor: pointer;
}
.av-ficha__galeria .flex-control-thumbs li img { opacity: .85; }
.av-ficha__galeria .flex-control-thumbs li img.flex-active,
.av-ficha__galeria .flex-control-thumbs li:hover img { opacity: 1; }
.av-ficha__galeria .flex-control-thumbs li:has(img.flex-active) { border-color: var(--av-verde-floresta); }

/* resumo */
.av-ficha__titulo {
	font-family: var(--av-font-display);
	font-weight: 700;
	color: var(--av-verde-escuro);
	font-size: clamp(1.9rem, 3.4vw, 2.8rem);
	line-height: 1.08;
	margin: .35rem 0 .7rem;
}
.av-ficha__rating { display: flex; align-items: center; gap: .45rem; font-size: .9063rem; color: var(--av-verde-escuro); margin-bottom: 1rem; }
.av-ficha__rating a { color: var(--av-verde-floresta); font-weight: 700; }
.av-ficha__excerpt { font-size: 1rem; line-height: 1.6; color: var(--av-verde-escuro); max-width: 56ch; margin-bottom: 1.4rem; }
.av-ficha__preco { display: flex; align-items: baseline; gap: .9rem; flex-wrap: wrap; margin: 0 0 1.4rem; }
.av-ficha__preco-valor,
.av-ficha__preco-valor .amount {
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: 2.3rem;
	color: var(--av-verde-floresta);
}
.av-ficha__preco-valor del .amount { font-size: 1.2rem; color: rgba(10, 60, 35, .45); font-weight: 400; }
.av-ficha__preco-valor ins { text-decoration: none; }
.av-ficha__preco-nota { font-size: .875rem; color: rgba(10, 60, 35, .6); }

/* compra: stepper + botão do WC restylados */
.av-ficha__compra form.cart { display: flex; gap: .9rem; align-items: stretch; flex-wrap: wrap; margin: 0; }
.av-ficha__compra .quantity {
	display: flex;
	align-items: center;
	background: #fff;
	border: 1px solid rgba(10, 60, 35, .12);
	border-radius: 999px;
	padding: 0 .4rem;
	height: 56px;
}
.av-ficha__compra .quantity .qty {
	width: 3em;
	border: 0;
	background: transparent;
	text-align: center;
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: 1rem;
	color: var(--av-verde-escuro);
	-moz-appearance: textfield;
}
.av-ficha__compra .quantity .qty::-webkit-outer-spin-button,
.av-ficha__compra .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; }
.av-qty-btn,
.av-ficha__compra .quantity .minus,
.av-ficha__compra .quantity .plus {
	border: 0 !important;
	background: transparent !important;
	color: var(--av-verde-escuro) !important;
	font-size: 1.15rem;
	width: 34px;
	height: 100% !important;
	line-height: 1;
	cursor: pointer;
	box-shadow: none !important;
}
.av-ficha__compra .single_add_to_cart_button {
	font-family: var(--av-font-text) !important;
	flex: 1 1 auto;
	border: 0;
	border-radius: 999px;
	background: var(--av-verde-escuro);
	color: #fff;
	height: 56px;
	padding: 0 2rem;
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	transition: background .15s ease;
}
.av-ficha__compra .single_add_to_cart_button:hover { background: var(--av-verde-floresta); }
/* variações: tabela do WC limpa; swatches do YITH em círculo */
.av-ficha__compra table.variations { margin: 0 0 1rem; width: 100%; }
.av-ficha__compra table.variations td, .av-ficha__compra table.variations th { border: 0; padding: .3rem 0; }
.av-ficha__compra table.variations label { font-weight: 700; color: var(--av-verde-escuro); font-size: .9375rem; }
.av-ficha__compra .reset_variations { font-size: .8125rem; color: rgba(10, 60, 35, .55); }
.av-ficha__compra table.variations select {
	border: 1px solid rgba(10, 60, 35, .12);
	border-radius: 999px;
	background: #fff;
	height: 48px;
	padding: 0 2.4rem 0 1.2rem;
	font-family: var(--av-font-text) !important;
	font-weight: 700;
	font-size: .9063rem;
	color: var(--av-verde-escuro);
	min-width: 220px;
}
.av-ficha__compra .yith_wccl_value.circle, .av-ficha__compra .select_option.circle { border-radius: 50%; }
.av-ficha__compra .select_option.selected { outline: 2px solid var(--av-verde-floresta); outline-offset: 2px; }
.av-ficha__compra .woocommerce-variation-price { margin-bottom: .8rem; }
.av-ficha__compra .woocommerce-variation-price .price { font-family: var(--av-font-display); font-weight: 700; font-size: 1.5rem; color: var(--av-verde-floresta); }

/* botão lista de nacimiento (Addify) — pílula azul do design */
.av-ficha__registry { margin-top: .9rem; }
.av-ficha__registry button,
.av-ficha__registry .button,
.av-ficha__registry a.addf_gift_registry_add_to_cart,
.av-ficha__registry input[type="submit"] {
	width: 100%;
	border: 0;
	border-radius: 999px;
	background: var(--av-azul-kawaii);
	color: var(--av-verde-escuro); /* 4,7:1 ✓ */
	height: 52px;
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: .9375rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: filter .15s ease;
}
.av-ficha__registry button:hover { filter: brightness(1.06); }

/* cartão de info (stock/instalación/whatsapp) */
.av-ficha__info {
	background: #fff;
	border-radius: 16px;
	padding: .4rem 1.3rem;
	margin-top: 1.2rem;
	box-shadow: 0 1px 2px rgba(10, 60, 35, .05);
}
.av-ficha__info-linha {
	display: flex;
	align-items: center;
	gap: .7rem;
	padding: .85rem 0;
	margin: 0;
	font-size: .875rem;
	color: var(--av-verde-escuro);
	border-bottom: 1px solid rgba(10, 60, 35, .07);
}
.av-ficha__info-linha:last-child { border-bottom: 0; }
.av-ficha__info-linha a { color: var(--av-verde-floresta); }
.av-punto { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.av-punto--ok { background: var(--av-verde-oliva); }
.av-punto--nao { background: #c65f4c; }

/* chips técnicos */
.av-ficha__chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; margin-top: 1.2rem; }
.av-ficha__chip {
	background: #fff;
	border-radius: 14px;
	padding: .85rem 1rem;
	text-align: center;
	box-shadow: 0 1px 2px rgba(10, 60, 35, .05);
	font-size: .78rem;
	color: rgba(10, 60, 35, .6);
}
.av-ficha__chip strong { display: block; font-size: .9375rem; color: var(--av-verde-escuro); }

/* descrição + especificações */
.av-ficha__detalhe {
	background: #fff;
	border-radius: 24px;
	padding: 2.6rem 2.8rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 3rem;
	box-shadow: 0 1px 2px rgba(10, 60, 35, .05);
}
.av-h2--seccao { font-size: 1.5rem; margin-bottom: 1.2rem; }
.av-ficha__conteudo { font-size: .9688rem; line-height: 1.65; color: var(--av-verde-escuro); }
.av-ficha__conteudo h2, .av-ficha__conteudo h3 { font-family: var(--av-font-display); color: var(--av-verde-escuro); }
.av-ficha__conteudo img { border-radius: 14px; }
/* specs em cartão de linho, rótulo sobre o valor (valores longos do GPSR
   faziam wrap desajeitado alinhado à direita) */
.av-ficha__specs { background: var(--av-branco-linho); border-radius: 18px; padding: 1.6rem 1.7rem; align-self: start; }
.av-specs { margin: 0; }
.av-specs__linha {
	padding: .8rem 0;
	border-bottom: 1px solid rgba(10, 60, 35, .1);
	font-size: .9375rem;
}
.av-specs__linha:last-child { border-bottom: 0; }
.av-specs__linha dt { color: rgba(10, 60, 35, .6); font-weight: 400; font-size: .8125rem; margin-bottom: .15rem; }
.av-specs__linha dd { margin: 0; color: var(--av-verde-escuro); font-weight: 700; overflow-wrap: anywhere; }

/* descrição colapsável com fade + Leer más (equilíbrio entre colunas) */
.av-colapsavel[data-av-colapsavel].av-colapsavel--fechada {
	max-height: 30rem;
	overflow: hidden;
	position: relative;
}
.av-colapsavel--fechada::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 7rem;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 85%);
	pointer-events: none;
}
.av-colapsavel__botao {
	margin-top: .9rem;
	border: 1.5px solid rgba(10, 60, 35, .25);
	background: transparent;
	color: var(--av-verde-escuro);
	border-radius: 999px;
	padding: .55rem 1.4rem;
	font-family: var(--av-font-text) !important;
	font-weight: 700;
	font-size: .875rem;
	cursor: pointer;
}
.av-colapsavel__botao:hover { border-color: var(--av-verde-escuro); }

/* relacionados "Completa el viaje" */
.av-relacionados { margin-top: 3.2rem; }
.av-relacionados__cabeca {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.8rem;
}
.av-relacionados__grelha {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.av-relacionados__grelha::before,
.av-relacionados__grelha::after { content: none; }

/* CTA de prova (banda escura) */
.av-cta-prova { background: var(--av-verde-escuro); border-radius: 24px; margin-top: 2.5rem; position: relative; overflow: hidden; }
.av-cta-prova::before {
	content: "";
	position: absolute;
	left: 2rem;
	bottom: -14px;
	width: 130px;
	height: 80px;
	background: var(--av-azul-kawaii);
	opacity: .45;
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
}
.av-cta-prova__inner {
	display: flex;
	align-items: center;
	gap: 1.3rem;
	padding: 2rem 2.5rem 2rem 11rem;
}
.av-cta-prova__icono {
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: rgba(245, 238, 230, .14);
	display: flex;
	align-items: center;
	justify-content: center;
}
.av-cta-prova__texto { flex: 1 1 auto; color: var(--av-branco-linho); }
.av-cta-prova__texto strong { display: block; font-family: var(--av-font-display); font-size: 1.35rem; margin-bottom: .2rem; }
.av-cta-prova__texto span { font-size: .9063rem; opacity: .85; }

/* =====================================================================
   Responsivo
   ===================================================================== */
/* =====================================================================
   12. QUIÉNES SOMOS (página)
   ===================================================================== */
.av-qs-hero__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 4.5rem 1.25rem 3rem;
}
.av-qs-hero__cabeca {
	text-align: center;
	position: relative;
	margin-bottom: 3rem;
}
.av-qs-hero__cabeca::after {
	/* rabisco decorativo azul, à direita sob o parágrafo */
	content: "";
	position: absolute;
	right: 6%;
	bottom: -3.4rem;
	width: 92px;
	height: 60px;
	background: var(--av-azul-kawaii);
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
	pointer-events: none;
}
.av-qs-hero__titulo {
	font-family: var(--av-font-display) !important;
	font-size: clamp(2.4rem, 5vw, 3.75rem);
	line-height: 1.12;
	margin: 1.1rem 0 1.4rem;
	text-wrap: balance;
}
.av-qs-hero__marca { color: var(--av-verde-escuro); }
.av-qs-hero__tagline { color: var(--av-verde-floresta); }
.av-qs-hero__p {
	max-width: 42rem;
	margin: 0 auto;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--av-verde-escuro);
}
.av-qs-hero__foto {
	border-radius: 24px;
	aspect-ratio: 21 / 10;
	overflow: hidden;
}
.av-qs-hero__foto--placeholder {
	background: repeating-linear-gradient(
		135deg,
		#efe3d2 0 14px,
		var(--av-branco-linho) 14px 28px
	);
	display: flex;
	align-items: center;
	justify-content: center;
}
.av-qs-hero__foto-etiqueta {
	background: #fff;
	border-radius: 6px;
	padding: .5rem .9rem;
	font-family: ui-monospace, "SF Mono", Menlo, monospace;
	font-size: .8125rem;
	color: var(--av-verde-escuro);
}

/* secção 2: nuestra historia */
.av-qs-historia__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 3rem 1.25rem 5rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 4.5rem;
	align-items: center;
}
.av-qs-historia__texto .av-h2 { margin: 1rem 0 1.3rem; }
.av-qs-historia__texto p {
	color: var(--av-verde-escuro);
	font-size: 1rem;
	line-height: 1.7;
	max-width: 56ch;
	margin: 0 0 1.1rem;
}
.av-qs-historia__media { position: relative; }
.av-qs-historia__foto {
	border-radius: 24px;
	aspect-ratio: 10 / 10.8;
	overflow: hidden;
}
.av-qs-historia__foto--placeholder {
	background: repeating-linear-gradient(
		135deg,
		#efe3d2 0 14px,
		var(--av-branco-linho) 14px 28px
	);
	display: flex;
	align-items: center;
	justify-content: center;
}
.av-qs-historia__stat {
	position: absolute;
	left: -1.6rem;
	bottom: 2.4rem;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 14px 34px rgba(10, 60, 35, .14);
	padding: 1.1rem 1.4rem;
	display: flex;
	align-items: center;
	gap: .8rem;
}
.av-qs-historia__stat strong {
	font-family: var(--av-font-display);
	font-size: 1.8rem;
	color: var(--av-verde-escuro);
	line-height: 1;
}
.av-qs-historia__stat span {
	font-size: .8125rem;
	color: var(--av-verde-escuro);
	max-width: 8ch;
	line-height: 1.3;
}

/* secção 3: cómo trabajamos (banda escura) */
.av-qs-como {
	background: var(--av-verde-escuro);
	position: relative;
	overflow: hidden;
	/* banda inset arredondada, como no design (bordas redondas em todo o site) */
	border-radius: 28px;
	margin-inline: clamp(1rem, 3vw, 3rem);
}
.av-qs-como::after {
	content: "";
	position: absolute;
	top: 4.5rem;
	right: 5rem;
	width: 130px;
	height: 80px;
	background: var(--av-azul-kawaii);
	opacity: .55;
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
	pointer-events: none;
}
.av-qs-como__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 4.5rem 1.25rem 5rem;
}
.av-qs-como__inner .av-h2 { margin: .9rem 0 2.2rem; }
.av-qs-como__cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}
.av-qs-como__card {
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .09);
	border-radius: 20px;
	padding: 1.8rem 1.7rem 1.9rem;
}
.av-qs-como__icono {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	background: var(--av-branco-linho);
	border-radius: 14px;
	margin-bottom: 1.3rem;
}
.av-qs-como__card h3 {
	font-family: var(--av-font-display) !important;
	font-size: 1.25rem;
	color: var(--av-branco-linho);
	margin: 0 0 .7rem;
}
.av-qs-como__card p {
	color: rgba(245, 238, 230, .82);
	font-size: .9375rem;
	line-height: 1.65;
	margin: 0;
}

/* tira de números */
.av-qs-stats__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 4rem 1.25rem;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}
.av-qs-stats__card {
	background: #fff;
	border-radius: 20px;
	padding: 1.9rem 1.4rem;
	text-align: center;
}
.av-qs-stats__card strong {
	display: block;
	font-family: var(--av-font-display);
	font-size: 2.1rem;
	color: var(--av-verde-escuro);
	line-height: 1.1;
	margin-bottom: .45rem;
}
.av-qs-stats__card span { font-size: .875rem; color: var(--av-verde-escuro); }

/* secção 4: ven a conocernos (cartão oliva) */
.av-qs-visita__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 1rem 1.25rem 5rem;
}
.av-qs-visita__card {
	position: relative;
	background: var(--av-verde-oliva);
	border-radius: 28px;
	padding: 3.4rem 3.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2.5rem;
}
.av-qs-visita__card::after {
	/* rabisco a sair do canto inferior direito, como no design */
	content: "";
	position: absolute;
	right: 2.2rem;
	bottom: -3.2rem;
	width: 92px;
	height: 120px;
	background: var(--av-azul-kawaii);
	opacity: .75;
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
	transform: rotate(80deg);
	pointer-events: none;
}
.av-qs-visita__texto .av-h2 { margin: 0 0 .8rem; }
.av-qs-visita__texto p {
	color: var(--av-verde-escuro);
	font-size: 1rem;
	line-height: 1.6;
	max-width: 48ch;
	margin: 0;
}
.av-qs-visita__ctas { display: flex; gap: .9rem; flex-shrink: 0; }
/* no cartão oliva o botão sólido é verde-escuro (design) */
.av-qs-visita__ctas .av-btn--solido { background: var(--av-verde-escuro); }
.av-qs-visita__ctas .av-btn--solido:hover { background: var(--av-verde-floresta); }

/* =====================================================================
   13. CONTACTO (página)
   ===================================================================== */
.av-ct-hero__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 4rem 1.25rem 2.5rem;
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	gap: 3rem;
	align-items: end;
}
.av-ct-hero__titulo {
	font-family: var(--av-font-display) !important;
	font-size: clamp(2.3rem, 4.6vw, 3.4rem);
	line-height: 1.12;
	color: var(--av-verde-escuro);
	margin: 1rem 0 0;
	text-wrap: balance;
}
.av-ct-hero__p {
	color: var(--av-verde-escuro);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 .4rem;
}

.av-ct-grelha__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 1.5rem 1.25rem 4rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 2.5rem;
	align-items: stretch;
}
.av-ct-grelha__canais { display: flex; flex-direction: column; gap: 1.5rem; height: 100%; }
.av-ct-grelha__duo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
	align-items: stretch;
}
.av-ct-card {
	display: block;
	background: #fff;
	border: 1px solid rgba(10, 60, 35, .08);
	border-radius: 20px;
	padding: 1.7rem 1.6rem;
	color: var(--av-verde-escuro);
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(10, 60, 35, .06);
	transition: transform .15s ease, box-shadow .15s ease;
}
.av-ct-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(10, 60, 35, .14); color: var(--av-verde-escuro); }
.av-ct-card--whatsapp { border-color: transparent; }
.av-ct-card svg { display: block; margin-bottom: 1.1rem; }
.av-ct-card h3 {
	font-family: var(--av-font-display) !important;
	font-size: 1.2rem;
	margin: 0 0 .55rem;
	color: inherit;
}
.av-ct-card p { font-size: .9rem; line-height: 1.55; margin: 0 0 1rem; color: inherit; opacity: .85; }
.av-ct-card__link { font-weight: 700; font-size: .9375rem; }
.av-ct-card--whatsapp { background: var(--av-verde-escuro); color: var(--av-branco-linho); }
.av-ct-card--whatsapp:hover { color: var(--av-branco-linho); }

.av-ct-info { background: #fff; border: 1px solid rgba(10, 60, 35, .08); border-radius: 20px; padding: .6rem 1.6rem; box-shadow: 0 6px 18px rgba(10, 60, 35, .06); }
.av-ct-info__linha {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	padding: 1.2rem 0;
	position: relative;
}
.av-ct-info__linha + .av-ct-info__linha { border-top: 1px solid rgba(10, 60, 35, .1); }
.av-ct-info__icono {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: var(--av-branco-linho);
	border-radius: 12px;
	color: var(--av-verde-floresta);
}
.av-ct-info__linha h3 {
	font-family: var(--av-font-display) !important;
	font-size: 1.05rem;
	margin: 0 0 .25rem;
	color: var(--av-verde-escuro);
}
.av-ct-info__linha p { font-size: .875rem; margin: 0; color: var(--av-verde-escuro); opacity: .85; }
.av-ct-info__chip {
	margin-left: auto;
	background: var(--av-verde-oliva);
	color: var(--av-verde-escuro);
	font-size: .8125rem;
	font-weight: 700;
	border-radius: 999px;
	padding: .35rem .85rem;
	white-space: nowrap;
}
.av-ct-info__chip--cerrado { background: #e8ddcd; }

.av-ct-mapa { position: relative; border-radius: 20px; overflow: hidden; flex: 1 1 auto; min-height: 360px; }
.av-ct-mapa iframe { width: 100%; height: 100%; border: 0; display: block; }
.av-ct-mapa__btn { position: absolute; right: 1rem; bottom: 1rem; box-shadow: 0 8px 22px rgba(10, 60, 35, .25); }

.av-ct-form { background: #fff; border: 1px solid rgba(10, 60, 35, .08); border-radius: 24px; padding: 2.6rem 2.8rem 2.8rem; box-shadow: 0 6px 18px rgba(10, 60, 35, .06); }
.av-ct-form .av-h2 { margin: 0 0 .5rem; }
.av-ct-form__sub { color: var(--av-verde-escuro); opacity: .85; font-size: .9375rem; margin: 0 0 1.8rem; }
.av-form__grelha {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 1.4rem;
}
.av-ct-form .av-form__campo { margin: 0 0 1.25rem; }
.av-ct-form .av-form__campo > label {
	display: block;
	font-weight: 700;
	font-size: .9375rem;
	color: var(--av-verde-escuro);
}
.av-form__opcional { font-weight: 400; opacity: .7; font-size: .85em; }
.av-ct-form .wpcf7-form-control-wrap { display: block; margin-top: .45rem; }
.av-ct-form input[type="text"],
.av-ct-form input[type="email"],
.av-ct-form input[type="tel"],
.av-ct-form select,
.av-ct-form textarea {
	width: 100%;
	background: var(--av-branco-linho);
	border: 1px solid #e2d5c0;
	border-radius: 12px;
	padding: .8rem 1rem;
	font-family: var(--av-font-text);
	font-size: .9375rem;
	color: var(--av-verde-escuro);
}
.av-ct-form input:focus,
.av-ct-form select:focus,
.av-ct-form textarea:focus {
	outline: 2px solid var(--av-verde-floresta);
	outline-offset: 1px;
	border-color: var(--av-verde-floresta);
}
.av-ct-form textarea { min-height: 9.5rem; resize: vertical; }
.av-form__rgpd { font-size: .875rem; color: var(--av-verde-escuro); margin: .2rem 0 1.4rem; }
.av-form__rgpd a { font-weight: 700; text-decoration: underline; color: var(--av-verde-floresta); }
.av-form__rgpd .wpcf7-list-item { margin: 0; }
.av-form__enviar { margin: 0; }
.av-form__enviar .wpcf7-submit {
	width: 100%;
	background: var(--av-verde-escuro);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 1rem 1.5rem;
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	transition: background .15s ease;
}
.av-form__enviar .wpcf7-submit:hover { background: var(--av-verde-floresta); }
.av-ct-form .wpcf7-not-valid-tip { font-size: .8125rem; color: #b3261e; margin-top: .3rem; }
.av-ct-form .wpcf7-response-output { border-radius: 12px; margin: 1.2rem 0 0; padding: .8rem 1rem; font-size: .9rem; }

.av-ct-cita__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 1rem 1.25rem 5rem;
}
.av-ct-cita__card {
	position: relative;
	overflow: hidden;
	background: var(--av-verde-escuro);
	border-radius: 28px;
	padding: 3rem 3.2rem;
	display: flex;
	align-items: center;
	gap: 1.8rem;
}
.av-ct-cita__card::after {
	content: "";
	position: absolute;
	top: 1.4rem;
	right: 8rem;
	width: 110px;
	height: 60px;
	background: var(--av-azul-kawaii);
	opacity: .55;
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
	pointer-events: none;
}
.av-ct-cita__icono {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	background: var(--av-branco-linho);
	border-radius: 16px;
}
.av-ct-cita__texto { flex: 1; }
.av-ct-cita__texto h2 {
	font-family: var(--av-font-display) !important;
	font-size: 1.6rem;
	color: var(--av-branco-linho);
	margin: 0 0 .45rem;
}
.av-ct-cita__texto p { color: rgba(245, 238, 230, .85); font-size: .9375rem; margin: 0; }

/* =====================================================================
   14. CESTA (carrinho)
   ===================================================================== */
.av-cesta {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 3rem 1.25rem 2.5rem;
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: 2.2rem;
	align-items: start;
}
.av-cesta__cabeca {
	grid-column: 1 / -1;
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}
.av-cesta__titulo {
	font-family: var(--av-font-display) !important;
	font-size: clamp(2.4rem, 5vw, 3.5rem);
	color: var(--av-verde-escuro);
	margin: 0 0 .4rem;
}
.av-cesta__sub { color: var(--av-verde-escuro); opacity: .8; font-size: .9375rem; margin: 0; }
.av-passos {
	display: flex;
	align-items: center;
	gap: 1rem;
	list-style: none;
	margin: 0 0 .5rem;
	padding: 0;
}
.av-passos__paso {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: .9375rem;
	font-weight: 700;
	color: rgba(10, 60, 35, .45);
	white-space: nowrap;
}
.av-passos__paso + .av-passos__paso::before {
	content: "";
	width: 2.6rem;
	height: 1px;
	background: rgba(10, 60, 35, .25);
	margin-right: 1rem;
}
.av-passos__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	border: 1.5px solid currentColor;
	font-size: .8125rem;
}
.av-passos__paso--activo { color: var(--av-verde-escuro); }
.av-passos__paso--activo .av-passos__num { background: var(--av-verde-escuro); border-color: var(--av-verde-escuro); color: #fff; }

.av-cesta__principal { display: flex; flex-direction: column; gap: 1.4rem; }

.av-cesta__barra-envio { background: #fff; border-radius: 18px; padding: 1.2rem 1.6rem; }
.av-cesta__barra-texto {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: .9375rem;
	color: var(--av-verde-escuro);
	margin-bottom: .7rem;
}
.av-cesta__barra-texto strong { color: var(--av-verde-floresta); }
.av-cesta__barra-valores { font-weight: 700; white-space: nowrap; }
.av-cesta__barra-pista { height: 8px; border-radius: 999px; background: #ece2d2; overflow: hidden; }
.av-cesta__barra-progreso { height: 100%; border-radius: 999px; background: var(--av-verde-oliva); }

.av-cesta__itens { background: #fff; border-radius: 20px; padding: .4rem 1.8rem; }
.av-cesta__linha {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto auto;
	gap: 1.4rem;
	align-items: center;
	padding: 1.5rem 0;
}
.av-cesta__linha + .av-cesta__linha { border-top: 1px solid rgba(10, 60, 35, .1); }
.av-cesta__foto img {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 14px;
	background: var(--av-branco-linho);
	display: block;
}
.av-eyebrow--mini { font-size: .6875rem; }
.av-cesta__nome { font-family: var(--av-font-display) !important; font-size: 1.15rem; margin: .2rem 0 .3rem; }
.av-cesta__nome a { color: var(--av-verde-escuro); }
.av-cesta__meta { font-size: .875rem; color: var(--av-verde-escuro); opacity: .9; margin: 0 0 .5rem; }
.av-cesta__stock { color: var(--av-verde-floresta); font-weight: 700; }
.av-cesta__stock--no { color: #b3261e; }
.av-cesta__acoes { font-size: .875rem; margin: 0; }
.av-cesta__acoes a { color: var(--av-verde-escuro); opacity: .75; margin-right: 1.1rem; text-decoration: underline; text-underline-offset: 2px; }
.av-cesta__acoes a:hover { opacity: 1; color: var(--av-verde-floresta); }
.av-cesta__qty .quantity {
	display: inline-flex;
	align-items: center;
	background: var(--av-branco-linho);
	border-radius: 999px;
	padding: .3rem .5rem;
}
.av-cesta__qty input.qty {
	width: 2.4rem;
	border: 0;
	background: transparent;
	text-align: center;
	font-weight: 700;
	color: var(--av-verde-escuro);
	-moz-appearance: textfield;
}
.av-cesta__qty input.qty::-webkit-outer-spin-button,
.av-cesta__qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.av-cesta__preco { font-family: var(--av-font-display); font-size: 1.25rem; font-weight: 700; color: var(--av-verde-escuro); white-space: nowrap; }

.av-cesta__rodape-form {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-top: 1.4rem;
}
.av-cesta__seguir { font-weight: 700; color: var(--av-verde-escuro); }
.av-cesta__seguir:hover { color: var(--av-verde-floresta); }
.av-cesta__cupon { display: flex; gap: .7rem; }
.av-cesta__cupon input {
	background: #fff;
	border: 1px solid rgba(10, 60, 35, .15);
	border-radius: 999px;
	padding: .65rem 1.2rem;
	font-family: var(--av-font-text);
	font-size: .9375rem;
	min-width: 15rem;
}
.av-oculto {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.av-cesta__usps {
	background: #fff;
	border-radius: 18px;
	padding: 1.3rem 1.8rem;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.2rem;
}
.av-cesta__usp { display: flex; align-items: center; gap: .9rem; color: var(--av-verde-escuro); }
.av-cesta__usp span:last-child { display: flex; flex-direction: column; font-size: .875rem; line-height: 1.4; }
.av-cesta__usp strong { font-size: .9375rem; }
.av-cesta__usp-icono {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: var(--av-branco-linho);
	border-radius: 12px;
}
a.av-cesta__usp:hover strong { color: var(--av-verde-floresta); }

/* o Porto põe overflow:hidden no .page-wrapper, o que mata position:sticky;
   overflow:clip corta igual mas não cria scroll container */
body.woocommerce-cart .page-wrapper { overflow: clip; }
.cart-collaterals { display: flex; flex-direction: column; gap: 1.4rem; position: sticky; top: 1.5rem; }
.av-resumen {
	background: #fff;
	border-radius: 24px;
	padding: 2.2rem 2.2rem 2rem;
	box-shadow: 0 6px 18px rgba(10, 60, 35, .06);
}
.av-resumen__titulo { font-family: var(--av-font-display) !important; font-size: 1.5rem; color: var(--av-verde-escuro); margin: 0 0 1.4rem; }
.av-resumen__linha {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: .9375rem;
	color: var(--av-verde-escuro);
	padding: .45rem 0;
}
.av-resumen__linha--suave { opacity: .75; }
.av-resumen__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	border-top: 1px solid rgba(10, 60, 35, .12);
	margin-top: .9rem;
	padding-top: 1.1rem;
	font-weight: 700;
	color: var(--av-verde-escuro);
}
.av-resumen__total span:last-child { font-family: var(--av-font-display); font-size: 1.9rem; }
.av-resumen__checkout { width: 100%; justify-content: center; text-align: center; margin-top: 1.4rem; font-size: 1.0625rem; padding: 1rem 1.5rem; }
.av-resumen__seguro { text-align: center; font-size: .8125rem; color: var(--av-verde-escuro); opacity: .7; margin: 1rem 0 .7rem; }
.av-resumen__chips { display: flex; justify-content: center; gap: .5rem; flex-wrap: wrap; }
.av-resumen__chips span {
	font-size: .75rem;
	font-weight: 700;
	color: var(--av-verde-escuro);
	border: 1px solid rgba(10, 60, 35, .2);
	border-radius: 6px;
	padding: .25rem .6rem;
}

.av-recoge {
	background: var(--av-azul-kawaii);
	border-radius: 20px;
	padding: 1.6rem 1.7rem;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	color: var(--av-verde-escuro); /* WCAG: nunca texto claro sobre azul */
}
.av-recoge__icono {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: rgba(255, 255, 255, .85);
	border-radius: 12px;
}
.av-recoge h3 { font-family: var(--av-font-display) !important; font-size: 1.1rem; color: inherit; margin: .2rem 0 .35rem; }
.av-recoge p { font-size: .875rem; line-height: 1.5; color: inherit; margin: 0; }

.av-cesta-extra {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 1rem 1.25rem 4.5rem;
}
.av-cesta-extra__cabeca {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.8rem;
}
.av-cesta-extra__grelha {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}
.av-cesta-extra__card {
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.av-cesta-extra__foto img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: var(--av-branco-linho);
	display: block;
}
.av-cesta-extra__corpo { padding: 1.1rem 1.3rem 1.3rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.av-cesta-extra__corpo h3 { font-family: var(--av-font-display) !important; font-size: 1.05rem; margin: 0; line-height: 1.3; }
.av-cesta-extra__corpo h3 a { color: var(--av-verde-escuro); }
.av-cesta-extra__pie {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding-top: .7rem;
}
.av-cesta-extra__preco { font-family: var(--av-font-display); font-weight: 700; font-size: 1.15rem; color: var(--av-verde-escuro); }
.av-cesta-extra__preco del { opacity: .55; font-size: .85em; margin-right: .3rem; }
.av-cesta-extra__preco ins { text-decoration: none; }
.av-cesta-extra__anadir { padding: .5rem 1.1rem; font-size: .875rem; }
.av-cesta--vacia { display: block; text-align: center; padding-block: 5rem; }
.av-cesta--vacia .av-cesta__sub { margin: .6rem 0 1.6rem; }

/* =====================================================================
   15. CHECKOUT
   ===================================================================== */
body.woocommerce-checkout .page-wrapper { overflow: clip; }
.av-checkout-cabeca {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 3rem 1.25rem 1.5rem;
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}
.av-checkout-cabeca__titulo {
	font-family: var(--av-font-display) !important;
	font-size: clamp(2.4rem, 5vw, 3.5rem);
	color: var(--av-verde-escuro);
	margin: 0 0 .4rem;
}
.av-checkout-cabeca__sub { color: var(--av-verde-escuro); opacity: .8; font-size: .9375rem; margin: 0; }
.av-passos__paso--feito { color: var(--av-verde-floresta); }
.av-passos__paso--feito a { color: inherit; display: flex; align-items: center; gap: .5rem; }
.av-passos__paso--feito .av-passos__num { background: var(--av-verde-floresta); border-color: var(--av-verde-floresta); color: #fff; }

.av-checkout {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: .5rem 1.25rem 4.5rem;
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: 2.2rem;
	align-items: start;
}
.av-checkout__esq { display: flex; flex-direction: column; gap: 1.6rem; min-width: 0; }
.av-checkout__card {
	background: #fff;
	border-radius: 24px;
	padding: 2.2rem 2.4rem 2.4rem;
	box-shadow: 0 6px 18px rgba(10, 60, 35, .06);
}
.av-checkout__card-cabeca {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: 1.6rem;
}
.av-checkout__card-cabeca h2 {
	font-family: var(--av-font-display) !important;
	font-size: 1.5rem;
	color: var(--av-verde-escuro);
	margin: 0;
	display: flex;
	align-items: center;
	gap: .8rem;
}
.av-checkout__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--av-verde-escuro);
	color: #fff;
	font-family: var(--av-font-text);
	font-size: .9375rem;
	flex-shrink: 0;
}
.av-checkout__login { font-size: .9375rem; color: var(--av-verde-escuro); margin: 0; }
.av-checkout__login a { font-weight: 700; color: var(--av-verde-floresta); }

/* campos nativos do Woo com a pele do design */
.av-checkout__campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.4rem; }
.av-checkout__campos .form-row { margin: 0 0 1.25rem; padding: 0; width: auto; float: none; }
.av-checkout__campos .form-row-wide,
.av-checkout__campos #billing_address_1_field,
.av-checkout__campos #order_comments_field { grid-column: 1 / -1; }
.av-checkout__campos label {
	display: block;
	font-weight: 700;
	font-size: .9375rem;
	color: var(--av-verde-escuro);
	margin-bottom: .45rem;
}
.av-checkout__campos label .optional { font-weight: 400; opacity: .7; }
.av-checkout__campos label .required { color: var(--av-verde-floresta); text-decoration: none; }
.av-checkout__campos .woocommerce-input-wrapper { display: block; }
.av-checkout__campos input.input-text,
.av-checkout__campos select,
.av-checkout__campos textarea {
	width: 100%;
	background: var(--av-branco-linho);
	border: 1px solid #e2d5c0;
	border-radius: 12px;
	padding: .8rem 1rem;
	font-family: var(--av-font-text);
	font-size: .9375rem;
	color: var(--av-verde-escuro);
}
.av-checkout__campos input.input-text:focus,
.av-checkout__campos select:focus,
.av-checkout__campos textarea:focus {
	outline: 2px solid var(--av-verde-floresta);
	outline-offset: 1px;
	border-color: var(--av-verde-floresta);
}
.av-checkout__campos textarea { min-height: 6.5rem; resize: vertical; }
.av-checkout__campos .woocommerce-invalid input.input-text,
.av-checkout__campos .woocommerce-invalid select { border-color: #b3261e; }
.av-checkout__campos #billing_country_field { display: none; }

.av-checkout__metodos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.2rem;
	margin-bottom: 1.6rem;
}
.av-checkout__metodo {
	display: flex;
	align-items: flex-start;
	gap: .8rem;
	border: 1.5px solid rgba(10, 60, 35, .15);
	border-radius: 16px;
	padding: 1.1rem 1.2rem;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}
.av-checkout__metodo:hover { border-color: var(--av-verde-floresta); }
.av-checkout__metodo--activo { border-color: var(--av-verde-escuro); background: rgba(10, 60, 35, .03); }
.av-checkout__metodo input { margin-top: .3rem; accent-color: var(--av-verde-escuro); }
.av-checkout__metodo-texto { display: flex; flex-direction: column; gap: .2rem; font-size: .875rem; color: var(--av-verde-escuro); }
.av-checkout__metodo-texto strong { font-size: 1rem; }

/* bloco de pago nativo (gateways reais) com a pele do design */
.av-checkout__card--pago .woocommerce-checkout-payment { background: transparent; }
.av-checkout__card--pago ul.wc_payment_methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .9rem; }
.av-checkout__card--pago li.wc_payment_method {
	border: 1.5px solid rgba(10, 60, 35, .15);
	border-radius: 16px;
	padding: 1rem 1.2rem;
}
.av-checkout__card--pago li.wc_payment_method > label {
	font-weight: 700;
	color: var(--av-verde-escuro);
	cursor: pointer;
	display: inline;
}
.av-checkout__card--pago li.wc_payment_method input[type="radio"] { accent-color: var(--av-verde-escuro); margin-right: .5rem; }
.av-checkout__card--pago .payment_box {
	background: var(--av-branco-linho);
	border-radius: 12px;
	padding: 1rem 1.2rem;
	margin-top: .8rem;
	font-size: .875rem;
	color: var(--av-verde-escuro);
}
.av-checkout__card--pago .woocommerce-privacy-policy-text { font-size: .8125rem; opacity: .75; }
/* termos e botão nativos vivem escondidos (o resumo tem os visíveis do mesmo form) */
.av-checkout__card--pago .woocommerce-terms-and-conditions-wrapper,
.av-checkout__card--pago .form-row.place-order,
.av-checkout__card--pago button#place_order { display: none !important; }

.av-checkout__dir { display: flex; flex-direction: column; gap: 1.4rem; position: sticky; top: 1.5rem; min-width: 0; }
.av-pedido {
	background: #fff;
	border-radius: 24px;
	padding: 2.2rem 2.2rem 2rem;
	box-shadow: 0 6px 18px rgba(10, 60, 35, .06);
}
.av-pedido__cabeca { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.4rem; }
.av-pedido__cabeca h2 { font-family: var(--av-font-display) !important; font-size: 1.5rem; color: var(--av-verde-escuro); margin: 0; }
.av-pedido__cabeca a { font-weight: 700; font-size: .9375rem; color: var(--av-verde-floresta); }
.av-pedido__itens { list-style: none; margin: 0 0 1.2rem; padding: 0 0 1.2rem; border-bottom: 1px solid rgba(10, 60, 35, .12); display: flex; flex-direction: column; gap: 1.1rem; }
.av-pedido__item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 1rem; align-items: center; }
.av-pedido__foto { position: relative; display: block; }
.av-pedido__foto img { width: 64px; height: 64px; object-fit: cover; border-radius: 12px; background: var(--av-branco-linho); display: block; }
.av-pedido__qty {
	position: absolute;
	top: -7px;
	left: -7px;
	min-width: 1.35rem;
	height: 1.35rem;
	border-radius: 999px;
	background: var(--av-verde-floresta);
	color: #fff;
	font-size: .75rem;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 .3rem;
}
.av-pedido__item-info { display: flex; flex-direction: column; gap: .15rem; }
.av-pedido__item-info strong { font-size: .9375rem; color: var(--av-verde-escuro); line-height: 1.3; }
.av-pedido__item-info small { font-size: .8125rem; color: var(--av-verde-escuro); opacity: .7; }
.av-pedido__item-preco { font-weight: 700; color: var(--av-verde-escuro); white-space: nowrap; }
.av-pedido__totais { display: flex; flex-direction: column; }
.av-pedido__linha-total { display: flex; justify-content: space-between; gap: 1rem; font-size: .9375rem; color: var(--av-verde-escuro); padding: .4rem 0; }
.av-pedido__linha-total--suave { opacity: .75; }
.av-pedido__gran-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	border-top: 1px solid rgba(10, 60, 35, .12);
	margin-top: .9rem;
	padding-top: 1.1rem;
	font-weight: 700;
	color: var(--av-verde-escuro);
}
.av-pedido__gran-total > span:last-child { font-family: var(--av-font-display); font-size: 1.9rem; }
/* a linha de IVA já existe em separado — o sufixo nativo do total sai */
.av-pedido__gran-total .includes_tax { display: none; }
.av-pedido__termos { font-size: .875rem; color: var(--av-verde-escuro); margin: 1.2rem 0 1.1rem; }
.av-pedido__termos label { display: flex; gap: .6rem; align-items: flex-start; cursor: pointer; }
.av-pedido__termos input { margin-top: .25rem; accent-color: var(--av-verde-escuro); }
.av-pedido__termos a { color: var(--av-verde-floresta); }
.av-pedido__submit { width: 100%; justify-content: center; text-align: center; font-size: 1.0625rem; padding: 1rem 1.5rem; display: inline-flex; align-items: center; gap: .6rem; border: 0; cursor: pointer; }
.av-pedido__nota { text-align: center; font-size: .8125rem; color: var(--av-verde-escuro); opacity: .7; margin: 1rem 0 0; }
.av-checkout__ayuda {
	background: #fff;
	border-radius: 20px;
	padding: 1.5rem 1.7rem;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}
.av-checkout__ayuda-icono {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: var(--av-branco-linho);
	border-radius: 12px;
}
.av-checkout__ayuda p { font-size: .875rem; line-height: 1.5; color: var(--av-verde-escuro); margin: 0; }
.av-checkout__ayuda a { color: var(--av-verde-floresta); font-weight: 700; }

/* =====================================================================
   16. CONTA (login / registo)
   ===================================================================== */
.av-cuenta {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding: 4rem 1.25rem 5rem;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 4rem;
	align-items: start;
}
.av-cuenta__painel { position: relative; padding-top: 1rem; }
.av-cuenta__painel::after {
	content: "";
	position: absolute;
	top: 0;
	right: 10%;
	width: 90px;
	height: 70px;
	background: var(--av-azul-kawaii);
	-webkit-mask: url("../img/linea-azul.svg") no-repeat center / contain;
	mask: url("../img/linea-azul.svg") no-repeat center / contain;
	pointer-events: none;
}
.av-cuenta__titulo {
	font-family: var(--av-font-display) !important;
	font-size: clamp(2.4rem, 4.8vw, 3.4rem);
	line-height: 1.15;
	color: var(--av-verde-escuro);
	margin: 1rem 0 1.4rem;
	text-wrap: balance;
}
.av-cuenta__p { color: var(--av-verde-escuro); font-size: 1rem; line-height: 1.65; max-width: 46ch; margin: 0 0 2rem; }
.av-cuenta__beneficios { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.av-cuenta__beneficios li { display: flex; align-items: center; gap: 1rem; color: var(--av-verde-escuro); font-size: .9375rem; }
.av-cuenta__picto {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 4px 12px rgba(10, 60, 35, .06);
}
.av-cuenta__card {
	background: #fff;
	border-radius: 28px;
	padding: 2.4rem 2.6rem 2.6rem;
	box-shadow: 0 14px 40px rgba(10, 60, 35, .1);
}
.av-cuenta__tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	background: var(--av-branco-linho);
	border-radius: 999px;
	padding: .3rem;
	margin-bottom: 1.8rem;
}
.av-cuenta__tabs:has(> :only-child) { grid-template-columns: 1fr; }
.av-cuenta__tab {
	border: 0;
	background: transparent;
	border-radius: 999px;
	padding: .75rem 1rem;
	font-family: var(--av-font-text);
	font-weight: 700;
	font-size: .9375rem;
	color: var(--av-verde-escuro);
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
.av-cuenta__tab--activo { background: var(--av-verde-escuro); color: #fff; }
.av-cuenta__campo { margin: 0 0 1.25rem; }
.av-cuenta__campo label {
	display: block;
	font-weight: 700;
	font-size: .9375rem;
	color: var(--av-verde-escuro);
	margin-bottom: .45rem;
}
.av-cuenta__campo input.input-text {
	width: 100%;
	background: var(--av-branco-linho);
	border: 1px solid #e2d5c0;
	border-radius: 12px;
	padding: .85rem 1rem;
	font-family: var(--av-font-text);
	font-size: .9375rem;
	color: var(--av-verde-escuro);
}
.av-cuenta__campo input.input-text:focus {
	outline: 2px solid var(--av-verde-floresta);
	outline-offset: 1px;
	border-color: var(--av-verde-floresta);
}
.av-cuenta__pass { position: relative; display: block; }
.av-cuenta__pass input { padding-right: 3rem; }
.av-cuenta__ojo {
	position: absolute;
	right: .6rem;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: var(--av-verde-escuro);
	opacity: .6;
	cursor: pointer;
	padding: .3rem;
	line-height: 0;
}
.av-cuenta__ojo:hover { opacity: 1; }
.av-cuenta__linha-aux {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: .875rem;
	color: var(--av-verde-escuro);
	margin: 0 0 1.4rem;
}
.av-cuenta__linha-aux label { display: flex; align-items: center; gap: .45rem; cursor: pointer; }
.av-cuenta__linha-aux input { accent-color: var(--av-verde-escuro); }
.av-cuenta__linha-aux a { font-weight: 700; color: var(--av-verde-floresta); }
.av-cuenta__nota { font-size: .875rem; color: var(--av-verde-escuro); opacity: .8; margin: 0 0 1.4rem; }
.av-cuenta__submit { width: 100%; justify-content: center; text-align: center; font-size: 1.0625rem; padding: 1rem 1.5rem; border: 0; cursor: pointer; }

@media (max-width: 991px) {
	.av-cuenta { grid-template-columns: 1fr; gap: 2.5rem; }
	.av-cuenta__painel::after { display: none; }
	.av-cuenta__card { padding: 1.8rem 1.4rem 2rem; }
	.av-checkout { grid-template-columns: 1fr; }
	.av-checkout__dir { position: static; }
	.av-checkout__campos { grid-template-columns: 1fr; }
	.av-checkout__metodos { grid-template-columns: 1fr; }
	.av-checkout__card { padding: 1.8rem 1.4rem 2rem; }
	.av-cesta { grid-template-columns: 1fr; }
	.cart-collaterals { position: static; }
	.av-cesta__linha { grid-template-columns: 72px minmax(0, 1fr); }
	.av-cesta__foto img { width: 72px; height: 72px; }
	.av-cesta__qty { grid-column: 2; justify-self: start; }
	.av-cesta__preco { grid-column: 2; justify-self: start; }
	.av-cesta__usps { grid-template-columns: 1fr; }
	.av-cesta-extra__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.av-ct-hero__inner, .av-ct-grelha__inner { grid-template-columns: 1fr; }
	.av-ct-mapa { flex: none; aspect-ratio: 4 / 3; min-height: 0; }
	.av-ct-form { padding: 1.8rem 1.4rem 2rem; }
	.av-ct-cita__card { flex-direction: column; align-items: flex-start; padding: 2.2rem 1.8rem; }
	.av-ct-cita__card::after { display: none; }
	.av-qs-visita__card { flex-direction: column; align-items: flex-start; padding: 2.4rem 1.8rem; }
	.av-qs-visita__card::after { display: none; }
	.av-qs-historia__inner { grid-template-columns: 1fr; gap: 2.5rem; }
	.av-qs-historia__stat { left: 1rem; }
	.av-qs-como__cards { grid-template-columns: 1fr; }
	.av-qs-como::after { display: none; }
	.av-qs-stats__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.av-header-search { display: none; }
	.av-header-nav { display: none; }
	.av-header .mobile-toggle { display: inline-flex; align-items: center; }
	.av-header-main__inner { gap: 1rem; }
	/* QA mobile (390px): o toggle acabava 13px FORA do ecrã e a morada da
	   top bar partia em duas linhas, comendo 81px de altura */
	.av-header-main__inner,
	.av-topbar-info__inner { padding-inline: 1rem; }
	.av-header-acciones { gap: .75rem; flex-shrink: 0; }
	.av-header-logo img { max-width: 150px; height: auto; }
	.av-topbar-info__left span:first-child { display: none; } /* morada: fica no rodapé e no contacto */
	.av-topbar-info__left .av-topbar-info__sep { display: none; }
	.av-accion span { display: none; }
	.av-accion--cesta .av-accion__rotulo { display: none; }

	.av-hero__inner {
		grid-template-columns: 1fr;
		gap: 0;
		min-height: 0;
		padding-top: 2rem;
	}
	.av-hero__texto { padding-bottom: 2rem; }
	.av-hero__titulo { font-size: clamp(2.2rem, 10vw, 3rem); }
	.av-hero__cta { width: auto; }
	/* o grafismo recolhe para a direita: no telemóvel cruzava o texto */
	.av-hero__grafismo { width: 78%; opacity: .8; }
	.av-hero__media img { max-width: 100%; }
	.av-card-flotante { left: 1rem; bottom: 1rem; }

	.av-usps__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.av-carrossel { grid-auto-columns: calc(50% - .75rem); }
	.av-blog__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.av-quienes__inner { grid-template-columns: 1fr; gap: 2.5rem; padding: 3rem 1.25rem; }
	.av-arquivo__corpo { grid-template-columns: 1fr; }
	.av-arquivo__filtros { order: 2; }
	.av-arquivo__principal ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.av-arquivo__cabeca-inner { flex-direction: column; gap: 1.2rem; }
	.av-ficha__topo { grid-template-columns: 1fr; gap: 2rem; }
	.av-ficha__detalhe { grid-template-columns: 1fr; padding: 1.8rem 1.4rem; gap: 2rem; }
	.av-cta-prova__inner { flex-direction: column; text-align: center; padding: 2rem 1.5rem; }
	.av-relacionados__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.av-news__inner { flex-direction: column; align-items: stretch; text-align: left; }
	.av-quienes::after { top: 1.2rem; right: 1.2rem; width: 90px; height: 56px; }
}

@media (max-width: 575px) {
	.av-cesta-extra__grelha { grid-template-columns: 1fr; }
	.av-passos__paso + .av-passos__paso::before { width: 1.2rem; margin-right: .5rem; }
	.av-ct-grelha__duo, .av-form__grelha { grid-template-columns: 1fr; }
	.av-qs-stats__inner { grid-template-columns: 1fr; }
	.av-qs-hero__foto { aspect-ratio: 4 / 3; }
	.av-qs-hero__cabeca::after { display: none; }
	.av-usps__inner { grid-template-columns: 1fr; }
	.av-carrossel { grid-auto-columns: 82%; }
	.av-blog__grelha { grid-template-columns: 1fr; }
	.av-arquivo__principal ul.products { grid-template-columns: 1fr; }
	.av-relacionados__grelha { grid-template-columns: 1fr; }
	.av-marcas__lista { gap: .9rem 1.6rem; }
}


/* =====================================================================
   17. BANNER DE COOKIES (Complianz) — pele da marca
   O plugin traz um azul (#1e73be) que não existe na nossa paleta e que no
   telemóvel é a primeira coisa que o cliente vê. Também escondia o link
   para a nossa política (classe cmplz-hidden herdada), deixando o banner
   sem caminho nenhum para ela.
   ===================================================================== */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
	border-radius: 20px !important;
	font-family: var(--av-font-text) !important;
}
#cmplz-cookiebanner-container .cmplz-header .cmplz-title,
#cmplz-cookiebanner-container .cmplz-body .cmplz-message {
	color: var(--av-verde-escuro) !important;
}
#cmplz-cookiebanner-container .cmplz-btn {
	border-radius: 999px !important;
	font-family: var(--av-font-text) !important;
	font-weight: 700 !important;
	padding: .8rem 1.2rem !important;
}
#cmplz-cookiebanner-container .cmplz-btn.cmplz-accept {
	background: var(--av-verde-escuro) !important;
	border-color: var(--av-verde-escuro) !important;
	color: #fff !important;
}
#cmplz-cookiebanner-container .cmplz-btn.cmplz-deny,
#cmplz-cookiebanner-container .cmplz-btn.cmplz-view-preferences,
#cmplz-cookiebanner-container .cmplz-btn.cmplz-save-preferences {
	background: var(--av-branco-linho) !important;
	border: 1.5px solid rgba(10, 60, 35, .25) !important;
	color: var(--av-verde-escuro) !important;
}
/* o link da política vive dentro da mensagem (ver includes/cookies.php) */
#cmplz-cookiebanner-container .cmplz-message a.av-politica-cookies {
	color: var(--av-verde-floresta) !important;
	font-weight: 700;
	text-decoration: underline;
}
/* itens de lista sem link visível deixavam marcadores soltos (• • •) */
#cmplz-cookiebanner-container .cmplz-links ul { list-style: none !important; padding-left: 0 !important; }
#cmplz-cookiebanner-container .cmplz-links li:not(:has(a:not(.cmplz-hidden))) { display: none !important; }


/* filtros colapsados no telemóvel (QA mobile: mediam 15.472px) */
.av-filtros-toggle { display: none; }
@media (max-width: 991px) {
	.av-filtros-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		background: #fff;
		border: 1.5px solid rgba(10, 60, 35, .15);
		border-radius: 999px;
		padding: .9rem 1.4rem;
		margin: 1.5rem 0 .5rem;
		font-family: var(--av-font-text);
		font-weight: 700;
		font-size: .9375rem;
		color: var(--av-verde-escuro);
		cursor: pointer;
	}
	.av-filtros-toggle::after {
		content: "";
		width: 10px;
		height: 10px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translate(-2px, -2px);
		transition: transform .18s ease;
	}
	.av-filtros-toggle--aberto::after { transform: rotate(-135deg) translate(-2px, -2px); }
	.av-arquivo__filtros.av-filtros--fechado { display: none; }
}

/* =====================================================================
   18. MEGA MENU — painéis dentro do ecrã
   Descoberto no QA de desktop (2026-08-14): os painéis largos estavam
   ancorados ao <li> e com 1110px fixos, por isso 4 dos 5 saíam do ecrã
   (até 453px no "Mamá") e criavam scroll horizontal em TODAS as páginas.
   Passam a ancorar na barra de navegação e a acompanhar a sua largura.
   ===================================================================== */
.av-header-nav__inner { position: relative; }
/* o Porto marca position:relative no <li> por CSS e escreve left/right
   INLINE por JS — daí a especificidade alta e os !important */
#header .av-header-nav .main-menu > li.wide { position: static !important; }
#header .av-header-nav .main-menu > li.wide > .popup {
	left: 0 !important;
	right: 0 !important;
	width: auto !important;
	max-width: 100%;
}

/* =====================================================================
   19. EXPLORA NUESTRO UNIVERSO (homepage) — design 2026-08-14
   ===================================================================== */
.av-uni {
	position: relative;
	background: var(--av-branco-linho);
	overflow: hidden;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding: clamp(3rem, 6vw, 5rem) 0 clamp(3rem, 6vw, 5rem);
}
.av-uni__curva {
	position: absolute;
	top: -2rem;
	right: -3rem;
	width: min(52%, 700px);
	opacity: .8;
	pointer-events: none;
}
.av-uni__curva img { width: 100%; height: auto; display: block; }

.av-uni__inner {
	position: relative;
	z-index: 1;
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
}

.av-uni__cabeca {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 2.5rem;
	align-items: start;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.av-uni__titulo {
	margin: 0;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.12;
	color: var(--av-verde-floresta);
}
.av-uni__intro {
	margin: .5rem 0 0;
	font-size: clamp(1rem, 1.3vw, 1.125rem);
	line-height: 1.6;
	color: var(--av-verde-escuro);
	max-width: 46ch;
}

.av-uni__grelha {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(1rem, 1.6vw, 1.6rem);
}
.av-uni__card--paseo,
.av-uni__card--lista { grid-column: span 3; min-height: 440px; }
.av-uni__card--seguridad,
.av-uni__card--habitacion,
.av-uni__card--alquiler { grid-column: span 2; min-height: 420px; }

.av-uni__card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 26px;
	padding: clamp(1.6rem, 2.4vw, 2.4rem);
	/* verde muito claro derivado dos tokens, como no design */
	background: color-mix(in srgb, var(--av-verde-oliva) 17%, var(--av-branco-linho));
	color: var(--av-verde-escuro);
	transition: transform .18s ease, box-shadow .18s ease;
}
.av-uni__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 38px rgba(10, 60, 35, .12);
	color: var(--av-verde-escuro);
}
.av-uni__card-topo {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}
.av-uni__card-titulo {
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: clamp(1.35rem, 2vw, 1.9rem);
	line-height: 1.15;
	color: var(--av-verde-floresta);
	max-width: 11ch;
}
.av-uni__picto { flex-shrink: 0; line-height: 0; }
.av-uni__picto img { width: clamp(44px, 4vw, 60px); height: auto; }

.av-uni__card-desc {
	margin-top: clamp(1rem, 2vw, 1.8rem);
	font-size: .9375rem;
	line-height: 1.55;
	max-width: 34ch;
}

.av-uni__card-foto {
	margin-top: auto;
	padding-top: 1.2rem;
	line-height: 0;
}
/* as imagens da designer são pequenas (151–393px de largura): limita-se
   pela ALTURA e nunca se ampliam além do tamanho nativo, para não ficarem
   moles. Ver checklist §7l — pedir exports maiores. */
.av-uni__card-foto img {
	width: auto;
	max-width: 100%;
	height: auto;
	display: block;
}
.av-uni__card--paseo .av-uni__card-foto img { max-height: 260px; }
.av-uni__card--seguridad .av-uni__card-foto img,
.av-uni__card--habitacion .av-uni__card-foto img,
.av-uni__card--alquiler .av-uni__card-foto img { max-height: 190px; }

/* o cartão das listas leva a foto a sangrar no canto, como no design */
.av-uni__card--lista { padding-bottom: 0; padding-right: 0; }
.av-uni__card--lista .av-uni__card-topo,
.av-uni__card--lista .av-uni__card-desc { padding-right: clamp(1.6rem, 2.4vw, 2.4rem); }
.av-uni__card--lista .av-uni__card-foto { padding-top: 0; }
.av-uni__card--lista .av-uni__card-foto img { width: 100%; max-width: none; margin-left: auto; }

.av-uni__seta {
	position: absolute;
	right: clamp(1.2rem, 2vw, 2rem);
	bottom: clamp(1.2rem, 2vw, 2rem);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--av-verde-oliva);
	color: #fff;
	transition: transform .18s ease;
}
.av-uni__card:hover .av-uni__seta { transform: translateX(3px); }
.av-uni__card--seguridad .av-uni__seta { background: var(--av-verde-floresta); }
.av-uni__card--habitacion .av-uni__seta,
.av-uni__card--alquiler .av-uni__seta { background: var(--av-azul-kawaii); color: var(--av-verde-escuro); }

@media (max-width: 991px) {
	.av-uni__cabeca { grid-template-columns: 1fr; gap: 1.2rem; }
	.av-uni__intro { max-width: none; }
	.av-uni__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.av-uni__card--paseo,
	.av-uni__card--lista { grid-column: span 2; min-height: 400px; }
	.av-uni__card--seguridad,
	.av-uni__card--habitacion,
	.av-uni__card--alquiler { grid-column: span 1; min-height: 380px; }
	.av-uni__curva { width: 70%; top: -1rem; right: -4rem; opacity: .5; }
}
@media (max-width: 575px) {
	.av-uni__grelha { grid-template-columns: 1fr; }
	.av-uni__card--paseo,
	.av-uni__card--lista,
	.av-uni__card--seguridad,
	.av-uni__card--habitacion,
	.av-uni__card--alquiler { grid-column: span 1; min-height: 0; }
	.av-uni__card-titulo { max-width: none; }
	.av-uni__card-desc { max-width: none; }
	.av-uni__card-foto { padding-top: 1.5rem; }
	.av-uni__card-foto img { margin-inline: auto; }
	.av-uni__card--lista .av-uni__card-foto img { margin-inline: 0 0; }
}

/* =====================================================================
   20. NOVEDADES DEL MES (banda escura com carrossel) — design 2026-08-14
   ===================================================================== */
.av-nov {
	position: relative;
	overflow: hidden;
	background: var(--av-verde-floresta);
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}
.av-nov__curva {
	position: absolute;
	top: -1rem;
	left: -4rem;
	width: min(42%, 560px);
	opacity: .16;
	pointer-events: none;
}
.av-nov__curva img { width: 100%; height: auto; display: block; filter: brightness(0) invert(1); }

.av-nov__inner {
	position: relative;
	z-index: 1;
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: center;
}
.av-nov__titulo {
	font-family: var(--av-font-display) !important;
	font-weight: 700;
	font-size: clamp(1.8rem, 3.2vw, 2.6rem);
	line-height: 1.12;
	color: var(--av-branco-linho);
	margin: 0 0 1rem;
}
.av-nov__intro {
	color: rgba(245, 238, 230, .88);
	font-size: .9375rem;
	line-height: 1.6;
	margin: 0 0 1.6rem;
	max-width: 30ch;
}

.av-nov__pista-wrap { position: relative; min-width: 0; }
.av-nov__pista {
	display: flex;
	gap: clamp(.9rem, 1.5vw, 1.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.av-nov__pista::-webkit-scrollbar { display: none; }
.av-nov__card {
	flex: 0 0 clamp(200px, 20vw, 240px);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: var(--av-branco-linho);
	border-radius: 18px;
	padding: 1rem 1rem 1.1rem;
}
.av-nov__foto { display: block; line-height: 0; margin-bottom: .9rem; }
.av-nov__foto img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	border-radius: 12px;
}
.av-nov__linha {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: .6rem;
	margin-bottom: .9rem;
}
.av-nov__nome {
	font-family: var(--av-font-display);
	font-weight: 700;
	font-size: .9375rem;
	line-height: 1.25;
	color: var(--av-verde-escuro);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.av-nov__nome:hover { color: var(--av-verde-floresta); }
.av-nov__preco { font-size: .875rem; font-weight: 700; color: var(--av-verde-escuro); white-space: nowrap; }
.av-nov__preco del { opacity: .55; font-weight: 400; margin-right: .2rem; }
.av-nov__preco ins { text-decoration: none; }
.av-nov__botao {
	margin-top: auto;
	display: block;
	text-align: center;
	background: var(--av-verde-oliva);
	color: #fff;
	border-radius: 999px;
	padding: .6rem 1rem;
	font-family: var(--av-font-text);
	font-size: .8125rem;
	font-weight: 700;
	transition: background .15s ease;
}
.av-nov__botao:hover { background: var(--av-verde-escuro); color: #fff; }

.av-nov__seta {
	position: absolute;
	top: 50%;
	right: -.5rem;
	transform: translateY(-50%);
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 0;
	background: var(--av-branco-linho);
	color: var(--av-verde-escuro);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
	transition: transform .15s ease;
}
.av-nov__seta:hover { transform: translateY(-50%) scale(1.08); }
.av-nov__seta--tras { right: auto; left: -.5rem; }

/* =====================================================================
   21. NUESTROS VALORES (três cartões com medalhão) — design 2026-08-14
   ===================================================================== */
.av-val {
	background: var(--av-branco-linho);
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(3rem, 6vw, 5rem);
}
.av-val__inner {
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
}
.av-val__titulo {
	color: var(--av-verde-floresta);
	font-size: clamp(1.8rem, 3.4vw, 2.6rem);
	margin: 0 0 clamp(3rem, 5vw, 4rem);
}
.av-val__grelha {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 3rem);
}
.av-val__card {
	position: relative;
	border-radius: 22px;
	border: 1.5px solid;
	padding: 3.2rem 1.8rem 2.2rem;
	text-align: center;
}
.av-val__medalha {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: var(--av-branco-linho);
	border: 1.5px solid;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.av-val__medalha img { width: 46px; height: auto; }
.av-val__card-titulo {
	font-family: var(--av-font-display) !important;
	font-weight: 700;
	font-size: clamp(1.2rem, 1.8vw, 1.5rem);
	margin: 0 0 .8rem;
}
.av-val__card-desc {
	font-size: .9375rem;
	line-height: 1.6;
	color: var(--av-verde-escuro);
	margin: 0;
}
/* uma cor por cartão, como no design */
.av-val__card--dedicacion { border-color: var(--av-verde-oliva); background: color-mix(in srgb, var(--av-verde-oliva) 14%, var(--av-branco-linho)); }
.av-val__card--dedicacion .av-val__medalha { border-color: var(--av-verde-oliva); }
.av-val__card--dedicacion .av-val__card-titulo { color: var(--av-verde-oliva); }

.av-val__card--seguridad { border-color: var(--av-azul-kawaii); background: color-mix(in srgb, var(--av-azul-kawaii) 12%, var(--av-branco-linho)); }
.av-val__card--seguridad .av-val__medalha { border-color: var(--av-azul-kawaii); }
/* o mock punha este título em azul: 2,6:1 sobre fundo claro, chumba a
   auditoria. O azul fica no contorno e no medalhão; o título em
   verde-escuro (mesma excepção já aplicada ao chip ALQUILER). */
.av-val__card--seguridad .av-val__card-titulo { color: var(--av-verde-escuro); }

.av-val__card--proximidad { border-color: var(--av-verde-floresta); background: color-mix(in srgb, var(--av-verde-floresta) 12%, var(--av-branco-linho)); }
.av-val__card--proximidad .av-val__medalha { border-color: var(--av-verde-floresta); }
.av-val__card--proximidad .av-val__card-titulo { color: var(--av-verde-floresta); }

@media (max-width: 991px) {
	.av-nov__inner { grid-template-columns: 1fr; }
	.av-nov__intro { max-width: none; }
	.av-nov__seta { display: none; }
	.av-val__grelha { grid-template-columns: 1fr; gap: 4rem; }
}

/* =====================================================================
   22. EMPODERAMOS CON CONOCIMIENTO (banda oliva ondulada) — 2026-08-14
   Contraste: branco sobre oliva dá 2,27:1 e chumba. O texto vai a
   verde-escuro (5,50:1 ✓), mesma excepção do chip ALQUILER.
   ===================================================================== */
.av-con {
	position: relative;
	background: var(--av-verde-oliva);
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	/* sem margens: encosta às secções vizinhas, como no design. O padding
	   tem de ser maior do que a onda (até 84px), senão o texto e o CTA
	   ficam por baixo dela. */
	padding: clamp(5rem, 9vw, 7rem) 0 clamp(5rem, 9vw, 7rem);
	overflow: hidden;
}
/* ondas: recortes em linho que comem o topo e a base da banda */
.av-con__onda {
	position: absolute;
	left: -1px;
	right: -1px;
	width: calc(100% + 2px);
	height: clamp(44px, 5.5vw, 84px);
	display: block;
	z-index: 2;
	pointer-events: none;
}
.av-con__onda--topo { top: -1px; }
.av-con__onda--base { bottom: -1px; }

.av-con__curva {
	position: absolute;
	top: 12%;
	left: 2%;
	width: min(34%, 440px);
	opacity: .35;
	pointer-events: none;
}
.av-con__curva img { width: 100%; height: auto; display: block; }

.av-con__inner {
	position: relative;
	z-index: 1;
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
	display: grid;
	grid-template-columns: minmax(0, .82fr) minmax(0, 1fr) minmax(0, 1.15fr);
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: end;
}
.av-con__foto {
	align-self: end;
	line-height: 0;
	/* entra na zona da onda: é ela que corta a figura */
	margin-bottom: calc(-1 * clamp(5rem, 9vw, 7rem));
}
.av-con__foto img { width: 100%; max-width: 340px; height: auto; display: block; }

.av-con__titulo {
	font-family: var(--av-font-display) !important;
	font-weight: 700;
	font-size: clamp(1.7rem, 3vw, 2.5rem);
	line-height: 1.14;
	color: var(--av-verde-escuro);
	margin: 0 0 clamp(2rem, 5vw, 4rem);
}
.av-con__lado { padding-bottom: clamp(2rem, 5vw, 4rem); }
.av-con__p {
	color: var(--av-verde-escuro);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 1.5rem;
	max-width: 42ch;
}
.av-con__cta {
	background: var(--av-branco-linho);
	color: var(--av-verde-floresta);
	padding: .9rem 2rem;
}
.av-con__cta:hover { background: #fff; color: var(--av-verde-escuro); }

/* =====================================================================
   23. NUESTROS ARTÍCULOS (blog) — design 2026-08-14
   Contraste: o mock punha o título da secção a azul sobre linho (2,30:1)
   e o texto dos cartões a branco sobre azul (2,64:1) — ambos chumbam.
   Título em verde-floresta; texto dos cartões em verde-escuro (4,72:1 ✓).
   ===================================================================== */
.av-blog {
	position: relative;
	background: var(--av-branco-linho);
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem);
	overflow: hidden;
}
.av-blog__curva {
	position: absolute;
	top: 8%;
	right: -6%;
	width: min(50%, 660px);
	opacity: .5;
	pointer-events: none;
}
.av-blog__curva img { width: 100%; height: auto; display: block; }

.av-blog__inner {
	position: relative;
	z-index: 1;
	max-width: var(--av-largura-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
}
.av-blog__cabeca {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 2.5rem;
	align-items: start;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.av-blog__titulo {
	font-family: var(--av-font-display) !important;
	font-weight: 700;
	font-size: clamp(1.9rem, 3.6vw, 2.8rem);
	line-height: 1.12;
	color: var(--av-verde-floresta);
	margin: 0;
}
.av-blog__intro {
	margin: .4rem 0 0;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--av-verde-escuro);
	max-width: 46ch;
}

.av-blog__grelha {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.2rem, 2vw, 2rem);
}
.av-blog__card {
	display: flex;
	flex-direction: column;
	border-radius: 20px;
	overflow: hidden;
	background: var(--av-azul-kawaii);
}
.av-blog__foto { display: block; line-height: 0; }
.av-blog__foto img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}
.av-blog__corpo {
	position: relative;
	padding: 1.3rem 1.4rem 3.6rem;
	color: var(--av-verde-escuro);
}
.av-blog__data {
	display: inline-block;
	border: 1px solid rgba(10, 60, 35, .35);
	border-radius: 999px;
	padding: .2rem .7rem;
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .06em;
	margin-bottom: .8rem;
}
.av-blog__card-titulo {
	font-family: var(--av-font-display) !important;
	font-weight: 700;
	font-size: 1.0625rem;
	line-height: 1.3;
	margin: 0 0 .6rem;
}
.av-blog__card-titulo a { color: var(--av-verde-escuro); }
.av-blog__card-titulo a:hover { color: #fff; }
.av-blog__resumo {
	font-size: .875rem;
	line-height: 1.5;
	margin: 0;
	opacity: .92;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.av-blog__seta {
	position: absolute;
	right: 1.2rem;
	bottom: 1.2rem;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--av-branco-linho);
	color: var(--av-verde-escuro);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .15s ease;
}
.av-blog__seta:hover { transform: translateX(3px); color: var(--av-verde-floresta); }
.av-blog__rodape { margin: clamp(1.5rem, 3vw, 2.5rem) 0 0; }

@media (max-width: 991px) {
	.av-con__inner { grid-template-columns: 1fr; text-align: left; }
	.av-con__foto img { max-width: 260px; margin-inline: auto; }
	.av-con__titulo { margin-bottom: 1.2rem; }
	.av-con__lado { padding-bottom: 3rem; }
	.av-blog__cabeca { grid-template-columns: 1fr; gap: 1rem; }
	.av-blog__intro { max-width: none; }
	.av-blog__grelha { grid-template-columns: 1fr; }
}
