
/* ═══════════════════════════════════════════════════════════════════
   v733693 — 🔴 O "+" E O "ADICIONAR" FICAVAM DEBAIXO DA BARRA DO NAVEGADOR.

   José: "o 1 da quantidade, quando você clica em + não muda pra 2 3 4"
   e "também não atualiza o valor adicionar".

   O botão não está quebrado: disparando o clique por `elementFromPoint`
   ele vai de 1 para 2 e o rótulo vira "Adicionar · R$ 75,90". O que
   acontece é que ninguém CONSEGUE tocar nele.

   O painel tem `height:96dvh` (certo), mas o container era `inset:0` —
   e `inset` de um `position:fixed` mede o viewport GRANDE, o de barra
   recolhida. Com `align-items:flex-end`, o painel era ancorado no fundo
   desse viewport grande: os últimos ~60px — que é exatamente onde moram
   a quantidade e o Adicionar — ficavam atrás da barra do navegador.
   Medido: o "+" em y=751 numa janela de 812.

   Pior no navegador do Instagram e do Facebook, que é de onde vem o
   tráfego pago — lá a barra é mais alta e `env(safe-area-inset-bottom)`
   devolve 0, então o safe-area do rodapé não salvava nada.

   `height:100dvh` faz o container acompanhar o viewport VISÍVEL.
   ═══════════════════════════════════════════════════════════════════ */
#idlinkFichaV2204{position:fixed;inset:0;height:100dvh;z-index:2147483200;display:none;background:rgba(0,0,0,.6);
backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#idlinkFichaV2204.show{display:flex;align-items:flex-end;justify-content:center}
.idfk-painel{width:100%;height:96dvh;max-height:96dvh;background:#0B0B0E;border-radius:26px 26px 0 0;color:#fff;
display:flex;flex-direction:column;min-height:0;overflow:hidden;transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.25,1);
font-family:-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',sans-serif;position:relative;
border:1px solid rgba(255,255,255,.12);box-shadow:0 -30px 120px rgba(0,0,0,.8)}
#idlinkFichaV2204.show .idfk-painel{transform:translateY(0)}
#idlinkFichaV2204.fechando .idfk-painel{transform:translateY(100%)}
/* v733658 — o cartão centrado só a partir de 1025px. O iPad (834 de
   largura) caía aqui e ficava sem ser tela cheia. Ver o cabeçalho. */
@media(min-width:1025px){#idlinkFichaV2204.show{align-items:center}
.idfk-painel{width:min(560px,94vw);height:min(88vh,860px);border-radius:28px;transform:translateY(24px) scale(.97);opacity:0;transition:all .28s cubic-bezier(.2,.8,.25,1)}
#idlinkFichaV2204.show .idfk-painel{transform:none;opacity:1}}
/* v733658 — tela cheia até 1024px: celular e iPad, em pé e deitado */
@media(max-width:1024px){
  #idlinkFichaV2204.show{align-items:stretch!important;justify-content:stretch!important}
  .idfk-painel{width:100%!important;height:100%!important;max-height:100%!important;
    min-height:0!important;border-radius:0!important;border:0!important}
}
/* v733658 — o desfoque do fundo SAI. O navegador suspende backdrop-filter
   enquanto algo se move e reaplica ao parar: o fundo aparecia nítido
   durante a rolagem e borrava depois. Fundo sólido é constante — e é de
   graça para o compositor, que é o que a rolagem precisa. */
#idlinkFichaV2204{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  background:rgba(6,6,8,.94)!important}
@media(max-width:1024px){#idlinkFichaV2204{background:#0B0B0E!important}
/* v733660 — sombra de 120px de desfoque é cara de pintar e, em tela cheia,
   invisível: não há nada atrás para sombrear. Ver o cabeçalho do patch. */
.idfk-painel{box-shadow:none!important}
/* transição só enquanto abre/fecha; armada à toa ela segura o elemento
   como candidato permanente a animação */
#idlinkFichaV2204.show .idfk-painel{transition:none!important}
#idlinkFichaV2204.fechando .idfk-painel{transition:transform .32s cubic-bezier(.2,.8,.25,1)!important}
}
.idfk-alca{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:44px;height:5px;border-radius:99px;background:rgba(255,255,255,.28);z-index:5}
.idfk-grip{position:absolute;top:0;left:0;right:56px;height:34px;z-index:5;touch-action:none}
.idfk-skel{background:linear-gradient(100deg,rgba(255,255,255,.05) 40%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.05) 60%);background-size:200% 100%;animation:idfkSkel 1.1s infinite;border-radius:10px}
@keyframes idfkSkel{from{background-position:120% 0}to{background-position:-80% 0}}
.idfk-lojarow{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.idfk-lojarow img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(215,255,1,.5)}
.idfk-lojarow .sem{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.09);display:grid;place-items:center;font-size:13px}
.idfk-lojarow b{font-size:12.5px;font-weight:900;line-height:1.25}
/* v733213 — nome e cidade estavam grudados, sem respiro entre as linhas */
.idfk-lojarow span{font-size:10.5px;color:rgba(255,255,255,.45);font-weight:700;line-height:1.3;margin-top:2px;display:block}
.idfk-meta{display:flex;flex-wrap:wrap;row-gap:4px;gap:12px;margin:2px 0 10px;font-size:11.5px;color:rgba(255,255,255,.55);font-weight:800;min-width:0} /* v732596 — curtiram não vaza mais */
.idfk-vars{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 12px}
/* ═══════════════════════════════════════════════════════════════════════
   v733213 — AS VARIAÇÕES ESTAVAM ESPREMIDAS CONTRA A BORDA.

   `.idfk-precos` é uma linha `flex-wrap:nowrap` com preço, parcelamento e
   as variações dentro. Num telefone de 425 pt sobravam 109 pt para as
   cápsulas: "Ao Leite Amadeirado" virava duas linhas, "Branco Cítrico"
   também, e a coluna toda encostava na borda direita.

   Escolher sabor é o passo que decide a compra deste produto — não pode
   ser o pedaço mais apertado da tela. Agora a linha quebra e as variações
   ganham a largura inteira quando não cabem ao lado do preço.
   ═══════════════════════════════════════════════════════════════════════ */
.idfk-precos{flex-wrap:wrap!important;row-gap:10px;align-items:flex-start}
.idfk-precos > .idfk-vars-wrap-v733213,
.idfk-precos > .idfk-vars{flex:1 1 100%;min-width:0}
@media(min-width:560px){
  .idfk-precos > .idfk-vars-wrap-v733213,
  .idfk-precos > .idfk-vars{flex:1 1 auto}
}
.idfk-var{white-space:nowrap;max-width:100%}
.idfk-var span,.idfk-var b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.idfk-var{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:99px;cursor:pointer;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.14);color:rgba(255,255,255,.75);font-size:12px;font-weight:900;transition:all .14s}
.idfk-var img{width:20px;height:20px;border-radius:99px;object-fit:cover;background:#fff}
.idfk-var.on{background:rgba(215,255,1,.16);border-color:#D7FF01;color:#D7FF01}
/* v735000 — pílula de variação esgotada: apagada, riscada e não clicável */
.idfk-var-esg-v735000{opacity:.42;cursor:not-allowed;text-decoration:line-through;text-decoration-color:rgba(255,255,255,.35)}
.idfk-var-esgt-v735000{font-style:normal;font-size:9px;font-weight:900;letter-spacing:.04em;color:rgba(255,255,255,.55);text-decoration:none;margin-left:2px}
/* ═══════════════════════════════════════════════════════════════════════════
   v733752 — CESTA DE VARIAÇÕES: LEVAR 3 DE UM AROMA E 2 DE OUTRO.

   José: "tem que ter como fácil adicionar 4 de uma variação ou 5 de outra,
   acho que isso que pode estar travando geral de comprar o incenso" — e
   "no caso de escolher uma opção tendo várias, acho melhor ficar dropdown,
   caso passe de 5 variações".

   Ele acertou os dois. O incenso Taj tem **21 aromas a R$ 2,24**. Quem compra
   incenso não leva um: leva três de lavanda, dois de mirra. Para fazer isso
   hoje a pessoa teria de escolher aroma, adicionar, fechar, reabrir a ficha,
   escolher outro, adicionar — seis vezes para seis aromas. Ninguém faz isso
   por R$ 2,24, ainda mais pagando um frete só no fim. 870 pessoas viram esse
   produto e nenhuma comprou.

   E a parede de 21 pílulas empurra o preço, o prazo e o botão para fora da
   tela: o que deveria ajudar a escolher é o que esconde a compra.

   Acima de 5 variações vira uma LISTA com contador em cada linha. Escolhe-se
   a quantidade de cada uma e tudo vai junto num toque. Abaixo de 5 continua
   pílula, que é mais rápido para "P, M ou G".

   A busca aparece a partir de 8: com 21 aromas, "lav" acha lavanda mais
   rápido do que o dedo rolando.
   ═══════════════════════════════════════════════════════════════════════════ */
.idfk-cesta-v733752{margin:2px 0 12px}
.idfk-cesta-busca-v733752{width:100%;box-sizing:border-box;margin:0 0 8px;
  /* 🔴 16px: abaixo disso o Safari do iPhone dá zoom ao focar e a ficha sai da tela */
  font:800 16px/1.2 inherit;padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.14);color:#fff}
.idfk-cesta-busca-v733752::placeholder{color:rgba(255,255,255,.38);font-weight:700}
.idfk-cesta-lista-v733752{max-height:46vh;overflow-y:auto;-webkit-overflow-scrolling:touch;
  border:1.5px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.03)}
.idfk-cl-v733752{display:flex;align-items:center;gap:9px;padding:9px 11px;
  border-bottom:1px solid rgba(255,255,255,.06)}
.idfk-cl-v733752:last-child{border-bottom:0}
.idfk-cl-v733752.tem{background:rgba(215,255,1,.07)}
.idfk-cl-v733752 img{width:30px;height:30px;border-radius:99px;object-fit:cover;background:#fff;flex:0 0 30px}
.idfk-cl-nome-v733752{flex:1 1 auto;min-width:0;font-size:13px;font-weight:800;color:rgba(255,255,255,.86);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.idfk-cl-v733752.tem .idfk-cl-nome-v733752{color:#D7FF01}
.idfk-cl-esg-v733752{font-size:10px;font-weight:900;color:rgba(255,255,255,.4);letter-spacing:.04em}
.idfk-cl-qtd-v733752{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.idfk-cl-qtd-v733752 button{width:34px;height:34px;border-radius:10px;border:1.5px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);color:#fff;font-size:17px;font-weight:900;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0}
.idfk-cl-qtd-v733752 button:active{transform:scale(.94)}
.idfk-cl-qtd-v733752 b{min-width:26px;text-align:center;font-size:14px;font-weight:900;color:#fff}
.idfk-cl-v733752:not(.tem) .idfk-cl-qtd-v733752 b{color:rgba(255,255,255,.35)}
.idfk-cesta-resumo-v733752{margin-top:9px;font-size:12px;font-weight:800;color:rgba(255,255,255,.6)}
.idfk-cesta-resumo-v733752 b{color:#D7FF01}
.idfk-vars-t{font-size:10.5px;font-weight:900;letter-spacing:.08em;color:rgba(255,255,255,.45);margin:8px 0 6px;text-transform:uppercase}
@keyframes idfkTreme{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.idfk-add.treme{animation:idfkTreme .3s ease 2}
.idfk-meta b{color:#fff}
.idfk-coracao{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) scale(.4);font-size:84px;opacity:0;pointer-events:none;z-index:7;
filter:drop-shadow(0 6px 24px rgba(255,77,157,.6));transition:all .32s cubic-bezier(.2,.9,.3,1.4)}
.idfk-coracao.pum{opacity:1;transform:translate(-50%,-50%) scale(1)}
.idfk-verpag-btn{display:block;width:100%;text-align:center;margin:18px 0 6px;color:rgba(255,255,255,.6);font-size:12.5px;
font-weight:800;text-decoration:underline;background:none;border:0;cursor:pointer;padding:8px 0}
.idfk-kit{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0 4px}
.idfk-kit::-webkit-scrollbar{display:none}
.idfk-deg{flex:none;min-width:104px;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:10px 12px;
background:rgba(255,255,255,.04);cursor:pointer;position:relative;animation:idfkIn .35s ease backwards}
.idfk-deg.on{border-color:#D7FF01;background:rgba(215,255,1,.1);box-shadow:0 0 20px rgba(215,255,1,.12)}
.idfk-deg .q{font-size:15px;font-weight:900}
.idfk-deg .pc{font-size:10px;font-weight:900;color:#42E87B}
.idfk-deg .tt{font-size:12.5px;font-weight:900;color:#D7FF01;margin-top:3px}
.idfk-deg .ec{font-size:9.5px;color:rgba(255,255,255,.5);font-weight:800}
.idfk-deg .tag{position:absolute;top:-8px;right:8px;font-size:8px;font-weight:900;letter-spacing:.4px;
background:#D7FF01;color:#000;border-radius:999px;padding:2px 7px}
.idfk-deg .tag.melhor{background:#FF4D9D;color:#fff}
.idfk-pessoas{position:absolute;inset:0;z-index:8;background:rgba(11,11,14,.97);display:flex;flex-direction:column;
animation:idfkIn .22s ease}
.idfk-pes-topo{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.09)}
.idfk-pes-topo b{flex:1;font-size:15px;font-weight:900}
.idfk-pes-abas{display:flex;gap:8px;padding:10px 16px 4px}
.idfk-pes-aba{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:rgba(255,255,255,.7);
border-radius:999px;font-size:11.5px;font-weight:900;padding:7px 14px;cursor:pointer}
.idfk-pes-aba.on{background:rgba(215,255,1,.14);border-color:rgba(215,255,1,.5);color:#D7FF01}
.idfk-pes-lista{flex:1;overflow-y:auto;padding:8px 16px 20px}
.idfk-pes-row{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.idfk-pes-row img,.idfk-pes-row .sem{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:none;
background:rgba(255,255,255,.08);display:grid;place-items:center}
.idfk-pes-row b{display:block;font-size:13px;font-weight:900}
.idfk-pes-row span{display:block;font-size:11px;color:rgba(255,255,255,.45);font-weight:700}
.idfk-porta{margin:auto;text-align:center;padding:24px}
.idfk-porta .ic{font-size:40px;margin-bottom:10px}
.idfk-porta p{color:rgba(255,255,255,.6);font-size:13px;font-weight:700;margin:0 0 16px;line-height:1.5}
.idfk-porta a{display:block;border-radius:14px;padding:13px;font-weight:900;text-decoration:none;margin-bottom:9px;font-size:13.5px}
.idfk-porta .entrar{background:#D7FF01;color:#000}
.idfk-porta .criar{border:1px solid rgba(255,255,255,.2);color:#fff}
.idfk-x{position:absolute;top:14px;right:14px;z-index:6;width:42px;height:42px;border-radius:50%;
border:1px solid rgba(255,255,255,.18);background:rgba(10,10,12,.72);color:#fff;font-size:22px;font-weight:900;
display:grid;place-items:center;backdrop-filter:blur(10px);cursor:pointer}
/* ═══════════════════════════════════════════════════════════════════════
   v733630 — min-height:0 é o que FAZ a rolagem existir.
   Item de flex tem min-height:auto: não encolhe abaixo do conteúdo. Sem
   isto, .idfk-corpo fica do tamanho da ficha inteira, o overflow-y:auto não
   tem o que esconder, e não há rolagem — só o overscroll do navegador, que
   é o "de pouco em pouco". Ver o cabeçalho do patch.
   ═══════════════════════════════════════════════════════════════════════ */
.idfk-corpo{flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  /* v733642 — ver o cabeçalho do patch: era isto que puxava a rolagem */
  overflow-anchor:none}
.idfk-corpo *{overflow-anchor:none}
/* v733661 — rede de segurança: toda tira horizontal da ficha devolve o
   gesto vertical ao corpo, inclusive as que vierem depois de mim. */
/* v733662 — sem touch-action: declarar um eixo aqui INTERSECTA com o do
   corpo e zera os dois. Basta não ser rolador vertical. */
#idlinkFichaV2204 [style*="overflow-x"],
#idlinkFichaV2204 .idfk-degraus,
#idlinkFichaV2204 .idfk-vars{overflow-y:hidden!important;touch-action:auto!important}
.idfk-galeria{position:relative;background:#101014}
/* ═══════════════════════════════════════════════════════════════════════
   v733661 — declarar só overflow-x faz o eixo Y virar `auto` por
   especificação, e a tira passa a receber o gesto vertical sem ter o que
   rolar. Ver o cabeçalho do patch: era a causa do scroll travado.
   ═══════════════════════════════════════════════════════════════════════ */
.idfk-tira{display:flex;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.idfk-tira::-webkit-scrollbar{display:none}
.idfk-tira img{width:100%;flex:none;scroll-snap-align:center;aspect-ratio:1/1;object-fit:contain;background:#fff}
.idfk-pontos{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:5px}
.idfk-pontos i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);transition:all .2s}
.idfk-pontos i.on{background:#D7FF01;width:16px;border-radius:99px}
.idfk-info{padding:16px 18px 130px}
.idfk-loja{font-size:11px;color:rgba(255,255,255,.5);font-weight:800;margin-bottom:4px}
.idfk-titulo{font-size:20px;font-weight:900;letter-spacing:-.4px;line-height:1.2;margin:0 0 10px}
.idfk-precos{display:flex;align-items:baseline;gap:9px;margin-bottom:4px}
.idfk-preco{font-size:26px;font-weight:900;color:#D7FF01;letter-spacing:-.8px}
.idfk-de{font-size:14px;color:rgba(255,255,255,.4);text-decoration:line-through;font-weight:700}
.idfk-off{font-size:10.5px;font-weight:900;color:#42E87B;background:rgba(66,232,123,.14);
border:1px solid rgba(66,232,123,.4);border-radius:999px;padding:3px 9px}
.idfk-rating{font-size:12px;color:#FFC83C;font-weight:800;margin-bottom:10px}
.idfk-chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.idfk-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:rgba(255,255,255,.82);
background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:7px 12px;
animation:idfkIn .35s ease backwards}
.idfk-chip.gratis{color:#D7FF01;background:rgba(215,255,1,.1);border-color:rgba(215,255,1,.45)}
/* ═══════════════════════════════════════════════════════════════════════════
   v733762 — UMA COR POR MODALIDADE.

   José: "aqui deve refletir as operações ativas com a cor correta."

   Os quatro modos saíam no mesmo cinza, e o box virava uma lista para ler
   palavra por palavra. Quem está decidindo comprar olha essa caixa por menos
   de um segundo: ou ela responde "como isso chega até mim" na primeira
   olhada, ou não serviu para nada.

   Cada modo com a cor do que ele é — e só aparece o que a loja realmente
   opera (v733761), então cor aqui é informação, não enfeite.
   ═══════════════════════════════════════════════════════════════════════════ */
.idfk-chip.m-retirada{color:#D7FF01;background:rgba(215,255,1,.09);border-color:rgba(215,255,1,.38)}
/* v733766 — José: "delivery é vermelho, e envio p/ todo Brasil deixe Envios
   Nacionais, que é o verde". É a convenção que ele já usa nas modalidades da
   loja; a tela tem de falar a mesma língua do painel, senão a cor vira ruído
   em vez de atalho. */
.idfk-chip.m-local{color:#FF5A5A;background:rgba(255,90,90,.1);border-color:rgba(255,90,90,.42)}
.idfk-chip.m-nacional{color:#42E87B;background:rgba(66,232,123,.1);border-color:rgba(66,232,123,.4)}
.idfk-chip.m-intl{color:#C79BFF;background:rgba(199,155,255,.1);border-color:rgba(199,155,255,.4)}
@keyframes idfkIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.idfk-sec{font-size:11px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.45);margin:18px 0 9px}
.idfk-desc{font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.72);white-space:pre-line;max-height:132px;overflow:hidden;position:relative}
.idfk-desc.aberta{max-height:none}
.idfk-vermais{color:#D7FF01;font-size:12px;font-weight:900;background:none;border:0;padding:6px 0;cursor:pointer}
.idfk-leve{display:flex;gap:9px;overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}
.idfk-leve::-webkit-scrollbar{display:none}
.idfk-lv{flex:none;width:124px;border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden;
background:rgba(255,255,255,.04);animation:idfkIn .4s ease backwards}
.idfk-lv img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#fff}
.idfk-lv .t{font-size:11px;font-weight:800;padding:7px 8px 2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:34px}
.idfk-lv .p{font-size:12px;font-weight:900;color:#D7FF01;padding:0 8px 4px}
.idfk-lv button{width:calc(100% - 16px);margin:0 8px 8px;border:0;border-radius:9px;background:rgba(215,255,1,.16);
color:#D7FF01;font-size:10.5px;font-weight:900;padding:7px 0;cursor:pointer}
.idfk-lv button.ok{background:#42E87B;color:#04220F}
.idfk-verpag{display:block;text-align:center;margin:18px 0 6px;color:rgba(255,255,255,.55);font-size:12.5px;
font-weight:800;text-decoration:underline}
.idfk-rodape{position:absolute;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
background:linear-gradient(180deg,rgba(11,11,14,0),rgba(11,11,14,.94) 30%,#0B0B0E);display:flex;gap:10px;align-items:center}
.idfk-qtd{display:flex;align-items:center;border:1px solid rgba(255,255,255,.16);border-radius:14px;overflow:hidden;flex:none}
.idfk-qtd button{width:42px;height:48px;background:rgba(255,255,255,.06);border:0;color:#fff;font-size:19px;font-weight:900;cursor:pointer}
.idfk-qtd b{width:40px;text-align:center;font-size:15px}
.idfk-add{flex:1;height:48px;border:0;border-radius:14px;background:#D7FF01;color:#000;font-size:14px;
font-weight:900;cursor:pointer;letter-spacing:.2px;transition:transform .12s}
/* ═══════════════════════════════════════════════════════════════════════
   v733218 — DOIS ACERTOS NA BARRA DE COMPRA DA FICHA.

   1. O fundo era um gradiente que COMEÇA transparente
      (rgba(11,11,14,0) → opaco só a 30%). A caixa "🚚 Entrega e frete ·
      CEP" aparecia por baixo, atravessada pelo botão — parecia defeito de
      renderização bem em cima do botão de comprar.
   2. "Adicionar · R$ 42,00" não cabia em 118 px e quebrava em duas linhas.
      O botão mais importante da tela, gaguejando.

   Agora o fundo tem base sólida sob o conteúdo (o degradê fica só na borda
   de cima, para não cortar a foto em linha reta) e o rótulo encolhe a fonte
   antes de quebrar.
   ═══════════════════════════════════════════════════════════════════════ */
.idfk-rodape{background:linear-gradient(180deg,rgba(11,11,14,0),rgba(11,11,14,.97) 16px,#0B0B0E 30px)!important;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* v733635 — duas linhas: o rótulo em cima, o valor menor embaixo. */
.idfk-add{min-width:0;padding:0 12px;line-height:1.05;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.idfk-add .l1{font-size:clamp(12px,3.4vw,14px);font-weight:900;white-space:nowrap}
.idfk-add .l2{font-size:clamp(10.5px,2.9vw,12px);font-weight:800;opacity:.82;
  white-space:nowrap;font-variant-numeric:tabular-nums}
/* ── urgência da campanha, dentro do produto aberto (v733635) ── */
.idfk-urg{margin:9px 0 2px;padding:10px 12px;border-radius:13px;
  background:rgba(255,194,75,.12);border:1px solid rgba(255,194,75,.38)}
.idfk-urg .u1{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.idfk-urg .ec{font-size:14px;line-height:1}
.idfk-urg .u1 b{color:#FFC24B;font-size:14px;font-weight:950;letter-spacing:-.2px}
.idfk-urg .u1 i{font-style:normal;background:rgba(255,194,75,.2);color:#FFC24B;
  border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:900}
.idfk-urg .u2{display:flex;align-items:baseline;gap:8px;margin-top:5px;flex-wrap:wrap}
.idfk-urg .idfk-rl{color:#fff;font-variant-numeric:tabular-nums;font-weight:950;font-size:12.5px}
.idfk-urg .u2 small{color:rgba(255,255,255,.5);font-weight:700;font-size:11px}
.idfk-urg.quente{background:rgba(255,107,61,.13);border-color:rgba(255,107,61,.45)}
.idfk-urg.quente .u1 b,.idfk-urg.quente .u1 i{color:#FF8A5C}
.idfk-urg.quente .u1 i{background:rgba(255,107,61,.2)}
.idfk-add:active{transform:scale(.97)}
.idfk-add.ok{background:#42E87B;color:#04220F}
/* v735050 — sem opção escolhida o botão é convite (sem preço, sem amarelo de compra) */
.idfk-add.idfk-escolher-v735050{background:rgba(255,255,255,.13);color:#fff;border:1px solid rgba(255,255,255,.22);font-size:13.5px}
.idfk-add[disabled]{opacity:.55}
.idfk-carrega{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.5);font-weight:800;font-size:13px}
.idfk-toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);
background:#D7FF01;color:#000;font-weight:900;font-size:13px;border-radius:999px;padding:11px 20px;z-index:2147483300;
opacity:0;transition:all .25s;pointer-events:none;box-shadow:0 14px 40px rgba(215,255,1,.35)}
.idfk-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* v732213 — o ✕ das camadas antigas é remoção FALSA (só no cliente; o item
   ressuscita no checkout). CSS mata sem corrida de JS: a camada re-injeta,
   a regra re-esconde no mesmo frame. O ✕ real (servidor) é o [data-idfk-x]. */
#idlinkProfileCartBody .idlink-profile-cart-remove{display:none !important}
.idlink-profile-cart-qtd{display:inline-flex;align-items:center;gap:0;border:1px solid rgba(255,255,255,.14);border-radius:10px;overflow:hidden;margin-top:6px}
.idlink-profile-cart-qtd button{width:30px;height:30px;background:rgba(255,255,255,.07);border:0;color:#fff;font-weight:900;font-size:15px;cursor:pointer}
.idlink-profile-cart-qtd b{width:30px;text-align:center;font-size:12px}
.idlink-profile-cart-tira{margin-left:7px;width:30px;height:30px;border-radius:10px;border:1px solid rgba(255,90,90,.5);
background:rgba(255,90,90,.12);color:#FF5A5A;font-weight:900;font-size:13px;cursor:pointer}
