/* =========================================================================
   IG IMPORTS — Juazeiro do Norte / CE
   Folha única, organizada por camadas:

   01  TOKENS
   02  RESET E BASE
   03  TIPOGRAFIA
   04  LAYOUT
   05  COMPONENTE — Botão
   06  COMPONENTE — Cabeçalho e menu
   07  COMPONENTE — Reveal e microinterações
   08  COMPONENTE — Slot de foto
   09  COMPONENTE — Cartão de categoria
   10  COMPONENTE — Cartão de produto
   11  COMPONENTE — Pilar, passo, depoimento
   12  COMPONENTE — WhatsApp (flutuante e barra)
   13  SEÇÕES
   14  RODAPÉ
   15  RESPONSIVO
   16  MOVIMENTO REDUZIDO
   ========================================================================= */

/* ============================ 01  TOKENS ============================ */
:root{
  color-scheme: dark;

  /* camadas de preto — nunca preto puro em tudo */
  --bg:#090807;
  --surface:#11100E;
  --surface-2:#171512;
  --line:#241F18;
  --line-2:#372F24;

  /* dourado, usado com parcimônia */
  --gold:#F5A900;
  --gold-light:#FFC84A;
  --gold-deep:#B87C05;
  --gold-glow:rgba(245,169,0,.16);

  /* texto */
  --cream:#F4EBDD;
  --white:#F7F5F0;
  --muted:#9B958A;
  --ink:#0B0A08;          /* texto sobre dourado */

  --zap:#25D366;
  --zap-ink:#06270F;

  /* medidas */
  --max:1320px;
  --gutter:clamp(20px,5vw,56px);
  --header-h:72px;
  --radius:2px;

  /* tipos */
  --display:"Anton","Barlow Condensed",Impact,sans-serif;
  --ui:"Barlow Condensed",system-ui,sans-serif;
  --body:"Barlow",system-ui,-apple-system,sans-serif;

  /* movimento */
  --ease:cubic-bezier(.22,.85,.26,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ========================= 02  RESET E BASE ========================= */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  background:var(--bg);
  color:var(--cream);
  font-family:var(--body);
  font-size:17px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
img,svg,video{display:block;max-width:100%}
ul,ol{list-style:none}
::selection{background:var(--gold);color:var(--ink)}

:focus-visible{
  outline:2px solid var(--gold-light);
  outline-offset:3px;
  border-radius:var(--radius);
}

.pular{
  position:fixed;top:-100px;left:16px;z-index:200;
  background:var(--gold);color:var(--ink);
  padding:12px 18px;font-family:var(--ui);font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  transition:top .2s;
}
.pular:focus{top:16px}

.sr{
  position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* atmosfera: brilho dourado difuso, fraco o bastante para não mexer
   no contraste — o texto mais apagado ainda passa de 4,5:1 */
.atmosfera{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(58% 38% at 78% 2%, rgba(245,169,0,.10), transparent 70%),
    radial-gradient(44% 34% at 4% 54%, rgba(184,124,5,.06), transparent 72%),
    radial-gradient(44% 32% at 96% 96%, rgba(255,200,74,.05), transparent 74%);
}

/* ========================== 03  TIPOGRAFIA ========================== */
/* Entrelinha de display: 1.26 — medida, não estimada.
   A Anton tem métrica natural de ~1.24 (ascendente 1.0 + descendente
   0.24) e desenha o til a ~0.98em da linha de base. Qualquer valor
   abaixo disso coloca o acento da linha seguinte dentro da linha de
   cima: medido em 390px, a folga do til é de 3.9px a 1.08, 7.1px a
   1.16 e 11.8px a 1.28, contra 21.6px entre linhas sem acento. Em
   português — "NÃO", "Você", "trajetória", "próximo" — isso aparece em
   quase todo título. 1.26 é o ponto em que o acento passa a ser lido
   como parte da própria linha. */
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:400;
  text-transform:uppercase;
  line-height:1.26;
  letter-spacing:.008em;
}

.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--ui);font-weight:700;
  font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--muted);
}
.eyebrow b{color:var(--gold);font-weight:700}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--gold)}

.titulo{
  font-size:clamp(2.3rem,5.6vw,4.4rem);
  color:var(--white);
  text-wrap:balance;
  max-width:18ch;
}
.titulo em{font-style:normal;color:var(--gold)}
.titulo--largo{max-width:26ch}

.lead{
  color:var(--muted);
  font-size:clamp(1rem,1.25vw,1.15rem);
  max-width:56ch;
}
.lead strong{color:var(--cream);font-weight:600}

.micro{
  font-family:var(--ui);font-weight:600;
  font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
}

/* ============================ 04  LAYOUT ============================ */
.wrap{
  width:100%;max-width:var(--max);
  margin-inline:auto;padding-inline:var(--gutter);
  position:relative;z-index:2;
}
.secao{padding-block:clamp(84px,10vw,148px)}
.secao--curta{padding-block:clamp(60px,7vw,100px)}
.secao__cabeca{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:clamp(20px,3vw,48px);
  margin-bottom:clamp(36px,4.5vw,64px);
}
.secao__cabeca > div{display:grid;gap:24px}

.regua{height:1px;background:var(--line);border:0}

/* ======================== 05  COMPONENTE Botão ====================== */
.btn{
  --btn-pad:17px 30px;
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:var(--btn-pad);
  min-height:52px;
  font-family:var(--display);font-weight:400;
  font-size:clamp(1rem,1.5vw,1.18rem);
  letter-spacing:.05em;text-transform:uppercase;line-height:1;
  position:relative;
  transition:background .28s var(--ease),color .28s var(--ease),
             border-color .28s var(--ease),box-shadow .28s var(--ease),
             transform .18s var(--ease);
  will-change:transform;
}
.btn svg{width:20px;height:20px;flex:none}

/* primário — dourado sólido, o mais pesado da hierarquia */
.btn--gold{
  background:var(--gold);color:var(--ink);
  box-shadow:0 14px 34px rgba(245,169,0,.22), inset 0 1px 0 rgba(255,255,255,.28);
}
.btn--gold:hover{background:var(--gold-light);box-shadow:0 18px 42px rgba(245,169,0,.3), inset 0 1px 0 rgba(255,255,255,.35)}

/* secundário — contorno creme */
.btn--ghost{
  color:var(--cream);
  box-shadow:inset 0 0 0 1px var(--line-2);
  background:rgba(244,235,221,.03);
}
.btn--ghost:hover{box-shadow:inset 0 0 0 1px var(--cream);background:rgba(244,235,221,.07)}

/* whatsapp — verde só onde o canal é o assunto */
.btn--zap{
  background:var(--zap);color:var(--zap-ink);
  box-shadow:0 14px 34px rgba(37,211,102,.2);
}
.btn--zap:hover{background:#2FE377;box-shadow:0 18px 42px rgba(37,211,102,.28)}

/* terciário — link com sublinhado que cresce */
.btn--link{
  padding:0;min-height:0;gap:9px;
  font-family:var(--ui);font-weight:700;
  font-size:14px;letter-spacing:.2em;
  color:var(--gold);
}
.btn--link::after{
  content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;
  background:var(--gold);transition:width .4s var(--ease);
}
.btn--link:hover::after{width:100%}
.btn--link svg{width:15px;height:15px;transition:transform .3s var(--ease)}
.btn--link:hover svg{transform:translateX(5px)}

.btn--bloco{width:100%}
.btn-linha{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

/* microtexto de confiança ao lado dos CTAs */
.selo-linha{
  display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;
  margin-top:22px;
}
.selo{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--ui);font-weight:600;
  font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}
.selo svg{width:14px;height:14px;color:var(--gold);flex:none}

/* =================== 06  COMPONENTE Cabeçalho e menu ================ */
.cabecalho{
  position:fixed;inset:0 0 auto;z-index:100;
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.cabecalho.fixo{
  background:rgba(9,8,7,.72);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--line);
  box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.cabecalho__in{
  max-width:var(--max);margin-inline:auto;
  padding:0 var(--gutter);
  height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:28px;
}
.marca{
  display:inline-flex;align-items:baseline;gap:7px;
  font-family:var(--display);
  font-size:21px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--white);
}
.marca span{color:var(--gold)}

.menu{display:flex;gap:clamp(18px,2.4vw,34px)}
.menu a{
  position:relative;
  font-family:var(--ui);font-weight:600;
  font-size:14px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
  padding-block:6px;
  transition:color .3s var(--ease);
}
.menu a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--gold);transition:width .4s var(--ease);
}
.menu a:hover,.menu a[aria-current="true"]{color:var(--cream)}
.menu a:hover::after,.menu a[aria-current="true"]::after{width:100%}

.cabecalho__acoes{display:flex;align-items:center;gap:14px}

/* botão de WhatsApp do cabeçalho */
.zap-topo{
  display:inline-flex;align-items:center;gap:10px;
  height:42px;padding:0 18px;
  font-family:var(--ui);font-weight:700;
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);background:var(--gold);
  transition:background .28s var(--ease),transform .18s var(--ease);
}
.zap-topo svg{width:17px;height:17px}
.zap-topo:hover{background:var(--gold-light)}

/* hambúrguer */
.hamburguer{
  display:none;width:44px;height:44px;position:relative;
  align-items:center;justify-content:center;
}
.hamburguer i{
  display:block;position:absolute;left:11px;right:11px;height:1.5px;
  background:var(--cream);
  transition:transform .4s var(--ease),opacity .25s var(--ease);
}
.hamburguer i:nth-child(1){top:16px}
.hamburguer i:nth-child(2){top:21px}
.hamburguer i:nth-child(3){top:26px}
.hamburguer[aria-expanded="true"] i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.hamburguer[aria-expanded="true"] i:nth-child(2){opacity:0}
.hamburguer[aria-expanded="true"] i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

/* gaveta em tela cheia */
.gaveta{
  position:fixed;inset:0;z-index:99;
  background:var(--bg);
  padding:calc(var(--header-h) + 28px) var(--gutter) 40px;
  display:flex;flex-direction:column;justify-content:space-between;gap:32px;
  opacity:0;visibility:hidden;
  transform:translateY(-12px);
  transition:opacity .42s var(--ease),transform .42s var(--ease),visibility .42s;
  overflow-y:auto;
}
.gaveta.aberta{opacity:1;visibility:visible;transform:none}
.gaveta__links{display:grid}
.gaveta__links a{
  display:flex;align-items:baseline;gap:16px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-family:var(--display);
  font-size:clamp(1.7rem,8vw,2.6rem);
  text-transform:uppercase;color:var(--white);
  opacity:0;transform:translateY(16px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),color .25s;
}
.gaveta.aberta .gaveta__links a{
  opacity:1;transform:none;
  transition-delay:calc(90ms + var(--i,0) * 55ms);
}
.gaveta__links a:hover{color:var(--gold)}
.gaveta__links b{
  font-family:var(--ui);font-weight:700;font-size:13px;
  letter-spacing:.2em;color:var(--gold);
}
.gaveta__pe{display:grid;gap:16px}

/* ============ 07  COMPONENTE Reveal e microinterações ============== */
.js .reveal{
  opacity:0;transform:translateY(28px);
  transition:opacity .9s var(--ease-out),transform 1.05s var(--ease-out),filter .9s var(--ease-out);
  filter:blur(4px);
  transition-delay:calc(var(--i,0) * 80ms);
}
.js .reveal.dentro{opacity:1;transform:none;filter:none}

/* contêiner que não se move — quem entra são os filhos */
.js .reveal-grupo{opacity:1;transform:none;filter:none}

/* entrada da primeira dobra, em sequência, sem esperar scroll */
.js .entra{
  animation:entra 1.05s var(--ease-out) both;
  animation-delay:calc(var(--i,0) * 110ms);
}
@keyframes entra{
  from{opacity:0;transform:translateY(24px);filter:blur(6px)}
  to{opacity:1;transform:none;filter:none}
}

/* cursor personalizado — só desktop, só se o JS assumir */
.cursor-on,.cursor-on a,.cursor-on button{cursor:none}
.cursor{
  position:fixed;top:0;left:0;z-index:190;pointer-events:none;
  width:8px;height:8px;border-radius:50%;
  background:var(--gold);
  transform:translate(-50%,-50%);
  transition:opacity .25s;
}
.cursor-anel{
  position:fixed;top:0;left:0;z-index:189;pointer-events:none;
  width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(244,235,221,.4);
  transform:translate(-50%,-50%);
  transition:width .3s var(--ease),height .3s var(--ease),
             border-color .3s var(--ease),opacity .25s,background .3s;
}
.cursor-anel.ativo{
  width:52px;height:52px;
  border-color:var(--gold);
  background:rgba(245,169,0,.08);
}

/* ==================== 08  COMPONENTE Slot de foto =================== */
/* estrutura pronta para a foto real: enquanto o arquivo não existe,
   mostra uma chapa desenhada em vez de um ícone quebrado */
.foto{
  position:relative;overflow:hidden;
  background:var(--surface);
  isolation:isolate;
}
.foto::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(var(--line-2),var(--line-2)) 50% 50% / 1px 40px no-repeat,
    linear-gradient(var(--line-2),var(--line-2)) 50% 50% / 40px 1px no-repeat,
    var(--surface);
}
.foto img{
  position:absolute;inset:0;z-index:1;
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.01);
  transition:transform 1.1s var(--ease-out),filter .7s var(--ease);
}
/* o rótulo do slot só aparece quando não há arquivo de imagem */
.foto__vazio{display:none}
.foto.sem-foto .foto__vazio{
  display:block;
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  padding:14px 16px;
  font-family:var(--ui);font-weight:600;
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
}

/* =============== 09  COMPONENTE Cartão de categoria ================ */
.categorias{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,1.4vw,20px);
}
.cat{
  position:relative;display:block;overflow:hidden;
  background:var(--surface);
  aspect-ratio:3 / 4;
  isolation:isolate;
}
.cat .foto{position:absolute;inset:0}
.cat__veu{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(9,8,7,.1) 0%,rgba(9,8,7,.55) 52%,rgba(9,8,7,.92) 100%);
  transition:background .6s var(--ease);
}
.cat__corpo{
  position:absolute;inset:auto 0 0;z-index:3;
  padding:clamp(20px,2.4vw,30px);
  display:grid;gap:13px;
}
.cat__num{
  font-family:var(--ui);font-weight:700;
  font-size:12px;letter-spacing:.28em;color:var(--gold);
}
.cat__nome{
  font-size:clamp(1.7rem,3vw,2.5rem);
  color:var(--white);
  line-height:1.2;
}
.cat__desc{
  color:var(--muted);font-size:15px;max-width:30ch;
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .6s var(--ease),opacity .5s var(--ease);
}
.cat__ir{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--ui);font-weight:700;
  font-size:13px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);
}
.cat__ir svg{width:15px;height:15px;transition:transform .35s var(--ease)}
/* moldura dourada que acende na borda */
.cat::after{
  content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
  box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .5s var(--ease);
}
.cat:hover .foto img,.cat:focus-visible .foto img{transform:scale(1.07)}
.cat:hover .cat__veu,.cat:focus-visible .cat__veu{
  background:linear-gradient(180deg,rgba(9,8,7,.04) 0%,rgba(9,8,7,.5) 46%,rgba(9,8,7,.95) 100%);
}
.cat:hover .cat__desc,.cat:focus-visible .cat__desc{max-height:6em;opacity:1}
.cat:hover .cat__ir svg,.cat:focus-visible .cat__ir svg{transform:translateX(5px)}
.cat:hover::after,.cat:focus-visible::after{box-shadow:inset 0 0 0 1px rgba(245,169,0,.55)}

/* ================ 10  COMPONENTE Cartão de produto ================= */
.produtos{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(12px,1.4vw,20px);
}
.prod{
  position:relative;display:flex;flex-direction:column;
  background:var(--surface);
  box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .5s var(--ease),transform .5s var(--ease),background .5s var(--ease);
  transform-style:preserve-3d;
}
.prod:hover{
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px rgba(245,169,0,.45), 0 24px 50px rgba(0,0,0,.45);
}
.prod__foto{position:relative;aspect-ratio:1 / 1}
.prod:hover .prod__foto img{transform:scale(1.06)}
.prod__tag{
  position:absolute;left:12px;top:12px;z-index:3;
  font-family:var(--ui);font-weight:700;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  padding:6px 10px;
  background:rgba(9,8,7,.82);color:var(--gold);
  box-shadow:inset 0 0 0 1px var(--line-2);
}
.prod__corpo{
  display:grid;gap:10px;
  padding:18px 18px 20px;
  border-top:1px solid var(--line);
}
.prod__cat{
  font-family:var(--ui);font-weight:600;
  font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
}
.prod__nome{
  font-family:var(--display);font-size:1.25rem;
  text-transform:uppercase;color:var(--white);line-height:1.22;
}
.prod__preco{
  font-family:var(--ui);font-weight:700;
  font-size:14.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);
}
.prod__cta{
  margin-top:10px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:44px;padding:0 16px;
  font-family:var(--ui);font-weight:700;
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cream);
  box-shadow:inset 0 0 0 1px var(--line-2);
  transition:background .3s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease);
}
.prod__cta svg{width:15px;height:15px}
.prod:hover .prod__cta{background:var(--gold);color:var(--ink);box-shadow:none}

.nota-slot{
  margin-top:26px;
  display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;
  font-family:var(--ui);font-weight:600;
  font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.nota-slot::before{content:"";width:26px;height:1px;background:var(--line-2)}

/* ========= 11  COMPONENTE Pilar, passo, depoimento, mosaico ======== */
.pilares{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.pilar{
  background:var(--bg);padding:clamp(26px,2.6vw,38px) clamp(20px,2vw,30px);
  display:grid;gap:15px;align-content:start;
  transition:background .5s var(--ease);
}
.pilar:hover{background:var(--surface)}
.pilar__ico{
  width:42px;height:42px;display:grid;place-items:center;
  color:var(--gold);
  box-shadow:inset 0 0 0 1px var(--line-2);
  transition:box-shadow .4s var(--ease),background .4s var(--ease);
}
.pilar__ico svg{width:19px;height:19px}
.pilar:hover .pilar__ico{box-shadow:inset 0 0 0 1px rgba(245,169,0,.5);background:rgba(245,169,0,.06)}
.pilar__num{
  font-family:var(--display);
  font-size:clamp(2.2rem,3.4vw,3.1rem);
  color:var(--gold);line-height:1.05;
  font-variant-numeric:tabular-nums;
}
.pilar__t{font-family:var(--ui);font-weight:700;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--white)}
.pilar p{color:var(--muted);font-size:15.5px}

.passos{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px)}
.passo{
  position:relative;padding-top:26px;
  border-top:1px solid var(--line);
  display:grid;gap:13px;align-content:start;
  transition:border-color .5s var(--ease);
}
.passo::before{
  content:"";position:absolute;left:0;top:-1px;height:1px;width:0;
  background:var(--gold);transition:width .7s var(--ease);
}
.passo.dentro::before{width:100%;transition-delay:calc(var(--i,0) * 110ms + 200ms)}
.passo__n{font-family:var(--display);font-size:1.4rem;color:var(--gold)}
.passo__t{font-family:var(--display);font-size:clamp(1.3rem,2vw,1.8rem);color:var(--white)}
.passo p{color:var(--muted);font-size:15.5px}

/* depoimentos: estrutura pronta, sem conteúdo inventado */
.depos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,20px)}
.depo{
  background:var(--surface);padding:clamp(24px,2.4vw,34px);
  box-shadow:inset 0 0 0 1px var(--line);
  display:grid;gap:16px;align-content:start;min-height:220px;
}
.depo__aspas{font-family:var(--display);font-size:2.4rem;color:var(--gold);line-height:.7}
.depo__vazio{
  color:var(--muted);font-size:15.5px;line-height:1.65;
  border-left:1px solid var(--line-2);padding-left:16px;
}
.depo__meta{
  margin-top:auto;font-family:var(--ui);font-weight:600;
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--line-2);
}

/* mosaico do Instagram */
.mosaico{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(8px,1vw,14px)}
.mosaico .foto{aspect-ratio:1 / 1;box-shadow:inset 0 0 0 1px var(--line)}
.mosaico a{position:relative;display:block;overflow:hidden}
.mosaico a::after{
  content:"";position:absolute;inset:0;z-index:2;
  background:rgba(9,8,7,.45);opacity:0;
  transition:opacity .4s var(--ease);
}
.mosaico a:hover::after,.mosaico a:focus-visible::after{opacity:1}
.mosaico a:hover .foto img{transform:scale(1.08)}
.mosaico a span{
  position:absolute;inset:0;z-index:3;
  display:grid;place-items:center;color:var(--gold);
  opacity:0;transition:opacity .4s var(--ease),transform .4s var(--ease);
  transform:scale(.85);
}
.mosaico a:hover span,.mosaico a:focus-visible span{opacity:1;transform:none}
.mosaico a span svg{width:24px;height:24px}
.mosaico .destaque{grid-column:span 2;grid-row:span 2}

/* ================ 12  COMPONENTE WhatsApp ========================== */
.zap-fab{
  position:fixed;right:24px;bottom:24px;z-index:120;
  display:flex;align-items:center;gap:0;
  height:56px;padding:0 18px;
  background:var(--surface);
  box-shadow:inset 0 0 0 1px var(--line-2),0 18px 44px rgba(0,0,0,.55);
  transition:box-shadow .4s var(--ease),transform .25s var(--ease),background .4s var(--ease);
}
.zap-fab__ico{
  width:34px;height:34px;border-radius:50%;flex:none;
  display:grid;place-items:center;
  background:var(--zap);color:var(--zap-ink);
}
.zap-fab__ico svg{width:18px;height:18px}
.zap-fab__txt{
  max-width:0;overflow:hidden;white-space:nowrap;
  font-family:var(--ui);font-weight:700;
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cream);
  transition:max-width .5s var(--ease),margin-left .5s var(--ease),opacity .35s var(--ease);
  opacity:0;
}
.zap-fab:hover{
  background:var(--surface-2);
  box-shadow:inset 0 0 0 1px rgba(245,169,0,.45),0 22px 52px rgba(0,0,0,.6);
  transform:translateY(-2px);
}
.zap-fab:hover .zap-fab__txt,.zap-fab:focus-visible .zap-fab__txt{
  max-width:190px;margin-left:13px;opacity:1;
}

/* barra fixa inferior — o CTA que fecha a venda no celular */
.zap-barra{
  position:fixed;inset:auto 0 0;z-index:120;display:none;
  background:var(--surface);
  border-top:1px solid var(--line-2);
  padding:10px var(--gutter);
  padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
}
.zap-barra a{
  display:flex;align-items:center;justify-content:center;gap:12px;
  min-height:52px;
  background:var(--gold);color:var(--ink);
  font-family:var(--display);font-size:1.05rem;
  letter-spacing:.05em;text-transform:uppercase;
}
.zap-barra svg{width:19px;height:19px}

/* =========================== 13  SEÇÕES ============================ */
/* ---- Hero ---- */
.hero{
  position:relative;
  min-height:min(100svh,940px);
  display:flex;align-items:center;
  padding-top:calc(var(--header-h) + 40px);
  padding-bottom:clamp(48px,7vh,88px);
  overflow:hidden;
}
/* o objeto 3D ocupa o flanco direito e passa POR TRÁS da tipografia */
.hero__arte{
  position:absolute;z-index:0;pointer-events:none;
  right:-6%;top:50%;transform:translateY(-50%);
  width:min(62vw,780px);aspect-ratio:1 / 1;
}
.hero__arte::before{
  content:"";position:absolute;inset:-8%;
  background:radial-gradient(44% 44% at 52% 48%,var(--gold-glow),transparent 72%);
}
.hero__arte canvas{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;transition:opacity 1.2s var(--ease-out);
}
.hero__arte .logo-plana{
  position:absolute;left:12%;top:14%;width:76%;
  filter:drop-shadow(0 24px 40px rgba(0,0,0,.6));
  transition:opacity .9s var(--ease);
}
.hero__arte.viva canvas{opacity:1}
.hero__arte.viva .logo-plana{opacity:0}

/* véu que garante a leitura por cima do objeto */
.hero__veu{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(93deg,
    var(--bg) 0%, var(--bg) 30%,
    rgba(9,8,7,.82) 46%, rgba(9,8,7,.32) 64%, transparent 82%);
}
.hero__in{position:relative;z-index:2;width:100%}
.hero__conteudo{max-width:min(100%,780px);display:grid;gap:0;justify-items:start}

.hero__h1{
  font-size:clamp(2.7rem,7.2vw,6.4rem);
  line-height:1.24;letter-spacing:.005em;
  color:var(--white);
  margin-top:28px;
  text-wrap:balance;
}
.hero__h1 em{font-style:normal;color:var(--gold);display:block}

.hero__badge{
  margin-top:30px;
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--ui);font-weight:700;
  font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink);background:var(--gold);
  padding:9px 18px 8px;
}
.hero__sub{margin-top:28px;max-width:50ch}
.hero__ctas{margin-top:38px}

/* indicadores de confiança logo abaixo da dobra */
.confianca{
  border-block:1px solid var(--line);
  background:rgba(17,16,14,.5);
  position:relative;z-index:2;
}
.confianca__in{
  max-width:var(--max);margin-inline:auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.confianca__item{
  display:flex;align-items:center;gap:14px;
  padding:22px 26px 22px 0;
  border-right:1px solid var(--line);
}
.confianca__item:last-child{border-right:0}
.confianca__item svg{width:20px;height:20px;color:var(--gold);flex:none}
.confianca__item b{
  display:block;font-family:var(--ui);font-weight:700;
  font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);
}
.confianca__item span{display:block;font-size:14px;color:var(--muted);line-height:1.45}

/* ---- Atacado ---- */
.atacado{
  position:relative;overflow:hidden;
  background:var(--surface);
  border-block:1px solid var(--line);
}
.atacado__in{
  display:grid;grid-template-columns:1.1fr .9fr;
  gap:clamp(32px,5vw,80px);align-items:center;
}
.atacado__num{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  box-shadow:0 0 0 1px var(--line);
}
.atacado__cel{background:var(--surface);padding:clamp(22px,2.4vw,32px);display:grid;gap:8px}
.atacado__cel b{
  font-family:var(--display);font-size:clamp(1.8rem,3vw,2.6rem);
  color:var(--gold);line-height:1.05;font-variant-numeric:tabular-nums;
}
.atacado__cel span{font-family:var(--ui);font-weight:600;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* ---- Desde 2019 ---- */
.desde__in{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.desde__ano{
  font-family:var(--display);
  font-size:clamp(5rem,17vw,15rem);
  line-height:.88;color:var(--white);
  letter-spacing:-.01em;
}
.desde__ano span{display:block;color:var(--gold);font-size:.34em;letter-spacing:.24em;line-height:1.4}
.desde__texto{display:grid;gap:22px;max-width:52ch}

/* ---- Onde estamos ---- */
.onde__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}
.dados{display:grid;background:var(--line);gap:1px;box-shadow:0 0 0 1px var(--line)}
.dados li{background:var(--bg);padding:18px 22px;display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline}
.dados dfn{
  font-style:normal;font-family:var(--ui);font-weight:700;
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
  width:118px;flex:none;
}
.dados b{font-weight:600;font-size:16.5px;color:var(--cream)}

/* Placa da loja.
   A foto da fachada tem fundo preto e é quase quadrada, então usa
   object-fit:contain sobre a MESMA cor do fundo do site: nada é cortado
   do letreiro e as bordas somem na chapa. O enquadramento vem da
   hairline de 1px, igual a todos os outros blocos. */
.mapa{
  position:relative;display:block;
  aspect-ratio:5 / 4;
  background:var(--bg);
  box-shadow:inset 0 0 0 1px var(--line);
  overflow:hidden;
  transition:box-shadow .5s var(--ease);
}
.mapa:hover,.mapa:focus-visible{box-shadow:inset 0 0 0 1px rgba(245,169,0,.5)}
.mapa__foto{position:absolute;inset:0;background:var(--bg)}
.mapa__foto::before{
  background:
    radial-gradient(56% 56% at 50% 44%,rgba(245,169,0,.07),transparent 70%),
    var(--bg);
}
.mapa__foto img{
  object-fit:contain;
  transform:scale(1);
  filter:contrast(1.02) saturate(.92);   /* aproxima o amarelo do âmbar do site */
}
.mapa:hover .mapa__foto img,.mapa:focus-visible .mapa__foto img{transform:scale(1.03)}

/* véu na base: o rótulo nunca disputa legibilidade com a imagem */
.mapa::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:38%;z-index:2;
  background:linear-gradient(180deg,transparent,rgba(9,8,7,.35) 44%,rgba(9,8,7,.95));
  pointer-events:none;
}
.mapa__rot{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding:16px 20px;
  display:flex;align-items:center;gap:10px;
  font-family:var(--ui);font-weight:600;
  font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  transition:color .35s var(--ease);
}
.mapa__rot svg{width:14px;height:14px;color:var(--gold);flex:none}
.mapa__rot b{color:var(--cream);font-weight:700}
.mapa:hover .mapa__rot,.mapa:focus-visible .mapa__rot{color:var(--cream)}

/* ---- CTA final ---- */
.fechamento{
  position:relative;text-align:center;overflow:hidden;
  border-top:1px solid var(--line);
}
.fechamento::before{
  content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);
  width:min(900px,120%);height:70%;
  background:radial-gradient(closest-side,rgba(245,169,0,.14),transparent 74%);
  pointer-events:none;
}
.fechamento .wrap{display:grid;justify-items:center;gap:26px}
.fechamento__h2{
  font-size:clamp(2.4rem,7vw,5.6rem);
  color:var(--white);max-width:16ch;line-height:1.22;
}
.fechamento__h2 em{font-style:normal;color:var(--gold)}
.fechamento .btn-linha{justify-content:center}
.fechamento .selo-linha{justify-content:center}

/* =========================== 14  RODAPÉ ============================ */
.rodape{background:var(--surface);border-top:1px solid var(--line);position:relative;z-index:2}
.rodape__in{
  max-width:var(--max);margin-inline:auto;padding:clamp(44px,5vw,68px) var(--gutter) 34px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(28px,4vw,56px);
}
.rodape__marca{display:grid;gap:14px;align-content:start}
.rodape__marca p{color:var(--muted);font-size:15.5px;max-width:34ch}
.rodape__col h3{font-family:var(--ui);font-weight:700;font-size:12.5px;letter-spacing:.24em;color:var(--muted);margin-bottom:16px}
.rodape__col a{
  display:block;padding:5px 0;color:var(--cream);font-size:15.5px;
  transition:color .25s var(--ease),transform .25s var(--ease);
}
.rodape__col a:hover{color:var(--gold);transform:translateX(3px)}
.rodape__base{
  max-width:var(--max);margin-inline:auto;padding:20px var(--gutter) 34px;
  border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;
  font-family:var(--ui);font-weight:600;
  font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}

/* =========================================================================
   15  RESPONSIVO

   A detecção é automática e nativa: o navegador informa largura e tipo de
   ponteiro, e as regras abaixo assumem a partir daí. Nenhuma linha acima
   deste ponto é tocada — a versão de desktop permanece exatamente como
   estava.

   A faixa de 860px para baixo NÃO é o desktop encolhido. É uma escala
   própria, com três decisões de fundo:

     1. Piso de 13px em qualquer texto, e tracking cortado pela metade.
        O espaçamento largo de letra que dá elegância em 1440px é
        exatamente o que obriga a dar zoom em 390px.
     2. Respiro vertical reduzido de 84px para 54px entre seções. O que
        em desktop é ar, no celular vira rolagem morta.
     3. Uma coluna onde a foto é o argumento de venda. Produto em duas
        colunas num telefone entrega uma imagem de 170px — pequena
        demais para gerar desejo.
   ========================================================================= */
@media (max-width:1180px){
  .produtos{grid-template-columns:repeat(3,1fr)}
  .pilares{grid-template-columns:repeat(2,1fr)}
  .confianca__in{grid-template-columns:repeat(2,1fr)}
  .confianca__item:nth-child(2){border-right:0}
}

@media (max-width:1024px){
  .menu{display:none}
  .hamburguer{display:flex}
  .hero__arte{right:-16%;width:min(78vw,640px);opacity:.5}
  .hero__veu{background:linear-gradient(96deg,var(--bg) 0%,var(--bg) 36%,rgba(9,8,7,.86) 56%,rgba(9,8,7,.5) 74%,rgba(9,8,7,.25) 100%)}
  .atacado__in,.onde__in{grid-template-columns:1fr}
  .passos{grid-template-columns:repeat(2,1fr)}
  .depos{grid-template-columns:1fr}
  .rodape__in{grid-template-columns:1fr 1fr}
  .rodape__marca{grid-column:1 / -1}
}

/* ===================== CELULAR — escala própria ====================== */
@media (max-width:860px){
  :root{
    --header-h:64px;
    --gutter:clamp(18px,5vw,28px);
  }

  body{font-size:16.5px;line-height:1.62;padding-bottom:84px}

  .zap-fab{display:none}
  .zap-barra{display:block}
  .zap-barra a{min-height:54px;font-size:1.15rem}
  .zap-barra svg{width:21px;height:21px}

  /* ---- ritmo vertical ---- */
  .secao{padding-block:54px}
  .secao--curta{padding-block:44px}
  .secao__cabeca{margin-bottom:30px;gap:20px;align-items:flex-start}
  .categorias,.produtos,.pilares,.passos{margin-top:26px}
  .dados,.endereco{margin-top:24px}
  .nota-slot{margin-top:20px}

  /* ---- tipografia: pisos maiores, tracking curto ---- */
  .eyebrow{font-size:14px;letter-spacing:.2em;gap:10px}
  .eyebrow::before{width:20px}
  .titulo{font-size:clamp(2.25rem,9.5vw,3.1rem);max-width:100%}
  .lead{font-size:17px;line-height:1.62;max-width:100%}
  .micro{font-size:14.5px;letter-spacing:.12em;line-height:1.6}
  .selo{font-size:13.5px;letter-spacing:.1em}
  .selo svg{width:16px;height:16px}
  .selo-linha{gap:10px 18px;margin-top:18px}

  /* ---- botões: alvo de toque folgado (mínimo de 44px em tudo) ---- */
  .btn{min-height:54px;font-size:1.08rem;padding:16px 26px}
  .btn--link{min-height:44px;padding-block:12px;font-size:14.5px;letter-spacing:.14em}
  .btn-linha{gap:12px}

  /* ---- cabeçalho ---- */
  .marca{font-size:20px;letter-spacing:.16em;padding-block:8px}
  .cabecalho__acoes{gap:10px}
  .zap-topo{height:44px;padding:0 16px;font-size:13.5px;letter-spacing:.14em}
  .gaveta__links a{font-size:clamp(1.9rem,9vw,2.6rem);padding:16px 0}
  .gaveta__links b{font-size:14px}

  /* ---- herói: objeto em cima, texto embaixo ---- */
  .hero{
    min-height:0;flex-direction:column;align-items:stretch;
    padding-top:calc(var(--header-h) + 16px);
    padding-bottom:34px;
    text-align:left;
  }
  .hero__arte{
    position:relative;right:auto;top:auto;transform:none;
    width:min(70vw,310px);margin:0 auto 2px;opacity:1;
  }
  .hero__veu{background:linear-gradient(180deg,transparent 0%,rgba(9,8,7,.3) 54%,var(--bg) 80%)}
  .hero__conteudo{max-width:100%}
  /* entrelinha um pouco maior: em 41px o til do "NÃO" encosta na linha
     de cima com 0.98, que no desktop tem folga por causa do corpo maior */
  .hero__h1{font-size:clamp(2.5rem,11vw,3.5rem);line-height:1.26;margin-top:22px}
  .hero__badge{margin-top:22px;font-size:14px;letter-spacing:.22em;text-indent:.22em;padding:10px 18px 9px}
  .hero__sub{margin-top:22px;font-size:17.5px;line-height:1.6}
  .hero__ctas{margin-top:30px;width:100%}
  .hero__ctas .btn{width:100%}

  /* ---- confiança ---- */
  .confianca__item{padding:16px 16px 16px 0;gap:12px}
  .confianca__item b{font-size:15px;letter-spacing:.1em}
  .confianca__item span{font-size:14.5px}

  /* ---- categorias ---- */
  .categorias{grid-template-columns:1fr;gap:12px}
  .cat{aspect-ratio:4 / 3}
  .cat__corpo{padding:20px;gap:11px}
  .cat__num{font-size:13px;letter-spacing:.2em}
  .cat__nome{font-size:2.1rem}
  .cat__desc{max-height:7em;opacity:1;font-size:15.5px;line-height:1.6;max-width:100%}
  /* no celular a descrição fica sempre aberta, então o véu precisa
     cobrir mais alto — senão o texto cai em cima da parte clara da foto */
  .cat__veu{background:linear-gradient(180deg,rgba(9,8,7,.18) 0%,rgba(9,8,7,.62) 36%,rgba(9,8,7,.95) 70%)}
  .cat__ir{font-size:14px;letter-spacing:.14em}

  /* ---- produtos ---- */
  .produtos{grid-template-columns:repeat(2,1fr);gap:12px}
  .prod__corpo{padding:16px 16px 18px;gap:9px}
  .prod__cat{font-size:13px;letter-spacing:.14em}
  .prod__nome{font-size:1.35rem}
  .prod__preco{font-size:15px;letter-spacing:.08em}
  .prod__cta{min-height:50px;font-size:14px;letter-spacing:.12em}
  .prod__tag{font-size:13px;letter-spacing:.08em;padding:7px 11px}


  /* ---- pilares e passos ---- */
  .pilar{padding:22px 20px;gap:13px}
  .pilar__ico{width:38px;height:38px}
  .pilar__num{font-size:2.2rem}
  .pilar__t{font-size:14.5px;letter-spacing:.16em}
  .pilar p{font-size:16px;line-height:1.62}
  .passos{grid-template-columns:repeat(2,1fr);gap:20px}
  .passo{padding-top:20px;gap:11px}
  .passo__n{font-size:1.3rem}
  .passo__t{font-size:1.5rem}
  .passo p{font-size:16px;line-height:1.62}

  /* ---- atacado ---- */
  .atacado__in{gap:28px}
  .atacado__cel{padding:20px}
  .atacado__cel span{font-size:14px;letter-spacing:.14em}

  /* ---- desde 2019 ---- */
  .desde__in{grid-template-columns:1fr;gap:20px}
  .desde__ano{font-size:clamp(4.5rem,26vw,7rem)}
  .desde__ano span{font-size:.28em;letter-spacing:.2em}
  .desde__texto{max-width:100%;gap:18px}

  /* ---- depoimentos e mosaico ---- */
  .depo{min-height:0;padding:24px 22px;gap:15px}
  .depo__vazio{font-size:16px}
  .depo__meta{font-size:13.5px;letter-spacing:.12em}
  .mosaico{grid-template-columns:repeat(3,1fr);gap:8px}
  .mosaico .destaque{grid-column:span 2;grid-row:span 2}

  /* ---- onde estamos ---- */
  .onde__in{gap:28px}
  .dados li{padding:15px 18px}
  .dados dfn{font-size:13px;letter-spacing:.16em;width:112px}
  .dados b{font-size:17px}
  .mapa{aspect-ratio:4 / 3}
  .mapa__rot{font-size:13.5px;letter-spacing:.1em;padding:14px 16px}

  /* ---- fechamento e rodapé ---- */
  .fechamento{padding-block:56px}
  .fechamento .wrap{gap:20px}
  .fechamento__h2{font-size:clamp(2.4rem,10vw,3.2rem);max-width:100%}
  .rodape__in{grid-template-columns:1fr;gap:30px;padding:36px var(--gutter) 28px}
  .rodape__marca p{font-size:16.5px;max-width:100%}
  .rodape__col h3{font-size:13.5px;letter-spacing:.18em;margin-bottom:10px}
  .rodape__col a{padding:10px 0;font-size:17px}
  .rodape__base{font-size:13.5px;letter-spacing:.06em;padding:18px var(--gutter) 28px;gap:8px}
}

@media (max-width:560px){
  .confianca__in{grid-template-columns:1fr}
  .confianca__item{border-right:0;border-bottom:1px solid var(--line);padding:14px 0}
  .confianca__item:last-child{border-bottom:0}
  .pilares{grid-template-columns:1fr}
  .passos{grid-template-columns:1fr;gap:0}
  .passo{padding-block:18px}
  .atacado__num{grid-template-columns:1fr}
  .dados li{flex-direction:column;gap:3px}
  .dados dfn{width:auto}
  .btn-linha .btn{width:100%}

  /* a foto é o argumento: uma coluna, imagem cheia */
  .produtos{grid-template-columns:1fr}
  .prod__nome{font-size:1.5rem}
  .prod__cat{font-size:13px}
  .prod__preco{font-size:16px}

  .cat{aspect-ratio:1 / 1}
  .cat__nome{font-size:2rem}
  .mosaico{grid-template-columns:repeat(2,1fr)}
}

/* a barra fixa já carrega o WhatsApp: o botão do topo vira só o ícone */
@media (max-width:430px){
  .zap-topo{width:44px;padding:0;justify-content:center;font-size:0}
  .zap-topo svg{width:19px;height:19px}
}

@media (max-width:390px){
  :root{--gutter:16px}
  .hero__h1{font-size:2.45rem}
  .titulo{font-size:2.1rem}
  .fechamento__h2{font-size:2.2rem}
  .cat__nome{font-size:1.85rem}
}

/* ===================== 16  MOVIMENTO REDUZIDO ====================== */
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;filter:none;transition:none}
  .js .entra{animation:none;opacity:1}
  .cursor,.cursor-anel{display:none}
  .cursor-on,.cursor-on a,.cursor-on button{cursor:auto}
  .btn,.prod,.cat,.foto img,.passo::before,.zap-fab,.zap-fab__txt{transition:none}
  .passo::before{width:100%}
  .cat__desc{max-height:6em;opacity:1;transition:none}
}
