/* Fontes do encarte — hospedadas localmente (sem requisições a terceiros). */
@font-face { font-family: 'Anton'; src: url('../vendor/fonts/anton-latin-400-normal.woff2') format('woff2'); font-display: block; }
@font-face { font-family: 'Bebas Neue'; src: url('../vendor/fonts/bebas-neue-latin-400-normal.woff2') format('woff2'); font-display: block; }
@font-face { font-family: 'Oswald'; font-weight: 700; src: url('../vendor/fonts/oswald-latin-700-normal.woff2') format('woff2'); font-display: block; }
@font-face { font-family: 'Oswald'; font-weight: 400; src: url('../vendor/fonts/oswald-latin-700-normal.woff2') format('woff2'); font-display: block; }
@font-face { font-family: 'Lobster'; src: url('../vendor/fonts/lobster-latin-400-normal.woff2') format('woff2'); font-display: block; }
@font-face { font-family: 'Montserrat'; font-weight: 400; src: url('../vendor/fonts/montserrat-latin-400-normal.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Montserrat'; font-weight: 600; src: url('../vendor/fonts/montserrat-latin-600-normal.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Montserrat'; font-weight: 800; src: url('../vendor/fonts/montserrat-latin-800-normal.woff2') format('woff2'); font-display: swap; }

.enc-folha {
  --u: 7.94px;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  grid-template-areas: "cabecalho" "validade" "grade" "rodape";
  background: var(--fundo);
  color: var(--card-texto);
  font-family: 'Montserrat', system-ui, sans-serif;
  box-sizing: border-box;
  line-height: 1.1;
  -webkit-font-smoothing: antialiased;
}
.enc-folha *, .enc-folha *::before, .enc-folha *::after { box-sizing: border-box; }

/* Padrões de fundo */
.enc-fundo { position: absolute; inset: 0; pointer-events: none; }
.enc-padrao-raios .enc-fundo {
  background: repeating-conic-gradient(from 0deg at 50% 0%,
    color-mix(in srgb, var(--p) 9%, transparent) 0deg 5deg, transparent 5deg 10deg);
}
.enc-padrao-listras .enc-fundo {
  background: repeating-linear-gradient(135deg,
    color-mix(in srgb, var(--p) 7%, transparent) 0 calc(var(--u) * 1.2),
    transparent calc(var(--u) * 1.2) calc(var(--u) * 2.4));
}
.enc-padrao-bolinhas .enc-fundo {
  background-image: radial-gradient(color-mix(in srgb, var(--p) 14%, transparent) 22%, transparent 24%);
  background-size: calc(var(--u) * 4) calc(var(--u) * 4);
}
.enc-padrao-xadrez .enc-fundo {
  background-image:
    linear-gradient(45deg, color-mix(in srgb, var(--s) 6%, transparent) 25%, transparent 25%, transparent 75%, color-mix(in srgb, var(--s) 6%, transparent) 75%),
    linear-gradient(45deg, color-mix(in srgb, var(--s) 6%, transparent) 25%, transparent 25%, transparent 75%, color-mix(in srgb, var(--s) 6%, transparent) 75%);
  background-size: calc(var(--u) * 5) calc(var(--u) * 5);
  background-position: 0 0, calc(var(--u) * 2.5) calc(var(--u) * 2.5);
}
.enc-escuro.enc-padrao-raios .enc-fundo {
  background: repeating-conic-gradient(from 0deg at 50% 0%,
    color-mix(in srgb, var(--s) 10%, transparent) 0deg 5deg, transparent 5deg 10deg);
}
.enc-escuro.enc-padrao-listras .enc-fundo {
  background: repeating-linear-gradient(135deg,
    color-mix(in srgb, var(--s) 7%, transparent) 0 calc(var(--u) * 1.2),
    transparent calc(var(--u) * 1.2) calc(var(--u) * 2.4));
}

/* Cabeçalho */
.enc-cabecalho {
  grid-area: cabecalho;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--u) * 2);
  padding: calc(var(--u) * 3) calc(var(--u) * 4) calc(var(--u) * 3.6);
  background: var(--p);
  color: #fff;
  text-align: center;
  box-shadow: 0 calc(var(--u) * 0.9) 0 var(--s);
  z-index: 1;
}
.enc-cabecalho.com-logo { justify-content: flex-start; text-align: left; }
.enc-logo {
  flex: 0 0 auto;
  width: calc(var(--u) * 18);
  height: calc(var(--u) * 18);
  background: #fff center / contain no-repeat;
  border-radius: calc(var(--u) * 2);
  border: calc(var(--u) * 0.6) solid var(--s);
}
.enc-bloco-titulo { flex: 1 1 auto; min-width: 0; }
.enc-horizontal .enc-bloco-titulo { flex: 0 0 auto; width: 100%; }
.enc-titulo {
  margin: 0;
  font-family: var(--fonte-titulo), Impact, sans-serif;
  font-weight: 400;
  font-size: calc(var(--u) * 11);
  line-height: 1.1;
  padding-top: 0.06em;
  color: var(--s);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  text-shadow: calc(var(--u) * 0.45) calc(var(--u) * 0.45) 0 rgba(0, 0, 0, 0.35);
  overflow-wrap: break-word;
  white-space: nowrap;
  overflow: hidden;
}
.enc-folha[class*="enc-"] .enc-titulo { font-family: var(--fonte-titulo), Impact, sans-serif; }
.enc-subtitulo {
  margin-top: calc(var(--u) * 1.2);
  font-size: calc(var(--u) * 3.6);
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.02em;
}

.enc-validade-wrap { grid-area: validade; position: relative; z-index: 2; display: flex; justify-content: center; min-height: calc(var(--u) * 1.5); }
.enc-validade {
  margin-top: calc(var(--u) * 2.2);
  padding: calc(var(--u) * 1) calc(var(--u) * 3.2);
  background: var(--card);
  color: var(--p);
  border: calc(var(--u) * 0.45) solid var(--p);
  border-radius: 999px;
  font-size: calc(var(--u) * 2.7);
  font-weight: 800;
  text-transform: uppercase;
  text-align: center;
  max-width: 92%;
}
.enc-escuro .enc-validade { color: var(--s); border-color: var(--s); }

/* Grade de produtos */
.enc-grade {
  grid-area: grade;
  position: relative;
  z-index: 1;
  display: grid;
  grid-auto-rows: minmax(0, 1fr);
  grid-auto-flow: dense;
  gap: calc(var(--u) * 1.8);
  padding: calc(var(--u) * 2.4) calc(var(--u) * 3) calc(var(--u) * 3);
  min-height: 0;
}

.enc-card {
  position: relative;
  container-type: size;
  background: var(--card);
  border-radius: calc(var(--u) * 1.6);
  box-shadow: 0 calc(var(--u) * 0.4) calc(var(--u) * 1.2) rgba(0, 0, 0, 0.18);
  border: calc(var(--u) * 0.25) solid color-mix(in srgb, var(--p) 25%, transparent);
  min-width: 0;
  min-height: 0;
}
.enc-escuro .enc-card { border-color: color-mix(in srgb, var(--s) 35%, transparent); }
.enc-destaque { grid-column: span 2; grid-row: span 2; border-width: calc(var(--u) * 0.6); border-color: var(--s); }

.enc-card-corpo {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 5cqmin;
  gap: 2cqmin;
  overflow: hidden;
  border-radius: inherit;
}

.enc-selo {
  position: absolute;
  top: 4cqmin;
  left: 4cqmin;
  z-index: 3;
  padding: 1.5cqmin 3.5cqmin;
  background: var(--p);
  color: var(--s);
  font-family: var(--fonte-titulo), Impact, sans-serif;
  font-size: min(8cqmin, 7cqw);
  line-height: 1;
  text-transform: uppercase;
  border-radius: 2cqmin;
  transform: rotate(-6deg);
  box-shadow: 0 0.8cqmin 0 rgba(0, 0, 0, 0.25);
  white-space: nowrap;
}
.enc-escuro .enc-selo { background: var(--s); color: #111; }

.enc-img {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: center / contain no-repeat;
}
.enc-emoji { font-size: min(40cqh, 52cqw); line-height: 1; filter: drop-shadow(0 1cqmin 1cqmin rgba(0, 0, 0, 0.2)); }

.enc-textos { flex: 0 0 auto; text-align: center; }
.enc-nome {
  font-weight: 800;
  font-size: min(9.5cqw, 8cqh);
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--card-texto);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.enc-detalhe { margin-top: 0.8cqmin; font-weight: 600; font-size: min(6.5cqw, 5.5cqh); opacity: 0.75; color: var(--card-texto); }

.enc-preco { flex: 0 0 auto; text-align: center; white-space: nowrap; }
.enc-de { font-size: min(6cqw, 5cqh); font-weight: 600; text-decoration: line-through; opacity: 0.85; margin-bottom: 0.5cqmin; }
.enc-valor { display: inline-flex; align-items: flex-start; justify-content: center; line-height: 0.85; }
.enc-rs { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: min(7cqw, 6cqh); margin: 1.6cqmin 1cqmin 0 0; }
.enc-int { font-family: var(--fonte-titulo), Impact, sans-serif; font-size: min(25cqw, 19cqh); letter-spacing: -0.01em; }
.enc-lado { display: inline-flex; flex-direction: column; align-items: flex-start; }
.enc-cents { font-family: var(--fonte-titulo), Impact, sans-serif; font-size: min(12cqw, 9.5cqh); }
.enc-un { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: min(5.5cqw, 4.5cqh); margin-top: 0.5cqmin; }

/* Estilo etiqueta: preço em tag amarela inclinada */
.enc-estilo-etiqueta .enc-preco {
  align-self: center;
  padding: 2cqmin 4.5cqmin 2.4cqmin;
  background: var(--s);
  color: var(--p);
  border-radius: 3cqmin;
  transform: rotate(-3deg);
  box-shadow: 0 1cqmin 0 color-mix(in srgb, var(--p) 55%, #000);
}
.enc-escuro.enc-estilo-etiqueta .enc-preco { color: #111; }

/* Estilo faixa: barra de preço na base do card */
.enc-estilo-faixa .enc-preco {
  margin: 0 -5cqmin -5cqmin;
  padding: 2.6cqmin 3cqmin 3cqmin;
  background: var(--p);
  color: var(--s);
}
.enc-escuro.enc-estilo-faixa .enc-preco { background: var(--s); color: #111; }

/* Estilo círculo: selo de preço redondo sobre a foto */
.enc-estilo-circulo .enc-card-corpo { padding-top: 5cqmin; }
.enc-estilo-circulo .enc-preco {
  position: absolute;
  right: 3cqmin;
  top: 3cqmin;
  z-index: 2;
  width: 44cqmin;
  height: 44cqmin;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--p);
  color: var(--s);
  border: 1.4cqmin solid var(--s);
  box-shadow: 0 1cqmin 2cqmin rgba(0, 0, 0, 0.3);
  transform: rotate(-8deg);
}
.enc-estilo-circulo .enc-int { font-size: 17cqmin; }
.enc-estilo-circulo .enc-cents { font-size: 8cqmin; }
.enc-estilo-circulo .enc-rs { font-size: 4.6cqmin; margin-top: 1cqmin; }
.enc-estilo-circulo .enc-de { font-size: 3.6cqmin; }
.enc-estilo-circulo .enc-un { font-size: 3.6cqmin; }
.enc-estilo-circulo .enc-img { margin-right: 18cqmin; }
.enc-estilo-circulo .enc-selo { top: auto; bottom: 30cqmin; }

/* Rodapé */
.enc-rodape {
  grid-area: rodape;
  position: relative;
  z-index: 1;
  padding: calc(var(--u) * 2) calc(var(--u) * 3) calc(var(--u) * 2.2);
  background: var(--p);
  color: #fff;
  text-align: center;
  border-top: calc(var(--u) * 0.9) solid var(--s);
}
.enc-contatos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: calc(var(--u) * 0.8) calc(var(--u) * 3); font-size: calc(var(--u) * 2.8); font-weight: 600; }
.enc-loja { font-family: var(--fonte-titulo), Impact, sans-serif; font-weight: 400; font-size: calc(var(--u) * 4.4); color: var(--s); text-transform: uppercase; width: 100%; }
.enc-contato .bi { color: var(--s); }
.enc-legal { margin-top: calc(var(--u) * 1); font-size: calc(var(--u) * 1.8); opacity: 0.85; }

/* Formatos muito largos (faixas/banners): cabeçalho vira coluna lateral */
.enc-horizontal {
  grid-template-columns: 28% minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto auto;
  grid-template-areas: "cabecalho grade" "validade grade" "rodape grade";
}
.enc-horizontal .enc-cabecalho { box-shadow: none; border-right: calc(var(--u) * 1.2) solid var(--s); flex-direction: column; justify-content: center; text-align: center; }
.enc-horizontal .enc-titulo { white-space: normal; font-size: calc(var(--u) * 12); }
.enc-horizontal .enc-validade-wrap, .enc-horizontal .enc-rodape { background: var(--p); border-right: calc(var(--u) * 1.2) solid var(--s); }
.enc-horizontal .enc-validade { margin: 0 0 calc(var(--u) * 2); }
.enc-horizontal .enc-rodape { border-top: 0; }
.enc-horizontal .enc-contatos { font-size: calc(var(--u) * 3.4); }
.enc-horizontal .enc-loja { font-size: calc(var(--u) * 6); }
.enc-horizontal .enc-grade { padding: calc(var(--u) * 4); gap: calc(var(--u) * 3); }

/* Miniaturas */
.enc-mini { position: relative; overflow: hidden; background: #e9ecef; border-radius: .5rem; }
.enc-mini-palco { position: absolute; top: 0; left: 0; transform-origin: 0 0; pointer-events: none; }

/* Ícones SVG (saem corretos nas exportações) */
.enc-ico { width: 1em; height: 1em; vertical-align: -0.125em; fill: currentColor; display: inline-block; }
.enc-contato .enc-ico { fill: var(--s); }
.cdp-contato .enc-ico { fill: var(--primaria); }
