/* Papelândia Regras — estilo mínimo; o tema sobrescreve. */
/* Contador da reserva do carrinho (21/10, 2ª versão): ícone compacto e translúcido na LATERAL ESQUERDA, com anel de tempo que
   esvazia. Toque abre um cartãozinho com a frase completa; dá para fechar (X) e minimizar. Nunca por cima de nada: o regras.js
   mede os elementos fixos da tela (WhatsApp, barra do celular, aviso de cookies...) e sobe o ícone acima deles; some com
   popup/gaveta aberta. Cor por tempo que falta (data-estado): sobra = turquesa/verde, curto = amarelo/pêssego, final = rosa/laranja
   suave. Texto com contraste acima de 7:1. Sem layout shift (tudo position:fixed). */
.pp-reserva {
  --pp-t1: 20, 184, 166;   /* turquesa */
  --pp-t2: 94, 200, 110;   /* verde */
  --pp-texto: #0b4a43;
  --pp-pct: 1;
  position: fixed;
  left: calc(10px + env(safe-area-inset-left, 0px));
  bottom: var(--pp-sobe, 96px);
  z-index: 990; /* abaixo da gaveta do carrinho (999), do menu, do aviso de cookies e do popup */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding-bottom: var(--pp-seguro, env(safe-area-inset-bottom, 0px));
  margin: 0;
  font-family: 'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--pp-texto);
  pointer-events: none;
  transition: bottom .25s ease, opacity .2s ease;
}
.pp-reserva[data-estado='curto'] { --pp-t1: 255, 190, 20; --pp-t2: 255, 160, 120; --pp-texto: #5a3700; }
.pp-reserva[data-estado='final'] { --pp-t1: 255, 90, 140; --pp-t2: 252, 79, 0; --pp-texto: #7e1f0c; }
.pp-reserva[hidden] { display: none; }
.pp-reserva[data-oculto] { opacity: 0; visibility: hidden; }
@media (max-width: 991px) {
  .pp-reserva { --pp-sobe: calc(158px + env(safe-area-inset-bottom, 0px)); }
  html.pp-reserva-digitando .pp-reserva { opacity: 0; pointer-events: none; }
}
.pp-reserva > * { pointer-events: auto; }
.pp-reserva__aviso {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Ícone */
.pp-reserva__icone {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, .78);
  background-image: linear-gradient(135deg, rgba(var(--pp-t1), .22), rgba(var(--pp-t2), .2));
  -webkit-backdrop-filter: blur(8px) saturate(1.2);
  backdrop-filter: blur(8px) saturate(1.2);
  box-shadow: 0 0 0 1px rgba(var(--pp-t1), .4), 0 4px 14px rgba(var(--pp-t1), .32);
  color: var(--pp-texto);
  font: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: width .2s ease, height .2s ease;
}
.pp-reserva__icone:focus-visible, .pp-reserva__x:focus-visible, .pp-reserva__mini-bt:focus-visible {
  outline: 3px solid rgb(var(--pp-t1));
  outline-offset: 2px;
}
.pp-reserva__anel { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.pp-reserva__trilho { fill: none; stroke: rgba(var(--pp-t1), .22); stroke-width: 4; }
.pp-reserva__prog {
  fill: none;
  stroke: rgb(var(--pp-t1));
  stroke-width: 4;
  stroke-linecap: round;
  stroke-dasharray: 157.08px;
  stroke-dashoffset: calc(157.08px * (1 - var(--pp-pct)));
  transition: stroke-dashoffset 1s linear;
}
.pp-reserva__relogio { position: relative; display: block; width: 18px; height: 18px; margin-top: 1px; }
.pp-reserva__relogio svg { display: block; width: 18px; height: 18px; stroke-width: 1.7; }
/* o tema pinta svg de cheio (fill:currentColor): aqui os ícones são só traço */
.pp-reserva__relogio svg, .pp-reserva__relogio svg *, .pp-reserva__x svg, .pp-reserva__x svg * { fill: none; stroke: currentColor; }
.pp-reserva__ponteiro { transform-box: view-box; transform-origin: 12px 13px; animation: pp-reserva-gira 60s linear infinite; }
.pp-reserva__min {
  position: relative;
  margin-top: 1px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.pp-reserva[data-estado='final'] .pp-reserva__icone { animation: pp-reserva-pulsa 2.6s ease-in-out infinite; }
.pp-reserva[data-rolando]:not([data-aberto]) .pp-reserva__icone { opacity: .4; }
.pp-reserva__icone { transition: width .2s ease, height .2s ease, opacity .25s ease; }
@media (max-width: 991px) { .pp-reserva__icone { width: 52px; height: 52px; } }

/* Minimizado: só um pontinho com o anel */
.pp-reserva[data-mini='1'] .pp-reserva__icone { width: 30px; height: 30px; }
.pp-reserva[data-mini='1'] .pp-reserva__relogio, .pp-reserva[data-mini='1'] .pp-reserva__min { display: none; }
.pp-reserva[data-mini='1'] .pp-reserva__prog, .pp-reserva[data-mini='1'] .pp-reserva__trilho { stroke-width: 6; }
.pp-reserva[data-mini='1'] .pp-reserva__icone::after { content: ''; position: absolute; inset: -9px; border-radius: 50%; }

/* Cartão */
.pp-reserva__cartao {
  position: relative;
  box-sizing: border-box;
  width: min(268px, calc(100vw - 24px));
  padding: 16px 18px 14px;
  border-radius: 20px;
  background-color: rgba(255, 255, 255, .86);
  background-image: linear-gradient(135deg, rgba(var(--pp-t1), .2), rgba(var(--pp-t2), .18));
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
  backdrop-filter: blur(10px) saturate(1.2);
  border: 1px solid rgba(var(--pp-t1), .5);
  box-shadow: 0 8px 26px rgba(var(--pp-t1), .3);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px) scale(.98);
  transform-origin: left bottom;
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.pp-reserva[data-aberto='1'] .pp-reserva__cartao { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.pp-reserva__frase { margin: 0 34px 0 0; font-size: 16px; font-weight: 400; line-height: 1.3; text-wrap: balance; }
.pp-reserva__tempo {
  display: block;
  margin-top: 2px;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
.pp-reserva__ajuda { margin: 6px 0 10px; font-size: 14px; line-height: 1.35; }
.pp-reserva__x {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(var(--pp-t1), .18);
  color: var(--pp-texto);
  cursor: pointer;
  touch-action: manipulation;
}
.pp-reserva__x svg { display: block; width: 14px; height: 14px; }
.pp-reserva__mini-bt {
  margin: 0;
  padding: 8px 12px;
  min-height: 36px;
  border: 1px solid rgba(var(--pp-t1), .55);
  border-radius: 18px;
  background: rgba(255, 255, 255, .6);
  color: var(--pp-texto);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  touch-action: manipulation;
}

/* cartão aberto: o balão de conversa (#ppc-c) fica escondido para um não cobrir o outro; ao fechar, volta como estava */
html.pp-reserva-aberto #ppc-c { display: none !important; }

@keyframes pp-reserva-gira { to { transform: rotate(360deg); } }
@keyframes pp-reserva-pulsa {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 1px rgba(var(--pp-t1), .4), 0 4px 14px rgba(var(--pp-t1), .32); }
  50% { transform: scale(1.05); box-shadow: 0 0 0 1px rgba(var(--pp-t1), .55), 0 6px 20px rgba(var(--pp-t1), .55); }
}
@media (prefers-reduced-motion: reduce) {
  .pp-reserva, .pp-reserva__icone, .pp-reserva__cartao, .pp-reserva__prog { transition: none; }
  .pp-reserva__ponteiro, .pp-reserva[data-estado='final'] .pp-reserva__icone { animation: none; }
}
@media print { .pp-reserva { display: none; } }

.pp-bump { margin: 0 0 1.5em; }
.pp-bump:empty { display: none; }
.pp-bump__titulo { margin: 0 0 .5em; font-size: 1.1em; }
.pp-bump__oferta {
  display: flex;
  gap: .6em;
  align-items: center;
  padding: .6em;
  margin-bottom: .5em;
  border: 2px dashed #e0a800;
  border-radius: 6px;
  cursor: pointer;
}
.pp-bump__img img { width: 48px; height: auto; display: block; }
.pp-bump__texto { flex: 1; }
.pp-bump__preco del { opacity: .6; margin-right: .3em; }
.pp-brinde-qtd { display: inline-block; min-width: 2em; text-align: center; }
