/* CAVELLE — cvl-site.css
   Gerado de site-referencia/assets/css/style.css (classes com prefixo cvl-).
   Não edite à mão a parte de cima: rode tema-cvl/gerar-css.ps1. */
/* ============================================================
   CAVELLE — Folha de estilo
   Identidade: preto #0F0F0F · bege #F6E7D5 · off-white #FFFCFC
   Tipografia: Kingred Modern (títulos) + Poppins (textos)
   ============================================================ */

/* Fontes hospedadas no próprio site (mais rápido e sem enviar dados ao Google).
   Kingred Modern é a fonte comercial da identidade visual: se estiver instalada
   no computador ela já é usada. Para usá-la no site publicado, copie o arquivo
   para assets/fonts/KingredModern.woff2 e descomente a linha "url(...)" abaixo.
   Enquanto isso, os títulos usam Cormorant Garamond. */
@font-face {
  font-family: 'Kingred Modern';
  src: local('Kingred Modern'), local('KingredModern-Regular');
  /* src: local('Kingred Modern'), url('../fonts/KingredModern.woff2') format('woff2'); */
  font-weight: 400; font-style: normal; font-display: swap;
}

:root {
  --preto: #0F0F0F;
  --bege: #F6E7D5;
  --bege-claro: #FBF3EA;
  --off: #FFFCFC;
  --branco: #FFFFFF;
  --suave: #6B625B;
  --linha: #ECE1D5;
  --linha-forte: #D9CBBB;
  --erro: #9B2C2C;
  --ok: #3F5E45;

  --f-titulo: 'Kingred Modern', 'Cormorant Garamond', 'Times New Roman', serif;
  --f-texto: 'Poppins', 'Helvetica Neue', Arial, sans-serif;

  --largura: 1320px;
  --gutter: clamp(16px, 4vw, 48px);
  --altura-faixa: 34px;
  --altura-header: 118px;
  --ease: cubic-bezier(.22, .61, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--off);
  color: var(--preto);
  font-family: var(--f-texto);
  font-weight: 300;
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; }
p { margin: 0; }
ul { list-style: none; margin: 0; padding: 0; }
:focus-visible { outline: 1px solid var(--preto); outline-offset: 3px; }
body.cvl-trava { overflow: hidden; }

.cvl-container { width: 100%; max-width: var(--largura); margin: 0 auto; padding: 0 var(--gutter); }
.cvl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── Tipografia ─────────────────────────────────────────── */
.cvl-titulo-display {
  font-family: var(--f-titulo);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1.02;
}
.cvl-titulo-secao {
  font-family: var(--f-titulo);
  font-size: clamp(26px, 3vw, 34px);
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1.1;
}
.cvl-sobretitulo {
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.cvl-texto-suave { color: var(--suave); }

/* ── Botões ─────────────────────────────────────────────── */
.cvl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 48px; padding: 0 30px;
  font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  border: 1px solid var(--preto);
  background: var(--preto); color: var(--off);
  transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.cvl-btn:hover { background: transparent; color: var(--preto); }
.cvl-btn--linha { background: transparent; color: var(--preto); }
.cvl-btn--linha:hover { background: var(--preto); color: var(--off); }
.cvl-btn--claro { border-color: var(--off); background: transparent; color: var(--off); }
.cvl-btn--claro:hover { background: var(--off); color: var(--preto); }
.cvl-btn--bloco { width: 100%; }
.cvl-btn[disabled] { opacity: .35; pointer-events: none; }
.cvl-btn .cvl-seta { transition: transform .35s var(--ease); }
.cvl-btn:hover .cvl-seta { transform: translateX(4px); }

.cvl-link-seta {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
  border-bottom: 1px solid transparent; padding-bottom: 2px;
  transition: border-color .3s;
}
.cvl-link-seta:hover { border-color: currentColor; }

.cvl-icone { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.cvl-icone--p { width: 18px; height: 18px; }

/* ============================================================
   CABEÇALHO
   ============================================================ */
.cvl-cabecalho { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; }

.cvl-faixa {
  height: var(--altura-faixa);
  background: var(--bege);
  color: var(--preto);
  font-size: 10.5px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
/* Faixa em movimento contínuo (pausa quando o mouse passa por cima) */
.cvl-faixa { justify-content: flex-start; }
.cvl-faixa__rolagem { width: 100%; overflow: hidden; }
.cvl-faixa__trilho { display: flex; align-items: center; gap: 36px; width: max-content; animation: cvl-faixa-rola 60s linear infinite; }
.cvl-faixa:hover .cvl-faixa__trilho { animation-play-state: paused; }
@keyframes cvl-faixa-rola { to { transform: translateX(-50%); } }
.cvl-faixa__item { display: inline-flex; align-items: center; white-space: nowrap; }
.cvl-faixa__sep { width: 4px; height: 4px; border-radius: 50%; background: var(--preto); opacity: .35; flex: none; }
@media (prefers-reduced-motion: reduce) { .cvl-faixa__trilho { animation: none; } }

.cvl-barra {
  background: rgba(255, 252, 252, .96);
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--linha);
  transition: box-shadow .3s;
  position: relative;
}
.cvl-cabecalho.cvl-rolou .cvl-barra { box-shadow: 0 6px 24px -18px rgba(15, 15, 15, .35); }
.cvl-barra__topo {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  height: 76px;
  transition: height .35s var(--ease);
}
.cvl-cabecalho.cvl-rolou .cvl-barra__topo { height: 62px; }
.cvl-barra__esq, .cvl-barra__dir { display: flex; align-items: center; gap: 6px; }
.cvl-barra__dir { justify-content: flex-end; }
.cvl-icone-btn {
  width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center;
  position: relative; transition: opacity .3s;
}
.cvl-icone-btn:hover { opacity: .6; }
.cvl-contador {
  position: absolute; top: 5px; right: 3px;
  min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px;
  background: var(--preto); color: var(--off);
  font-size: 9px; font-weight: 500; line-height: 16px; text-align: center;
}
.cvl-contador:empty, .cvl-contador[data-n="0"] { display: none; }

.cvl-logo {
  font-family: var(--f-titulo);
  font-size: clamp(26px, 2.6vw, 34px);
  letter-spacing: .3em;
  margin-right: -.3em; /* compensa o espaçamento da última letra */
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.cvl-menu { display: flex; justify-content: center; gap: clamp(20px, 3vw, 44px); height: 42px; }
.cvl-menu__item { position: static; display: flex; align-items: center; }
.cvl-menu__link {
  position: relative;
  font-size: 11px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase;
  padding: 10px 0;
}
.cvl-menu__link::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .4s var(--ease);
}
.cvl-menu__item:hover .cvl-menu__link::after, .cvl-menu__link.cvl-ativo::after { transform: scaleX(1); }

/* Mega menu SHOP */
.cvl-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--off); border-bottom: 1px solid var(--linha);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
.cvl-menu__item--mega:hover .cvl-mega, .cvl-menu__item--mega:focus-within .cvl-mega { opacity: 1; visibility: visible; transform: none; }
.cvl-mega__grade { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; padding: 36px var(--gutter) 44px; max-width: var(--largura); margin: 0 auto; }
.cvl-mega__lista li + li { margin-top: 12px; }
.cvl-mega__lista a { font-size: 13px; letter-spacing: .06em; transition: opacity .3s; }
.cvl-mega__lista a:hover { opacity: .55; }
.cvl-mega__lista .cvl-todos { font-weight: 500; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; }
.cvl-mega__titulo { margin-bottom: 18px; color: var(--suave); }
.cvl-mega__card { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bege-claro); }
.cvl-mega__card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.cvl-mega__card:hover img { transform: scale(1.04); }
.cvl-mega__card span {
  position: absolute; left: 20px; bottom: 16px;
  font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  background: var(--off); padding: 8px 14px;
}

.cvl-so-mobile { display: none; }

/* Menu mobile (gaveta à esquerda) */
.cvl-gaveta-menu { position: fixed; inset: 0; z-index: 90; visibility: hidden; }
.cvl-gaveta-menu.cvl-aberta { visibility: visible; }
.cvl-gaveta-menu__painel {
  position: absolute; top: 0; bottom: 0; left: 0; width: min(88vw, 380px);
  background: var(--off); display: flex; flex-direction: column;
  transform: translateX(-100%); transition: transform .45s var(--ease);
}
.cvl-gaveta-menu.cvl-aberta .cvl-gaveta-menu__painel { transform: none; }
.cvl-gaveta-menu__topo { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px 14px 24px; border-bottom: 1px solid var(--linha); }
.cvl-gaveta-menu__nav { padding: 8px 24px; overflow-y: auto; flex: 1; }
.cvl-gaveta-menu__nav > li > a, .cvl-gaveta-menu__nav summary {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 0; border-bottom: 1px solid var(--linha);
  font-size: 12px; letter-spacing: .2em; text-transform: uppercase; cursor: pointer;
  list-style: none;
}
.cvl-gaveta-menu__nav summary::-webkit-details-marker { display: none; }
.cvl-gaveta-menu__nav details[open] summary .cvl-mais { transform: rotate(45deg); }
.cvl-gaveta-menu__nav .cvl-mais { transition: transform .3s; font-size: 18px; font-weight: 200; }
.cvl-gaveta-menu__sub { padding: 6px 0 12px 14px; border-bottom: 1px solid var(--linha); }
.cvl-gaveta-menu__sub a { display: block; padding: 9px 0; font-size: 13px; letter-spacing: .04em; }
.cvl-gaveta-menu__rodape { padding: 20px 24px 28px; background: var(--bege-claro); font-size: 12px; }
.cvl-gaveta-menu__rodape a { display: flex; align-items: center; gap: 10px; padding: 6px 0; }

/* Fundo escurecido compartilhado por gavetas e modais */
.cvl-veu {
  position: absolute; inset: 0; background: rgba(15, 15, 15, .38);
  opacity: 0; transition: opacity .45s var(--ease);
}
.cvl-aberta > .cvl-veu, .cvl-aberto > .cvl-veu { opacity: 1; }

/* ============================================================
   BUSCA
   ============================================================ */
.cvl-busca { position: fixed; inset: 0; z-index: 95; visibility: hidden; }
.cvl-busca.cvl-aberta { visibility: visible; }
.cvl-busca__painel {
  position: absolute; left: 0; right: 0; top: 0;
  background: var(--off); padding: 28px 0 40px;
  transform: translateY(-100%); transition: transform .5s var(--ease);
  max-height: 100vh; overflow-y: auto;
}
.cvl-busca.cvl-aberta .cvl-busca__painel { transform: none; }
.cvl-busca__campo { display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--preto); padding-bottom: 10px; }
.cvl-busca__campo input {
  flex: 1; border: 0; background: transparent; outline: none;
  font-family: var(--f-titulo); font-size: clamp(22px, 3vw, 32px); letter-spacing: .02em;
}
.cvl-busca__campo input::placeholder { color: #B9ADA2; }
.cvl-busca__sugestoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.cvl-busca__sugestoes a { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; border: 1px solid var(--linha-forte); padding: 8px 14px; transition: background .3s; }
.cvl-busca__sugestoes a:hover { background: var(--bege); }
.cvl-busca__resultados { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; margin-top: 26px; }
.cvl-busca__res img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; background: var(--bege-claro); }
.cvl-busca__res p { font-size: 12px; margin-top: 8px; }
.cvl-busca__res span { font-size: 12px; font-weight: 500; }
.cvl-busca__vazio { margin-top: 24px; color: var(--suave); }

/* ============================================================
   SACOLA (gaveta à direita)
   ============================================================ */
.cvl-sacola { position: fixed; inset: 0; z-index: 100; visibility: hidden; }
.cvl-sacola.cvl-aberta { visibility: visible; }
.cvl-sacola__painel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(100vw, 440px);
  background: var(--off); display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform .5s var(--ease);
}
.cvl-sacola.cvl-aberta .cvl-sacola__painel { transform: none; }
.cvl-sacola__topo { display: flex; justify-content: space-between; align-items: center; padding: 18px 16px 18px 24px; border-bottom: 1px solid var(--linha); }
.cvl-sacola__topo h2 { font-size: 12px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
.cvl-frete-barra { padding: 16px 24px; background: var(--bege-claro); font-size: 12px; }
.cvl-frete-barra__trilho { height: 2px; background: var(--linha-forte); margin-top: 10px; overflow: hidden; }
.cvl-frete-barra__cheio { height: 100%; background: var(--preto); transition: width .6s var(--ease); }
.cvl-sacola__itens { flex: 1; overflow-y: auto; padding: 8px 24px; }
.cvl-sacola__vazia { text-align: center; padding: 60px 10px; }
.cvl-sacola__vazia p { margin-bottom: 24px; color: var(--suave); }
.cvl-item-sacola { display: grid; grid-template-columns: 84px 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--linha); }
.cvl-item-sacola img { width: 84px; aspect-ratio: 3 / 4; object-fit: cover; background: var(--bege-claro); }
.cvl-item-sacola__nome { font-size: 13px; font-weight: 400; }
.cvl-item-sacola__var { font-size: 11px; color: var(--suave); letter-spacing: .04em; margin-top: 2px; }
.cvl-item-sacola__linha { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; }
.cvl-item-sacola__preco { font-size: 13px; font-weight: 500; }
.cvl-item-sacola__remover { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--suave); text-decoration: underline; text-underline-offset: 3px; margin-top: 10px; }
.cvl-qtd { display: inline-flex; align-items: center; border: 1px solid var(--linha-forte); height: 32px; }
.cvl-qtd button { width: 30px; height: 100%; font-size: 15px; }
.cvl-qtd span { min-width: 22px; text-align: center; font-size: 12px; }
.cvl-sacola__rodape { border-top: 1px solid var(--linha); padding: 18px 24px 22px; }
.cvl-resumo-linha { display: flex; justify-content: space-between; font-size: 13px; padding: 3px 0; }
.cvl-resumo-linha--pix { color: var(--preto); font-weight: 500; }
.cvl-resumo-linha--total { font-size: 15px; font-weight: 500; padding-top: 10px; margin-top: 8px; border-top: 1px solid var(--linha); }
.cvl-sacola__rodape .cvl-btn { margin-top: 16px; }
.cvl-sacola__continuar { display: block; margin: 14px auto 0; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; }

/* ============================================================
   WHATSAPP FIXO
   ============================================================ */
.cvl-whats-fixo {
  position: fixed; right: 20px; bottom: 20px; z-index: 60;
  width: 54px; height: 54px; border-radius: 50%;
  background: var(--preto); color: var(--off);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 30px -12px rgba(15, 15, 15, .55);
  transition: transform .35s var(--ease);
}
.cvl-whats-fixo:hover { transform: translateY(-3px); }
.cvl-whats-fixo svg { width: 26px; height: 26px; fill: currentColor; }

/* ============================================================
   HOME — CARROSSEL
   ============================================================ */
.cvl-hero { position: relative; overflow: hidden; background: var(--bege-claro); }
.cvl-hero__trilho { position: relative; height: clamp(520px, calc(100vh - var(--altura-faixa) - var(--altura-header)), 820px); }
.cvl-slide {
  position: absolute; inset: 0;
  opacity: 0; visibility: hidden;
  transition: opacity 1.1s var(--ease), visibility 1.1s;
  background: var(--fundo, var(--bege-claro));
}
.cvl-slide.cvl-ativo { opacity: 1; visibility: visible; z-index: 1; }
.cvl-slide__foto { position: absolute; inset: 0; overflow: hidden; }
.cvl-slide__foto picture, .cvl-slide__foto img { width: 100%; height: 100%; }
.cvl-slide__foto img { object-fit: cover; object-position: var(--pos, center); transform: scale(1.04); transition: transform 7s linear; }
.cvl-slide.cvl-ativo .cvl-slide__foto img { transform: scale(1); }

/* Fotos verticais em estúdio branco: foto à direita, fundo contínuo */
.cvl-slide--retrato { --fundo: var(--off); }
.cvl-slide--retrato .cvl-slide__foto img {
  position: absolute; top: auto; bottom: var(--base, 0); right: var(--dir, 8%); left: auto;
  width: auto; height: var(--alt, 100%); max-width: none; object-fit: contain;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
}

.cvl-slide__texto {
  position: absolute; z-index: 2; top: 50%; left: 0; right: 0;
  transform: translateY(-50%);
}
.cvl-slide__caixa { max-width: 560px; }
.cvl-slide__num { font-size: 11px; letter-spacing: .3em; margin-bottom: 22px; opacity: .8; }
.cvl-slide__titulo { font-size: clamp(38px, 4.6vw, 66px); }
.cvl-slide__sub { font-size: 15px; line-height: 1.7; margin: 22px 0 34px; max-width: 420px; }
.cvl-slide__arroba { font-size: 12px; letter-spacing: .28em; margin: -18px 0 30px; }
.cvl-slide--escuro { color: var(--off); }
.cvl-slide--escuro .cvl-btn { border-color: var(--off); background: transparent; color: var(--off); }
.cvl-slide--escuro .cvl-btn:hover { background: var(--off); color: var(--preto); }
.cvl-slide--claro { color: var(--preto); }
.cvl-slide--claro .cvl-btn { background: transparent; color: var(--preto); }
.cvl-slide--claro .cvl-btn:hover { background: var(--preto); color: var(--off); }
.cvl-slide__escurecer::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(15, 15, 15, .45) 0%, rgba(15, 15, 15, .18) 38%, rgba(15, 15, 15, 0) 62%);
}
.cvl-slide__clarear::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(255, 252, 252, .72) 0%, rgba(255, 252, 252, .3) 34%, rgba(255, 252, 252, 0) 55%);
}

.cvl-hero__controles {
  position: absolute; z-index: 3; left: 0; right: 0; bottom: 26px;
  display: flex; align-items: center; gap: 36px;
  pointer-events: none;
}
.cvl-hero__controles > * { pointer-events: auto; }
.cvl-hero__pontos { display: flex; gap: 10px; }
.cvl-hero__ponto { width: 28px; height: 20px; position: relative; }
.cvl-hero__ponto::before { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: currentColor; opacity: .35; transition: opacity .3s; }
.cvl-hero__ponto.cvl-ativo::before { opacity: 1; height: 2px; margin-top: -.5px; }
.cvl-hero__seta {
  position: absolute; z-index: 3; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
  opacity: .7; transition: opacity .3s;
}
.cvl-hero__seta:hover { opacity: 1; }
.cvl-hero__seta--ant { left: 12px; }
.cvl-hero__seta--prox { right: 12px; }
.cvl-hero[data-tom="escuro"] .cvl-hero__controles, .cvl-hero[data-tom="escuro"] .cvl-hero__seta { color: var(--off); }

/* ============================================================
   BENEFÍCIOS
   ============================================================ */
.cvl-beneficios { border-bottom: 1px solid var(--linha); background: var(--off); }
.cvl-beneficios__grade { display: grid; grid-template-columns: repeat(3, 1fr); }
.cvl-beneficio { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 30px 16px; }
.cvl-beneficio + .cvl-beneficio { border-left: 1px solid var(--linha); }
.cvl-beneficio .cvl-icone { width: 28px; height: 28px; stroke-width: 1; }
.cvl-beneficio strong { display: block; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.cvl-beneficio span { font-size: 12px; color: var(--suave); }

/* ============================================================
   SEÇÕES
   ============================================================ */
.cvl-secao { padding: clamp(64px, 8vw, 110px) 0; }
.cvl-secao--bege { background: var(--bege-claro); }
.cvl-secao__cabeca { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: clamp(30px, 4vw, 48px); }
.cvl-secao__cabeca--centro { flex-direction: column; align-items: center; text-align: center; }
.cvl-secao__cabeca .cvl-link-seta { white-space: nowrap; flex: none; }
.cvl-secao__cabeca--centro .cvl-sobretitulo { margin-top: 12px; color: var(--suave); }

/* Categorias */
.cvl-categorias { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 4vw, 64px); }
.cvl-categoria { text-align: center; }
.cvl-categoria__img { aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: var(--bege); }
.cvl-categoria__img img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; transition: transform 1.2s var(--ease); }
.cvl-categoria:hover .cvl-categoria__img img { transform: scale(1.06); }
.cvl-categoria__nome { display: inline-block; margin-top: 22px; font-size: 12px; font-weight: 400; letter-spacing: .24em; text-transform: uppercase; }
.cvl-categorias__cta { text-align: center; margin-top: clamp(36px, 5vw, 56px); }

/* ============================================================
   CARD DE PRODUTO
   ============================================================ */
.cvl-grade-produtos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 22px; }
.cvl-card { position: relative; display: flex; flex-direction: column; }
.cvl-card__midia { display: block; position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--bege-claro); }
.cvl-card__midia img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; transition: opacity .7s var(--ease), transform 1.4s var(--ease); }
.cvl-card__midia .cvl-card__img2 { opacity: 0; }
.cvl-card:hover .cvl-card__midia .cvl-card__img2 { opacity: 1; }
.cvl-card:hover .cvl-card__midia img { transform: scale(1.03); }
.cvl-card__fav {
  position: absolute; z-index: 2; top: 10px; right: 10px;
  width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; transition: background .3s;
}
.cvl-card__fav:hover { background: rgba(255, 252, 252, .7); }
.cvl-card__fav.cvl-ativo svg { fill: var(--preto); }
.cvl-card__selo {
  position: absolute; z-index: 2; top: 14px; left: 14px;
  font-size: 9.5px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  background: var(--off); padding: 5px 9px;
}
.cvl-card__selo--escuro { background: var(--preto); color: var(--off); }
.cvl-card__info { padding-top: 16px; display: flex; flex-direction: column; flex: 1; }
.cvl-card__nome { font-size: 13px; font-weight: 400; letter-spacing: .02em; }
.cvl-preco { font-size: 15px; font-weight: 500; margin-top: 4px; }
.cvl-preco s { font-weight: 300; color: var(--suave); font-size: 12.5px; margin-right: 8px; }
.cvl-parcela { font-size: 12px; color: var(--suave); margin-top: 2px; }
.cvl-pix {
  display: inline-block; align-self: flex-start; margin-top: 8px;
  font-size: 11.5px; background: var(--bege); padding: 4px 9px;
}
.cvl-pix b { font-weight: 500; }
.cvl-cores { display: flex; gap: 8px; margin-top: 12px; }
.cvl-cor-bolinha { width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(15, 15, 15, .2); }
.cvl-card__comprar { margin-top: 16px; min-height: 42px; }
.cvl-card__info .cvl-card__spacer { flex: 1; }
.cvl-card--esgotado .cvl-card__midia img { opacity: .55; }

/* ============================================================
   BANNER LIFESTYLE
   ============================================================ */
.cvl-lifestyle { display: grid; grid-template-columns: 1fr 1.05fr 1fr; background: var(--bege); }
.cvl-lifestyle__foto { aspect-ratio: 3 / 4; overflow: hidden; }
.cvl-lifestyle__foto img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.cvl-lifestyle__texto { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 48px clamp(24px, 4vw, 64px); }
.cvl-lifestyle__texto .cvl-titulo-display { font-size: clamp(30px, 3.4vw, 50px); }
.cvl-lifestyle__texto p { margin: 22px 0 34px; font-size: 15px; max-width: 320px; }

/* ============================================================
   INSTAGRAM
   ============================================================ */
.cvl-insta { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.cvl-insta a { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--bege-claro); }
.cvl-insta img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.cvl-insta a::after {
  content: ''; position: absolute; inset: 0; background: rgba(15, 15, 15, .28);
  opacity: 0; transition: opacity .4s;
}
.cvl-insta a:hover img { transform: scale(1.05); }
.cvl-insta a:hover::after { opacity: 1; }
.cvl-insta a svg { position: absolute; z-index: 1; left: 50%; top: 50%; transform: translate(-50%, -50%); color: var(--off); opacity: 0; transition: opacity .4s; width: 28px; height: 28px; }
.cvl-insta a:hover svg { opacity: 1; }
.cvl-insta-arroba { display: inline-block; margin-top: 10px; font-size: 13px; letter-spacing: .2em; }

/* ============================================================
   GRUPO VIP
   ============================================================ */
.cvl-vip { background: var(--preto); color: var(--off); padding: clamp(56px, 7vw, 88px) 0; }
.cvl-vip__grade { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(28px, 5vw, 80px); }
.cvl-vip__rotulo { display: flex; align-items: center; gap: 10px; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; opacity: .8; }
.cvl-vip__rotulo svg { width: 16px; height: 16px; fill: currentColor; }
.cvl-vip__marca { font-family: var(--f-titulo); font-size: clamp(34px, 4vw, 52px); letter-spacing: .24em; margin-top: 12px; line-height: 1; }
.cvl-vip__texto strong { display: block; font-weight: 400; font-size: 16px; margin-bottom: 8px; }
.cvl-vip__texto p { color: rgba(255, 252, 252, .72); font-size: 13.5px; max-width: 470px; }
.cvl-vip__tags { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--bege); }

/* ============================================================
   RODAPÉ
   ============================================================ */
.cvl-rodape { background: var(--off); border-top: 1px solid var(--linha); padding-top: clamp(56px, 6vw, 80px); }
.cvl-rodape__grade { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 32px; }
.cvl-rodape__marca .cvl-logo { font-size: 28px; }
.cvl-rodape__marca p { margin-top: 14px; font-size: 12.5px; color: var(--suave); max-width: 240px; }
.cvl-redes { display: flex; gap: 8px; margin-top: 22px; }
.cvl-redes a { width: 38px; height: 38px; border: 1px solid var(--linha-forte); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background .3s, color .3s; }
.cvl-redes a:hover { background: var(--preto); color: var(--off); border-color: var(--preto); }
.cvl-redes svg { width: 16px; height: 16px; }
.cvl-rodape__col h4, .cvl-rodape__col summary { font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; margin-bottom: 18px; list-style: none; }
.cvl-rodape__col summary::-webkit-details-marker { display: none; }
.cvl-rodape__col summary .cvl-mais { display: none; }
.cvl-rodape__col li + li { margin-top: 9px; }
.cvl-rodape__col a, .cvl-rodape__col li { font-size: 12.5px; color: var(--suave); transition: color .3s; }
.cvl-rodape__col a:hover { color: var(--preto); }
.cvl-rodape__base {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 56px; padding: 22px 0; border-top: 1px solid var(--linha);
  font-size: 11px; color: var(--suave); letter-spacing: .04em;
}
.cvl-pagamentos { display: flex; gap: 8px; flex-wrap: wrap; }
.cvl-pagamentos span { border: 1px solid var(--linha-forte); padding: 3px 8px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

/* ============================================================
   PÁGINA DE LISTAGEM (SHOP / NEW IN / SALE / ACESSÓRIOS)
   ============================================================ */
.cvl-cabeca-pagina { padding: clamp(40px, 6vw, 72px) 0 clamp(24px, 3vw, 36px); text-align: center; }
.cvl-cabeca-pagina .cvl-titulo-display { font-size: clamp(34px, 4.4vw, 56px); }
.cvl-cabeca-pagina p { margin-top: 14px; color: var(--suave); max-width: 520px; margin-left: auto; margin-right: auto; }
.cvl-trilha { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--suave); margin-bottom: 18px; }
.cvl-trilha a:hover { color: var(--preto); }
.cvl-filtros {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha);
  padding: 14px 0; margin-bottom: 36px;
}
.cvl-filtros__cats { display: flex; gap: 8px; flex-wrap: wrap; }
.cvl-chip {
  font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  border: 1px solid var(--linha-forte); padding: 8px 14px; transition: background .3s, color .3s, border-color .3s;
}
.cvl-chip:hover { border-color: var(--preto); }
.cvl-chip.cvl-ativo { background: var(--preto); color: var(--off); border-color: var(--preto); }
.cvl-filtros__dir { display: flex; align-items: center; gap: 18px; font-size: 12px; color: var(--suave); }
.cvl-select {
  appearance: none; -webkit-appearance: none; border: 1px solid var(--linha-forte); background: transparent;
  padding: 9px 34px 9px 14px; font-size: 12px; color: var(--preto);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%230F0F0F'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
}
.cvl-lista-vazia { text-align: center; padding: 60px 0 100px; color: var(--suave); }
.cvl-lista-vazia .cvl-btn { margin-top: 24px; }

/* ============================================================
   PÁGINA DE PRODUTO
   ============================================================ */
.cvl-produto { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); padding-top: 28px; padding-bottom: 80px; align-items: start; }
.cvl-galeria { display: grid; grid-template-columns: 84px 1fr; gap: 14px; position: sticky; top: calc(var(--altura-faixa) + 80px); }
.cvl-galeria__minis { display: flex; flex-direction: column; gap: 10px; }
.cvl-galeria__mini { aspect-ratio: 3 / 4; overflow: hidden; background: var(--bege-claro); opacity: .5; transition: opacity .3s; border: 1px solid transparent; }
.cvl-galeria__mini.cvl-ativo, .cvl-galeria__mini:hover { opacity: 1; }
.cvl-galeria__mini.cvl-ativo { border-color: var(--preto); }
.cvl-galeria__mini img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.cvl-galeria__principal { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--bege-claro); cursor: zoom-in; }
.cvl-galeria__principal img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; transition: transform .25s ease-out, opacity .35s; }
.cvl-galeria__principal.cvl-zoom img { transform: scale(2); }
.cvl-galeria__trilho { display: none; }
.cvl-galeria__dica { position: absolute; right: 14px; bottom: 14px; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; background: rgba(255, 252, 252, .85); padding: 5px 10px; pointer-events: none; }

.cvl-info-produto .cvl-trilha { margin-bottom: 20px; }
.cvl-info-produto h1 { font-family: var(--f-titulo); font-size: clamp(30px, 3vw, 42px); letter-spacing: .04em; text-transform: uppercase; line-height: 1.1; }
.cvl-info-produto .cvl-preco { font-size: 22px; margin-top: 18px; font-weight: 400; }
.cvl-info-produto .cvl-preco s { font-size: 15px; }
.cvl-info-produto .cvl-parcela { font-size: 13px; }
.cvl-info-produto .cvl-pix { font-size: 13px; padding: 6px 12px; }
.cvl-escolha { margin-top: 30px; }
.cvl-escolha__rotulo { display: flex; justify-content: space-between; align-items: baseline; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 12px; }
.cvl-escolha__rotulo b { font-weight: 500; }
.cvl-escolha__rotulo em { font-style: normal; letter-spacing: .04em; text-transform: none; color: var(--suave); font-size: 12.5px; margin-left: 8px; }
.cvl-escolha__cores { display: flex; gap: 12px; }
.cvl-cor-opcao { width: 34px; height: 34px; border-radius: 50%; padding: 3px; border: 1px solid transparent; transition: border-color .3s; }
.cvl-cor-opcao i { display: block; width: 100%; height: 100%; border-radius: 50%; border: 1px solid rgba(15, 15, 15, .18); }
.cvl-cor-opcao.cvl-ativo, .cvl-cor-opcao:hover { border-color: var(--preto); }
.cvl-escolha__tamanhos { display: flex; gap: 8px; flex-wrap: wrap; }
.cvl-tam {
  min-width: 54px; height: 46px; padding: 0 14px; border: 1px solid var(--linha-forte);
  font-size: 12px; letter-spacing: .1em; transition: border-color .3s, background .3s, color .3s;
}
.cvl-tam:hover { border-color: var(--preto); }
.cvl-tam.cvl-ativo { background: var(--preto); color: var(--off); border-color: var(--preto); }
.cvl-tam[disabled] { color: #BDB3A9; text-decoration: line-through; pointer-events: none; }
.cvl-link-guia { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; }
.cvl-aviso-estoque { font-size: 12px; color: var(--suave); margin-top: 10px; min-height: 18px; }
.cvl-aviso-erro { color: var(--erro); }
.cvl-compra { display: flex; gap: 10px; margin-top: 26px; }
.cvl-compra .cvl-btn { flex: 1; min-height: 54px; font-size: 12px; }
.cvl-compra .cvl-card__fav { position: static; width: 54px; height: 54px; border: 1px solid var(--linha-forte); border-radius: 0; }
.cvl-beneficios-produto { margin-top: 28px; border-top: 1px solid var(--linha); }
.cvl-beneficios-produto li { display: flex; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--linha); }
.cvl-beneficios-produto strong { display: block; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.cvl-beneficios-produto span { font-size: 12.5px; color: var(--suave); }
.cvl-frete-calc { margin-top: 22px; }
.cvl-frete-calc form { display: flex; gap: 8px; }
.cvl-campo {
  width: 100%; border: 1px solid var(--linha-forte); background: transparent; padding: 0 14px; height: 46px; font-size: 13px;
  transition: border-color .3s; border-radius: 0; -webkit-appearance: none;
}
.cvl-campo:focus { outline: none; border-color: var(--preto); }
.cvl-frete-calc .cvl-btn { min-height: 46px; padding: 0 20px; }
.cvl-frete-res { margin-top: 12px; font-size: 12.5px; }
.cvl-frete-res li { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px dashed var(--linha); }
.cvl-sanfona { margin-top: 30px; border-top: 1px solid var(--linha); }
.cvl-sanfona details { border-bottom: 1px solid var(--linha); }
.cvl-sanfona summary { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; list-style: none; }
.cvl-sanfona summary::-webkit-details-marker { display: none; }
.cvl-sanfona summary .cvl-mais { font-size: 18px; font-weight: 200; transition: transform .3s; }
.cvl-sanfona details[open] summary .cvl-mais { transform: rotate(45deg); }
.cvl-sanfona__corpo { padding: 0 0 20px; font-size: 13.5px; color: #3A3532; }
.cvl-sanfona__corpo ul { margin-top: 10px; }
.cvl-sanfona__corpo li { padding-left: 16px; position: relative; margin-top: 4px; }
.cvl-sanfona__corpo li::before { content: ''; position: absolute; left: 0; top: 11px; width: 6px; height: 1px; background: var(--preto); }

/* Barra fixa de compra no mobile */
.cvl-compra-fixa { display: none; }

/* ============================================================
   MODAIS (guia de tamanhos, compra rápida)
   ============================================================ */
.cvl-modal { position: fixed; inset: 0; z-index: 110; display: flex; align-items: center; justify-content: center; visibility: hidden; padding: 16px; }
.cvl-modal.cvl-aberto { visibility: visible; }
.cvl-modal__caixa {
  position: relative; background: var(--off); width: min(100%, 560px); max-height: calc(100vh - 32px); overflow-y: auto;
  padding: 40px clamp(20px, 4vw, 44px) 36px;
  opacity: 0; transform: translateY(14px); transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.cvl-modal.cvl-aberto .cvl-modal__caixa { opacity: 1; transform: none; }
.cvl-modal__fechar { position: absolute; top: 10px; right: 10px; }
.cvl-modal h3 { font-family: var(--f-titulo); font-size: 28px; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; }
.cvl-tabela { width: 100%; border-collapse: collapse; margin-top: 20px; font-size: 13px; }
.cvl-tabela th { font-size: 10.5px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--preto); }
.cvl-tabela td { padding: 12px 8px; border-bottom: 1px solid var(--linha); }
.cvl-tabela td:first-child { font-weight: 500; }
.cvl-rapida { display: grid; grid-template-columns: 160px 1fr; gap: 22px; }
.cvl-rapida img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; background: var(--bege-claro); }
.cvl-rapida h3 { font-size: 22px; }
.cvl-rapida .cvl-escolha { margin-top: 18px; }

/* Aviso rápido (toast) */
.cvl-aviso {
  position: fixed; left: 50%; bottom: 24px; z-index: 120; transform: translate(-50%, 20px);
  background: var(--preto); color: var(--off); padding: 12px 20px; font-size: 12px; letter-spacing: .06em;
  opacity: 0; transition: opacity .35s, transform .35s var(--ease); pointer-events: none; max-width: calc(100vw - 32px);
}
.cvl-aviso.cvl-visivel { opacity: 1; transform: translate(-50%, 0); }

/* ============================================================
   PÁGINAS INSTITUCIONAIS
   ============================================================ */
.cvl-texto-pagina { max-width: 760px; margin: 0 auto; padding-bottom: 100px; }
.cvl-texto-pagina h2 { font-family: var(--f-titulo); font-size: 24px; letter-spacing: .04em; text-transform: uppercase; margin: 44px 0 14px; }
.cvl-texto-pagina p, .cvl-texto-pagina li { font-size: 14.5px; color: #3A3532; line-height: 1.8; }
.cvl-texto-pagina p + p { margin-top: 14px; }
.cvl-texto-pagina ul { margin: 12px 0; }
.cvl-texto-pagina li { padding-left: 18px; position: relative; margin-top: 6px; }
.cvl-texto-pagina li::before { content: ''; position: absolute; left: 0; top: 13px; width: 8px; height: 1px; background: var(--preto); }
.cvl-texto-pagina .cvl-nota { background: var(--bege-claro); padding: 18px 22px; font-size: 13px; margin-top: 30px; }
.cvl-texto-pagina a { text-decoration: underline; text-underline-offset: 3px; }

/* Quem Somos */
.cvl-sobre-hero { position: relative; height: clamp(420px, 72vh, 720px); overflow: hidden; }
.cvl-sobre-hero img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; }
.cvl-sobre-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,15,15,.5), rgba(15,15,15,.1) 55%, transparent); }
.cvl-sobre-hero__texto { position: absolute; z-index: 1; left: 0; right: 0; bottom: clamp(40px, 8vw, 90px); color: var(--off); }
.cvl-sobre-hero__texto .cvl-titulo-display { font-size: clamp(44px, 6vw, 84px); }
.cvl-sobre-hero__texto p { margin-top: 16px; font-size: 15px; letter-spacing: .04em; }
.cvl-sobre-bloco { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 7vw, 120px); align-items: center; padding-block: clamp(64px, 9vw, 130px); }
.cvl-sobre-bloco--inverte .cvl-sobre-bloco__foto { order: 2; }
.cvl-sobre-bloco__foto { aspect-ratio: 4 / 5; overflow: hidden; background: var(--bege-claro); }
.cvl-sobre-bloco__foto img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.cvl-sobre-bloco__texto { max-width: 470px; }
.cvl-sobre-bloco__texto .cvl-titulo-display { font-size: clamp(28px, 3.2vw, 44px); margin: 16px 0 26px; }
.cvl-sobre-bloco__texto p { font-size: 15px; line-height: 1.9; color: #3A3532; }
.cvl-sobre-bloco__texto p + p { margin-top: 16px; }
.cvl-citacao { background: var(--bege); text-align: center; padding: clamp(70px, 10vw, 140px) var(--gutter); }
.cvl-citacao blockquote { margin: 0 auto; max-width: 900px; font-family: var(--f-titulo); font-size: clamp(28px, 4vw, 54px); line-height: 1.2; letter-spacing: .02em; }
.cvl-citacao p { margin-top: 26px; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; }
.cvl-valores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; text-align: center; }
.cvl-valores h3 { font-family: var(--f-titulo); font-size: 24px; letter-spacing: .08em; text-transform: uppercase; margin: 18px 0 10px; }
.cvl-valores p { color: var(--suave); font-size: 13.5px; max-width: 300px; margin: 0 auto; }
.cvl-valores .cvl-icone { width: 30px; height: 30px; margin: 0 auto; stroke-width: 1; }

/* Suporte */
.cvl-suporte-grade { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 6vw, 90px); padding-bottom: 100px; }
.cvl-suporte-card { background: var(--preto); color: var(--off); padding: clamp(32px, 4vw, 52px); }
.cvl-suporte-card h2 { font-family: var(--f-titulo); font-size: clamp(28px, 3vw, 40px); letter-spacing: .04em; text-transform: uppercase; margin: 14px 0 12px; }
.cvl-suporte-card p { color: rgba(255, 252, 252, .75); }
.cvl-suporte-card .cvl-btn { margin-top: 30px; }
.cvl-contatos li { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--linha); }
.cvl-contatos strong { display: block; font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 2px; }
.cvl-contatos span, .cvl-contatos a { font-size: 14px; color: #3A3532; }

/* Revelar ao rolar */
.cvl-revelar { opacity: 0; transform: translateY(24px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.cvl-revelar.cvl-visivel { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .cvl-revelar { opacity: 1; transform: none; }
}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width: 1100px) {
  .cvl-grade-produtos { grid-template-columns: repeat(3, 1fr); }
  .cvl-rodape__grade { grid-template-columns: 1fr 1fr 1fr; }
  .cvl-rodape__marca { grid-column: 1 / -1; }
  .cvl-busca__resultados { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 900px) {
  :root { --altura-faixa: 30px; --altura-header: 60px; }
  .cvl-so-desktop { display: none !important; }
  .cvl-so-mobile { display: inline-flex; }
  .cvl-faixa { font-size: 9.5px; letter-spacing: .16em; }
  .cvl-faixa__trilho { gap: 26px; animation-duration: 45s; }
  .cvl-barra__topo, .cvl-cabecalho.cvl-rolou .cvl-barra__topo { height: 60px; grid-template-columns: 1fr auto 1fr; }
  .cvl-menu { display: none; }
  .cvl-logo { font-size: 24px; letter-spacing: .26em; margin-right: -.26em; }
  .cvl-icone-btn { width: 38px; height: 38px; }
  .cvl-barra__dir { gap: 0; margin-right: -8px; }
  .cvl-barra__esq { gap: 0; margin-left: -8px; }

  /* Carrossel vertical no celular: foto 3:4 com o texto sobre a parte clara de baixo */
  .cvl-hero__trilho { height: auto; }
  .cvl-slide { position: absolute; inset: 0; background: var(--off); }
  .cvl-slide.cvl-ativo { position: relative; }
  .cvl-slide__foto { position: relative; aspect-ratio: 3 / 4; }
  .cvl-slide--retrato .cvl-slide__foto img { position: static; width: 100%; height: 100%; object-fit: cover; -webkit-mask-image: none; mask-image: none; }
  .cvl-slide__foto img { mix-blend-mode: multiply; }
  .cvl-slide__foto::after, .cvl-slide__escurecer::after, .cvl-slide__clarear::after {
    content: ''; position: absolute; inset: auto 0 0 0; height: 58%;
    background: linear-gradient(180deg, rgba(255, 252, 252, 0) 0%, rgba(255, 252, 252, .78) 45%, var(--off) 88%);
  }
  .cvl-slide__texto { position: absolute; top: auto; bottom: 58px; transform: none; color: var(--preto) !important; }
  .cvl-slide__texto .cvl-btn { border-color: var(--preto) !important; color: var(--preto) !important; background: transparent !important; min-height: 44px; }
  .cvl-slide__num { display: none; }
  .cvl-slide__titulo { font-size: 30px; }
  .cvl-slide__sub { font-size: 13.5px; margin: 10px 0 18px; }
  .cvl-slide__arroba { margin: -8px 0 16px; }
  .cvl-hero__seta { display: none; }
  .cvl-hero__controles { bottom: 22px; color: var(--preto) !important; }

  .cvl-beneficios__grade { grid-template-columns: 1fr; padding-top: 4px; padding-bottom: 4px; }
  .cvl-beneficio { justify-content: flex-start; padding: 14px 0; gap: 16px; }
  .cvl-beneficio .cvl-icone { width: 24px; height: 24px; }
  .cvl-beneficio + .cvl-beneficio { border-left: 0; border-top: 1px solid var(--linha); }

  .cvl-categorias { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .cvl-categoria__nome { font-size: 9.5px; letter-spacing: .14em; margin-top: 12px; }

  .cvl-grade-produtos { grid-template-columns: repeat(2, 1fr); gap: 32px 12px; }
  .cvl-card__nome { font-size: 12px; }
  .cvl-preco { font-size: 14px; }
  .cvl-parcela { font-size: 11px; }
  .cvl-pix { font-size: 10.5px; padding: 3px 7px; }
  .cvl-card__comprar { min-height: 40px; font-size: 10px; letter-spacing: .18em; padding: 0 8px; }
  .cvl-card__selo { top: 10px; left: 10px; font-size: 8.5px; }

  .cvl-lifestyle { grid-template-columns: 1fr 1fr; }
  .cvl-lifestyle__texto { grid-column: 1 / -1; order: -1; padding: 48px 24px; }

  .cvl-insta { grid-template-columns: repeat(3, 1fr); gap: 4px; }

  .cvl-vip__grade { grid-template-columns: 1fr; text-align: center; justify-items: center; gap: 22px; }
  .cvl-vip__rotulo { justify-content: center; }
  .cvl-vip__texto p { margin: 0 auto; }
  .cvl-vip__tags { justify-content: center; }

  .cvl-rodape__grade { grid-template-columns: 1fr; gap: 0; }
  .cvl-rodape__marca { padding-bottom: 28px; }
  .cvl-rodape__col { border-top: 1px solid var(--linha); }
  .cvl-rodape__col summary { display: flex; justify-content: space-between; margin: 0; padding: 18px 0; cursor: pointer; }
  .cvl-rodape__col summary .cvl-mais { display: inline; font-size: 16px; font-weight: 300; }
  .cvl-rodape__col ul { padding-bottom: 18px; }
  .cvl-rodape__base { flex-direction: column; align-items: flex-start; margin-top: 0; padding-bottom: 90px; }

  .cvl-filtros { position: sticky; top: calc(var(--altura-faixa) + var(--altura-header)); z-index: 5; background: var(--off); margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); padding: 12px var(--gutter); }
  .cvl-filtros__cats { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; width: 100%; }
  .cvl-filtros__cats::-webkit-scrollbar { display: none; }
  .cvl-chip { white-space: nowrap; }
  .cvl-filtros__dir { width: 100%; justify-content: space-between; }

  .cvl-produto { grid-template-columns: 1fr; padding-top: 0; gap: 22px; }
  .cvl-produto > .cvl-galeria { margin: 0 calc(var(--gutter) * -1); }
  .cvl-galeria { display: block; position: relative; top: 0; }
  .cvl-galeria__minis, .cvl-galeria__principal { display: none; }
  .cvl-galeria__trilho { display: flex; overflow-x: auto; background: var(--bege-claro); scroll-snap-type: x mandatory; scrollbar-width: none; }
  .cvl-galeria__trilho::-webkit-scrollbar { display: none; }
  .cvl-galeria__trilho img { flex: 0 0 100%; aspect-ratio: 3 / 4; object-fit: cover; scroll-snap-align: start; mix-blend-mode: multiply; }
  .cvl-galeria__pontos { display: flex; justify-content: center; gap: 6px; position: absolute; bottom: 14px; left: 0; right: 0; }
  .cvl-galeria__pontos i { width: 6px; height: 6px; border-radius: 50%; background: rgba(15, 15, 15, .25); transition: background .3s; }
  .cvl-galeria__pontos i.cvl-ativo { background: var(--preto); }
  .cvl-info-produto h1 { font-size: 28px; }
  .cvl-compra-fixa {
    display: flex; gap: 12px; align-items: center; position: fixed; left: 0; right: 0; bottom: 0; z-index: 55;
    background: var(--off); border-top: 1px solid var(--linha); padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    transform: translateY(110%); transition: transform .4s var(--ease);
  }
  .cvl-compra-fixa.cvl-visivel { transform: none; }
  .cvl-compra-fixa div { flex: 1; min-width: 0; font-size: 12px; }
  .cvl-compra-fixa b { font-weight: 500; display: block; font-size: 13px; }
  .cvl-compra-fixa .cvl-btn { min-height: 46px; padding: 0 22px; }
  body.cvl-tem-compra-fixa .cvl-whats-fixo { bottom: 80px; }

  .cvl-rapida { grid-template-columns: 110px 1fr; gap: 16px; }
  .cvl-modal { align-items: flex-end; padding: 0; }
  .cvl-modal__caixa { width: 100%; max-height: 88vh; padding-top: 34px; transform: translateY(40px); }

  .cvl-sobre-bloco { grid-template-columns: 1fr; }
  .cvl-sobre-bloco--inverte .cvl-sobre-bloco__foto { order: 0; }
  .cvl-valores { grid-template-columns: 1fr; }
  .cvl-suporte-grade { grid-template-columns: 1fr; }
  .cvl-busca__resultados { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .cvl-whats-fixo { width: 44px; height: 44px; right: 12px; bottom: 14px; }
  .cvl-whats-fixo svg { width: 22px; height: 22px; }
}

@media (max-width: 420px) {
  .cvl-slide__titulo { font-size: 28px; }
}

/* ============================================================
   EFEITOS EDITORIAIS
   ============================================================ */

/* Títulos palavra por palavra (estado oculto só com JavaScript ativo) */
.cvl-palavra { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.cvl-palavra > span { display: inline-block; }
.cvl-js [data-revela] .cvl-palavra > span {
  transform: translateY(108%);
  transition: transform 1.1s var(--ease);
  transition-delay: calc(var(--i, 0) * 70ms);
}
.cvl-js [data-revela].cvl-revelado .cvl-palavra > span { transform: none; }

/* Carrossel: título entra palavra por palavra, texto e botão em seguida */
.cvl-js .cvl-hero .cvl-slide__titulo .cvl-palavra > span { transform: translateY(108%); transition: transform 1.1s var(--ease); transition-delay: calc(.25s + var(--i, 0) * 80ms); }
.cvl-js .cvl-hero .cvl-slide.cvl-ativo .cvl-slide__titulo .cvl-palavra > span { transform: none; }
.cvl-js .cvl-hero .cvl-slide__num, .cvl-js .cvl-hero .cvl-slide__sub, .cvl-js .cvl-hero .cvl-slide__arroba, .cvl-js .cvl-hero .cvl-slide__caixa .cvl-btn {
  opacity: 0; transform: translateY(14px);
  transition: opacity .9s var(--ease), transform .9s var(--ease), background .35s, color .35s;
}
.cvl-js .cvl-hero .cvl-slide.cvl-ativo .cvl-slide__num { opacity: .8; transform: none; transition-delay: .15s; }
.cvl-js .cvl-hero .cvl-slide.cvl-ativo .cvl-slide__sub { opacity: 1; transform: none; transition-delay: .75s; }
.cvl-js .cvl-hero .cvl-slide.cvl-ativo .cvl-slide__arroba { opacity: 1; transform: none; transition-delay: .85s; }
.cvl-js .cvl-hero .cvl-slide.cvl-ativo .cvl-slide__caixa .cvl-btn { opacity: 1; transform: none; transition-delay: .95s; }

/* Pontos do carrossel com barra de tempo (preenchida pelo relógio do home.js) */
.cvl-hero__ponto { overflow: hidden; }
.cvl-hero__ponto i {
  position: absolute; left: 0; top: 50%; height: 2px; margin-top: -.5px; width: 100%;
  background: currentColor; transform: scaleX(var(--prog, 0)); transform-origin: left;
}
.cvl-hero__ponto.cvl-ativo::before { opacity: .35; height: 1px; }

/* Banner com a foto encostada à esquerda e o texto à direita */
@media (min-width: 901px) {
  .cvl-slide--espelho .cvl-slide__foto img {
    right: auto; left: var(--esq, 4%);
    -webkit-mask-image: linear-gradient(90deg, #000 0, #000 88%, transparent 100%);
            mask-image: linear-gradient(90deg, #000 0, #000 88%, transparent 100%);
  }
  .cvl-slide--espelho .cvl-slide__caixa { margin-left: auto; }
}


/* Parallax: a foto fica levemente maior para ter margem de movimento */
[data-parallax] { overflow: hidden; }
[data-parallax] img { will-change: transform; }

/* Card: tamanhos aparecem sobre a foto no hover (desktop) */
.cvl-card__visual { position: relative; }
.cvl-card__tamanhos { display: none; }
@media (hover: hover) and (min-width: 901px) {
  .cvl-card__tamanhos {
    display: block; position: absolute; left: 10px; right: 10px; bottom: 10px; z-index: 2;
    background: rgba(255, 252, 252, .94); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    padding: 12px 12px 10px; text-align: center;
    opacity: 0; transform: translateY(10px); transition: opacity .45s var(--ease), transform .45s var(--ease);
  }
  .cvl-card:hover .cvl-card__tamanhos, .cvl-card__tamanhos:focus-within { opacity: 1; transform: none; }
  .cvl-card__tamanhos p { font-size: 9.5px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--suave); margin-bottom: 8px; }
  .cvl-card__tamanhos div { display: flex; justify-content: center; gap: 6px; }
  .cvl-card__tamanhos button {
    min-width: 40px; height: 34px; padding: 0 10px; border: 1px solid var(--linha-forte);
    font-size: 11px; letter-spacing: .08em; transition: background .25s, color .25s, border-color .25s;
  }
  .cvl-card__tamanhos button:hover { background: var(--preto); color: var(--off); border-color: var(--preto); }
  .cvl-card__tamanhos button[disabled] { color: #C4B9AE; text-decoration: line-through; pointer-events: none; }
}

/* Textura de papel suave nas áreas bege */
.cvl-lifestyle__texto, .cvl-citacao, .cvl-secao--bege {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Sublinhado que desenha nos links de texto */
.cvl-link-seta { border-bottom: 0; background: linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat; transition: background-size .45s var(--ease); }
.cvl-link-seta:hover { background-size: 100% 1px; }

@media (prefers-reduced-motion: reduce) {
}
/* ============================================================
   COMPONENTES INSPIRADOS NO 21st.dev (implementação própria)
   ============================================================ */

/* ── Soft Blur In: título do banner surge letra por letra, do desfoque ── */
.cvl-letras-palavra { display: inline-block; white-space: nowrap; }
.cvl-letra { display: inline-block; }
.cvl-js .cvl-hero .cvl-slide__titulo .cvl-letra {
  opacity: 0; filter: blur(14px); transform: translateY(.18em);
  transition: opacity .9s var(--ease), filter .9s var(--ease), transform .9s var(--ease);
  transition-delay: calc(.2s + var(--c, 0) * 28ms);
}
.cvl-js .cvl-hero .cvl-slide.cvl-ativo .cvl-slide__titulo .cvl-letra { opacity: 1; filter: blur(0); transform: none; }

/* ── Text Roll: letras do menu rolam no hover ── */
.cvl-rolo { display: inline-flex; overflow: hidden; line-height: 1.25; height: 1.25em; vertical-align: top; }
.cvl-rolo__l { display: inline-flex; flex-direction: column; }
.cvl-rolo__l span { display: block; height: 1.25em; transition: transform .5s var(--ease); transition-delay: calc(var(--c, 0) * 18ms); }
.cvl-menu__link:hover .cvl-rolo__l span, .cvl-menu__link:focus-visible .cvl-rolo__l span { transform: translateY(-100%); }
.cvl-rolo__l span.cvl-esp { width: .3em; }

/* ── Zoom Parallax (desktop) ── */
.cvl-zoom-parallax { display: none; }
@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
  .cvl-js .cvl-zoom-parallax { display: block; position: relative; height: 300vh; background: var(--bege-claro); --p: 0; }
  .cvl-js .cvl-lifestyle--alternativa { display: none; }
}
.cvl-zoom__palco { position: sticky; top: calc(var(--altura-faixa) + var(--altura-header)); height: calc(100vh - var(--altura-faixa) - var(--altura-header)); overflow: hidden; }
.cvl-zoom__camada {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  transform: scale(calc(1 + var(--p) * (var(--k) - 1)));
}
.cvl-zoom__palco::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(251, 243, 234, .92) 0%, rgba(251, 243, 234, .7) 32%, rgba(251, 243, 234, 0) 58%);
  opacity: clamp(0, calc((var(--p) - .7) * 5), 1);
}
.cvl-zoom__img { position: relative; overflow: hidden; background: var(--bege); }
.cvl-zoom__img img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.cvl-z1 { width: 25vw; height: 25vh; }
.cvl-z2 { top: -30vh; left: 5vw; width: 35vw; height: 30vh; }
.cvl-z3 { top: -10vh; left: -25vw; width: 20vw; height: 45vh; }
.cvl-z4 { left: 27.5vw; width: 25vw; height: 25vh; }
.cvl-z5 { top: 27.5vh; left: 5vw; width: 20vw; height: 25vh; }
.cvl-z6 { top: 27.5vh; left: -22.5vw; width: 30vw; height: 25vh; }
.cvl-z7 { top: 22.5vh; left: 25vw; width: 15vw; height: 15vh; }
.cvl-zoom__texto {
  position: absolute; z-index: 2; left: 0; top: 50%; transform: translateY(-50%);
  width: min(560px, 44vw); margin-left: max(var(--gutter), calc((100vw - var(--largura)) / 2 + var(--gutter)));
  opacity: clamp(0, calc((var(--p) - .72) * 5), 1);
  pointer-events: none;
}
.cvl-zoom__texto > * { transform: translateY(calc((1 - clamp(0, (var(--p) - .72) * 5, 1)) * 24px)); }
.cvl-zoom__texto .cvl-sobretitulo { margin-bottom: 20px; }
.cvl-zoom__texto .cvl-titulo-display { font-size: clamp(40px, 4.4vw, 66px); }
.cvl-zoom__texto p:not(.cvl-sobretitulo) { font-size: 15px; margin: 22px 0 32px; }
.cvl-zoom-parallax[data-fim] .cvl-zoom__texto { pointer-events: auto; }
.cvl-zoom__texto .cvl-btn { background: transparent; color: var(--preto); }
.cvl-zoom__texto .cvl-btn:hover { background: var(--preto); color: var(--off); }

/* ── Hover Expand: faixas de imagem que se expandem ── */
.cvl-expande { display: flex; gap: 8px; height: clamp(420px, 62vh, 620px); }
.cvl-expande__painel {
  position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; background: var(--bege);
  transition: flex-grow .8s var(--ease);
}
.cvl-expande__painel.cvl-ativo { flex-grow: 5; }
.cvl-expande__painel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; transform: scale(1.04); transition: transform 1.2s var(--ease); }
.cvl-expande__painel.cvl-ativo img { transform: none; }
.cvl-expande__rotulo {
  position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%) rotate(180deg); writing-mode: vertical-rl;
  font-size: 11px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--preto);
  background: rgba(255, 252, 252, .82); padding: 14px 7px; transition: opacity .4s;
}
.cvl-expande__painel.cvl-ativo .cvl-expande__rotulo { opacity: 0; }
.cvl-expande__legenda {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 70px 28px 26px; color: var(--off);
  display: flex; flex-direction: column; gap: 4px;
  opacity: 0; transform: translateY(12px); transition: opacity .5s var(--ease) .2s, transform .5s var(--ease) .2s;
}
.cvl-expande__painel.cvl-ativo .cvl-expande__legenda { opacity: 1; transform: none; }
.cvl-expande__legenda b, .cvl-expande__legenda small { position: relative; z-index: 1; }
.cvl-expande__legenda b { font-family: var(--f-titulo); font-weight: 400; font-size: clamp(26px, 2.6vw, 36px); letter-spacing: .06em; text-transform: uppercase; line-height: 1.1; }
.cvl-expande__legenda small { font-size: 12px; letter-spacing: .08em; }

/* ── Progressive Blur: desfoque em camadas sob a legenda ── */
.cvl-desfoque { position: absolute; inset: 0; pointer-events: none; }
.cvl-desfoque::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 15, 15, 0), rgba(15, 15, 15, .42)); }
.cvl-desfoque i { position: absolute; inset: 0; }
.cvl-desfoque i:nth-child(1) { backdrop-filter: blur(1px); -webkit-backdrop-filter: blur(1px); -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 25%, #000 50%, transparent 75%); mask-image: linear-gradient(180deg, transparent 0%, #000 25%, #000 50%, transparent 75%); }
.cvl-desfoque i:nth-child(2) { backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); -webkit-mask-image: linear-gradient(180deg, transparent 25%, #000 50%, #000 75%, transparent 100%); mask-image: linear-gradient(180deg, transparent 25%, #000 50%, #000 75%, transparent 100%); }
.cvl-desfoque i:nth-child(3) { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); -webkit-mask-image: linear-gradient(180deg, transparent 50%, #000 75%, #000 100%); mask-image: linear-gradient(180deg, transparent 50%, #000 75%, #000 100%); }
.cvl-desfoque i:nth-child(4) { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); -webkit-mask-image: linear-gradient(180deg, transparent 75%, #000 100%); mask-image: linear-gradient(180deg, transparent 75%, #000 100%); }

@media (max-width: 900px) {
  .cvl-expande { flex-direction: column; height: auto; }
  .cvl-expande__painel { flex: none; height: 76px; transition: height .7s var(--ease); }
  .cvl-expande__painel.cvl-ativo { height: 420px; }
  .cvl-expande__rotulo { writing-mode: horizontal-tb; transform: translate(-50%, 50%); bottom: 50%; }
}
@media (prefers-reduced-motion: reduce) {
  .cvl-js .cvl-hero .cvl-slide__titulo .cvl-letra { opacity: 1; filter: none; transform: none; }
}

/* Molduras de foto: garante que a imagem (com mix-blend-mode e zoom/escala)
   nunca vaze para fora do quadro */
.cvl-galeria__principal, .cvl-galeria__mini, .cvl-card__midia, .cvl-categoria__img, .cvl-lifestyle__foto,
.cvl-sobre-bloco__foto, .cvl-zoom__img, .cvl-expande__painel, .cvl-insta a { contain: paint; isolation: isolate; }

/* ── Cabeçalho editorial das listagens (Shop, categorias, New In, Sale) ── */
.cvl-cabeca-pagina--foto {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: clamp(32px, 6vw, 96px);
  align-items: center; text-align: left; padding-bottom: clamp(32px, 4vw, 52px);
}
.cvl-cabeca-pagina--foto .cvl-cabeca-pagina__texto p:not(.cvl-trilha) { margin-left: 0; }
.cvl-cabeca-pagina__foto { margin: 0; aspect-ratio: 4 / 5; max-height: 520px; overflow: hidden; background: var(--bege); contain: paint; }
.cvl-cabeca-pagina__foto img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos-d, 50% 30%); mix-blend-mode: multiply; }
@media (max-width: 900px) {
  .cvl-cabeca-pagina--foto { grid-template-columns: 1fr; gap: 22px; text-align: center; }
  .cvl-cabeca-pagina--foto .cvl-cabeca-pagina__texto p:not(.cvl-trilha) { margin-left: auto; }
  .cvl-cabeca-pagina__foto { order: -1; aspect-ratio: 16 / 10; margin: 0 calc(var(--gutter) * -1); max-height: none; }
  .cvl-cabeca-pagina__foto img { object-position: var(--pos-m, 50% 10%); }
}

/* ── Quem Somos: abertura dividida, texto e retrato ── */
.cvl-sobre-hero--split { height: auto; display: grid; grid-template-columns: 1fr 1fr; background: #E9DCCF; }
.cvl-sobre-hero--split::after { display: none; }
.cvl-sobre-hero--split .cvl-sobre-hero__texto { position: static; color: var(--preto); display: flex; flex-direction: column; justify-content: center; padding: 56px max(var(--gutter), calc((100vw - var(--largura)) / 2 + var(--gutter))); padding-right: clamp(24px, 5vw, 80px); }
.cvl-sobre-hero--split .cvl-sobre-hero__texto .cvl-titulo-display { margin-top: 16px; }
.cvl-sobre-hero__foto { aspect-ratio: 4 / 5; max-height: 86vh; width: 100%; overflow: hidden; contain: paint; }
.cvl-sobre-hero__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 8%; }
@media (max-width: 900px) {
  .cvl-sobre-hero--split { grid-template-columns: 1fr; }
  .cvl-sobre-hero__foto { order: -1; max-height: none; }
  .cvl-sobre-hero--split .cvl-sobre-hero__texto { padding: 36px var(--gutter) 44px; }
}

/* ── Busca visível no celular (como no layout de referência) ── */
.cvl-so-mobile-bloco { display: none; }
@media (max-width: 900px) {
  .cvl-so-mobile-bloco { display: block; }
  .cvl-busca-mobile { padding: 0 var(--gutter) 10px; overflow: hidden; max-height: 60px; transition: max-height .35s var(--ease), padding .35s var(--ease), opacity .3s; }
  .cvl-cabecalho.cvl-rolou .cvl-busca-mobile { max-height: 0; padding-bottom: 0; opacity: 0; }
  .cvl-busca-mobile__campo {
    width: 100%; height: 40px; display: flex; align-items: center; gap: 10px; padding: 0 14px;
    border: 1px solid var(--linha-forte); background: var(--off); color: var(--suave); font-size: 12.5px; text-align: left;
  }
  .cvl-busca-mobile__campo .cvl-icone { width: 17px; height: 17px; color: var(--preto); }
}

/* ── Aviso de cookies (LGPD) ── */
.cvl-cookies {
  position: fixed; left: 20px; bottom: 20px; z-index: 115; max-width: 420px;
  background: var(--off); border: 1px solid var(--linha); box-shadow: 0 18px 40px -24px rgba(15, 15, 15, .45);
  padding: 18px 20px; font-size: 12.5px; display: grid; gap: 14px;
}
.cvl-cookies a { text-decoration: underline; text-underline-offset: 3px; }
.cvl-cookies__acoes { display: flex; gap: 8px; justify-content: flex-end; }
.cvl-cookies .cvl-btn { min-height: 38px; padding: 0 16px; font-size: 10px; }
@media (max-width: 900px) {
  .cvl-cookies { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 14px 16px; }
}

/* ── Logo oficial (imagem) ── */
.cvl-logo { display: inline-flex; align-items: center; margin-right: 0; }
.cvl-logo img { display: block; height: clamp(24px, 2.3vw, 30px); width: auto; transition: height .35s var(--ease); }
.cvl-cabecalho.cvl-rolou .cvl-logo img { height: 24px; }
.cvl-logo--menu img { height: 20px; }
.cvl-logo--rodape img { height: 46px; }
.cvl-vip__marca img { display: block; height: clamp(58px, 6vw, 84px); width: auto; }
@media (max-width: 900px) {
  .cvl-logo img, .cvl-cabecalho.cvl-rolou .cvl-logo img { height: 21px; }
  .cvl-vip__marca img { margin: 0 auto; }
}

/* ── Quem Somos: texto original em sequência, com uma foto por bloco ── */
.cvl-sobre-bloco--texto { padding-block: clamp(56px, 8vw, 110px); }
.cvl-sobre-bloco--texto + .cvl-sobre-bloco--texto { padding-top: 0; }
.cvl-sobre-bloco--texto .cvl-sobre-bloco__texto { max-width: 500px; }
.cvl-sobre-bloco--texto .cvl-sobre-bloco__texto p { font-size: 16px; line-height: 1.9; }
.cvl-sobre-bloco--texto .cvl-sobre-bloco__texto p + p { margin-top: 22px; }
.cvl-sobre-destaque { font-family: var(--f-titulo); font-size: clamp(24px, 2.4vw, 32px) !important; line-height: 1.25 !important; color: var(--preto) !important; letter-spacing: .01em; }
.cvl-sobre-destaque em { font-style: italic; }
@media (max-width: 900px) {
  .cvl-sobre-bloco--texto { gap: 28px; padding-block: 44px; }
}

/* ============================================================
   PARTE 2 — AJUSTES PARA O TEMA DA NUVEMSHOP (tema-cvl/src/cvl-nativo.css)
   1) neutraliza estilos base do tema que o site de referência não tem;
   2) veste os componentes NATIVOS (sacola, avisos, busca, frete, filtros,
      "carregar mais") com o visual do site de referência.
   ============================================================ */

/* ── 1. Base: o tema define fonte/peso/tamanho nos títulos e hover nos links ── */
h1, h2, h3, h4, h5, h6 { font-family: inherit; }
p { line-height: inherit; }
a { transition: none; }
a:hover, a:focus { color: inherit; fill: inherit; }
.cvl-oculto, #related-products-notification, .js-modal-overlay[data-modal-id="#related-products-notification"] { display: none !important; }
.cvl-form-nativo, .cvl-variantes-nativas, [data-cvl-produto] .js-product-variants { display: none !important; }
.cvl-btn[disabled] { opacity: .35; pointer-events: none; }
.cvl-btn.cvl-btn--bloco { display: flex; }
.cvl-card__nome { margin: 0; }
.cvl-preco s:empty { display: none; }
.cvl-preco .js-compare-price-display { font-weight: 300; color: var(--suave); font-size: 12.5px; margin-right: 8px; text-decoration: line-through; }
.cvl-info-produto .cvl-preco .js-compare-price-display { font-size: 15px; }
.cvl-info-produto h1 { margin: 0; font-weight: 400; }
.cvl-cabecalho { z-index: 1000; }
.cvl-gaveta-menu { z-index: 1090; }
.cvl-busca { z-index: 1095; }
.cvl-modal { z-index: 1110; }
.cvl-aviso { z-index: 1120; }
.cvl-whats-fixo { z-index: 1060; }
.cvl-compra-fixa { z-index: 1055; }
.cvl-sanfona__corpo p + p { margin-top: 10px; }
.cvl-sanfona__corpo.user-content ul { padding-left: 0; }

/* Avisos do tema (cookies, pedido, "adicionado") no estilo do site */
.js-notification-cookie-banner.notification {
  left: 20px; right: auto; bottom: 20px; max-width: 420px; width: auto;
  background: var(--off); color: var(--preto); border: 1px solid var(--linha);
  box-shadow: 0 18px 40px -24px rgba(15, 15, 15, .45); padding: 18px 20px; font-size: 12.5px; z-index: 1115;
}
.js-notification-cookie-banner .container, .js-notification-cookie-banner .row, .js-notification-cookie-banner [class*="col"] { max-width: none; width: auto; margin: 0; padding: 0; flex: none; text-align: left; }
.js-notification-cookie-banner .row { display: grid; gap: 14px; }
.js-notification-cookie-banner .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 16px; font-size: 10px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; border: 1px solid var(--preto); background: var(--preto); color: var(--off); border-radius: 0; float: right; }
@media (max-width: 900px) { .js-notification-cookie-banner.notification { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 14px 16px; } }

/* ── 2. Sacola NATIVA (#modal-cart) com o visual de .sacola ── */
.modal-overlay { background: rgba(15, 15, 15, .38); }
#modal-cart.modal {
  width: min(100vw, 440px); max-width: 100vw; padding: 0; background: var(--off); color: var(--preto);
  font-family: var(--f-texto); font-size: 14px; font-weight: 300; overflow: hidden;
  transition: right .5s var(--ease), left .5s var(--ease), opacity .3s;
}
#modal-cart > form { display: flex; flex-direction: column; height: 100%; }
#modal-cart .modal-header {
  width: auto; margin: 0; display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: center;
  padding: 18px 16px 18px 24px; border-bottom: 1px solid var(--linha);
  font-size: 12px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; cursor: default;
}
#modal-cart .modal-close { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; margin: -10px -6px -10px 0; padding: 0; cursor: pointer; }
#modal-cart .modal-close svg { width: 18px; height: 18px; }
#modal-cart .modal-body { flex: 1; min-height: 0; overflow-y: auto; padding: 0; display: flex; flex-direction: column; }
#modal-cart .cart-row { margin: 0; }
#modal-cart .js-ajax-cart-list { padding: 8px 24px; }
#modal-cart .cart-item {
  display: grid; grid-template-columns: 84px 1fr auto; gap: 0 16px; align-items: start;
  padding: 18px 0; margin: 0; border-bottom: 1px solid var(--linha);
}
#modal-cart .cart-item > [class*="col"] { width: auto; max-width: none; flex: none; padding: 0; }
#modal-cart .cart-item img { width: 84px; aspect-ratio: 3 / 4; object-fit: cover; background: var(--bege-claro); }
#modal-cart .cart-item-name { font-size: 13px; font-weight: 400; line-height: 1.45; margin: 0; }
#modal-cart .cart-item-name a { color: var(--preto); }
#modal-cart .cart-item-name small { display: block; font-size: 11px; color: var(--suave); letter-spacing: .04em; margin-top: 2px; }
#modal-cart .cart-item-quantity { margin-top: 12px; }
#modal-cart .form-quantity { display: inline-flex; align-items: center; border: 1px solid var(--linha-forte); height: 32px; margin: 0 !important; float: none !important; }
#modal-cart .form-quantity .row { margin: 0; flex-wrap: nowrap; align-items: center; }
#modal-cart .cart-item-btn { width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: none; border: 0; }
#modal-cart .cart-item-btn svg { width: 10px; height: 10px; }
#modal-cart .cart-item-input { width: 26px; height: 30px; padding: 0; border: 0; text-align: center; font-size: 12px; background: transparent; }
#modal-cart .cart-item-subtotal { font-size: 13px; font-weight: 500; margin: 10px 0 0; }
#modal-cart .cart-item-delete .btn { padding: 0; background: none; border: 0; color: var(--suave); }
#modal-cart .cart-item-delete svg { width: 14px; height: 14px; fill: var(--suave); }
#modal-cart .alert { background: none; border: 0; padding: 60px 24px; text-align: center; color: var(--suave); font-size: 14px; }
#modal-cart .js-ship-free-rest { padding: 16px 24px; background: var(--bege-claro); font-size: 12px; }
#modal-cart .bar-progress { height: 2px; background: var(--linha-forte); margin: 0 0 10px; overflow: hidden; border-radius: 0; }
#modal-cart .bar-progress-active { height: 100%; background: var(--preto); }
#modal-cart .ship-free-rest-text, #modal-cart .ship-free-rest-text strong { font-size: 12px; font-weight: 300; color: var(--preto); }
#modal-cart .ship-free-rest-text strong { font-weight: 500; }
#modal-cart .modal-body > .cart-row:last-child { margin-top: auto; border-top: 1px solid var(--linha); padding: 18px 24px 22px; }
#modal-cart .js-visible-on-cart-filled.h5, #modal-cart [data-store="cart-subtotal"] { display: flex; justify-content: space-between; font-size: 13px; font-weight: 300; margin: 0; padding: 3px 0; }
#modal-cart [data-store="cart-subtotal"] strong { font-weight: 500; }
#modal-cart .js-cart-total-container .h2 { display: flex; justify-content: space-between; font-size: 15px; font-weight: 500; margin: 8px 0 0; padding-top: 10px; border-top: 1px solid var(--linha); }
#modal-cart .text-accent, #modal-cart .payment-discount-price-cart-container { color: var(--preto); font-size: 13px; font-weight: 500; }
#modal-cart .container-fluid { padding: 0; }
#modal-cart .js-ajax-cart-submit { margin: 16px 0 0; }
#modal-cart input[name="go_to_checkout"] {
  width: 100%; min-height: 48px; padding: 0 30px; font-family: var(--f-texto); font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  border: 1px solid var(--preto); background: var(--preto); color: var(--off); border-radius: 0; cursor: pointer;
  transition: background .35s var(--ease), color .35s var(--ease);
}
#modal-cart input[name="go_to_checkout"]:hover { background: transparent; color: var(--preto); }
#modal-cart .btn-link { display: block; margin: 14px auto 0; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; color: var(--preto); background: none; border: 0; }
#modal-cart .shipping-calculator-head, #modal-cart #cart-shipping-container { font-size: 12.5px; }
@media (min-width: 768px) { #modal-cart.modal-right { right: -100%; } #modal-cart.modal-right.modal-show { right: 0; } }

/* Aviso "adicionado ao carrinho" (quando o tema usa notificação) */
.js-alert-added-to-cart .notification { background: var(--off); color: var(--preto); border: 1px solid var(--linha); box-shadow: 0 18px 40px -24px rgba(15, 15, 15, .45); padding: 18px 20px; font-size: 12.5px; }
.js-alert-added-to-cart .btn { width: 100%; min-height: 42px; font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; background: var(--preto); color: var(--off); border: 1px solid var(--preto); border-radius: 0; }

/* ── Busca: sugestões NATIVAS no formato de .busca__resultados ── */
.cvl-busca__sugestoes-nativas { display: none; }
.cvl-busca__sugestoes-nativas .search-suggest-list { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; margin: 26px 0 0; padding: 0; list-style: none; }
.cvl-busca__sugestoes-nativas .search-suggest-item { padding: 0; margin: 0; max-width: none; }
.cvl-busca__sugestoes-nativas .search-suggest-link { display: block; margin: 0; color: var(--preto); }
.cvl-busca__sugestoes-nativas .search-suggest-link > div { max-width: none; width: 100%; padding: 0; flex: none; }
.cvl-busca__sugestoes-nativas .search-suggest-image { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--bege-claro); }
.cvl-busca__sugestoes-nativas .search-suggest-name { font-size: 12px; margin-top: 8px; }
.cvl-busca__sugestoes-nativas .search-suggest-text p + p, .cvl-busca__sugestoes-nativas .search-suggest-text p:last-child { font-size: 12px; font-weight: 500; }
.cvl-busca__sugestoes-nativas .search-suggest-text span, .cvl-busca__sugestoes-nativas .search-suggest-icon { display: none; }
.cvl-busca__sugestoes-nativas .js-search-suggest-all-link { grid-column: 1 / -1; justify-self: start; display: inline-flex; align-items: center; min-height: 42px; padding: 0 24px; font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; border: 1px solid var(--preto); background: transparent; color: var(--preto); border-radius: 0; }
@media (max-width: 1100px) { .cvl-busca__sugestoes-nativas .search-suggest-list { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 900px) { .cvl-busca__sugestoes-nativas .search-suggest-list { grid-template-columns: repeat(3, 1fr); gap: 12px; } }

/* ── Frete NATIVO na página de produto (formulário no estilo .frete-calc) ── */
.cvl-frete-calc .divider { display: none; }
.cvl-frete-calc .form-group { display: flex; gap: 8px; margin: 0; }
.cvl-frete-calc input.form-control, .cvl-frete-calc .js-shipping-input {
  width: 100%; height: 46px; padding: 0 14px; border: 1px solid var(--linha-forte); background: transparent; font-size: 13px; border-radius: 0; color: var(--preto);
}
.cvl-frete-calc input.form-control:focus { outline: none; border-color: var(--preto); }
.cvl-frete-calc .btn, .cvl-frete-calc button {
  min-height: 46px; padding: 0 20px; font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  border: 1px solid var(--preto); background: transparent; color: var(--preto); border-radius: 0; white-space: nowrap;
}
.cvl-frete-calc .btn:hover, .cvl-frete-calc button:hover { background: var(--preto); color: var(--off); }
.cvl-frete-calc .btn-link { min-height: 0; padding: 0; border: 0; background: none; text-decoration: underline; text-underline-offset: 3px; font-size: 11.5px; letter-spacing: 0; text-transform: none; }
.cvl-frete-calc .shipping-calculator-response, .cvl-frete-calc .js-shipping-calculator-response { font-size: 12.5px; }
.cvl-frete-calc .list-readonly li, .cvl-frete-calc .radio-button { border-bottom: 1px dashed var(--linha); padding: 6px 0; }

/* ── Listagem: filtros e "carregar mais" nativos ── */
.cvl-chip--filtro { border-style: dashed; }
.cvl-filtros-aplicados:empty { display: none; }
.cvl-filtros-aplicados .btn, .cvl-filtros-aplicados .chip { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; border: 1px solid var(--linha-forte); padding: 8px 14px; border-radius: 0; background: transparent; color: var(--preto); }
.cvl-filtros-aplicados { margin: -20px 0 28px; display: flex; flex-wrap: wrap; gap: 8px; }
.cvl-carregar .js-load-more {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 0 30px;
  font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  border: 1px solid var(--preto); background: transparent; color: var(--preto); border-radius: 0;
}
.cvl-carregar .js-load-more:hover { background: var(--preto); color: var(--off); }
.cvl-carregar > div { text-align: center; margin-top: 48px; }
.cvl-filtros-nativos.modal { background: var(--off); padding: 0; font-family: var(--f-texto); }
.cvl-filtros-nativos .modal-header { width: auto; margin: 0; padding: 18px 24px; border-bottom: 1px solid var(--linha); font-size: 12px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
.cvl-filtros-nativos .modal-body { padding: 16px 24px; font-size: 13px; }

/* ── Páginas institucionais: conteúdo do painel no estilo de .texto-pagina ── */
.cvl-texto-pagina h1, .cvl-texto-pagina h3 { font-family: var(--f-titulo); font-weight: 400; letter-spacing: .04em; text-transform: uppercase; margin: 44px 0 14px; font-size: 24px; }
.cvl-texto-pagina h4, .cvl-texto-pagina h5, .cvl-texto-pagina h6 { font-size: 13px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; margin: 28px 0 10px; }
.cvl-texto-pagina ul, .cvl-texto-pagina ol { padding-left: 0; list-style: none; }
.cvl-texto-pagina strong, .cvl-texto-pagina b { font-weight: 500; }
.cvl-texto-pagina > *:first-child { margin-top: 0; }

/* Página de produto: a imagem principal é trocada pelo JS (galeria) */
.cvl-galeria__principal img { transition: transform .25s ease-out, opacity .18s; }
.cvl-frete-calc .cvl-escolha__rotulo { margin-bottom: 12px; }

/* ── 3. CSS personalizado do painel (Layout › CSS avançado) tem regras com !important
      para "footer" e para todo botão de envio. Aqui o visual do site de referência vence
      só nos elementos cvl- (o painel não foi alterado). ── */
footer.cvl-rodape { background: var(--off) !important; border-top: 1px solid var(--linha) !important; color: var(--preto) !important; padding-bottom: 0; }
.cvl-rodape .cvl-rodape__marca p, .cvl-rodape .cvl-rodape__col a, .cvl-rodape .cvl-rodape__col li { color: var(--suave) !important; }
.cvl-rodape .cvl-rodape__col a:hover { color: var(--preto) !important; }
.cvl-rodape .cvl-redes a { color: var(--preto) !important; }
.cvl-rodape .cvl-redes a:hover { color: var(--off) !important; }
.cvl-rodape .cvl-logo, .cvl-rodape__base a { color: inherit !important; }
.cvl-rodape__legal { display: inline-flex; align-items: center; gap: 12px; font-size: 10.5px; color: var(--suave); }
.cvl-rodape__legal img { display: inline-block; height: 14px; width: auto; vertical-align: middle; opacity: .7; }
.cvl-rodape__claim, .cvl-rodape__claim * { font-size: 10.5px !important; color: var(--suave) !important; margin: 0 !important; }
.cvl-rodape__base > span:first-child { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
button.cvl-btn[type="submit"], .cvl-btn.js-addtocart { color: var(--off) !important; letter-spacing: .22em !important; border-radius: 0 !important; }
.cvl-compra .cvl-btn.js-addtocart:hover { color: var(--preto) !important; }
#modal-cart input[name="go_to_checkout"] { color: var(--off) !important; letter-spacing: .22em !important; }
#modal-cart input[name="go_to_checkout"]:hover { color: var(--preto) !important; }
.cvl-frete-calc .btn, .cvl-frete-calc button, .cvl-frete-calc input[type="submit"] { color: var(--preto) !important; letter-spacing: .22em !important; border-radius: 0 !important; }
.cvl-frete-calc .btn:hover, .cvl-frete-calc button:hover, .cvl-frete-calc input[type="submit"]:hover { color: var(--off) !important; }
/* Sacola: textos na fonte do site (o tema usa a fonte de títulos em .h2/.h5) e frete no estilo do site */
#modal-cart h1, #modal-cart h2, #modal-cart h3, #modal-cart h4, #modal-cart h5, #modal-cart h6,
#modal-cart .h1, #modal-cart .h2, #modal-cart .h3, #modal-cart .h4, #modal-cart .h5, #modal-cart .h6 { font-family: var(--f-texto); }
#modal-cart [data-store="cart-subtotal"], #modal-cart [data-store="cart-subtotal"] * { font-size: 13px; font-weight: 300; }
#modal-cart [data-store="cart-subtotal"] strong { font-weight: 500; }
#modal-cart .js-cart-total-container .h2, #modal-cart .js-cart-total-container .h2 * { font-size: 15px; font-weight: 500; }
#modal-cart #cart-shipping-container .js-shipping-input { height: 42px; border: 1px solid var(--linha-forte); background: transparent; padding: 0 12px; font-size: 13px; border-radius: 0; }
#modal-cart .js-calculate-shipping, #modal-cart .calculate-shipping-button, #modal-cart .btn-secondary {
  min-height: 42px; padding: 0 18px; font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  border: 1px solid var(--preto) !important; background: transparent !important; color: var(--preto) !important; border-radius: 0 !important;
}
#modal-cart .js-calculate-shipping:hover, #modal-cart .calculate-shipping-button:hover, #modal-cart .btn-secondary:hover { background: var(--preto) !important; color: var(--off) !important; }
#modal-cart #cart-shipping-container { margin: 0; padding: 14px 0; font-size: 12.5px; }
#modal-cart .divider { border-color: var(--linha); margin: 0; }
/* Listagem: a loja tem mais categorias que o protótipo (Conjuntos, Tops) + "Filtrar";
   os chips ficam numa linha só (rolam de lado), mantendo a barra com a altura do site de referência */
.cvl-filtros { flex-wrap: nowrap; }
.cvl-filtros__cats { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; min-width: 0; }
.cvl-filtros__cats::-webkit-scrollbar { display: none; }
.cvl-filtros__cats .cvl-chip { white-space: nowrap; flex: none; }
.cvl-filtros__dir { flex: none; }
@media (max-width: 900px) { .cvl-filtros { flex-wrap: wrap; } }
/* Frete nativo no produto: só o rótulo "Calcular frete", campo + botão numa linha (como .frete-calc form) */
.cvl-frete-calc .shipping-calculator-form .col-12.mb-2 { display: none; }
.cvl-frete-calc .shipping-calculator-form .row, .cvl-frete-calc .shipping-calculator-form.row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.cvl-frete-calc .shipping-calculator-form .form-control-container { flex: 1 1 0; max-width: none; width: auto; padding: 0; }
.cvl-frete-calc .shipping-calculator-form span[class*="col-"] { flex: none; max-width: none; width: auto; padding: 0; }
.cvl-frete-calc .shipping-calculator-form .col-12:last-child { flex: 0 0 100%; padding: 0; }
.cvl-frete-calc .shipping-calculator-form a.font-small { display: inline-block; margin: 8px 0 0 !important; font-size: 11.5px; color: var(--suave) !important; text-decoration: underline; text-underline-offset: 3px; }
.cvl-frete-calc .product-shipping-calculator { font-size: 14px; }
/* Busca: o CSS do painel pinta .btn-primary de branco — o link "Ver todos os resultados" volta a ter texto preto */
.cvl-busca__sugestoes-nativas .js-search-suggest-all-link { color: var(--preto) !important; letter-spacing: .22em !important; }
.cvl-busca__sugestoes-nativas .js-search-suggest-all-link:hover { background: var(--preto) !important; color: var(--off) !important; }
.cvl-busca__sugestoes-nativas .search-suggest-item { border: 0; }

/* Nota de descontos não cumulativos (site de referência › checkout .nota-descontos), na sacola antes de Finalizar compra */
.cvl-nota-descontos { font-size: 12px; color: var(--suave); background: var(--bege-claro); padding: 10px 14px; margin-top: 12px; line-height: 1.5; }

/* Pedido da cliente (CORREÇÃO SITE.docx): a faixa roda e os banners trocam com fade mesmo com
   "reduzir movimento" ligado no sistema. Os demais efeitos (zoom, parallax, títulos) continuam respeitando. */
@media (prefers-reduced-motion: reduce) {
  .cvl-faixa__trilho { animation: cvl-faixa-rola 60s linear infinite !important; }
  .cvl-slide { transition: opacity 1.1s var(--ease), visibility 1.1s !important; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 900px) {
  .cvl-faixa__trilho { animation-duration: 45s !important; }
}