
/* =========================================================
   ETERNO.PET v1.0.71 — cemitério vertical por rolagem
   ========================================================= */
html{scroll-behavior:smooth}
body.cemiterio-scroll-mode{overflow-x:hidden;background:var(--gramado-cor,#43b61e)}
body.cemiterio-scroll-mode .controles-zoom,
body.cemiterio-scroll-mode .painel-lateral-cemiterio,
body.cemiterio-scroll-mode .btn-voltar-entrada{display:none!important}

.cemiterio-scroll{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  background:var(--eterno-pet-road-image,var(--gramado-textura));
  background-repeat:repeat;
  background-size:var(--eterno-pet-road-size,64px);
}

.ceu-scroll{
  position:relative;
  min-height:300px;
  overflow:hidden;
}

.entrada-scroll{
  position:relative;
  min-height:270px;
  z-index:3;
}

/*
 * v1.0.73 — entrada em camadas:
 * gramado ao fundo -> cerca -> igreja/recepção.
 * A cerca horizontal permanece na mesma posição visual.
 */
.entrada-scroll::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:190px;
  height:150px;
  z-index:0;
  pointer-events:none;
  background-color:var(--gramado-cor,#43b61e);
  background-image:var(--eterno-pet-grass-image,none);
  background-repeat:repeat;
  background-size:var(--eterno-pet-grass-size,96px) var(--eterno-pet-grass-size,96px);
  background-position:left top;
}

.entrada-scroll .cerca-entrada{
  top:190px!important;
  z-index:2!important;
}

.entrada-scroll .portal,
.entrada-scroll .portal-topo-mundo,
.entrada-scroll .entrada-principal-interativa{
  z-index:5!important;
}

.cemiterio-scroll-shell{
  position:relative;
  width:min(1120px,100%);
  margin:0 auto;
  padding:118px clamp(28px,6vw,82px) 110px;
  box-sizing:border-box;
}

.cemiterio-scroll-lista{
  position:relative;
  z-index:4;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(72px,10vw,124px);
}

.scroll-quarter{
  position:relative;
  width:min(880px,100%);
  min-height:clamp(520px,68vw,720px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(48px,8vw,92px);
  box-sizing:border-box;
  content-visibility:auto;
  contain-intrinsic-size:760px;
  isolation:isolate;
}

.scroll-quarter-art{
  position:absolute;
  left:50%;
  top:50%;
  width:100%;
  height:100%;
  object-fit:contain;
  transform:translate(-50%,-50%) scale(var(--quarter-scale,1));
  transform-origin:center;
  z-index:0;
  image-rendering:pixelated;
  pointer-events:none;
}

.scroll-tombs-grid{
  position:relative;
  z-index:3;
  width:100%;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(120px,1fr));
  align-items:center;
  justify-items:center;
  column-gap:clamp(20px,5vw,74px);
  row-gap:clamp(28px,6vw,76px);
}

.scroll-tomb{
  position:relative;
  width:100%;
  min-width:0;
  min-height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  overflow:visible;
  -webkit-tap-highlight-color:transparent;
}

.scroll-tomb:focus-visible{
  outline:3px solid rgba(255,255,255,.9);
  outline-offset:5px;
}

.scroll-tomb.is-highlighted{
  animation:scrollTombPulse .55s ease-in-out 3;
}

@keyframes scrollTombPulse{
  50%{transform:translateY(-8px)}
}

.scroll-tomb-model{
  position:relative;
  display:block;
  max-width:none;
  aspect-ratio:3/4;
  overflow:visible;
}

.scroll-tomb-art{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:pixelated;
}

.scroll-tomb-field{
  position:absolute;
  z-index:3;
  transform:translate(-50%,-50%);
  white-space:nowrap;
  margin:0;
  padding:0 2px;
  line-height:1;
  color:#222;
  font-family:monospace;
  font-weight:800;
  text-align:center;
  text-shadow:0 1px rgba(255,255,255,.65);
}

.scroll-candle img{
  display:block;
  width:1em;
  height:auto;
  image-rendering:pixelated;
}

.scroll-empty-tomb{
  display:block;
  max-width:none;
  height:auto;
  object-fit:contain;
  image-rendering:pixelated;
}

.scroll-empty-placeholder{
  display:grid;
  place-items:center;
  width:90px;
  aspect-ratio:3/4;
  border:2px dashed rgba(255,255,255,.45);
  color:#fff;
  font-size:10px;
  font-weight:900;
}

.scroll-fallback-tomb{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:92px;
  min-height:122px;
  padding:10px;
  border-radius:8px;
  background:#b7b5ae;
  border:3px solid #353535;
  color:#151515;
}
.scroll-fallback-tomb>span{font-size:26px}
.scroll-fallback-tomb strong{font-size:11px}
.scroll-fallback-tomb small{font-size:8px}

.scroll-poi{
  position:relative;
  width:100%;
  min-height:clamp(320px,56vw,620px);
  display:grid;
  place-items:center;
  overflow:visible;
  content-visibility:auto;
  contain-intrinsic-size:560px;
}

.scroll-poi-image{
  display:block;
  width:min(760px,88%);
  max-height:620px;
  object-fit:contain;
  transform:scale(var(--poi-scale,1));
  transform-origin:center;
  image-rendering:pixelated;
}

.cemiterio-scroll-loader{
  position:relative;
  z-index:10;
  width:min(420px,calc(100% - 40px));
  margin:68px auto 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  padding:16px 20px;
  border:3px solid #171717;
  border-radius:10px;
  background:rgba(255,250,224,.94);
  color:#2c281f;
  text-align:center;
  opacity:0;
  transform:translateY(12px) scale(.96);
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease;
}
.cemiterio-scroll-loader.is-visible{
  opacity:1;
  transform:none;
}
.cemiterio-scroll-loader .loader-patinhas{
  font-size:24px;
  animation:loaderPaw .5s steps(2,end) infinite;
}
.cemiterio-scroll-loader strong{font-size:13px}
.cemiterio-scroll-loader small{font-size:10px;opacity:.72}
@keyframes loaderPaw{50%{transform:translateY(-4px)}}

.cemiterio-scroll-sentinel{
  width:100%;
  height:2px;
}

.cemiterio-scroll-fim{
  position:relative;
  z-index:5;
  width:min(520px,90%);
  margin:70px auto 28px;
  padding:22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  border:3px solid #171717;
  background:rgba(247,240,205,.95);
  text-align:center;
}
.cemiterio-scroll-fim>span{font-size:30px}
.cemiterio-scroll-fim strong{font-size:13px}
.cemiterio-scroll-fim small{font-size:10px}

.cerca-scroll-final{
  position:absolute;
  left:0;
  right:0;
  bottom:8px;
  z-index:6;
  height:var(--eterno-pet-fence-height,86px);
  background-image:var(--eterno-pet-fence-image,none);
  background-repeat:repeat-x;
  background-position:center bottom;
  background-size:auto var(--eterno-pet-fence-height,86px);
  image-rendering:pixelated;
  pointer-events:none;
}

body.modo-noturno .cemiterio-scroll{
  filter:none;
}
body.modo-noturno .cemiterio-scroll::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:rgba(3,12,8,.22);
}
body.modo-noturno .cemiterio-scroll>*{
  position:relative;
  z-index:8;
}

@media(max-width:767.98px){
  .ceu-scroll{min-height:230px}
  .entrada-scroll{min-height:215px}
  .cemiterio-scroll-shell{padding:88px 24px 92px}
  .cemiterio-scroll-lista{gap:68px}
  .scroll-quarter{
    width:100%;
    min-height:430px;
    padding:38px 14px;
  }
  .scroll-tombs-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:repeat(3,minmax(94px,1fr));
    column-gap:8px;
    row-gap:18px;
  }
  .scroll-tomb{
    min-height:104px;
    transform:scale(.78);
    transform-origin:center;
  }
  .scroll-poi{
    min-height:280px;
  }
  .scroll-poi-image{
    width:88%;
    max-height:390px;
  }
  .cemiterio-scroll-loader{
    margin-top:44px;
  }
  .btn-conhecer-tumulo-fixo{
    bottom:76px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cemiterio-scroll-loader,
  .scroll-tomb.is-highlighted,
  .loader-patinhas{animation:none!important;transition:none!important}
}


/* v1.0.73 — logo mais alta para não sobrepor a igreja da entrada */
body.cemiterio-scroll-mode .ceu-scroll .logo-topo{
  top:4px !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .ceu-scroll .logo-topo{
    top:2px !important;
  }
}


/* v1.0.74 — cerca na linha do horizonte */
body.cemiterio-scroll-mode .entrada-scroll .cerca-entrada{
  top:0 !important;
  z-index:2 !important;
}

body.cemiterio-scroll-mode .entrada-scroll::after{
  top:0 !important;
  bottom:auto !important;
  height:100% !important;
  z-index:0 !important;
}

body.cemiterio-scroll-mode .entrada-scroll .portal,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo,
body.cemiterio-scroll-mode .entrada-scroll .entrada-principal-interativa{
  z-index:5 !important;
}


/* v1.0.76 — cerca e igreja descem para a divisão gramado/estrada */
body.cemiterio-scroll-mode .entrada-scroll .cerca-entrada{
  top:auto !important;
  bottom:0 !important;
  z-index:2 !important;
}

body.cemiterio-scroll-mode .entrada-scroll .portal,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo,
body.cemiterio-scroll-mode .entrada-scroll .entrada-principal-interativa{
  top:auto !important;
  bottom:0 !important;
  z-index:5 !important;
}

/* A textura de gramado não é deslocada: ela continua preenchendo a área
   entre o horizonte e a linha inferior onde começa a estrada. */
body.cemiterio-scroll-mode .entrada-scroll::after{
  top:0 !important;
  bottom:0 !important;
  height:auto !important;
}


/* v1.0.77 — desce a igreja para o nível visual da cerca */
body.cemiterio-scroll-mode .entrada-scroll .portal,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo,
body.cemiterio-scroll-mode .entrada-scroll .entrada-principal-interativa{
  top:auto !important;
  bottom:-115px !important;
  z-index:5 !important;
}


/* v1.0.78 — correção definitiva da posição da recepção.
   A imagem cadastrada vive no próprio #portalEntradaPrincipal.
   Em vez de tentar reposicionar apenas pelas classes históricas,
   deslocamos o alvo real da recepção em relação à linha da cerca. */
body.cemiterio-scroll-mode #portalEntradaPrincipal{
  top:auto !important;
  bottom:-115px !important;
  margin-top:0 !important;
  translate:0 0 !important;
  z-index:7 !important;
}

/* Mantém o deslocamento horizontal original e acrescenta somente a descida. */
body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
  transform:translate(-50%, 115px) !important;
}

/* Mobile também usa o mesmo alinhamento com a cerca, sem as regras antigas
   que voltavam a definir top:35px/top:22px. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    top:auto !important;
    bottom:-82px !important;
    transform:translate(-50%, 82px) scale(.8) !important;
    transform-origin:center bottom !important;
  }
}

@media(max-width:420px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    top:auto !important;
    bottom:-66px !important;
    transform:translate(-50%, 66px) scale(.7) !important;
  }
}


/* v1.0.79 — base da recepção alinhada exatamente à divisa grama/tijolos */
body.cemiterio-scroll-mode #portalEntradaPrincipal{
  top:auto !important;
  bottom:0 !important;
  margin-top:0 !important;
  z-index:7 !important;
}

/* Remove a descida adicional da v1.0.78.
   A base da imagem agora coincide com o bottom da área de gramado. */
body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
  transform:translateX(-50%) !important;
  translate:none !important;
  transform-origin:center bottom !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    top:auto !important;
    bottom:0 !important;
    transform:translateX(-50%) scale(.8) !important;
    transform-origin:center bottom !important;
  }
}

@media(max-width:420px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    top:auto !important;
    bottom:0 !important;
    transform:translateX(-50%) scale(.7) !important;
    transform-origin:center bottom !important;
  }
}


/* v1.0.80 — ajuste fino solicitado: recepção 10px mais baixa */
body.cemiterio-scroll-mode #portalEntradaPrincipal{
  bottom:-10px !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    bottom:-10px !important;
  }
}

@media(max-width:420px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    bottom:-10px !important;
  }
}


/* v1.0.81 — ajuste fino: mais 10px para baixo (20px no total desde v1.0.79) */
body.cemiterio-scroll-mode #portalEntradaPrincipal{
  bottom:-20px !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    bottom:-20px !important;
  }
}

@media(max-width:420px){
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal,
  body.cemiterio-scroll-mode #portalEntradaPrincipal.portal-topo-mundo{
    bottom:-20px !important;
  }
}


/* v1.0.82 — Espírito Guia Mariah adaptado ao cemitério por rolagem */
body.cemiterio-scroll-mode .mariah-guia{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:22px!important;
  top:auto!important;
  transform:translateX(-50%)!important;
  z-index:10060!important;
}

body.cemiterio-scroll-mode .mariah-reabrir{
  position:fixed!important;
  z-index:10020!important;
}

body.cemiterio-scroll-mode .mariah-dica-alvo{
  position:fixed!important;
  z-index:10055!important;
}

body.cemiterio-scroll-mode .scroll-quarter.mariah-destaque,
body.cemiterio-scroll-mode .scroll-poi.mariah-destaque,
body.cemiterio-scroll-mode .scroll-tomb.mariah-destaque{
  position:relative;
  z-index:10010!important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .mariah-guia{
    width:calc(100% - 20px)!important;
    max-width:520px!important;
    bottom:10px!important;
  }
}


/* v1.0.83 — recepção volta a ser clicável na arquitetura por rolagem */
body.cemiterio-scroll-mode #portalEntradaPrincipal{
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation;
}


/* =========================================================
   v1.0.84 — um quarteirão por linha em CSS Grid
   ========================================================= */
body.cemiterio-scroll-mode .cemiterio-scroll-lista{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) !important;
  grid-auto-flow:row !important;
  grid-auto-rows:auto !important;
  align-items:start !important;
  justify-items:center !important;
  width:100% !important;
  gap:clamp(72px,10vw,124px) !important;
}

/* Cada quarteirão ocupa sozinho uma linha inteira do grid. */
body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-quarter{
  grid-column:1 / -1 !important;
  width:min(880px,100%) !important;
  justify-self:center !important;
}

/* Pontos de interesse também usam uma linha completa entre quarteirões. */
body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-poi{
  grid-column:1 / -1 !important;
  width:100% !important;
  justify-self:stretch !important;
}

/* O grid interno do quarteirão continua 3x3, totalizando 9 lotes. */
body.cemiterio-scroll-mode .scroll-quarter .scroll-tombs-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  grid-template-rows:repeat(3,minmax(120px,1fr)) !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .cemiterio-scroll-lista{
    grid-template-columns:minmax(0,1fr) !important;
    gap:68px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter .scroll-tombs-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-template-rows:repeat(3,minmax(94px,1fr)) !important;
  }
}


/* =========================================================
   v1.0.85 — artes completas, responsivas e com scroll horizontal
   ========================================================= */

/*
 * A linha do cemitério nunca corta o conteúdo. Quando o palco configurado
 * ultrapassa a largura disponível, o próprio bloco oferece scroll horizontal.
 */
body.cemiterio-scroll-mode .scroll-quarter,
body.cemiterio-scroll-mode .scroll-poi{
  width:100% !important;
  max-width:100% !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  box-sizing:border-box;
}

/* Palco real do quarteirão: a largura cresce de verdade, não por transform. */
body.cemiterio-scroll-mode .scroll-quarter-stage{
  position:relative;
  flex:0 0 auto;
  width:max(100%, var(--quarter-stage-width, 880px));
  min-width:var(--quarter-stage-width, 880px);
  min-height:clamp(520px,68vw,720px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(48px,8vw,92px);
  box-sizing:border-box;
  isolation:isolate;
}

/* A imagem inteira ocupa o palco sem cover, crop ou deformação. */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-quarter-art{
  position:absolute !important;
  inset:0 !important;
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  image-rendering:pixelated;
  pointer-events:none;
}

/* Grid 3x3 permanece sobre a arte e acompanha a largura do palco. */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
  position:relative;
  z-index:3;
  width:min(880px, calc(100% - clamp(40px,12vw,150px))) !important;
  min-width:min(720px, calc(100% - 40px));
  margin:0 auto;
}

/* Ponto de interesse com palco próprio e dimensão real. */
body.cemiterio-scroll-mode .scroll-poi-stage{
  position:relative;
  flex:0 0 auto;
  width:max(100%, var(--poi-stage-width, 760px));
  min-width:var(--poi-stage-width, 760px);
  min-height:clamp(320px,56vw,620px);
  display:grid;
  place-items:center;
  box-sizing:border-box;
  padding:20px;
}

/* A PNG aparece inteira e em proporção natural. */
body.cemiterio-scroll-mode .scroll-poi-stage .scroll-poi-image{
  display:block !important;
  width:calc(var(--poi-stage-width,760px) - 40px) !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  image-rendering:pixelated;
}

/* Barra discreta, mas utilizável. */
body.cemiterio-scroll-mode .scroll-quarter::-webkit-scrollbar,
body.cemiterio-scroll-mode .scroll-poi::-webkit-scrollbar{
  height:10px;
}
body.cemiterio-scroll-mode .scroll-quarter::-webkit-scrollbar-thumb,
body.cemiterio-scroll-mode .scroll-poi::-webkit-scrollbar-thumb{
  background:rgba(38,32,26,.42);
  border-radius:999px;
}
body.cemiterio-scroll-mode .scroll-quarter::-webkit-scrollbar-track,
body.cemiterio-scroll-mode .scroll-poi::-webkit-scrollbar-track{
  background:rgba(255,255,255,.16);
}

/*
 * Em telas menores, se a arte configurada couber, ela se adapta à largura.
 * Se for maior, o min-width do palco preserva a arte e ativa o scroll.
 */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter{
    padding:0 0 12px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage{
    min-height:430px;
    padding:38px 18px;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
    width:min(620px,calc(100% - 24px)) !important;
    min-width:560px;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-template-rows:repeat(3,minmax(94px,1fr)) !important;
    column-gap:14px !important;
    row-gap:18px !important;
  }

  body.cemiterio-scroll-mode .scroll-poi{
    padding-bottom:12px;
  }

  body.cemiterio-scroll-mode .scroll-poi-stage{
    min-height:280px;
    padding:14px;
  }

  body.cemiterio-scroll-mode .scroll-poi-stage .scroll-poi-image{
    width:calc(var(--poi-stage-width,760px) - 28px) !important;
  }
}


/* =========================================================
   v1.0.86 — linhas isoladas: quarteirão e ponto de interesse
   ========================================================= */

/*
 * Cada item do cemitério é uma linha independente.
 * A linha nunca compartilha altura com o item seguinte e não permite
 * vazamento vertical de uma arte para outra.
 */
body.cemiterio-scroll-mode .cemiterio-scroll-lista{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  grid-auto-flow:row !important;
  grid-auto-rows:max-content !important;
  align-items:start !important;
  justify-items:stretch !important;
  gap:clamp(76px,9vw,118px) !important;
  overflow:visible !important;
}

body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-row{
  grid-column:1 / -1 !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  align-self:start !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
  isolation:isolate !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  content-visibility:auto;
}

/*
 * O palco do quarteirão tem largura real e sua altura passa a ser definida
 * pela própria imagem enviada. Isso elimina o antigo min-height fixo.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage{
  position:relative !important;
  display:block !important;
  width:var(--quarter-stage-width,880px) !important;
  min-width:var(--quarter-stage-width,880px) !important;
  max-width:none !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:visible !important;
  box-sizing:border-box !important;
}

/* A arte fica no fluxo normal e define a altura do quarteirão. */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-quarter-art{
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  top:auto !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  image-rendering:pixelated !important;
  pointer-events:none !important;
}

/* Se não existir arte cadastrada, preserva um espaço seguro para os 9 lotes. */
body.cemiterio-scroll-mode .scroll-quarter-stage.no-quarter-art{
  min-height:620px !important;
}

/*
 * Os 9 túmulos ficam dentro da própria imagem, sem alterar a altura da linha.
 * O inset cria respiro para árvores, cercas e decoração das artes orgânicas.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
  position:absolute !important;
  z-index:4 !important;
  left:8% !important;
  right:8% !important;
  top:12% !important;
  bottom:10% !important;
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  grid-template-rows:repeat(3,minmax(0,1fr)) !important;
  align-items:center !important;
  justify-items:center !important;
  column-gap:clamp(16px,4vw,62px) !important;
  row-gap:clamp(18px,4vw,58px) !important;
}

/* Quando não há arte, o grid usa toda a área fallback. */
body.cemiterio-scroll-mode .scroll-quarter-stage.no-quarter-art .scroll-tombs-grid{
  inset:38px !important;
}

/* Ponto de interesse: linha própria, imagem em fluxo normal e altura natural. */
body.cemiterio-scroll-mode .scroll-poi-stage{
  position:relative !important;
  display:block !important;
  width:var(--poi-stage-width,760px) !important;
  min-width:var(--poi-stage-width,760px) !important;
  max-width:none !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:visible !important;
  box-sizing:border-box !important;
}

body.cemiterio-scroll-mode .scroll-poi-stage .scroll-poi-image{
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  image-rendering:pixelated !important;
}

/*
 * Faixa de separação visual entre linhas.
 * Mantém o tijolinho do cenário visível e reforça a leitura:
 * quarteirão -> passagem -> ponto de interesse -> passagem -> quarteirão.
 */
body.cemiterio-scroll-mode .scroll-row::after{
  content:"";
  display:block;
  width:100%;
  height:clamp(28px,4vw,54px);
  pointer-events:none;
}

/* Scrollbar só aparece quando a arte realmente for maior que a tela. */
body.cemiterio-scroll-mode .scroll-row::-webkit-scrollbar{
  height:9px;
}
body.cemiterio-scroll-mode .scroll-row::-webkit-scrollbar-thumb{
  background:rgba(43,35,27,.42);
  border-radius:999px;
}
body.cemiterio-scroll-mode .scroll-row::-webkit-scrollbar-track{
  background:rgba(255,255,255,.12);
}

/* Desktop: se houver espaço, o conteúdo fica centralizado. */
@media(min-width:1000px){
  body.cemiterio-scroll-mode .scroll-row{
    padding-inline:20px !important;
  }
}

/* Mobile: mantém a arte inteira e permite pan horizontal quando necessário. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .cemiterio-scroll-lista{
    gap:58px !important;
  }

  body.cemiterio-scroll-mode .scroll-row{
    padding:0 0 10px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
    left:7% !important;
    right:7% !important;
    top:11% !important;
    bottom:9% !important;
    column-gap:12px !important;
    row-gap:14px !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb{
    min-height:88px !important;
    transform:none !important;
  }
}


/* =========================================================
   v1.0.87 — montanhas repetidas na base do céu
   ========================================================= */
body.cemiterio-scroll-mode .ceu-scroll .montanhas-horizonte{
  position:absolute;
  left:0;
  right:0;
  bottom:-20px;
  z-index:6;
  height:var(--eterno-pet-mountains-height,120px);
  pointer-events:none;
  background-color:transparent;
  background-image:var(--eterno-pet-mountains-image,none);
  background-repeat:repeat-x;
  background-position:left bottom;
  background-size:auto 100%;
  image-rendering:pixelated;
}

body.cemiterio-scroll-mode .ceu-scroll .logo-topo{
  z-index:4!important;
}

body.modo-noturno.cemiterio-scroll-mode .ceu-scroll .montanhas-horizonte,
body.periodo-noite.cemiterio-scroll-mode .ceu-scroll .montanhas-horizonte{
  filter:brightness(.52) saturate(.7);
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .ceu-scroll .montanhas-horizonte{
    height:min(var(--eterno-pet-mountains-height,120px),42vw);
  }
}


/* =========================================================
   v1.0.90 — correção real da sobreposição montanha/gramado
   ========================================================= */

/*
 * A montanha está dentro de .ceu-scroll. Nas versões anteriores o céu
 * continuava com overflow:hidden, por isso qualquer parte deslocada para
 * baixo era recortada antes de chegar ao gramado.
 */
body.cemiterio-scroll-mode .ceu-scroll{
  overflow:visible !important;
  z-index:4 !important;
}

/*
 * A camada de entrada/gramado fica um nível abaixo do céu. O fundo do céu
 * não ultrapassa sua própria caixa; apenas elementos filhos com overflow
 * (as montanhas) podem avançar visualmente sobre o gramado.
 */
body.cemiterio-scroll-mode .entrada-scroll{
  z-index:3 !important;
}

/* Montanhas efetivamente sobre o gramado. */
body.cemiterio-scroll-mode .ceu-scroll .montanhas-horizonte{
  bottom:-20px !important;
  z-index:8 !important;
  isolation:isolate;
}

/*
 * Nuvens continuam presas ao céu porque a própria camada .nuvens
 * mantém overflow:hidden. Logo permanece acima das montanhas.
 */
body.cemiterio-scroll-mode .ceu-scroll .nuvens{
  overflow:hidden !important;
}

body.cemiterio-scroll-mode .ceu-scroll .logo-topo{
  z-index:10 !important;
}

/*
 * A recepção permanece acima das montanhas quando houver sobreposição
 * na região central da entrada.
 */
body.cemiterio-scroll-mode .entrada-scroll #portalEntradaPrincipal{
  z-index:12 !important;
}


/* =========================================================
   v1.0.91 — efeito de flutuação da logo principal
   ========================================================= */
body.cemiterio-scroll-mode .ceu-scroll .logo-topo{
  animation:eterno-pet-logo-flutuar 3.8s ease-in-out infinite !important;
  will-change:transform;
  transform-origin:center center;
}

@keyframes eterno-pet-logo-flutuar{
  0%,100%{
    transform:translateX(-50%) translateY(0);
  }
  50%{
    transform:translateX(-50%) translateY(10px);
  }
}

@media(prefers-reduced-motion:reduce){
  body.cemiterio-scroll-mode .ceu-scroll .logo-topo{
    animation:none !important;
    transform:translateX(-50%) !important;
  }
}


/* =========================================================
   v1.0.92 — igreja/recepção acima das montanhas
   ========================================================= */

/*
 * A entrada precisa participar de uma camada acima do céu para que a igreja
 * possa sobrepor a faixa de montanhas. O gramado continua abaixo porque seu
 * pseudo-elemento mantém z-index próprio.
 */
body.cemiterio-scroll-mode .entrada-scroll{
  z-index:9 !important;
}

/* Igreja/portal sempre acima da faixa de montanhas. */
body.cemiterio-scroll-mode .entrada-scroll .portal,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo,
body.cemiterio-scroll-mode .entrada-scroll .entrada-principal-interativa,
body.cemiterio-scroll-mode .entrada-scroll #portalEntradaPrincipal{
  position:absolute;
  z-index:20 !important;
}

/* Cerca continua atrás da igreja. */
body.cemiterio-scroll-mode .entrada-scroll .cerca-entrada{
  z-index:10 !important;
}

/* Gramado da entrada permanece como camada de fundo. */
body.cemiterio-scroll-mode .entrada-scroll::after{
  z-index:0 !important;
}


/* =========================================================
   v1.0.93 — hierarquia definitiva do horizonte
   gramado < montanhas < igreja
   ========================================================= */

/*
 * Não elevamos mais .entrada-scroll inteira acima do céu, pois isso também
 * elevava o pseudo-elemento do gramado e podia cobrir as montanhas.
 */
body.cemiterio-scroll-mode .entrada-scroll{
  z-index:3 !important;
}

/* Gramado: camada mais baixa da região da entrada. */
body.cemiterio-scroll-mode .entrada-scroll::after{
  z-index:0 !important;
}

/* Céu permite a montanha avançar sobre a área do gramado. */
body.cemiterio-scroll-mode .ceu-scroll{
  overflow:visible !important;
  z-index:4 !important;
}

/* Montanhas: acima do gramado. */
body.cemiterio-scroll-mode .ceu-scroll .montanhas-horizonte{
  z-index:8 !important;
  bottom:-20px !important;
}

/*
 * A igreja recebe uma camada própria acima das montanhas sem precisar
 * elevar o gramado junto com ela.
 */
body.cemiterio-scroll-mode .entrada-scroll .portal,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo,
body.cemiterio-scroll-mode .entrada-scroll .entrada-principal-interativa,
body.cemiterio-scroll-mode .entrada-scroll #portalEntradaPrincipal{
  position:absolute !important;
  z-index:30 !important;
}

/* A cerca permanece entre o cenário e a igreja. */
body.cemiterio-scroll-mode .entrada-scroll .cerca-entrada{
  position:absolute !important;
  z-index:12 !important;
}


/* =========================================================
   v1.0.94 — igreja principal em primeiro plano
   ========================================================= */

/*
 * Alteração deliberadamente isolada: somente a igreja/recepção principal
 * recebe uma camada superior. Não modifica posição, tamanho ou cenário.
 */
body.cemiterio-scroll-mode .entrada-scroll .portal,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo,
body.cemiterio-scroll-mode .entrada-scroll .entrada-principal-interativa,
body.cemiterio-scroll-mode .entrada-scroll #portalEntradaPrincipal{
  position:absolute !important;
  z-index:100 !important;
  isolation:isolate;
}

/* Garante que a arte interna da recepção também permaneça no primeiro plano. */
body.cemiterio-scroll-mode .entrada-scroll #portalEntradaPrincipal img,
body.cemiterio-scroll-mode .entrada-scroll .portal img,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo img{
  position:relative;
  z-index:101 !important;
}


/* =========================================================
   v1.0.95 — correção estrutural do z-index da igreja
   Ordem real: gramado < montanhas < cerca < igreja
   ========================================================= */

/*
 * IMPORTANTE:
 * .entrada-scroll não pode criar um stacking context próprio abaixo de
 * .ceu-scroll. Caso contrário, z-index:100 da igreja fica preso dentro
 * do z-index da entrada e nunca ultrapassa as montanhas.
 */
body.cemiterio-scroll-mode .entrada-scroll{
  z-index:auto !important;
}

/* Gramado permanece no fundo da entrada. */
body.cemiterio-scroll-mode .entrada-scroll::after{
  z-index:0 !important;
}

/* Céu/montanhas continuam acima do gramado. */
body.cemiterio-scroll-mode .ceu-scroll{
  position:relative !important;
  z-index:4 !important;
  overflow:visible !important;
}

body.cemiterio-scroll-mode .ceu-scroll .montanhas-horizonte{
  z-index:8 !important;
}

/* Cerca fica acima das montanhas, mas abaixo da igreja. */
body.cemiterio-scroll-mode .entrada-scroll .cerca-entrada{
  z-index:20 !important;
}

/* Igreja efetivamente participa da pilha principal e fica em primeiro plano. */
body.cemiterio-scroll-mode .entrada-scroll #portalEntradaPrincipal,
body.cemiterio-scroll-mode .entrada-scroll .portal,
body.cemiterio-scroll-mode .entrada-scroll .portal-topo-mundo,
body.cemiterio-scroll-mode .entrada-scroll .entrada-principal-interativa{
  position:absolute !important;
  z-index:1000 !important;
  isolation:auto !important;
}


/* =========================================================
   v1.0.98 — correção real do espaçamento horizontal
   ========================================================= */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
  left:8% !important;
  right:8% !important;
  top:12% !important;
  bottom:10% !important;
  width:auto !important;
  transform:none !important;
  grid-template-columns:repeat(3, clamp(105px, 15vw, 150px)) !important;
  justify-content:center !important;
  justify-items:center !important;
  column-gap:clamp(4px, .8vw, 12px) !important;
}

/* O botão não estica mais até preencher toda a coluna disponível. */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb{
  width:clamp(105px,15vw,150px) !important;
  max-width:150px !important;
  justify-self:center !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
    left:5% !important;
    right:5% !important;
    grid-template-columns:repeat(3, 112px) !important;
    justify-content:center !important;
    column-gap:4px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb{
    width:112px !important;
    max-width:112px !important;
  }
}


/* =========================================================
   v1.0.99 — 12 túmulos por quarteirão
   ========================================================= */

/* 12 túmulos organizados em 4 colunas x 3 linhas. */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
  grid-template-columns:repeat(4, clamp(92px, 12vw, 132px)) !important;
  grid-template-rows:repeat(3,minmax(0,1fr)) !important;
  justify-content:center !important;
  justify-items:center !important;
  column-gap:clamp(4px,.7vw,10px) !important;
}

/* Mantém cada túmulo compacto para o conjunto permanecer centralizado. */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb{
  width:clamp(92px,12vw,132px) !important;
  max-width:132px !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
    grid-template-columns:repeat(4, 96px) !important;
    grid-template-rows:repeat(3,minmax(0,1fr)) !important;
    column-gap:4px !important;
    justify-content:center !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb{
    width:96px !important;
    max-width:96px !important;
  }
}


/* =========================================================
   v1.1.00 — túmulos mais próximos verticalmente
   ========================================================= */

/*
 * Mantém as 4 colunas e aproxima somente as 3 linhas.
 * O grid passa a ter altura menor e fica centralizado verticalmente
 * dentro do quarteirão.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
  top:50% !important;
  bottom:auto !important;
  height:64% !important;
  transform:translateY(-50%) !important;
  grid-template-rows:repeat(3, minmax(0,1fr)) !important;
  row-gap:clamp(4px,.8vw,12px) !important;
}

/* Mantém o ajuste horizontal atual intacto. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
    top:50% !important;
    bottom:auto !important;
    height:66% !important;
    transform:translateY(-50%) !important;
    row-gap:5px !important;
  }
}


/* =========================================================
   v1.1.01 — quarteirão 100% responsivo no mobile
   ========================================================= */
@media(max-width:767.98px){

  /*
   * No celular o quarteirão deixa de usar a largura fixa configurada
   * para desktop. O palco inteiro cabe no viewport, sem scroll/corte.
   */
  body.cemiterio-scroll-mode .scroll-quarter{
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
    overflow-y:visible !important;
    padding:0 10px 10px !important;
    box-sizing:border-box !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 auto !important;
    padding:0 !important;
    overflow:visible !important;
  }

  /*
   * A imagem define naturalmente a altura do quarteirão e aparece
   * completa, mantendo sua proporção original.
   */
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-quarter-art{
    position:relative !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center !important;
    transform:none !important;
  }

  /*
   * Os 12 túmulos acompanham proporcionalmente a redução da arte.
   * 4 colunas x 3 linhas continuam centralizadas.
   */
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
    position:absolute !important;
    left:50% !important;
    right:auto !important;
    top:50% !important;
    bottom:auto !important;
    width:72% !important;
    height:62% !important;
    transform:translate(-50%,-50%) !important;
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    grid-template-rows:repeat(3,minmax(0,1fr)) !important;
    justify-content:center !important;
    align-content:center !important;
    justify-items:center !important;
    align-items:center !important;
    column-gap:clamp(2px,1vw,5px) !important;
    row-gap:clamp(2px,1.2vw,6px) !important;
    min-width:0 !important;
    margin:0 !important;
  }

  /*
   * O slot de cada túmulo também reduz junto com o quarteirão,
   * eliminando os 96/112px fixos usados anteriormente.
   */
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    min-height:0 !important;
    height:100% !important;
    padding:0 !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb-model{
    width:min(100%,72px) !important;
    max-width:100% !important;
    height:auto !important;
    max-height:100% !important;
    aspect-ratio:3/4 !important;
    transform:none !important;
    transform-origin:center !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb-art{
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain !important;
  }

  /* Texto dinâmico acompanha a escala visual do túmulo. */
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb-field{
    max-width:96% !important;
    font-size:clamp(5px,1.55vw,9px) !important;
  }

  /* Fallback sem arte continua utilizável no mobile. */
  body.cemiterio-scroll-mode .scroll-quarter-stage.no-quarter-art{
    min-height:420px !important;
  }
}

@media(max-width:420px){
  body.cemiterio-scroll-mode .scroll-quarter{
    padding-inline:6px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid{
    width:74% !important;
    height:62% !important;
    column-gap:2px !important;
    row-gap:3px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb-model{
    width:min(100%,64px) !important;
  }
}


/* =========================================================
   v1.1.02 TESTE — sem imagem de quadra + grid Bootstrap
   ========================================================= */

/*
 * Temporariamente a arte do quarteirão não é renderizada.
 * O bloco contém somente os 12 túmulos.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test{
  width:100% !important;
  min-width:0 !important;
  max-width:1200px !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 auto !important;
  padding:clamp(20px,4vw,48px) !important;
  overflow:visible !important;
  background:transparent !important;
}

/*
 * Bootstrap controla a distribuição:
 * desktop/tablet >= md: col-md-3 = 4 túmulos por linha;
 * mobile: col-4 = 3 túmulos por linha.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  margin-left:calc(-.5 * var(--bs-gutter-x)) !important;
  margin-right:calc(-.5 * var(--bs-gutter-x)) !important;
  transform:none !important;
  display:flex !important;
  grid-template-columns:none !important;
  grid-template-rows:none !important;
  column-gap:0 !important;
  row-gap:0 !important;
  align-items:stretch !important;
}

/* Coluna Bootstrap de cada túmulo. */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb-col{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}

/* Remove larguras fixas anteriores e deixa o túmulo responder à coluna. */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb{
  width:100% !important;
  max-width:190px !important;
  min-width:0 !important;
  min-height:clamp(120px,18vw,180px) !important;
  height:auto !important;
  margin:0 auto !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb-model{
  width:min(100%,150px) !important;
  max-width:100% !important;
  height:auto !important;
  aspect-ratio:3/4 !important;
}

/* Mobile: três túmulos por linha, todos inteiros e proporcionais. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter{
    overflow:visible !important;
    padding-inline:8px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test{
    width:100% !important;
    padding:18px 8px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
    position:relative !important;
    width:auto !important;
    height:auto !important;
    transform:none !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb{
    width:100% !important;
    max-width:118px !important;
    min-height:118px !important;
    height:auto !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb-model{
    width:min(100%,92px) !important;
    max-width:100% !important;
  }
}

@media(max-width:390px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test{
    padding-inline:4px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb{
    max-width:105px !important;
    min-height:108px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb-model{
    width:min(100%,82px) !important;
  }
}


/* =========================================================
   v1.1.03 — blocos de 30 túmulos intercalados com POIs
   ========================================================= */

/* Sem qualquer imagem/fundo de quarteirão. */
body.cemiterio-scroll-mode .scroll-tomb-block,
body.cemiterio-scroll-mode .scroll-tomb-block .scroll-quarter-stage{
  background:transparent !important;
  background-image:none !important;
}

/* Bloco amplo e leve para 30 túmulos. */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
  width:100% !important;
  max-width:1320px !important;
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 auto !important;
  padding:clamp(24px,4vw,52px) clamp(12px,3vw,36px) !important;
}

/* Bootstrap controla as colunas; remove toda geometria absoluta antiga. */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  transform:none !important;
  display:flex !important;
  grid-template-columns:none !important;
  grid-template-rows:none !important;
  column-gap:0 !important;
  row-gap:0 !important;
  align-items:stretch !important;
}

/* lg: col-lg-2 = 6 por linha; md: col-md-3 = 4; mobile col-4 = 3. */
body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb-col{
  display:flex;
  justify-content:center;
  align-items:center;
  min-width:0;
}

body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb{
  width:100% !important;
  max-width:170px !important;
  min-width:0 !important;
  min-height:150px !important;
  height:auto !important;
  margin:auto !important;
}

body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb-model{
  width:min(100%,140px) !important;
  max-width:100% !important;
  height:auto !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
    padding:18px 6px !important;
  }

  body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb{
    max-width:112px !important;
    min-height:118px !important;
  }

  body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb-model{
    width:min(100%,88px) !important;
  }
}


/* =========================================================
   v1.1.04 — maior espaçamento vertical entre túmulos
   ========================================================= */

/*
 * Mantém a distribuição Bootstrap atual e aumenta apenas a distância
 * entre uma fileira de túmulos e a fileira seguinte.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
  row-gap:clamp(34px,5vw,68px) !important;
}

/* Tablet */
@media(min-width:768px) and (max-width:991.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
    row-gap:clamp(38px,5vw,58px) !important;
  }
}

/* Mobile: mantém 3 por linha, mas com respiro vertical maior. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
    row-gap:32px !important;
  }
}

@media(max-width:390px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
    row-gap:28px !important;
  }
}


/* =========================================================
   v1.1.05 — 5 túmulos por linha no desktop
   ========================================================= */

/*
 * Bootstrap não possui col-lg equivalente a 20%.
 * Mantemos o comportamento Bootstrap e criamos apenas a largura
 * necessária para cinco colunas a partir do breakpoint lg.
 */
@media(min-width:992px){
  body.cemiterio-scroll-mode .tombs-30-block .col-lg-5-tombs{
    flex:0 0 auto !important;
    width:20% !important;
  }
}


/* =========================================================
   v1.1.06 — área de túmulos fluid + maior espaçamento lateral
   ========================================================= */

/*
 * A partir da área dos túmulos, o bloco usa toda a largura disponível
 * da página, como um container-fluid do Bootstrap.
 */
body.cemiterio-scroll-mode .scroll-row-quarter.scroll-tomb-block{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:clamp(18px,3vw,54px) !important;
  padding-right:clamp(18px,3vw,54px) !important;
  box-sizing:border-box !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
  width:100% !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/*
 * Aumenta especificamente o espaçamento horizontal entre as colunas,
 * sem remover o espaçamento vertical ampliado anteriormente.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
  --bs-gutter-x:clamp(2.5rem,5vw,6rem) !important;
}

/*
 * Desktop: continuam cinco por linha. Como o container agora é fluido,
 * cada coluna ocupa 20% da largura e recebe um gutter lateral maior.
 */
@media(min-width:992px){
  body.cemiterio-scroll-mode .tombs-30-block .col-lg-5-tombs{
    flex:0 0 auto !important;
    width:20% !important;
    padding-left:calc(var(--bs-gutter-x) * .5) !important;
    padding-right:calc(var(--bs-gutter-x) * .5) !important;
  }

  body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb{
    max-width:180px !important;
  }
}

/* Tablet mantém quatro por linha com respiro proporcional. */
@media(min-width:768px) and (max-width:991.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
    --bs-gutter-x:clamp(2rem,4vw,3.5rem) !important;
  }
}

/* Mobile continua com três por linha sem provocar corte horizontal. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-row-quarter.scroll-tomb-block{
    width:100% !important;
    padding-left:8px !important;
    padding-right:8px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
    width:100% !important;
    max-width:none !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
    --bs-gutter-x:clamp(.8rem,3vw,1.5rem) !important;
  }
}


/* =========================================================
   v1.1.07 — menor distância entre entrada, túmulos e POIs
   ========================================================= */

/* Remove respiros excessivos do contêiner geral da sequência. */
body.cemiterio-scroll-mode .scroll-cemetery-list{
  gap:0 !important;
  row-gap:0 !important;
}

/* Blocos de túmulos ficam mais próximos do elemento anterior/seguinte. */
body.cemiterio-scroll-mode .scroll-row-quarter.scroll-tomb-block{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:clamp(8px,1.2vw,16px) !important;
  padding-bottom:clamp(8px,1.2vw,16px) !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
  padding-top:clamp(12px,1.8vw,24px) !important;
  padding-bottom:clamp(12px,1.8vw,24px) !important;
}

/* Pontos de interesse deixam de criar uma grande faixa vazia ao redor. */
body.cemiterio-scroll-mode .scroll-row-poi{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:clamp(10px,1.5vw,20px) !important;
  padding-bottom:clamp(10px,1.5vw,20px) !important;
}

/* Primeiro bloco aproxima-se da entrada principal. */
body.cemiterio-scroll-mode .entrada-scroll + .scroll-cemetery-list,
body.cemiterio-scroll-mode .entrada-scroll + * .scroll-cemetery-list{
  margin-top:0 !important;
  padding-top:0 !important;
}

/* Mobile: ainda mais compacto, sem colar os elementos. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-row-quarter.scroll-tomb-block{
    padding-top:6px !important;
    padding-bottom:6px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
    padding-top:10px !important;
    padding-bottom:10px !important;
  }

  body.cemiterio-scroll-mode .scroll-row-poi{
    padding-top:8px !important;
    padding-bottom:8px !important;
  }
}


/* =========================================================
   v1.1.08 — blocos ainda mais próximos
   ========================================================= */

/* Aproxima fortemente entrada, blocos de túmulos e pontos de interesse. */
body.cemiterio-scroll-mode .scroll-cemetery-list{
  gap:0 !important;
  row-gap:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

body.cemiterio-scroll-mode .scroll-row-quarter.scroll-tomb-block{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
  padding-top:4px !important;
  padding-bottom:4px !important;
}

/* POI praticamente encosta na área útil dos blocos, mantendo pequeno respiro. */
body.cemiterio-scroll-mode .scroll-row-poi{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:2px !important;
  padding-bottom:2px !important;
}

/* Remove margens adicionais do conteúdo interno do POI. */
body.cemiterio-scroll-mode .scroll-row-poi > *{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* Primeiro bloco começa imediatamente após a entrada. */
body.cemiterio-scroll-mode .entrada-scroll{
  margin-bottom:0 !important;
}

body.cemiterio-scroll-mode .entrada-scroll + *,
body.cemiterio-scroll-mode .entrada-scroll + * > .scroll-cemetery-list{
  margin-top:0 !important;
  padding-top:0 !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
    padding-top:2px !important;
    padding-bottom:2px !important;
  }

  body.cemiterio-scroll-mode .scroll-row-poi{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }
}


/* =========================================================
   v1.1.09 — contador dinâmico na Árvore das Lembranças
   ========================================================= */
body.cemiterio-scroll-mode .scroll-poi-stage{
  position:relative !important;
}

body.cemiterio-scroll-mode .scroll-memory-tree-counter{
  position:absolute;
  z-index:8;
  transform:translate(-50%,-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  max-width:90%;
  color:#201d16;
  font-family:monospace;
  font-weight:900;
  line-height:.95;
  text-align:center;
  white-space:nowrap;
  pointer-events:none;
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}

body.cemiterio-scroll-mode .scroll-memory-tree-counter strong{
  font-size:1em;
  line-height:1;
}

body.cemiterio-scroll-mode .scroll-memory-tree-counter span{
  margin-top:.18em;
  font-size:.46em;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.02em;
}

/* Posição permanece percentual; tamanho reduz suavemente no mobile. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-memory-tree-counter{
    font-size:min(var(--memory-tree-counter-size,18px),5vw);
  }
}


/* =========================================================
   v1.1.10 — placa personalizada + cerca infinita no fim
   ========================================================= */

/* O final ocupa a largura disponível sem criar uma caixa visual ao redor da arte. */
body.cemiterio-scroll-mode .cemiterio-scroll-fim{
  position:relative !important;
  z-index:10 !important;
  width:100% !important;
  max-width:none !important;
  margin:24px auto calc(var(--eterno-pet-fence-height,86px) + 18px) !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible !important;
}

body.cemiterio-scroll-mode .cemiterio-scroll-fim-imagem{
  display:block;
  max-width:92vw;
  height:auto;
  max-height:none;
  margin:0 auto;
  object-fit:contain;
  image-rendering:auto;
}

/* Mantém a mensagem antiga apenas quando nenhuma imagem foi cadastrada. */
body.cemiterio-scroll-mode .cemiterio-scroll-fim-fallback{
  width:min(520px,90%);
  margin:0 auto;
  padding:22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  border:3px solid #171717;
  background:rgba(247,240,205,.95);
  text-align:center;
}

/*
 * A cerca final deixa de depender da largura do container do cemitério.
 * 100vw + translateX(-50%) faz a faixa alcançar as duas bordas do viewport.
 * O tile cadastrado no painel repete indefinidamente na horizontal.
 */
body.cemiterio-scroll-mode .cerca-scroll-final{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  bottom:8px !important;
  width:100vw !important;
  max-width:none !important;
  height:var(--eterno-pet-fence-height,86px) !important;
  transform:translateX(-50%) !important;
  z-index:9 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
  background-color:transparent !important;
  background-image:var(--eterno-pet-fence-image,none) !important;
  background-repeat:repeat-x !important;
  background-position:left bottom !important;
  background-size:auto var(--eterno-pet-fence-height,86px) !important;
  border:0 !important;
  box-shadow:none !important;
  pointer-events:none !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .cemiterio-scroll-fim{
    margin-top:14px !important;
  }

  body.cemiterio-scroll-mode .cemiterio-scroll-fim-imagem{
    max-width:96vw !important;
  }
}


/* =========================================================
   v1.1.11 — POIs responsivos + respiro inicial no mobile
   ========================================================= */

/*
 * Pontos de interesse não usam mais escala configurável.
 * A arte respeita a proporção original, nunca é cortada e se adapta à tela.
 */
body.cemiterio-scroll-mode .scroll-row-poi{
  width:100% !important;
  max-width:none !important;
  overflow:visible !important;
}

body.cemiterio-scroll-mode .scroll-poi-stage{
  width:min(100%,960px) !important;
  max-width:calc(100vw - 32px) !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  margin-left:auto !important;
  margin-right:auto !important;
  overflow:visible !important;
}

body.cemiterio-scroll-mode .scroll-poi-stage .scroll-poi-image{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 auto !important;
}

/* Tablet recebe um limite confortável sem depender do painel. */
@media(min-width:768px) and (max-width:1199.98px){
  body.cemiterio-scroll-mode .scroll-poi-stage{
    width:min(88vw,860px) !important;
    max-width:88vw !important;
  }
}

/*
 * Mobile: cria respiro apenas entre a entrada principal e o primeiro
 * bloco de túmulos. Os blocos seguintes continuam compactos.
 */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-tomb-block:first-child,
  body.cemiterio-scroll-mode .scroll-cemetery-list > .scroll-tomb-block:first-child{
    margin-top:48px !important;
  }

  body.cemiterio-scroll-mode .scroll-poi-stage{
    width:calc(100vw - 20px) !important;
    max-width:calc(100vw - 20px) !important;
  }

  body.cemiterio-scroll-mode .scroll-poi-stage .scroll-poi-image{
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
  }
}


/* =========================================================
   v1.1.12 — correção definitiva do corte dos POIs no mobile
   ========================================================= */

@media(max-width:767.98px){

  /*
   * A linha do POI usa exatamente a largura interna disponível.
   * Evitamos 100vw porque ele ignora padding/scrollbar do ancestral e
   * podia empurrar alguns pixels da imagem para fora no lado direito.
   */
  body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-poi,
  body.cemiterio-scroll-mode .scroll-row-poi,
  body.cemiterio-scroll-mode .scroll-poi{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:8px !important;
    padding-right:8px !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
    overflow-y:visible !important;
    scrollbar-gutter:auto !important;
  }

  /*
   * O palco não calcula mais largura com 100vw. Ele ocupa 100% do pai,
   * já descontando automaticamente os paddings e limites reais da tela.
   */
  body.cemiterio-scroll-mode .scroll-poi .scroll-poi-stage,
  body.cemiterio-scroll-mode .scroll-row-poi .scroll-poi-stage{
    position:relative !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 auto !important;
    padding:0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  /*
   * A imagem completa sempre cabe na largura calculada do palco.
   * Não existe crop, largura mínima ou deslocamento horizontal.
   */
  body.cemiterio-scroll-mode .scroll-poi .scroll-poi-image,
  body.cemiterio-scroll-mode .scroll-row-poi .scroll-poi-image{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    height:auto !important;
    max-height:none !important;
    margin:0 auto !important;
    padding:0 !important;
    transform:none !important;
    object-fit:contain !important;
    object-position:center center !important;
    box-sizing:border-box !important;
  }
}


/* =========================================================
   v1.1.15 — animais GIF somente nos corredores horizontais
   ========================================================= */

body.cemiterio-scroll-mode .scroll-tomb-horizontal-corridor{
  position:relative !important;
  flex:0 0 100% !important;
  width:100% !important;
  height:72px !important;
  min-height:72px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
  z-index:3 !important;
}

/* O GIF fica preso verticalmente ao centro da faixa do corredor. */
body.cemiterio-scroll-mode .scroll-corridor-animal{
  position:absolute !important;
  left:50%;
  top:50% !important;
  max-width:180px !important;
  height:auto !important;
  max-height:68px !important;
  transform:translate(-50%,-50%) translateX(var(--animal-drift,0px)) !important;
  object-fit:contain !important;
  pointer-events:none !important;
  user-select:none !important;
  z-index:4 !important;
}

/*
 * O corredor explícito substitui parte do antigo row-gap para não somar
 * dois grandes espaços. Continua havendo separação visual entre fileiras.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
  row-gap:18px !important;
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tomb-horizontal-corridor{
    height:54px !important;
    min-height:54px !important;
  }

  body.cemiterio-scroll-mode .scroll-corridor-animal{
    max-width:110px !important;
    max-height:50px !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid{
    row-gap:12px !important;
  }
}


/* v1.1.16 — recursos removidos */
body.cemiterio-scroll-mode .scroll-row-poi,
body.cemiterio-scroll-mode .scroll-poi,
body.cemiterio-scroll-mode .scroll-corridor-animal,
body.cemiterio-scroll-mode .scroll-tomb-horizontal-corridor{
  display:none !important;
}


/* =========================================================
   v1.1.17 — blocos de túmulos em largura fluida
   ========================================================= */

/*
 * O bloco passa a ocupar toda a largura disponível da viewport.
 * A margem lateral é apenas um respiro responsivo, equivalente ao
 * comportamento de um container-fluid.
 */
body.cemiterio-scroll-mode .scroll-row-quarter,
body.cemiterio-scroll-mode .scroll-quarter,
body.cemiterio-scroll-mode .scroll-tomb-block{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:clamp(10px, 1.6vw, 28px) !important;
  padding-right:clamp(10px, 1.6vw, 28px) !important;
  box-sizing:border-box !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

body.cemiterio-scroll-mode .scroll-tombs-grid{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/*
 * Desktop: cinco túmulos por fileira, distribuídos igualmente de ponta a
 * ponta. A coluna cresce/encolhe junto com a largura do monitor.
 */
@media(min-width:992px){
  body.cemiterio-scroll-mode .scroll-tombs-grid > .col-lg-5-tombs{
    flex:0 0 20% !important;
    width:20% !important;
    max-width:20% !important;
  }
}

/* Tablet: quatro por fileira, mantendo toda a largura útil ocupada. */
@media(min-width:768px) and (max-width:991.98px){
  body.cemiterio-scroll-mode .scroll-tombs-grid > .scroll-tomb-col{
    flex:0 0 25% !important;
    width:25% !important;
    max-width:25% !important;
  }
}

/* Celular: três por fileira e gutter lateral menor. */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-row-quarter,
  body.cemiterio-scroll-mode .scroll-quarter,
  body.cemiterio-scroll-mode .scroll-tomb-block{
    padding-left:8px !important;
    padding-right:8px !important;
  }

  body.cemiterio-scroll-mode .scroll-tombs-grid > .scroll-tomb-col{
    flex:0 0 33.333333% !important;
    width:33.333333% !important;
    max-width:33.333333% !important;
  }
}


/* =========================================================
   v1.1.18 — quarteirões contínuos, sem espaçamento vertical
   ========================================================= */

/* Remove qualquer margem/espaço externo entre um quarteirão e o seguinte. */
body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-row-quarter,
body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-quarter,
body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-tomb-block{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* Quarteirões consecutivos encostam um no outro verticalmente. */
body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-tomb-block + .scroll-tomb-block,
body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-row-quarter + .scroll-row-quarter{
  margin-top:0 !important;
  padding-top:0 !important;
}


/* =========================================================
   v1.1.19 — distribuição realmente dinâmica dos túmulos
   ========================================================= */

/*
 * A área útil ocupa praticamente 100% da viewport. O único respiro lateral
 * é de 8px para impedir que as thumbnails encostem fisicamente na borda.
 */
body.cemiterio-scroll-mode .cemiterio-scroll-lista,
body.cemiterio-scroll-mode .scroll-cemetery-list{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  gap:0 !important;
  row-gap:0 !important;
}

body.cemiterio-scroll-mode .cemiterio-scroll-lista > .scroll-row-quarter.scroll-tomb-block,
body.cemiterio-scroll-mode .scroll-cemetery-list > .scroll-row-quarter.scroll-tomb-block{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 8px !important;
  box-sizing:border-box !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
}

/*
 * O JavaScript calcula quantas thumbnails cabem na largura atual.
 * Não existe mais limite fixo de 5/4/3 túmulos por linha.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
  display:grid !important;
  grid-template-columns:repeat(var(--tombs-per-row, 5), minmax(0,1fr)) !important;
  grid-auto-rows:auto !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;
  transform:none !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tomb-col,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb-col{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Remove altura mínima que criava faixas vazias entre o fim de um bloco e o próximo. */
body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb{
  min-height:0 !important;
  margin:0 !important;
}

/* Regras Bootstrap antigas de 20%, 25% e 33% deixam de controlar as colunas. */
@media(min-width:992px){
  body.cemiterio-scroll-mode .scroll-tombs-grid > .col-lg-5-tombs,
  body.cemiterio-scroll-mode .tombs-30-block .col-lg-5-tombs{
    flex:none !important;
    width:100% !important;
    max-width:none !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
}

@media(min-width:768px) and (max-width:991.98px){
  body.cemiterio-scroll-mode .scroll-tombs-grid > .scroll-tomb-col{
    flex:none !important;
    width:100% !important;
    max-width:none !important;
  }
}

@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tombs-grid > .scroll-tomb-col{
    flex:none !important;
    width:100% !important;
    max-width:none !important;
  }
}


/* =========================================================
   v1.1.20 — respiro maior entre os túmulos
   ========================================================= */

/*
 * Mantém o container totalmente fluido, porém cria um espaço visual maior
 * entre cada thumbnail. O espaçamento se adapta ao tamanho da viewport.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
  column-gap:clamp(10px, 1.25vw, 24px) !important;
  row-gap:clamp(14px, 1.5vw, 28px) !important;
}

/* O grid continua ocupando 100% da largura útil mesmo com os gaps. */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
  grid-template-columns:repeat(var(--tombs-per-row, 5), minmax(0, 1fr)) !important;
}


/* =========================================================
   v1.1.21 — espaçamento ampliado entre túmulos
   ========================================================= */

/* Mantém a grade fluida, aumentando somente o respiro entre cada túmulo. */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
  column-gap:clamp(20px, 2.25vw, 44px) !important;
  row-gap:clamp(24px, 2.5vw, 48px) !important;
}


/* =========================================================
   v1.1.22 — espaçamento ainda maior entre túmulos
   ========================================================= */

/* Aumenta o respiro sem perder o comportamento fluid e dinâmico. */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
  column-gap:clamp(32px, 3.5vw, 68px) !important;
  row-gap:clamp(36px, 3.75vw, 72px) !important;
}


/* =========================================================
   v1.1.23 — grade inteligente conforme tamanho real do túmulo
   ========================================================= */

/*
 * O espaço horizontal passa a fazer parte do cálculo de capacidade da grade.
 * Assim um modelo maior configurado no painel reduz automaticamente a
 * quantidade de túmulos por linha, sem comprimir ou sobrepor as imagens.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
  column-gap:var(--tomb-grid-gap, 56px) !important;
  row-gap:clamp(52px, 5vw, 92px) !important;
  align-items:start !important;
}

/* A célula não força o túmulo configurado a encolher para caber. */
body.cemiterio-scroll-mode .scroll-tomb-col{
  overflow:visible !important;
}

body.cemiterio-scroll-mode .scroll-tomb{
  max-width:100% !important;
  overflow:visible !important;
}


/* =========================================================
   v1.1.24 — pontos de informação do cemitério
   ========================================================= */
body.cemiterio-scroll-mode .cemiterio-info-points{
  width:100%;
  padding:clamp(28px,4vw,64px) 10px;
  box-sizing:border-box;
}

body.cemiterio-scroll-mode .cemiterio-info-points-grid{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:center;
  gap:clamp(32px,5vw,88px);
}

body.cemiterio-scroll-mode .cemiterio-info-point{
  width:min(var(--info-point-width,220px),calc(100vw - 24px));
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  transition:transform .18s ease,filter .18s ease;
}

body.cemiterio-scroll-mode .cemiterio-info-point:not(:disabled):hover{
  transform:translateY(-5px) scale(1.02);
  filter:brightness(1.05);
}

body.cemiterio-scroll-mode .cemiterio-info-point img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

/* v1.1.158 — holofotes das quatro placas abaixo da entrada.
   O ponto de luz fica no rodapé de cada imagem e abre para cima. */
body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point{
  position:relative;
  isolation:isolate;
}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point::before,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:92%;
  height:84%;
  transform:translateX(-50%);
  clip-path:polygon(43% 100%,57% 100%,100% 0,0 0);
  background:linear-gradient(to top,
    rgba(255,234,166,.88) 0%,
    rgba(255,236,177,.58) 40%,
    rgba(255,246,215,.13) 75%,
    transparent 100%);
  filter:blur(3px);
  mix-blend-mode:screen;
  pointer-events:none;
  z-index:1;
  animation:eterno-pet-facho-placa 3.4s ease-in-out infinite alternate;
}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point img,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point img{
  position:relative;
  z-index:50 !important;
  filter:brightness(1.27) saturate(1.14) drop-shadow(0 0 11px rgba(255,225,144,.64));
}
/* Os campos de inscrição ficam atrás da vegetação no estado abandonado. */
.scroll-tomb-model:has(.scroll-tomb-neglected-layer) .scroll-tomb-field.scroll-name,
.scroll-tomb-model:has(.scroll-tomb-neglected-layer) .scroll-tomb-field.scroll-dates{z-index:1 !important;}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point:nth-child(2)::before,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point:nth-child(2)::before{animation-delay:.45s}
body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point:nth-child(3)::before,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point:nth-child(3)::before{animation-delay:.9s}
body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point:nth-child(4)::before,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point:nth-child(4)::before{animation-delay:1.35s}

@keyframes eterno-pet-facho-placa{
  from{opacity:.84;filter:blur(3px) brightness(1)}
  to{opacity:1;filter:blur(4px) brightness(1.28)}
}

@media(prefers-reduced-motion:reduce){
  body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point::before,
  body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point::before{animation:none}
}

/* Remove somente os fachos projetados de baixo para cima das placas. */
body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point::before,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point::before{
  content:none;
  display:none;
  animation:none;
}

/* À noite, os memoriais permanecem legíveis sem criar fachos no cenário. */
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-model,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-model{
  filter:brightness(1.25) saturate(1.08) drop-shadow(0 0 8px rgba(255,222,148,.35));
}
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-field,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-field{
  text-shadow:0 1px 2px rgba(255,255,255,.72),0 0 5px rgba(255,225,158,.42);
}

/* O filtro noturno original era aplicado ao contêiner inteiro da lista e
 * apagava a luz dos túmulos junto com o gramado. Mantém o ambiente noturno,
 * mas permite que os memoriais apareçam como pontos visíveis do mapa. */
body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-lista,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-lista{
  filter:brightness(.58) saturate(.72) hue-rotate(7deg) !important;
}
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb{
  /* Compensa somente o filtro do contêiner noturno: sem sombra, halo ou luz. */
  filter:brightness(1.724) saturate(1.389) hue-rotate(-7deg);
}
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-model,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-model{
  filter:none;
}
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-field,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-field{
  text-shadow:none;
}

body.cemiterio-scroll-mode .cemiterio-info-point.is-reserved{
  cursor:default;
  opacity:.92;
}

.cemiterio-info-modal{
  border:0;
  border-radius:18px;
  overflow:hidden;
}

.cemiterio-info-kicker{
  display:block;
  opacity:.6;
  font-size:.68rem;
  letter-spacing:.12em;
  margin-bottom:4px;
}

.cemiterio-info-intro{
  margin-bottom:18px;
  opacity:.75;
}

.cemiterio-recentes-lista{
  display:grid;
  gap:10px;
}

.cemiterio-recente-item{
  width:100%;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border:1px solid rgba(0,0,0,.09);
  border-radius:14px;
  background:rgba(255,255,255,.55);
  text-align:left;
}

.cemiterio-recente-avatar{
  font-size:1.8rem;
  text-align:center;
}

.cemiterio-recente-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.cemiterio-recente-copy small,
.cemiterio-recente-lote{
  opacity:.65;
}

.cemiterio-estatisticas-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:14px;
}

.cemiterio-estatistica-card{
  min-height:118px;
  padding:18px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  background:rgba(255,255,255,.55);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}

.cemiterio-estatistica-card small{
  opacity:.65;
}

.cemiterio-estatistica-card strong{
  font-size:1.15rem;
}

@media(max-width:575.98px){
  body.cemiterio-scroll-mode .cemiterio-info-points-grid{
    gap:28px;
  }
  .cemiterio-recente-item{
    grid-template-columns:42px minmax(0,1fr);
  }
  .cemiterio-recente-lote{
    grid-column:2;
  }
}


/* =========================================================
   v1.1.25 — correção dos modais dos pontos de informação
   ========================================================= */

/* As imagens informativas permanecem totalmente estáticas no hover. */
body.cemiterio-scroll-mode .cemiterio-info-point,
body.cemiterio-scroll-mode .cemiterio-info-point:not(:disabled):hover,
body.cemiterio-scroll-mode .cemiterio-info-point:not(:disabled):focus,
body.cemiterio-scroll-mode .cemiterio-info-point:not(:disabled):active{
  transform:none !important;
  filter:none !important;
  transition:none !important;
}

/*
 * O backdrop fica abaixo do modal. Isso impede que a camada transparente
 * intercepte cliques nos botões e no conteúdo do modal.
 */
.modal-backdrop{
  z-index:1050 !important;
}

#modalUltimosHomenageados,
#modalInformacoesCemiterio{
  z-index:1065 !important;
  pointer-events:none;
}

#modalUltimosHomenageados.show,
#modalInformacoesCemiterio.show{
  pointer-events:auto;
}

#modalUltimosHomenageados .modal-dialog,
#modalInformacoesCemiterio .modal-dialog,
#modalUltimosHomenageados .modal-content,
#modalInformacoesCemiterio .modal-content{
  position:relative;
  z-index:1;
  pointer-events:auto;
}


/* =========================================================
   v1.1.26 — modais informativos fora do stacking context do cemitério
   ========================================================= */

#modalUltimosHomenageados,
#modalInformacoesCemiterio{
  z-index:1065 !important;
  pointer-events:auto !important;
}

#modalUltimosHomenageados .modal-dialog,
#modalInformacoesCemiterio .modal-dialog,
#modalUltimosHomenageados .modal-content,
#modalInformacoesCemiterio .modal-content{
  z-index:auto !important;
  pointer-events:auto !important;
}

body > .modal-backdrop{
  z-index:1050 !important;
}

body > #modalUltimosHomenageados.show,
body > #modalInformacoesCemiterio.show{
  z-index:1065 !important;
}


/* =========================================================
   v1.1.27 — backdrop integrado ao próprio modal
   ========================================================= */

/*
 * Estes dois modais não usam mais .modal-backdrop do Bootstrap.
 * O fundo translúcido é desenhado pelo próprio elemento .modal, eliminando
 * qualquer possibilidade de uma camada separada interceptar o conteúdo.
 */
body > #modalUltimosHomenageados,
body > #modalInformacoesCemiterio{
  z-index:2147483000 !important;
  background:rgba(0,0,0,.58) !important;
  pointer-events:auto !important;
}

body > #modalUltimosHomenageados .modal-dialog,
body > #modalInformacoesCemiterio .modal-dialog{
  z-index:1 !important;
  pointer-events:auto !important;
}

body > #modalUltimosHomenageados .modal-content,
body > #modalInformacoesCemiterio .modal-content{
  position:relative !important;
  z-index:2 !important;
  pointer-events:auto !important;
}

/* Backdrops residuais desses modais não devem bloquear a interface. */
body.modal-open > .modal-backdrop{
  pointer-events:none !important;
}


/* =========================================================
   v1.1.30 — acionamento direto da Capela pelos pontos informativos
   ========================================================= */
body.cemiterio-scroll-mode #capelaOverlay.ativo{
  z-index:2147483600 !important;
  pointer-events:auto !important;
}


/* =========================================================
   v1.1.39 — espaçamento uniforme entre todos os túmulos
   ========================================================= */
/*
 * Todos os grids usam exatamente o mesmo intervalo horizontal e vertical.
 * As antigas divisões de lote/quarteirão deixam de acrescentar espaços
 * diferentes entre o último túmulo de um bloco e o primeiro do seguinte.
 */
body.cemiterio-scroll-mode .scroll-tombs-grid{
  column-gap:var(--tomb-grid-gap,56px) !important;
  row-gap:var(--tomb-grid-row-gap,var(--tomb-grid-gap,56px)) !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block,
body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/*
 * A distância entre dois blocos consecutivos passa a ser exatamente
 * a mesma distância usada entre duas linhas de túmulos.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage + .scroll-quarter-stage{
  margin-top:var(--tomb-grid-row-gap,var(--tomb-grid-gap,56px)) !important;
}

/* Cada célula mantém a mesma área e centralização, evitando encostar vizinhos. */
body.cemiterio-scroll-mode .scroll-tomb-col{
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  justify-content:center !important;
  align-items:flex-start !important;
}


/* =========================================================
   v1.1.40 — distância visual real entre as linhas de túmulos
   ========================================================= */
/*
 * O espaçamento vertical precisa ser maior que o horizontal porque as
 * lápides possuem alturas diferentes. Assim a imagem de uma linha não
 * invade visualmente a linha seguinte.
 */
body.cemiterio-scroll-mode .scroll-tombs-grid{
  row-gap:var(--tomb-grid-row-gap,92px) !important;
}

/*
 * Reserva uma faixa própria para cada túmulo. Isso impede que modelos
 * maiores eliminem visualmente o espaço existente entre duas linhas.
 */
body.cemiterio-scroll-mode .scroll-tomb-col{
  box-sizing:border-box !important;
  min-height:clamp(190px,22vw,280px) !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
}

/*
 * O espaço entre antigos blocos segue exatamente o mesmo intervalo
 * vertical usado entre as linhas internas.
 */
body.cemiterio-scroll-mode .scroll-quarter-stage + .scroll-quarter-stage{
  margin-top:var(--tomb-grid-row-gap,92px) !important;
}

@media (max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tomb-col{
    min-height:clamp(165px,42vw,230px) !important;
  }
}

/* =========================================================
   v1.1.170 — modal da Capela/recepção da entrada principal
   ========================================================= */
.entrada-interior-fundo-personalizado{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.58) saturate(.82);
}

.entrada-interior-overlay .entrada-interior-cenario::before{
  z-index:1 !important;
  background:radial-gradient(ellipse at 50% 0,rgba(255,223,158,.24),transparent 42%),linear-gradient(180deg,rgba(10,8,16,.22),rgba(10,8,16,.74)) !important;
  filter:none !important;
  transform:none !important;
}

.entrada-interior-overlay .entrada-interior-cenario::after{
  z-index:2 !important;
  background:radial-gradient(ellipse at center,transparent 34%,rgba(5,4,10,.52) 100%) !important;
}

.entrada-interior-overlay .entrada-interior-painel{
  z-index:10 !important;
  width:min(1080px,90vw) !important;
  max-height:min(82vh,760px) !important;
  border:1px solid rgba(255,237,196,.38) !important;
  border-radius:22px !important;
  background:rgba(250,247,238,.96) !important;
  box-shadow:0 28px 90px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.9) !important;
}

.entrada-interior-overlay .entrada-interior-lateral{
  border-right:1px solid rgba(87,65,45,.18) !important;
  background:linear-gradient(165deg,#34243b,#191622) !important;
  color:#fff !important;
}

.entrada-interior-overlay .entrada-interior-lateral h2{color:#ffe2a1 !important}
.entrada-interior-overlay .entrada-interior-lateral p{color:rgba(255,248,232,.78) !important}
.entrada-interior-overlay .mariah-recepcao{border:1px solid rgba(255,235,187,.48) !important;border-radius:16px;box-shadow:0 16px 35px rgba(0,0,0,.28) !important}
.entrada-interior-overlay .entrada-interior-acoes-mariah button{border:1px solid rgba(255,235,187,.36) !important;border-radius:10px;box-shadow:none !important}

.entrada-interior-overlay .entrada-interior-topo{
  margin:-28px -28px 20px !important;
  padding:22px 28px !important;
  border-bottom:1px solid rgba(82,61,41,.15);
  background:linear-gradient(100deg,#fffdf6,#f3ebdc) !important;
}

.entrada-interior-overlay .entrada-interior-topo h3{color:#272035 !important;font-size:clamp(20px,2.1vw,30px) !important}
.entrada-interior-overlay .btn-fechar-entrada-interior{border:0 !important;border-radius:50% !important;background:#34233e !important;color:#fff !important;box-shadow:0 5px 12px rgba(0,0,0,.2) !important}

.entrada-interior-overlay .busca-pet-card{
  border:1px solid rgba(82,61,41,.14) !important;
  border-radius:16px !important;
  background:#fffdf8 !important;
  box-shadow:0 10px 28px rgba(56,38,20,.08) !important;
}

@media (max-width:820px){
  .entrada-interior-overlay .entrada-interior-painel{width:calc(100vw - 24px) !important;max-height:calc(100dvh - 24px) !important;border-radius:18px !important}
  .entrada-interior-overlay .entrada-interior-topo{margin:0 -14px 14px !important;padding:14px !important}
}


/* =========================================================
   v1.1.41 — experiência animada "Números interessantes"
   ========================================================= */
body.numeros-abertos{
  overflow:hidden !important;
}

.numeros-overlay{
  position:fixed;
  inset:0;
  z-index:2147483500;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(18px,4vw,54px);
  background:rgba(8,13,12,.78);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .48s ease,visibility .48s ease;
  overflow:auto;
}

.numeros-overlay.ativo{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.numeros-cena{
  position:relative;
  width:min(980px,94vw);
  min-height:min(680px,88vh);
  display:flex;
  align-items:center;
  justify-content:center;
  perspective:1000px;
}

.numeros-painel{
  position:relative;
  z-index:2;
  width:100%;
  padding:clamp(24px,4vw,48px);
  border:2px solid rgba(255,255,255,.16);
  border-radius:26px;
  background:linear-gradient(180deg,rgba(31,48,40,.96),rgba(14,25,22,.97));
  box-shadow:0 28px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.10);
  transform:translateY(42px) scale(.88);
  opacity:0;
}

.numeros-overlay.ativo .numeros-painel{
  animation:numeros-painel-entrar .78s cubic-bezier(.2,.8,.2,1) forwards;
}

.numeros-cabecalho{
  text-align:center;
  margin-bottom:clamp(20px,3vw,34px);
}

.numeros-cabecalho small{
  display:block;
  margin-bottom:7px;
  opacity:.68;
  letter-spacing:.18em;
  font-size:11px;
}

.numeros-cabecalho h2{
  margin:0;
  font-size:clamp(25px,4vw,46px);
  line-height:1.05;
}

.numeros-cabecalho p{
  max-width:590px;
  margin:10px auto 0;
  opacity:.72;
  font-size:clamp(12px,1.5vw,15px);
}

.numeros-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,2vw,20px);
}

.numero-animado-card{
  min-height:132px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:rgba(255,255,255,.07);
  box-shadow:0 10px 25px rgba(0,0,0,.15);
  opacity:0;
  transform:translateY(28px) scale(.92);
}

.numeros-overlay.ativo .numero-animado-card{
  animation:numero-card-entrar .58s cubic-bezier(.2,.8,.2,1) var(--numero-delay) forwards;
}

.numero-animado-icone{
  flex:0 0 48px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:rgba(255,255,255,.09);
  font-size:25px;
}

.numero-animado-texto{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px;
}

.numero-animado-texto small{
  opacity:.68;
  font-size:11px;
  line-height:1.25;
}

.numero-animado-texto strong{
  font-size:clamp(15px,2vw,21px);
  line-height:1.15;
}

.numeros-sair{
  display:block;
  margin:clamp(22px,3vw,34px) auto 0;
  padding:11px 18px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:12px;
  background:rgba(255,255,255,.09);
  color:inherit;
  cursor:pointer;
  transition:transform .18s ease,background .18s ease;
}

.numeros-sair:hover,
.numeros-sair:focus-visible{
  transform:translateY(-2px);
  background:rgba(255,255,255,.15);
}

.numeros-brilho{
  position:absolute;
  width:280px;
  height:280px;
  border-radius:50%;
  background:rgba(255,255,255,.055);
  filter:blur(8px);
  animation:numeros-brilho-flutuar 5s ease-in-out infinite alternate;
}

.numeros-brilho-um{top:-40px;left:-70px}
.numeros-brilho-dois{right:-80px;bottom:-30px;animation-delay:-2.5s}

.numeros-overlay.saindo .numero-animado-card{
  animation:numero-card-sair .3s ease forwards !important;
}

.numeros-overlay.saindo .numeros-painel{
  animation:numeros-painel-sair .62s cubic-bezier(.4,0,.7,.2) forwards !important;
}

@keyframes numeros-painel-entrar{
  from{opacity:0;transform:translateY(42px) scale(.88)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@keyframes numero-card-entrar{
  from{opacity:0;transform:translateY(28px) scale(.92)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@keyframes numero-card-sair{
  to{opacity:0;transform:translateY(-12px) scale(.96)}
}

@keyframes numeros-painel-sair{
  from{opacity:1;transform:translateY(0) scale(1)}
  to{opacity:0;transform:translateY(32px) scale(.94)}
}

@keyframes numeros-brilho-flutuar{
  from{transform:translate3d(0,0,0) scale(.92)}
  to{transform:translate3d(18px,-14px,0) scale(1.08)}
}

@media (max-width:767.98px){
  .numeros-overlay{align-items:flex-start}
  .numeros-cena{min-height:auto}
  .numeros-grid{grid-template-columns:1fr 1fr}
  .numero-animado-card{min-height:108px;padding:12px;gap:10px}
  .numero-animado-icone{width:40px;height:40px;flex-basis:40px;font-size:21px}
}

@media (max-width:479.98px){
  .numeros-grid{grid-template-columns:1fr}
}


/* =========================================================
   v1.1.42 — grid mais equilibrado no desktop e mobile
   ========================================================= */
body.cemiterio-scroll-mode .scroll-tombs-grid{
  column-gap:var(--tomb-grid-gap,32px) !important;
  row-gap:var(--tomb-grid-row-gap,64px) !important;
}

body.cemiterio-scroll-mode .scroll-tomb-col{
  min-height:clamp(160px,16vw,220px) !important;
}

body.cemiterio-scroll-mode .scroll-quarter-stage + .scroll-quarter-stage{
  margin-top:var(--tomb-grid-row-gap,64px) !important;
}

/*
 * Em telas menores sempre são exibidos três túmulos por linha.
 * A célula limita a largura visual da lápide para evitar sobreposição.
 */
@media (max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tombs-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:var(--tomb-grid-gap,12px) !important;
    row-gap:var(--tomb-grid-row-gap,40px) !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-col{
    min-height:clamp(130px,38vw,178px) !important;
    width:100% !important;
    overflow:visible !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb{
    width:100% !important;
    max-width:100% !important;
    display:flex !important;
    justify-content:center !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb img,
  body.cemiterio-scroll-mode .scroll-tomb .lapide,
  body.cemiterio-scroll-mode .scroll-tomb .lapide-mini{
    max-width:calc((100vw - 52px) / 3) !important;
    height:auto !important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage + .scroll-quarter-stage{
    margin-top:var(--tomb-grid-row-gap,40px) !important;
  }
}


/* =========================================================
   v1.1.43 — Números interessantes em tela cheia personalizável
   ========================================================= */
.numeros-overlay{
  padding:0 !important;
  width:100vw !important;
  height:100vh !important;
  background:#101c18 !important;
  overflow:hidden !important;
}

.numeros-overlay.tem-fundo-personalizado{
  background-image:
    linear-gradient(rgba(5,10,8,.34),rgba(5,10,8,.48)),
    var(--numeros-background) !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

.numeros-cena{
  width:100vw !important;
  height:100vh !important;
  min-height:100vh !important;
  padding:clamp(18px,4vw,56px) !important;
  box-sizing:border-box !important;
}

.numeros-painel{
  width:min(1120px,92vw) !important;
  max-height:calc(100vh - 40px) !important;
  overflow:auto !important;
  background:rgba(14,25,22,.82) !important;
  backdrop-filter:blur(7px) !important;
  -webkit-backdrop-filter:blur(7px) !important;
}

.numero-animado-icone img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  image-rendering:auto;
}

@supports (height:100dvh){
  .numeros-overlay,
  .numeros-cena{
    height:100dvh !important;
    min-height:100dvh !important;
  }

  .numeros-painel{
    max-height:calc(100dvh - 40px) !important;
  }
}

@media (max-width:767.98px){
  .numeros-overlay{
    overflow:auto !important;
  }

  .numeros-cena{
    height:auto !important;
    min-height:100vh !important;
    align-items:center !important;
  }

  .numeros-painel{
    width:min(94vw,620px) !important;
    max-height:none !important;
  }
}


/* =========================================================
   v1.1.44 — Números interessantes: UI/UX de alto contraste
   ========================================================= */
.numeros-overlay{
  color:#17211d !important;
  background:#dfe8e3 !important;
}

.numeros-overlay.tem-fundo-personalizado{
  background-image:
    linear-gradient(rgba(7,15,12,.22),rgba(7,15,12,.34)),
    var(--numeros-background) !important;
}

.numeros-cena{
  padding:0 !important;
  align-items:stretch !important;
}

.numeros-painel{
  position:relative !important;
  width:100vw !important;
  max-width:none !important;
  height:100vh !important;
  max-height:none !important;
  margin:0 !important;
  padding:clamp(72px,8vh,104px) clamp(20px,7vw,110px) clamp(28px,6vh,64px) !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:auto !important;
  color:#17211d !important;
  background:rgba(247,249,248,.93) !important;
  box-shadow:none !important;
  backdrop-filter:blur(5px) !important;
  -webkit-backdrop-filter:blur(5px) !important;
}

.numeros-overlay.tem-fundo-personalizado .numeros-painel{
  background:linear-gradient(90deg,rgba(248,250,249,.97) 0%,rgba(248,250,249,.94) 52%,rgba(248,250,249,.86) 100%) !important;
}

.numeros-cabecalho{
  width:min(860px,100%);
  margin:0 auto clamp(24px,4vh,42px) !important;
  color:#17211d !important;
}

.numeros-cabecalho small{
  color:#557065 !important;
  opacity:1 !important;
  font-weight:700 !important;
}

.numeros-cabecalho h2{
  color:#10251d !important;
  font-weight:800 !important;
  text-wrap:balance;
}

.numeros-cabecalho p{
  color:#53635d !important;
  opacity:1 !important;
  line-height:1.55 !important;
}

.numeros-grid{
  width:min(1120px,100%);
  margin:0 auto;
  gap:clamp(12px,1.7vw,22px) !important;
}

.numero-animado-card{
  min-height:138px !important;
  color:#17211d !important;
  border:1px solid rgba(22,57,44,.12) !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:0 10px 28px rgba(20,45,36,.09) !important;
}

.numero-animado-icone{
  background:#eef4f1 !important;
  border:1px solid rgba(22,57,44,.08);
  color:#214b3b !important;
}

.numero-animado-texto small{
  color:#63736d !important;
  opacity:1 !important;
  font-weight:600 !important;
}

.numero-animado-texto strong{
  color:#12261f !important;
  font-weight:800 !important;
  overflow-wrap:anywhere;
}

.numeros-fechar{
  position:fixed !important;
  top:max(18px,env(safe-area-inset-top)) !important;
  right:max(18px,env(safe-area-inset-right)) !important;
  z-index:10 !important;
  width:46px !important;
  height:46px !important;
  display:grid !important;
  place-items:center !important;
  padding:0 !important;
  border:1px solid rgba(18,38,31,.14) !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.94) !important;
  color:#17211d !important;
  box-shadow:0 8px 24px rgba(16,37,29,.16) !important;
  font:700 31px/1 Arial,sans-serif !important;
  cursor:pointer !important;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease !important;
}

.numeros-fechar:hover,
.numeros-fechar:focus-visible{
  transform:scale(1.06) !important;
  background:#fff !important;
  box-shadow:0 10px 28px rgba(16,37,29,.22) !important;
  outline:3px solid rgba(39,105,79,.20) !important;
  outline-offset:2px !important;
}

.numero-animado-aviso{
  grid-column:1/-1 !important;
  max-width:720px;
  width:100%;
  margin:0 auto;
}

.numero-animado-aviso .numero-animado-texto strong{
  font-size:clamp(14px,1.7vw,18px) !important;
  font-weight:600 !important;
  line-height:1.55 !important;
}

@supports (height:100dvh){
  .numeros-painel{
    height:100dvh !important;
  }
}

@media (max-width:767.98px){
  .numeros-cena{
    min-height:100dvh !important;
  }

  .numeros-painel{
    width:100vw !important;
    min-height:100dvh !important;
    padding:76px 16px 28px !important;
    border-radius:0 !important;
  }

  .numeros-cabecalho{
    margin-bottom:22px !important;
  }

  .numeros-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .numero-animado-card{
    min-height:112px !important;
    padding:12px !important;
    border-radius:14px !important;
  }

  .numero-animado-texto strong{
    font-size:clamp(14px,4vw,18px) !important;
  }

  .numeros-fechar{
    width:42px !important;
    height:42px !important;
    top:max(12px,env(safe-area-inset-top)) !important;
    right:max(12px,env(safe-area-inset-right)) !important;
  }
}

@media (max-width:430px){
  .numeros-grid{
    grid-template-columns:1fr !important;
  }

  .numero-animado-card{
    min-height:92px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .numeros-overlay *,
  .numeros-overlay *::before,
  .numeros-overlay *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* Capela das Lembranças: experiência original dos últimos homenageados. */
.capela-overlay{isolation:auto!important;background:#090a0d!important}
.capela-interior:before,.capela-overlay .capela-interior:after{display:none!important}
.capela-fundo-personalizado{filter:none!important;transform:none!important}
.capela-vinheta{z-index:2!important;background:linear-gradient(180deg,rgba(7,5,4,.12),transparent 26%,transparent 70%,rgba(5,3,2,.58)),radial-gradient(circle at center,transparent 42%,rgba(0,0,0,.46) 100%)!important}
.capela-raio-luz{z-index:3!important;width:36%!important;height:66%!important;opacity:.75!important;filter:none!important;background:linear-gradient(180deg,rgba(255,238,177,.24),rgba(255,238,177,.02))!important}
.capela-overlay .capela-cabecalho{position:absolute!important;left:22px!important;top:20px!important;inset:auto!important;z-index:20!important;width:auto!important;max-width:540px!important;margin:0!important;padding:14px 16px!important;border:4px solid #0f0f0f!important;border-radius:0!important;background:rgba(21,17,38,.92)!important;color:#fff!important;box-shadow:6px 6px 0 rgba(0,0,0,.18)!important;backdrop-filter:none!important}
.capela-overlay .capela-cabecalho strong{display:block!important;margin:0!important;color:#f8d77d!important;font-size:18px!important;text-transform:uppercase!important;letter-spacing:.02em!important;text-shadow:none!important}
.capela-overlay .capela-cabecalho>span:last-child{display:block!important;max-width:none!important;margin-top:5px!important;color:#dfd8ea!important;font-family:Arial,sans-serif!important;font-size:12px!important;line-height:1.45!important}
.capela-overlay .capela-sair{position:absolute!important;right:22px!important;top:20px!important;z-index:25!important;display:block!important;min-width:124px!important;height:52px!important;border:4px solid #111!important;border-radius:0!important;background:#f1d16f!important;color:#111!important;font-size:11px!important;font-weight:900!important;text-transform:uppercase!important;box-shadow:5px 5px 0 rgba(0,0,0,.18)!important;backdrop-filter:none!important}
.capela-overlay .capela-galeria{position:absolute!important;left:0!important;right:0!important;bottom:5.5%!important;inset:auto 0 5.5%!important;z-index:12!important;width:auto!important;max-width:none!important;margin:0!important;padding:18px 0 26px!important;border-top:4px solid rgba(30,20,14,.88)!important;border-right:0!important;border-bottom:4px solid rgba(30,20,14,.88)!important;border-left:0!important;border-radius:0!important;background:rgba(22,13,10,.74)!important;box-shadow:none!important;backdrop-filter:blur(2px)!important}
.capela-overlay .capela-galeria-titulo{justify-content:center!important;gap:0!important;width:min(1100px,92vw)!important;margin:0 auto 13px!important;padding:0!important;color:#f8e7b0!important;font-size:13px!important;font-weight:900!important;text-align:left!important;text-transform:uppercase!important;text-shadow:3px 3px 0 rgba(0,0,0,.32)!important}
.capela-overlay .capela-faixa-viewport{border-radius:0!important}
.capela-overlay .capela-historia{position:absolute!important;z-index:30!important;top:50%!important;left:50%!important;width:min(560px,92vw)!important;border:5px solid #2a1b15!important;border-radius:0!important;background:#f1dfbd!important;box-shadow:10px 10px 0 rgba(0,0,0,.24)!important}
.capela-overlay .capela-modal-moldura{display:contents!important}
@media (max-width:767.98px){.capela-overlay .capela-cabecalho{left:12px!important;top:12px!important;width:calc(100% - 132px)!important;padding:10px 12px!important}.capela-overlay .capela-cabecalho strong{font-size:13px!important}.capela-overlay .capela-cabecalho>span:last-child{font-size:9px!important}.capela-overlay .capela-sair{right:12px!important;top:12px!important;min-width:106px!important;height:44px!important;font-size:9px!important}.capela-overlay .capela-galeria{bottom:3%!important;inset:auto 0 3%!important}.capela-overlay .capela-historia{width:min(92vw,560px)!important}}

/* =========================================================
   v1.1.169 — modal imersivo da Capela na página inicial
   Este arquivo é carregado por último no fluxo de rolagem.
   ========================================================= */
.capela-overlay .capela-modal-moldura{
  position:absolute !important;
  inset:clamp(22px,7vh,76px) clamp(16px,8vw,150px) !important;
  z-index:18 !important;
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
  padding:clamp(18px,3vw,34px) !important;
  border:1px solid rgba(255,237,191,.3) !important;
  border-radius:24px !important;
  background:linear-gradient(135deg,rgba(24,16,35,.84),rgba(25,15,18,.7)) !important;
  box-shadow:0 28px 90px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.14) !important;
  backdrop-filter:blur(13px) !important;
}

.capela-overlay .capela-cabecalho{
  position:relative !important;
  inset:auto !important;
  width:min(610px,calc(100% - 160px)) !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

.capela-overlay .capela-cabecalho strong{
  margin:6px 0 0 !important;
  font-size:clamp(24px,3vw,38px) !important;
}

.capela-overlay .capela-cabecalho>span:last-child{
  font-size:clamp(12px,1.2vw,15px) !important;
}

.capela-overlay .capela-sair{
  position:absolute !important;
  top:clamp(18px,3vw,34px) !important;
  right:clamp(18px,3vw,34px) !important;
}

.capela-overlay .capela-galeria{
  position:relative !important;
  inset:auto !important;
  width:100% !important;
  max-width:none !important;
  margin-top:auto !important;
  padding:18px !important;
  border:1px solid rgba(255,238,204,.18) !important;
  border-radius:18px !important;
  background:rgba(11,8,16,.58) !important;
  box-shadow:inset 0 1px rgba(255,255,255,.08) !important;
}

.capela-overlay .capela-galeria-titulo{
  justify-content:flex-start !important;
  margin-bottom:12px !important;
  padding:0 4px !important;
  font-size:12px !important;
}

.capela-overlay .capela-faixa-viewport{
  border-radius:12px !important;
}

.capela-overlay .capela-historia{
  position:absolute !important;
  z-index:4 !important;
  top:50% !important;
  left:50% !important;
  width:min(560px,74vw) !important;
  border-radius:20px !important;
}

.capela-overlay .capela-interior:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  background:radial-gradient(ellipse at center,transparent 32%,rgba(3,2,7,.42) 100%);
}

.capela-overlay .capela-modal-moldura,
.capela-overlay .capela-sair{
  opacity:0;
  transform:translateY(14px);
}

.capela-overlay.interior-visivel .capela-modal-moldura,
.capela-overlay.interior-visivel .capela-sair{
  animation:capela-modal-entrar .48s cubic-bezier(.2,.8,.2,1) .08s both;
}

@keyframes capela-modal-entrar{
  to{opacity:1;transform:translateY(0)}
}

@media (max-width:767.98px){
  .capela-overlay .capela-modal-moldura{
    inset:12px !important;
    padding:18px !important;
    border-radius:18px !important;
  }
  .capela-overlay .capela-cabecalho{width:calc(100% - 112px) !important}
  .capela-overlay .capela-cabecalho strong{font-size:20px !important}
  .capela-overlay .capela-cabecalho>span:last-child{font-size:10px !important}
  .capela-overlay .capela-sair{top:18px !important;right:18px !important;min-width:86px !important;font-size:0 !important}
  .capela-overlay .capela-sair i{font-size:14px !important}
  .capela-overlay .capela-galeria{padding:12px !important}
  .capela-overlay .capela-pet-card{width:132px !important;flex-basis:132px !important}
  .capela-overlay .capela-foto{height:92px !important}
  .capela-overlay .capela-historia{width:calc(100% - 28px) !important}
}


/* =========================================================
   v1.1.46 — Números interessantes inspirado na Capela
   ========================================================= */
.numeros-overlay{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483500 !important;
  display:block !important;
  width:100vw !important;
  height:100vh !important;
  padding:0 !important;
  overflow:hidden !important;
  background:#0d1210 !important;
  color:#fff !important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.numeros-overlay.ativo{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  animation:capela-overlay-entrada .38s ease forwards;
}

.numeros-cena{
  position:absolute !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  min-height:0 !important;
  display:block !important;
  padding:0 !important;
  overflow:hidden !important;
}

.numeros-fundo{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 50% 34%,rgba(255,231,164,.10),transparent 32%),
    linear-gradient(180deg,#203b31,#10231d 72%,#0b1612);
  background-size:cover;
  background-position:center;
  transform:scale(1.035);
  transition:transform .85s ease;
}

.numeros-overlay.tem-fundo-personalizado .numeros-fundo{
  background-image:var(--numeros-background) !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

.numeros-overlay.ativo .numeros-fundo{transform:scale(1)}

.numeros-overlay.ativo .numeros-cabecalho,
.numeros-overlay.ativo .numeros-fechar{animation:numeros-interface-entrar .42s cubic-bezier(.2,.8,.2,1) both}

.numeros-vinheta{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(7,8,8,.18),transparent 24%,transparent 66%,rgba(5,6,6,.62)),
    radial-gradient(circle at center,transparent 44%,rgba(0,0,0,.48) 100%);
}

.numeros-raio-luz{
  position:absolute;
  top:0;
  left:50%;
  z-index:3;
  width:42%;
  height:68%;
  transform:translateX(-50%);
  clip-path:polygon(34% 0,66% 0,100% 100%,0 100%);
  background:linear-gradient(180deg,rgba(255,240,188,.15),rgba(255,240,188,0));
  pointer-events:none;
}

.numeros-cabecalho{
  position:absolute !important;
  left:clamp(16px,3vw,38px) !important;
  top:clamp(16px,3vw,34px) !important;
  z-index:20 !important;
  width:min(560px,calc(100vw - 110px)) !important;
  margin:0 !important;
  padding:14px 17px !important;
  border:4px solid #0f0f0f !important;
  border-radius:0 !important;
  background:rgba(21,17,38,.92) !important;
  color:#fff !important;
  text-align:left !important;
  box-shadow:6px 6px 0 rgba(0,0,0,.18) !important;
}

.numeros-cabecalho small{
  display:block !important;
  margin:0 0 4px !important;
  color:#f8d77d !important;
  opacity:1 !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
}

.numeros-cabecalho h2{
  margin:0 !important;
  color:#fff !important;
  font-size:clamp(20px,2.5vw,34px) !important;
  font-weight:800 !important;
  line-height:1.05 !important;
}

.numeros-cabecalho p{
  margin:7px 0 0 !important;
  color:#dfd8ea !important;
  opacity:1 !important;
  font:500 clamp(11px,1.1vw,13px)/1.45 Arial,sans-serif !important;
}

.numeros-conteudo{
  position:absolute;
  z-index:10;
  left:50%;
  bottom:clamp(26px,6vh,72px);
  width:min(1080px,92vw);
  transform:translateX(-50%);
}

.numeros-grid{
  width:100% !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(10px,1.4vw,18px) !important;
}

.numero-animado-card{
  min-height:116px !important;
  display:flex !important;
  align-items:center !important;
  gap:13px !important;
  padding:15px 16px !important;
  border:4px solid #0f0f0f !important;
  border-radius:0 !important;
  background:rgba(21,17,38,.90) !important;
  color:#fff !important;
  box-shadow:6px 6px 0 rgba(0,0,0,.18) !important;
}

.numero-animado-icone{
  flex:0 0 52px !important;
  width:52px !important;
  height:52px !important;
  display:grid !important;
  place-items:center !important;
  border:2px solid rgba(248,215,125,.44) !important;
  border-radius:0 !important;
  background:rgba(248,215,125,.10) !important;
  color:#f8d77d !important;
  font-size:27px !important;
}

.numero-animado-icone img{
  width:88% !important;
  height:88% !important;
  object-fit:contain !important;
}

.numero-animado-texto small{
  display:block !important;
  margin-bottom:4px !important;
  color:#d6cfe0 !important;
  opacity:1 !important;
  font:600 10px/1.25 Arial,sans-serif !important;
}

.numero-animado-texto strong{
  display:block !important;
  color:#fff !important;
  font-size:clamp(14px,1.6vw,20px) !important;
  font-weight:800 !important;
  line-height:1.12 !important;
}

.numeros-fechar{
  position:absolute !important;
  top:clamp(16px,3vw,34px) !important;
  right:clamp(16px,3vw,38px) !important;
  z-index:30 !important;
  width:46px !important;
  height:46px !important;
  display:grid !important;
  place-items:center !important;
  padding:0 !important;
  border:4px solid #0f0f0f !important;
  border-radius:0 !important;
  background:rgba(21,17,38,.94) !important;
  color:#fff !important;
  box-shadow:5px 5px 0 rgba(0,0,0,.18) !important;
  font:800 28px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}

.numeros-fechar:hover,
.numeros-fechar:focus-visible{
  background:#f8d77d !important;
  color:#221b16 !important;
  outline:0 !important;
}

.numeros-overlay.saindo{
  animation:numeros-overlay-sair .55s ease forwards !important;
}

.numeros-overlay.saindo .numeros-fundo{transform:scale(1.035)}
.numeros-overlay.saindo .numeros-cabecalho,
.numeros-overlay.saindo .numeros-fechar{animation:numeros-interface-sair .36s cubic-bezier(.4,0,.7,.2) forwards !important}
.numeros-overlay.saindo .numero-animado-card{animation:numeros-card-sair-reverso .32s ease forwards !important}

@keyframes numeros-overlay-sair{
  from{opacity:1}
  to{opacity:0}
}
@keyframes numeros-interface-entrar{from{opacity:0;transform:translateY(-18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes numeros-interface-sair{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-18px) scale(.96)}}
@keyframes numeros-card-sair-reverso{to{opacity:0;transform:translateY(28px) scale(.92)}}

@media (max-width:767.98px){
  .numeros-cabecalho{
    left:12px !important;
    top:12px !important;
    width:calc(100vw - 78px) !important;
    padding:11px 12px !important;
  }

  .numeros-cabecalho h2{font-size:20px !important}
  .numeros-cabecalho p{font-size:10px !important}

  .numeros-fechar{
    top:12px !important;
    right:12px !important;
    width:42px !important;
    height:42px !important;
  }

  .numeros-conteudo{
    left:12px !important;
    right:12px !important;
    bottom:16px !important;
    width:auto !important;
    max-height:calc(100vh - 145px) !important;
    transform:none !important;
    overflow:auto !important;
    padding:2px 5px 8px 2px !important;
  }

  .numeros-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:9px !important;
  }

  .numero-animado-card{
    min-height:92px !important;
    padding:10px !important;
    gap:9px !important;
    box-shadow:4px 4px 0 rgba(0,0,0,.18) !important;
  }

  .numero-animado-icone{
    flex-basis:40px !important;
    width:40px !important;
    height:40px !important;
    font-size:21px !important;
  }

  .numero-animado-texto small{font-size:9px !important}
  .numero-animado-texto strong{font-size:clamp(12px,3.5vw,16px) !important}
}

@media (max-width:430px){
  .numeros-grid{grid-template-columns:1fr !important}
  .numero-animado-card{min-height:78px !important}
}

@supports (height:100dvh){
  .numeros-overlay,
  .numeros-cena{height:100dvh !important}

  @media (max-width:767.98px){
    .numeros-conteudo{max-height:calc(100dvh - 145px) !important}
  }
}


/* =========================================================
   v1.1.47 — memoriais pagos e gratuitos em tela cheia
   ========================================================= */
body.memorial-fullscreen-aberto{overflow:hidden !important}

.memorial-fullscreen{
  position:fixed;
  inset:0;
  z-index:2147483550;
  width:100vw;
  height:100vh;
  overflow:hidden;
  background:#101311;
  color:#fff;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.memorial-fullscreen.ativo{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  animation:memorial-fullscreen-entrar .42s ease forwards;
}

.memorial-fullscreen-cena,
.memorial-fullscreen-fundo,
.memorial-fullscreen-vinheta{
  position:absolute;
  inset:0;
}

.memorial-fullscreen-fundo{
  z-index:1;
  background:
    radial-gradient(circle at 50% 32%,rgba(255,235,179,.13),transparent 32%),
    linear-gradient(180deg,#26372f,#111b16);
  background-position:center;
  background-size:cover;
  transform:scale(1.035);
  transition:transform .9s ease;
}

.memorial-fullscreen.memorial-pago.tem-fundo-pago .memorial-fullscreen-fundo{
  background-position:center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
}

.memorial-fullscreen.ativo .memorial-fullscreen-fundo{transform:scale(1)}

.memorial-fullscreen-vinheta{
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(5,6,6,.18),transparent 28%,transparent 64%,rgba(5,6,6,.68)),
    radial-gradient(circle at center,transparent 38%,rgba(0,0,0,.54));
}

.memorial-fullscreen-luz{
  position:absolute;
  z-index:3;
  top:0;
  left:50%;
  width:42%;
  height:72%;
  transform:translateX(-50%);
  clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);
  background:linear-gradient(180deg,rgba(255,239,184,.16),transparent);
  pointer-events:none;
}

.memorial-fullscreen-conteudo{
  position:absolute;
  z-index:10;
  left:clamp(18px,5vw,72px);
  bottom:clamp(24px,7vh,82px);
  width:min(590px,calc(100vw - 36px));
  padding:clamp(18px,2.6vw,30px);
  border:4px solid #0f0f0f;
  background:rgba(21,17,38,.91);
  box-shadow:8px 8px 0 rgba(0,0,0,.22);
}

.memorial-fullscreen-selo{
  display:inline-flex;
  margin-bottom:10px;
  padding:6px 9px;
  border:2px solid #0f0f0f;
  background:#f8d77d;
  color:#251d17;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.memorial-fullscreen-conteudo h2{
  margin:0;
  color:#fff;
  font-size:clamp(28px,5vw,58px);
  line-height:1;
  text-shadow:3px 3px 0 rgba(0,0,0,.28);
}

.memorial-fullscreen-datas{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:10px;
  color:#f8d77d;
  font-size:clamp(12px,1.5vw,16px);
  font-weight:800;
}

.memorial-fullscreen-lote{
  margin:11px 0 0;
  color:#d9d2e2;
  font:600 12px/1.4 Arial,sans-serif;
}

.memorial-fullscreen-mensagem{
  max-width:520px;
  margin:14px 0 0;
  color:#eeeaf2;
  font:500 clamp(13px,1.4vw,16px)/1.55 Arial,sans-serif;
}

.memorial-fullscreen-fechar{
  position:absolute;
  z-index:30;
  top:clamp(16px,3vw,34px);
  right:clamp(16px,3vw,38px);
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  padding:0;
  border:4px solid #0f0f0f;
  border-radius:0;
  background:rgba(21,17,38,.94);
  color:#fff;
  box-shadow:5px 5px 0 rgba(0,0,0,.20);
  font:800 29px/1 Arial,sans-serif;
  cursor:pointer;
}

.memorial-fullscreen-fechar:hover,
.memorial-fullscreen-fechar:focus-visible{
  background:#f8d77d;
  color:#241d17;
  outline:0;
}

.memorial-fullscreen-gratis-tumulo{
  display:none;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo{
  background:
    radial-gradient(circle at 50% 48%,rgba(255,240,192,.12),transparent 26%),
    linear-gradient(180deg,#243b32 0%,#172a22 58%,#102019 100%) !important;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-vinheta{
  background:
    linear-gradient(180deg,rgba(6,8,7,.10),transparent 50%,rgba(4,6,5,.62)),
    radial-gradient(circle at center,transparent 46%,rgba(0,0,0,.42));
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-luz{
  width:54%;
  opacity:.72;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-gratis-tumulo{
  position:absolute;
  z-index:7;
  left:50%;
  top:46%;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(430px,68vw);
  height:min(470px,54vh);
  transform:translate(-50%,-50%);
  pointer-events:none;
}

.memorial-fullscreen-gratis-tumulo img{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:100%;
  object-fit:contain;
  filter:drop-shadow(12px 18px 0 rgba(0,0,0,.20));
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-conteudo{
  left:50%;
  bottom:clamp(18px,4vh,42px);
  width:min(620px,90vw);
  padding:14px 18px;
  transform:translateX(-50%);
  text-align:center;
  background:rgba(21,17,38,.88);
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-selo{margin-left:auto;margin-right:auto}
.memorial-fullscreen.memorial-gratis .memorial-fullscreen-datas{justify-content:center}
.memorial-fullscreen.memorial-gratis .memorial-fullscreen-mensagem{margin-left:auto;margin-right:auto}

.memorial-fullscreen.saindo{animation:memorial-fullscreen-sair .52s ease forwards}

@keyframes memorial-fullscreen-entrar{
  from{opacity:0}
  to{opacity:1}
}
@keyframes memorial-fullscreen-sair{
  from{opacity:1}
  to{opacity:0}
}

@media (max-width:767.98px){
  .memorial-fullscreen-conteudo{
    left:12px;
    bottom:14px;
    width:calc(100vw - 24px);
    padding:15px;
    box-shadow:5px 5px 0 rgba(0,0,0,.20);
  }

  .memorial-fullscreen-conteudo h2{font-size:clamp(26px,9vw,42px)}

  .memorial-fullscreen-fechar{
    top:12px;
    right:12px;
    width:43px;
    height:43px;
  }

  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-gratis-tumulo{
    top:40%;
    width:min(310px,74vw);
    height:45vh;
  }

  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-conteudo{
    bottom:12px;
    width:calc(100vw - 24px);
  }

  .memorial-fullscreen-mensagem{font-size:12px}
}

@supports (height:100dvh){
  .memorial-fullscreen,
  .memorial-fullscreen-cena{height:100dvh}
}


/* =========================================================
   v1.1.48 — memorial pago completo
   ========================================================= */
.memorial-fullscreen-scroll{
  position:absolute;
  inset:0;
  z-index:9;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}

.memorial-fullscreen.memorial-pago .memorial-fullscreen-conteudo{
  position:relative;
  left:auto;
  bottom:auto;
  width:min(1180px,calc(100vw - 48px));
  min-height:calc(100vh - 130px);
  margin:110px auto 54px;
  padding:clamp(22px,3vw,38px);
  background:linear-gradient(180deg,rgba(21,17,38,.91),rgba(16,14,28,.94));
}

.memorial-fullscreen-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:20px;
}

.memorial-fullscreen-meta > div{
  padding:12px 14px;
  border:3px solid #0f0f0f;
  background:rgba(255,255,255,.08);
}

.memorial-fullscreen-meta small,
.memorial-fullscreen-kicker{
  display:block;
  margin-bottom:5px;
  color:#cfc6dc;
  font:700 9px/1.2 Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.memorial-fullscreen-meta strong{
  color:#fff;
  font-size:clamp(12px,1.5vw,16px);
}

.memorial-fullscreen-familia{
  margin-top:14px;
  padding:17px 18px;
  border-left:5px solid #f8d77d;
  background:rgba(248,215,125,.08);
}

.memorial-fullscreen-familia .memorial-fullscreen-mensagem{
  margin:0;
  max-width:900px;
  color:#f4f0f6;
  font-size:clamp(13px,1.5vw,17px);
  font-style:italic;
}

.memorial-fullscreen-acoes{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}

.memorial-fullscreen-acoes button{
  min-height:76px;
  display:grid;
  grid-template-columns:42px 1fr;
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:10px 12px;
  border:3px solid #0f0f0f;
  background:#f7f1dd;
  color:#201b19;
  text-align:left;
  box-shadow:4px 4px 0 rgba(0,0,0,.18);
  cursor:pointer;
}

.memorial-fullscreen-acoes button > span{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  background:#241d37;
  color:#f8d77d;
  font-size:19px;
}

.memorial-fullscreen-acoes button strong{
  align-self:end;
  font-size:12px;
}

.memorial-fullscreen-acoes button small{
  align-self:start;
  color:#655e58;
  font:500 10px/1.25 Arial,sans-serif;
}

.memorial-fullscreen-acoes button:hover{
  transform:translate(-1px,-1px);
  background:#fff8df;
}

.memorial-fullscreen-galeria-wrap{
  margin-top:26px;
  padding-top:20px;
  border-top:3px solid rgba(248,215,125,.24);
}

.memorial-fullscreen-secao-titulo{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}

.memorial-fullscreen-secao-titulo small{
  color:#f8d77d;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
}

.memorial-fullscreen-secao-titulo h3{
  margin:3px 0 0;
  color:#fff;
  font-size:clamp(17px,2vw,25px);
}

.memorial-fullscreen-secao-titulo > span{
  color:#c9c2d1;
  font:500 10px Arial,sans-serif;
}

.memorial-fullscreen-galeria{
  display:flex;
  gap:12px;
  padding:3px 4px 14px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
}

.memorial-fullscreen-galeria figure,
.memorial-fullscreen-galeria-vazia{
  flex:0 0 clamp(170px,20vw,240px);
  height:clamp(150px,18vw,210px);
  margin:0;
  overflow:hidden;
  border:4px solid #0f0f0f;
  background:#191522;
  box-shadow:5px 5px 0 rgba(0,0,0,.18);
  scroll-snap-align:start;
}

.memorial-fullscreen-galeria figure img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.memorial-fullscreen-galeria-vazia{
  flex-basis:min(440px,78vw);
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px;
  color:#d8d1df;
  font:500 11px/1.4 Arial,sans-serif;
}

.memorial-fullscreen-galeria-vazia img{
  width:88px;
  height:88px;
  object-fit:contain;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-premium{
  display:none !important;
}

@media(max-width:767.98px){
  .memorial-fullscreen.memorial-pago .memorial-fullscreen-conteudo{
    width:calc(100vw - 24px);
    min-height:auto;
    margin:76px 12px 24px;
    padding:15px;
  }

  .memorial-fullscreen-meta{
    grid-template-columns:1fr;
    gap:7px;
  }

  .memorial-fullscreen-acoes{
    grid-template-columns:1fr;
  }

  .memorial-fullscreen-acoes button{
    min-height:64px;
  }

  .memorial-fullscreen-secao-titulo > span{
    display:none;
  }

  .memorial-fullscreen-galeria figure{
    flex-basis:72vw;
    height:52vw;
  }
}


/* =========================================================
   v1.1.49 — compartilhamento, galeria demo e timeline
   ========================================================= */
.memorial-fullscreen-acoes{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.memorial-compartilhar-painel{
  margin-top:12px;
  padding:15px;
  border:3px solid #0f0f0f;
  background:rgba(248,215,125,.96);
  color:#211b17;
  box-shadow:5px 5px 0 rgba(0,0,0,.18);
}

.memorial-compartilhar-painel[hidden]{display:none !important}

.memorial-compartilhar-painel > div:first-child small{
  display:block;
  margin-bottom:4px;
  font:900 9px Arial,sans-serif;
  letter-spacing:.1em;
}

.memorial-compartilhar-painel > div:first-child strong{
  font:700 12px/1.4 Arial,sans-serif;
}

.memorial-compartilhar-opcoes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.memorial-compartilhar-opcoes a{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:3px solid #0f0f0f;
  background:#fff;
  color:#201b19;
  font:800 11px Arial,sans-serif;
  text-decoration:none;
  box-shadow:3px 3px 0 rgba(0,0,0,.14);
}

.memorial-compartilhar-opcoes a span{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  background:#241d37;
  color:#fff;
  font-size:9px;
}

.memorial-fullscreen-galeria figure{position:relative}

.memorial-fullscreen-galeria figcaption{
  position:absolute;
  left:7px;
  bottom:7px;
  padding:5px 7px;
  border:2px solid #111;
  background:rgba(248,215,125,.94);
  color:#211b17;
  font:900 8px Arial,sans-serif;
  text-transform:uppercase;
}

.memorial-fullscreen-timeline-wrap{
  margin-top:28px;
  padding-top:20px;
  border-top:3px solid rgba(248,215,125,.24);
}

.memorial-fullscreen-timeline{
  position:relative;
  width:min(900px,100%);
  margin-top:16px;
}

.memorial-fullscreen-timeline:before{
  content:"";
  position:absolute;
  top:15px;
  bottom:15px;
  left:91px;
  width:4px;
  background:#f8d77d;
  box-shadow:2px 0 0 rgba(0,0,0,.22);
}

.memorial-fullscreen-timeline article{
  position:relative;
  display:grid;
  grid-template-columns:72px 22px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:0 0 22px;
}

.memorial-fullscreen-timeline time{
  padding-top:7px;
  color:#f8d77d;
  font-size:13px;
  font-weight:900;
  text-align:right;
}

.memorial-timeline-ponto{
  position:relative;
  z-index:2;
  width:18px;
  height:18px;
  margin-top:6px;
  border:4px solid #111;
  background:#f8d77d;
}

.memorial-fullscreen-timeline article > div{
  padding:12px 14px;
  border:3px solid #111;
  background:rgba(255,255,255,.08);
}

.memorial-fullscreen-timeline h4{
  margin:0;
  color:#fff;
  font-size:14px;
}

.memorial-fullscreen-timeline p{
  margin:6px 0 0;
  color:#d9d2e1;
  font:500 11px/1.5 Arial,sans-serif;
}

.memorial-fullscreen-timeline article small{
  display:inline-block;
  margin-top:8px;
  color:#f8d77d;
  font:900 8px Arial,sans-serif;
  letter-spacing:.08em;
}

@media(max-width:767.98px){
  .memorial-fullscreen-acoes{grid-template-columns:1fr !important}
  .memorial-compartilhar-opcoes{display:grid;grid-template-columns:1fr}
  .memorial-fullscreen-timeline:before{left:55px}
  .memorial-fullscreen-timeline article{grid-template-columns:42px 18px minmax(0,1fr);gap:7px}
  .memorial-fullscreen-timeline time{font-size:10px}
  .memorial-timeline-ponto{width:16px;height:16px}
}


/* =========================================================
   v1.1.50 — perfil com capa + lightbox da galeria
   ========================================================= */
.memorial-perfil-topo{
  position:relative;
  margin:calc(clamp(22px,3vw,38px) * -1) calc(clamp(22px,3vw,38px) * -1) 0;
  min-height:300px;
  overflow:hidden;
  border-bottom:4px solid #0f0f0f;
}

.memorial-perfil-capa{
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,#38443e,#20251f);
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
}

.memorial-perfil-capa-sombra{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(8,9,9,.08) 0%,rgba(8,9,9,.16) 46%,rgba(13,11,20,.88) 100%),
    radial-gradient(circle at center,transparent 42%,rgba(0,0,0,.30));
}

.memorial-perfil-identidade{
  position:absolute;
  left:clamp(18px,3vw,34px);
  right:clamp(18px,3vw,34px);
  bottom:22px;
  z-index:2;
  display:flex;
  align-items:flex-end;
  gap:18px;
}

.memorial-perfil-avatar{
  flex:0 0 104px;
  width:104px;
  height:104px;
  display:grid;
  place-items:center;
  border:5px solid #f8d77d;
  background:#211b32;
  box-shadow:6px 6px 0 rgba(0,0,0,.28);
  font-size:54px;
}

.memorial-perfil-textos{
  min-width:0;
  padding-bottom:4px;
}

.memorial-perfil-textos .memorial-fullscreen-selo{
  margin-bottom:8px;
}

.memorial-perfil-textos h2{
  margin:0;
  color:#fff;
  font-size:clamp(32px,5vw,64px);
  line-height:.95;
  text-shadow:3px 3px 0 rgba(0,0,0,.30);
}

.memorial-perfil-subtitulo{
  display:block;
  margin-top:8px;
  color:#eee8f2;
  font:500 12px/1.4 Arial,sans-serif;
}

.memorial-fullscreen-corpo{
  padding-top:22px;
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-topo{
  display:none;
}

.memorial-fullscreen-galeria figure{
  cursor:zoom-in;
  transition:transform .16s ease,filter .16s ease;
}

.memorial-fullscreen-galeria figure:hover,
.memorial-fullscreen-galeria figure:focus-visible{
  transform:translateY(-4px);
  filter:brightness(1.05);
  outline:3px solid #f8d77d;
  outline-offset:2px;
}

body.memorial-lightbox-aberto{
  overflow:hidden !important;
}

.memorial-lightbox{
  position:fixed;
  inset:0;
  z-index:2147483640;
  display:grid;
  place-items:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
}

.memorial-lightbox.ativo{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.memorial-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,5,7,.92);
  backdrop-filter:blur(5px);
}

.memorial-lightbox-dialog{
  position:relative;
  z-index:2;
  width:min(1180px,94vw);
  height:min(820px,90vh);
  display:grid;
  grid-template-columns:64px minmax(0,1fr) 64px;
  align-items:center;
}

.memorial-lightbox-figure{
  min-width:0;
  height:100%;
  margin:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  overflow:hidden;
}

.memorial-lightbox-figure img{
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
}

.memorial-lightbox-figure figcaption{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:12px 14px;
  border-top:3px solid #0f0f0f;
  background:#211b32;
  color:#fff;
  font:500 11px/1.4 Arial,sans-serif;
}

.memorial-lightbox-figure figcaption strong{
  flex:0 0 auto;
  color:#f8d77d;
}

.memorial-lightbox-nav,
.memorial-lightbox-fechar{
  border:4px solid #0f0f0f;
  background:#f8d77d;
  color:#1f1916;
  box-shadow:4px 4px 0 rgba(0,0,0,.30);
  cursor:pointer;
}

.memorial-lightbox-nav{
  width:50px;
  height:58px;
  justify-self:center;
  font-size:26px;
  font-weight:900;
}

.memorial-lightbox-fechar{
  position:absolute;
  top:-10px;
  right:-10px;
  z-index:4;
  width:46px;
  height:46px;
  font:900 27px/1 Arial,sans-serif;
}

.memorial-lightbox-nav:hover,
.memorial-lightbox-nav:focus-visible,
.memorial-lightbox-fechar:hover,
.memorial-lightbox-fechar:focus-visible{
  background:#fff;
  outline:0;
}

@media(max-width:767.98px){
  .memorial-perfil-topo{
    min-height:235px;
    margin:-15px -15px 0;
  }

  .memorial-perfil-identidade{
    left:13px;
    right:13px;
    bottom:14px;
    gap:11px;
  }

  .memorial-perfil-avatar{
    flex-basis:72px;
    width:72px;
    height:72px;
    border-width:4px;
    font-size:36px;
  }

  .memorial-perfil-textos h2{
    font-size:clamp(27px,9vw,42px);
  }

  .memorial-perfil-subtitulo{
    font-size:10px;
  }

  .memorial-fullscreen-corpo{
    padding-top:15px;
  }

  .memorial-lightbox-dialog{
    width:100vw;
    height:100vh;
    grid-template-columns:46px minmax(0,1fr) 46px;
    padding:60px 0 18px;
  }

  .memorial-lightbox-nav{
    width:40px;
    height:50px;
    border-width:3px;
    font-size:21px;
  }

  .memorial-lightbox-fechar{
    top:12px;
    right:12px;
  }

  .memorial-lightbox-figure figcaption{
    flex-direction:column;
    gap:5px;
    padding:10px 12px;
  }
}

@supports (height:100dvh){
  @media(max-width:767.98px){
    .memorial-lightbox-dialog{height:100dvh}
  }
}
\n/* v1.1.51 — Lojinha Eterna */
body.loja-aberta{overflow:hidden!important}.loja-overlay{position:fixed;inset:0;z-index:2147483560;background:#151124;color:#fff;opacity:0;visibility:hidden;pointer-events:none;overflow:auto}.loja-overlay.ativo{opacity:1;visibility:visible;pointer-events:auto}.loja-shell{min-height:100vh;background:radial-gradient(circle at 50% 0,rgba(248,215,125,.14),transparent 38%),linear-gradient(#241d37,#151124)}.loja-fechar{position:fixed;right:24px;top:20px;z-index:5;width:48px;height:48px;border:4px solid #111;background:#f8d77d;font-size:28px;font-weight:900;box-shadow:5px 5px #0004}.loja-hero{max-width:1180px;margin:auto;padding:58px 24px 28px}.loja-hero small{color:#f8d77d;font-weight:900;letter-spacing:.15em}.loja-hero h2{max-width:800px;margin:8px 0;font-size:clamp(28px,4vw,52px);line-height:1}.loja-hero p{font:500 14px Arial;color:#d8d1e1}.loja-conteudo{max-width:1180px;margin:auto;padding:0 24px 60px}.loja-etapas{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:18px}.loja-etapas span{padding:10px;border:3px solid #111;background:#312943;color:#aaa;font-size:10px;text-align:center}.loja-etapas span.ativo{background:#f8d77d;color:#211b17}.loja-step{display:none}.loja-step.ativo{display:block}.loja-produtos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.loja-produto{display:grid;grid-template-columns:180px 1fr;gap:18px;width:100%;padding:0;border:4px solid #111;background:#f7f1dd;color:#211b17;text-align:left;overflow:hidden;box-shadow:8px 8px #0003}.loja-produto img,.loja-produto-placeholder{width:180px;height:100%;min-height:250px;object-fit:cover;background:#d9ccb1;display:grid;place-items:center;font-size:60px}.loja-produto>div:last-child{padding:22px 22px 22px 0}.loja-produto small{font:900 9px Arial;letter-spacing:.1em}.loja-produto h3{margin:7px 0;font-size:22px}.loja-produto p{font:500 12px/1.5 Arial}.loja-produto strong{display:block;font-size:22px}.loja-produto span{display:inline-block;margin-top:10px;padding:6px;background:#241d37;color:#f8d77d;font-size:9px}.loja-card{padding:24px;border:4px solid #111;background:#f7f1dd;color:#211b17;box-shadow:8px 8px #0003}.loja-card>small{font:900 9px Arial;letter-spacing:.12em}.loja-card h3{margin:5px 0 16px}.loja-preview{display:flex;gap:15px;margin-top:14px;padding:15px;border:3px solid #111;background:#fff}.loja-preview-avatar{width:72px;height:72px;display:grid;place-items:center;background:#241d37;font-size:36px}.loja-preview h4{margin:2px 0}.loja-preview p,.loja-preview em,.loja-preview span{display:block;font:500 10px/1.5 Arial}.loja-preview span{margin-top:5px;color:#685d54}.loja-nav{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.loja-nav button{min-height:46px;padding:0 16px;border:3px solid #111;background:#fff;font-weight:900}.loja-nav .loja-finalizar{background:#f8d77d}.loja-resumo-linha{display:flex;justify-content:space-between;padding:15px;border:3px solid #111;background:#fff}.loja-resumo-pet{margin-top:8px;padding:10px;background:#241d37;color:#fff}.loja-sucesso{margin-top:16px;padding:18px;border:4px solid #111;background:#dff4d8}.loja-sucesso strong,.loja-sucesso code,.loja-sucesso span,.loja-sucesso em{display:block}.loja-sucesso code{margin:8px 0;padding:12px;background:#fff;border:2px dashed #111;color:#111;font-size:15px}@media(max-width:767.98px){.loja-conteudo,.loja-hero{padding-left:12px;padding-right:12px}.loja-etapas{grid-template-columns:repeat(2,1fr)}.loja-produto{grid-template-columns:1fr}.loja-produto img,.loja-produto-placeholder{width:100%;height:210px;min-height:0}.loja-produto>div:last-child{padding:16px}.loja-card{padding:15px}.loja-fechar{right:12px;top:12px}.loja-preview{align-items:flex-start}}\n
/* v1.1.52 — avatar fotográfico do memorial */
.memorial-perfil-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit;image-rendering:auto;}


/* =========================================================
   v1.1.53 — fundos personalizados dos túmulos
   ========================================================= */
.scroll-tomb-background-wrap{
  position:relative;
  display:grid;
  place-items:center;
  width:max-content;
  min-width:1px;
  overflow:visible;
  isolation:isolate;
}

.scroll-tomb-custom-background{
  position:absolute;
  left:50%;
  top:50%;
  z-index:0;
  width:180%;
  height:180%;
  transform:translate(-50%,-50%) scale(var(--tomb-bg-scale,1));
  transform-origin:center;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}

.scroll-tomb-custom-background img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:pixelated;
}

.scroll-tomb-background-wrap > .scroll-tomb-model,
.scroll-tomb-background-wrap > .scroll-fallback-tomb{
  position:relative;
  z-index:2;
}

@media(max-width:767.98px){
  .scroll-tomb-custom-background{
    width:165%;
    height:165%;
  }
}


/* =========================================================
   v1.1.54 — memorial gratuito: fundo completo + nome visível
   ========================================================= */
.memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
  background-color:#101714 !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito + .memorial-fullscreen-vinheta{
  background:
    linear-gradient(180deg,rgba(0,0,0,.08),transparent 34%,transparent 58%,rgba(0,0,0,.52)),
    radial-gradient(circle at center,transparent 58%,rgba(0,0,0,.28));
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-scroll{
  position:absolute;
  inset:0;
  z-index:12;
  overflow:hidden;
  pointer-events:none;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-conteudo{
  position:absolute;
  left:50%;
  right:auto;
  top:auto;
  bottom:clamp(18px,4vh,42px);
  width:min(680px,calc(100vw - 32px));
  max-height:none;
  margin:0;
  padding:16px 20px;
  transform:translateX(-50%);
  overflow:visible;
  text-align:center;
  pointer-events:auto;
  border:4px solid #0f0f0f;
  background:rgba(21,17,38,.92);
  box-shadow:8px 8px 0 rgba(0,0,0,.22);
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-topo{
  min-height:0;
  padding:0;
  background:none;
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-capa,
.memorial-fullscreen.memorial-gratis .memorial-perfil-capa-sombra,
.memorial-fullscreen.memorial-gratis .memorial-perfil-avatar,
.memorial-fullscreen.memorial-gratis .memorial-perfil-subtitulo{
  display:none !important;
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-identidade{
  position:static;
  display:block;
  padding:0;
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-textos{
  width:100%;
  text-align:center;
}

.memorial-fullscreen.memorial-gratis #memorialFullscreenNome{
  display:block !important;
  margin:4px 0 0 !important;
  color:#fff !important;
  font-size:clamp(28px,5vw,52px) !important;
  line-height:1 !important;
  text-align:center !important;
  text-shadow:3px 3px 0 rgba(0,0,0,.35);
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-corpo{
  padding:0;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-meta{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 22px;
  margin-top:12px;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-meta > div{
  min-width:120px;
  padding:0;
  border:0;
  background:transparent;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-meta small{
  display:block;
  color:#bdb4c8;
  font-size:10px;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-meta strong{
  display:block;
  margin-top:2px;
  color:#f8d77d;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-familia,
.memorial-fullscreen.memorial-gratis .memorial-fullscreen-premium{
  display:none !important;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-gratis-tumulo{
  top:44%;
  width:min(380px,60vw);
  height:min(420px,50vh);
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito ~ .memorial-fullscreen-gratis-tumulo{
  display:none;
}

@media(max-width:767.98px){
  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
    background-size:cover !important;
  }

  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-conteudo{
    bottom:12px;
    width:calc(100vw - 24px);
    padding:12px 12px 14px;
  }

  .memorial-fullscreen.memorial-gratis #memorialFullscreenNome{
    font-size:clamp(26px,9vw,40px) !important;
  }

  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-meta{
    gap:7px 12px;
  }

  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-meta > div{
    min-width:95px;
  }
}


/* =========================================================
   v1.1.55 — correção definitiva do memorial gratuito
   ========================================================= */
.memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
  background-image:var(--free-memorial-bg) !important;
  background-color:#101714 !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  background-size:contain !important;
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-topo{
  display:block !important;
  position:relative !important;
  min-height:0 !important;
  margin:0 !important;
  overflow:visible !important;
  border:0 !important;
  background:transparent !important;
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-identidade{
  display:block !important;
  position:static !important;
}

.memorial-fullscreen.memorial-gratis .memorial-perfil-textos{
  display:block !important;
}

.memorial-fullscreen.memorial-gratis #memorialFullscreenNome{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-scroll{
  z-index:20 !important;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-conteudo{
  z-index:21 !important;
}

.memorial-fullscreen.memorial-gratis.tem-fundo-gratuito .memorial-fullscreen-gratis-tumulo{
  display:none !important;
}

@media(max-width:767.98px){
  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
    background-size:cover !important;
    background-position:center center !important;
  }
}


/* =========================================================
   v1.1.56 — URL única, avatar quadrado e capa em lightbox
   ========================================================= */
.memorial-fullscreen.memorial-pago .memorial-perfil-avatar{
  width:clamp(84px,8vw,124px) !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  flex:0 0 auto !important;
  overflow:hidden !important;
  padding:0 !important;
}

.memorial-fullscreen.memorial-pago .memorial-perfil-avatar img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  max-width:none !important;
  max-height:none !important;
  aspect-ratio:1 / 1 !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.memorial-fullscreen.memorial-pago .memorial-perfil-capa.tem-lightbox{
  cursor:zoom-in;
}

.memorial-fullscreen.memorial-pago .memorial-perfil-capa.tem-lightbox::after{
  content:"Clique para ampliar";
  position:absolute;
  right:14px;
  bottom:14px;
  z-index:5;
  padding:7px 10px;
  border:2px solid rgba(255,255,255,.72);
  background:rgba(10,8,16,.72);
  color:#fff;
  font-size:11px;
  line-height:1;
  pointer-events:none;
}

.memorial-fullscreen.memorial-pago .memorial-perfil-capa.tem-lightbox:focus-visible{
  outline:4px solid #f8d77d;
  outline-offset:-4px;
}

@media(max-width:767.98px){
  .memorial-fullscreen.memorial-pago .memorial-perfil-avatar{
    width:clamp(72px,24vw,96px) !important;
  }
  .memorial-fullscreen.memorial-pago .memorial-perfil-capa.tem-lightbox::after{
    right:8px;
    bottom:8px;
    padding:6px 8px;
    font-size:9px;
  }
}


/* =========================================================
   v1.1.57 — fundo gratuito preenchendo o fullscreen
   ========================================================= */
.memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  transform:none !important;
  background-image:var(--free-memorial-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

@media(max-width:767.98px){
  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    min-height:100vh !important;
    background-size:cover !important;
    background-position:center center !important;
  }
}


/* =========================================================
   v1.1.58 — memorial gratuito usando cenário fullscreen real
   ========================================================= */
.memorial-fullscreen.memorial-gratis .memorial-fullscreen-gratis-tumulo[hidden]{
  display:none !important;
}

.memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  transform:none !important;
  opacity:1 !important;
  background-image:var(--free-memorial-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

.memorial-fullscreen.memorial-gratis.ativo .memorial-fullscreen-fundo.tem-fundo-gratuito{
  transform:none !important;
}

@media(max-width:767.98px){
  .memorial-fullscreen.memorial-gratis .memorial-fullscreen-fundo.tem-fundo-gratuito{
    width:100vw !important;
    height:100dvh !important;
    min-height:100vh !important;
    background-size:cover !important;
    background-position:center center !important;
  }
}


/* =========================================================
   v1.1.59 — quarteirões separados por rua horizontal
   ========================================================= */
.cemiterio-scroll-lista{
  gap:0 !important;
  width:100%;
  max-width:none;
  overflow:visible;
}

.scroll-quarter{
  width:min(1040px,calc(100% - 32px)) !important;
  margin:clamp(30px,5vw,62px) auto !important;
  border-radius:28px;
}

.scroll-quarter-stage{
  position:relative;
  width:100%;
  min-height:inherit;
  display:flex;
  align-items:center;
  justify-content:center;
}

.scroll-quarter-road{
  position:relative;
  z-index:5;
  align-self:stretch;
  width:100vw;
  height:var(--quarter-road-height,96px);
  min-height:var(--quarter-road-height,96px);
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  overflow:hidden;
  pointer-events:none;
  background:rgba(80,61,40,.28);
}

.scroll-quarter-road.tem-imagem{
  background-color:transparent;
  background-image:var(--quarter-road-image);
  background-repeat:repeat-x;
  background-position:left center;
  background-size:auto 100%;
  image-rendering:pixelated;
}

.scroll-quarter-road::before,
.scroll-quarter-road::after{
  content:"";
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  background:rgba(0,0,0,.12);
  pointer-events:none;
}

.scroll-quarter-road::before{top:0}
.scroll-quarter-road::after{bottom:0}

@media(max-width:767.98px){
  .scroll-quarter{
    width:calc(100% - 16px) !important;
    margin:24px auto !important;
  }

  .scroll-quarter-road{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
  }
}


/* =========================================================
   v1.1.60 — rua após as plaquinhas
   ========================================================= */
.scroll-quarter-road-inicial{
  margin-top:clamp(18px,3vw,36px);
}


/* =========================================================
   v1.1.61 — estrada sem bordas/faixas transparentes
   ========================================================= */
.scroll-quarter-road{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background-color:transparent !important;
}

.scroll-quarter-road::before,
.scroll-quarter-road::after{
  content:none !important;
  display:none !important;
}

.scroll-quarter-road.tem-imagem{
  background-color:transparent !important;
  background-position:left center !important;
  background-repeat:repeat-x !important;
}


/* =========================================================
   v1.1.62 — respiro vertical entre ruas e quarteirões
   ========================================================= */
.scroll-quarter-road:not(.scroll-quarter-road-inicial){
  margin-top:30px !important;
  margin-bottom:30px !important;
}


/* =========================================================
   v1.1.63 — galeria paga sem movimento no hover
   ========================================================= */
.memorial-fullscreen.memorial-pago .memorial-galeria-item:hover,
.memorial-fullscreen.memorial-pago .memorial-gallery-item:hover,
.memorial-fullscreen.memorial-pago [data-memorial-gallery-item]:hover{
  transform:none !important;
  translate:none !important;
  top:auto !important;
}

.memorial-fullscreen.memorial-pago .memorial-galeria-item:hover img,
.memorial-fullscreen.memorial-pago .memorial-gallery-item:hover img,
.memorial-fullscreen.memorial-pago [data-memorial-gallery-item]:hover img{
  transform:none !important;
  translate:none !important;
}


/* =========================================================
   v1.1.64 — correção definitiva do hover da galeria paga
   ========================================================= */
.memorial-fullscreen.memorial-pago .memorial-fullscreen-galeria figure:hover,
.memorial-fullscreen.memorial-pago .memorial-fullscreen-galeria figure:focus-visible{
  transform:none !important;
  translate:none !important;
  top:auto !important;
  margin-top:0 !important;
}

.memorial-fullscreen.memorial-pago .memorial-fullscreen-galeria figure:hover img,
.memorial-fullscreen.memorial-pago .memorial-fullscreen-galeria figure:focus-visible img{
  transform:none !important;
  translate:none !important;
}


/* =========================================================
   v1.1.69 — organização das quatro plaquinhas da entrada
   ========================================================= */
body.cemiterio-scroll-mode .cemiterio-info-points-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:end;
  justify-items:center;
  gap:clamp(14px,2.2vw,32px) !important;
  width:min(100%,1100px);
  margin-inline:auto;
}

body.cemiterio-scroll-mode .cemiterio-info-point{
  width:min(100%,var(--info-point-width,220px)) !important;
  min-width:0;
}

@media(max-width:575.98px){
  body.cemiterio-scroll-mode .cemiterio-info-points{
    padding-inline:12px;
  }

  body.cemiterio-scroll-mode .cemiterio-info-points-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 12px !important;
    width:100%;
  }

  body.cemiterio-scroll-mode .cemiterio-info-point{
    width:min(100%,var(--info-point-width,220px)) !important;
  }
}


/* =========================================================
   v1.1.70 — restaura ciclo visual completo no cemitério scroll
   ========================================================= */
body.cemiterio-scroll-mode .cemiterio-scroll,
body.cemiterio-scroll-mode .entrada-scroll::after,
body.cemiterio-scroll-mode .cemiterio-scroll-shell,
body.cemiterio-scroll-mode .scroll-quarter,
body.cemiterio-scroll-mode .scroll-quarter-art,
body.cemiterio-scroll-mode .scroll-tomb,
body.cemiterio-scroll-mode .scroll-quarter-road{
  transition:filter 1.6s ease,background-color 1.6s ease,opacity 1.6s ease;
}

/* Amanhecer: luz suave e quente. */
body.cemiterio-scroll-mode.periodo-amanhecer .entrada-scroll::after,
body.cemiterio-scroll-mode.periodo-amanhecer .cemiterio-scroll-shell{
  filter:brightness(.92) saturate(.92) sepia(.08);
}

/* Dia: cores originais. */
body.cemiterio-scroll-mode.periodo-dia .entrada-scroll::after,
body.cemiterio-scroll-mode.periodo-dia .cemiterio-scroll-shell{
  filter:none;
}

/* Tarde / pôr do sol: toda a área do cemitério recebe luz quente. */
body.cemiterio-scroll-mode.periodo-entardecer .entrada-scroll::after{
  filter:brightness(.86) saturate(.92) sepia(.16) hue-rotate(-7deg);
}

body.cemiterio-scroll-mode.periodo-entardecer .cemiterio-scroll-shell{
  filter:brightness(.84) saturate(.90) sepia(.12);
}

/* Noite: escurece o mundo, preservando céu, lua e estrelas. */
body.cemiterio-scroll-mode.periodo-noite .entrada-scroll::after,
body.cemiterio-scroll-mode.modo-noturno .entrada-scroll::after{
  filter:brightness(.52) saturate(.68) hue-rotate(8deg);
}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-shell,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-shell{
  filter:brightness(.58) saturate(.72) hue-rotate(7deg);
}

/* Elementos de interface não devem ficar escuros junto com o cenário. */
body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-points,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-points{
  filter:brightness(1.72) saturate(1.18) hue-rotate(-7deg);
}

/* Durante o pôr do sol as estradas acompanham a iluminação do ambiente. */
body.cemiterio-scroll-mode.periodo-entardecer .scroll-quarter-road{
  filter:brightness(.82) saturate(.92) sepia(.12);
}

/* À noite a estrada também perde luminosidade. */
body.cemiterio-scroll-mode.periodo-noite .scroll-quarter-road,
body.cemiterio-scroll-mode.modo-noturno .scroll-quarter-road{
  filter:brightness(.58) saturate(.72);
}


/* v1.1.131 — texto inteligente dentro da área útil do túmulo */
.scroll-tomb-field{
  box-sizing:border-box;
  overflow:hidden;
  text-overflow:clip;
}
.scroll-name,
.scroll-dates{
  transform:translate(-50%,-50%);
  transform-origin:center;
}


/* =========================================================
   v1.1.132 — túmulo sem cuidado por ausência do proprietário
   ========================================================= */
.scroll-tomb-neglected-layer{
  position:absolute;
  left:-4%;
  right:-4%;
  bottom:-5%;
  top:auto;
  z-index:2;
  display:block;
  width:108%;
  height:48%;
  overflow:hidden;
  pointer-events:none;
  transform:scale(var(--neglected-scale,1));
  transform-origin:center bottom;
}
.scroll-tomb-neglected-layer>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center bottom;
  image-rendering:pixelated;
  pointer-events:none;
}
/* No celular a imagem possui uma proporção mais alta. Não a recorte: a
 * transparência da arte permite que toda a folhagem apareça sobre a base. */
@media(max-width:767.98px){
  .scroll-tomb-neglected-layer{
    left:-10%;
    right:-10%;
    bottom:-8%;
    width:120%;
    height:auto;
    overflow:visible;
  }
  .scroll-tomb-neglected-layer>img{
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    object-position:center bottom;
  }
}
.scroll-tomb-neglected-demo{
  overflow:visible;
  transform:none;
}
.scroll-tomb-neglected-demo i{
  position:absolute;
  display:block;
  border-radius:50%;
  background:rgba(84,92,57,.35);
  filter:blur(.3px);
}
.scroll-tomb-neglected-demo i:nth-of-type(1){left:23%;top:48%;width:45%;height:12%;transform:rotate(-8deg)}
.scroll-tomb-neglected-demo i:nth-of-type(2){left:48%;top:61%;width:29%;height:9%;transform:rotate(12deg);background:rgba(74,69,46,.33)}
.scroll-tomb-neglected-demo i:nth-of-type(3){left:18%;top:68%;width:36%;height:8%;transform:rotate(5deg);background:rgba(62,88,48,.29)}
.scroll-tomb-neglected-demo b{
  position:absolute;
  font-size:clamp(12px,1em,20px);
  line-height:1;
  filter:saturate(.65);
}
.scroll-tomb-neglected-demo b:nth-of-type(1){left:18%;bottom:9%;transform:rotate(-24deg)}
.scroll-tomb-neglected-demo b:nth-of-type(2){right:15%;bottom:15%;transform:rotate(18deg)}

/* v1.1.161 — as placas da entrada preservam exatamente a paleta original.
   O escurecimento noturno sai do contêiner pai e passa somente para o mapa. */
body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-shell,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-shell{
  filter:none !important;
}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-lista,
body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-loader,
body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-sentinel,
body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-fim,
body.cemiterio-scroll-mode.periodo-noite .cerca-scroll-final,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-lista,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-loader,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-sentinel,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-fim,
body.cemiterio-scroll-mode.modo-noturno .cerca-scroll-final{
  filter:brightness(.58) saturate(.72) hue-rotate(7deg);
}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-points,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-points{
  filter:none !important;
}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point img,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point img{
  filter:drop-shadow(0 0 12px rgba(255,225,144,.72)) !important;
}

/* v1.1.162 — a recepção fica com a arte original, iluminada pelos holofotes. */
body.cemiterio-scroll-mode.periodo-noite .entrada-scroll::after,
body.cemiterio-scroll-mode.modo-noturno .entrada-scroll::after,
body.cemiterio-scroll-mode.periodo-noite #portalEntradaPrincipal,
body.cemiterio-scroll-mode.modo-noturno #portalEntradaPrincipal{
  filter:none !important;
}

/* v1.1.163 — remove a linha residual nas laterais dos fachos das placas. */
body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point,
body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point:focus,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point:focus{
  outline:0 !important;
  box-shadow:none !important;
}

body.cemiterio-scroll-mode.periodo-noite .cemiterio-info-point::before,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-info-point::before{
  width:100%;
  height:88%;
  clip-path:none;
  background:conic-gradient(from 315deg at 50% 100%,
    transparent 0deg,
    rgba(255,237,180,.08) 20deg,
    rgba(255,235,167,.68) 45deg,
    rgba(255,237,180,.08) 70deg,
    transparent 90deg);
  filter:none;
  mix-blend-mode:normal;
  animation:none;
}

/* v1.1.175 — estrutura única e responsiva da Capela das Lembranças. */
.capela-overlay .capela-cabecalho{
  position:absolute !important;
  top:28px !important;
  left:32px !important;
  z-index:24 !important;
  width:min(620px,calc(100vw - 220px)) !important;
  max-width:none !important;
  margin:0 !important;
  padding:15px 18px !important;
  border:4px solid #0f0f0f !important;
  border-radius:0 !important;
  background:rgba(21,17,38,.92) !important;
  box-shadow:6px 6px 0 rgba(0,0,0,.22) !important;
  backdrop-filter:none !important;
}
.capela-overlay .capela-cabecalho strong{
  display:block !important;
  margin:0 !important;
  color:#f8d77d !important;
  font-size:18px !important;
  line-height:1.15 !important;
  text-transform:uppercase !important;
  text-shadow:none !important;
}
.capela-overlay .capela-cabecalho>span:last-child{
  display:block !important;
  margin-top:6px !important;
  color:#dfd8ea !important;
  font:12px/1.45 Arial,sans-serif !important;
}
.capela-overlay .capela-sair{
  position:absolute !important;
  top:28px !important;
  right:32px !important;
  left:auto !important;
  z-index:25 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:180px !important;
  height:52px !important;
  margin:0 !important;
  padding:0 18px !important;
  border:4px solid #111 !important;
  border-radius:0 !important;
  background:#f1d16f !important;
  color:#111 !important;
  font-size:11px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  box-shadow:5px 5px 0 rgba(0,0,0,.22) !important;
  opacity:1 !important;
  transform:none !important;
  backdrop-filter:none !important;
}
.capela-overlay .capela-galeria{
  position:absolute !important;
  right:50% !important;
  bottom:34px !important;
  left:auto !important;
  z-index:16 !important;
  width:min(1120px,calc(100vw - 64px)) !important;
  max-width:none !important;
  margin:0 !important;
  padding:18px !important;
  transform:translateX(50%) !important;
  border:4px solid rgba(30,20,14,.92) !important;
  border-radius:12px !important;
  background:rgba(22,13,10,.82) !important;
  box-shadow:8px 8px 0 rgba(0,0,0,.24) !important;
  backdrop-filter:blur(2px) !important;
}
.capela-overlay .capela-galeria-titulo{
  display:block !important;
  width:100% !important;
  margin:0 0 12px !important;
  padding:0 0 10px !important;
  border-bottom:2px solid rgba(248,231,176,.22) !important;
  color:#f8e7b0 !important;
  font-size:13px !important;
  font-weight:900 !important;
  text-align:left !important;
  text-shadow:3px 3px 0 rgba(0,0,0,.32) !important;
}
.capela-overlay .capela-faixa-viewport{border-radius:0 !important}
.capela-overlay .capela-faixa{min-height:164px !important;align-items:center !important}
.capela-overlay .capela-faixa-vazia{
  width:100% !important;
  margin:0 !important;
  padding:26px 18px !important;
  border:2px solid rgba(248,231,176,.18) !important;
  background:rgba(8,8,16,.42) !important;
  color:#f4ede2 !important;
  font:700 14px/1.4 Arial,sans-serif !important;
  text-align:center !important;
}
.capela-overlay .capela-faixa.capela-faixa-sem-pets{
  width:100% !important;
  animation:none !important;
  transform:none !important;
}
.capela-overlay .capela-historia{z-index:30 !important}
@media (max-width:767.98px){
  .capela-overlay .capela-cabecalho{top:14px !important;left:14px !important;width:calc(100vw - 144px) !important;padding:10px 12px !important}
  .capela-overlay .capela-cabecalho strong{font-size:13px !important}
  .capela-overlay .capela-cabecalho>span:last-child{font-size:10px !important}
  .capela-overlay .capela-sair{top:14px !important;right:14px !important;min-width:108px !important;height:44px !important;padding:0 9px !important;font-size:8px !important}
  .capela-overlay .capela-galeria{bottom:16px !important;width:calc(100vw - 28px) !important;padding:12px !important}
  .capela-overlay .capela-faixa{min-height:110px !important}
  .capela-overlay .capela-faixa-vazia{padding:18px 12px !important;font-size:12px !important}
}

/* O ícone usa a mesma cor do texto do botão. */
.capela-overlay .capela-sair i{color:#111 !important}

/* Memorial gratuito: a foto de perfil deve permanecer visível.
 * A regra anterior escondia o avatar inteiro e, por isso, a imagem enviada
 * aparecia no banco, mas não no modal público. */
.memorial-fullscreen.memorial-gratis .memorial-perfil-avatar{
  display:grid !important;
  position:absolute !important;
  left:50% !important;
  bottom:calc(100% + 14px) !important;
  z-index:24 !important;
  width:104px !important;
  height:104px !important;
  padding:0 !important;
  overflow:hidden !important;
  transform:translateX(-50%) !important;
  border:4px solid #f8d77d !important;
  border-radius:50% !important;
  background:#211b32 !important;
  box-shadow:5px 5px 0 rgba(0,0,0,.28) !important;
  font-size:42px !important;
}
.memorial-fullscreen.memorial-gratis .memorial-perfil-avatar img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
}
.memorial-fullscreen.memorial-gratis .memorial-perfil-identidade{
  position:relative !important;
}
@media(max-width:767.98px){
  .memorial-fullscreen.memorial-gratis .memorial-perfil-avatar{
    width:82px !important;
    height:82px !important;
    bottom:calc(100% + 10px) !important;
  }
}

/* Modal de cuidado comunitário para túmulos abandonados. */
.ep-care-modal{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;padding:20px;background:rgba(12,10,20,.72);backdrop-filter:blur(8px);animation:ep-care-in .2s ease-out}
.ep-care-card{position:relative;width:min(620px,100%);max-height:min(760px,calc(100dvh - 40px));overflow:auto;padding:34px;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:linear-gradient(145deg,#252039,#171428);box-shadow:0 24px 80px rgba(0,0,0,.5);color:#f7f5ff;font-family:Arial,sans-serif}
.ep-care-icon{width:52px;height:52px;display:grid;place-items:center;margin-bottom:14px;border-radius:16px;background:linear-gradient(135deg,#f8d77d,#dcae55);color:#392619;font-size:26px;box-shadow:0 8px 22px rgba(220,174,85,.24)}
.ep-care-kicker{color:#f7d97e;font-size:11px;font-weight:900;letter-spacing:.12em}.ep-care-card h2{margin:8px 0 10px;font-size:28px;line-height:1.05}.ep-care-card p{margin:0;color:#d5cfe4;font-size:15px;line-height:1.55}.ep-care-card h3{margin:25px 0 12px;font-size:14px}.ep-care-close{position:absolute;top:17px;right:17px;width:36px;height:36px;border:0;border-radius:11px;background:rgba(255,255,255,.08);color:#fff;font-size:27px;line-height:1;cursor:pointer}.ep-care-options{display:grid;gap:9px}.ep-care-option{display:flex;align-items:flex-start;gap:11px;width:100%;padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.045);color:#edeaf6;text-align:left;font:600 13px/1.35 Arial,sans-serif;cursor:pointer;transition:.18s}.ep-care-option span{flex:0 0 23px;height:23px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.1);color:#f7d97e;font-size:11px}.ep-care-option:hover,.ep-care-option.selected{border-color:#8d7cf4;background:rgba(119,97,234,.18);transform:translateY(-1px)}.ep-care-option.selected span{background:#8d7cf4;color:#fff}.ep-care-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.ep-care-actions button{min-height:45px;padding:0 17px;border-radius:12px;font-weight:800;cursor:pointer}.ep-care-cancel{border:0;background:transparent;color:#d5cfe4}.ep-care-confirm{border:0;background:linear-gradient(135deg,#7560df,#4e39bb);color:#fff;box-shadow:0 8px 20px rgba(82,61,193,.32)}.ep-care-confirm:disabled{opacity:.7;cursor:wait}.ep-care-success{padding:35px 10px;text-align:center;color:#8de0ae;font-size:48px}.ep-care-success h2{margin:14px 0 8px;color:#fff}.ep-care-success p{color:#d5cfe4;font-size:15px}@keyframes ep-care-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media(max-width:600px){.ep-care-modal{padding:12px}.ep-care-card{max-height:calc(100dvh - 24px);padding:25px 18px;border-radius:20px}.ep-care-card h2{font-size:24px}.ep-care-option{padding:11px;font-size:12px}.ep-care-actions{position:sticky;bottom:-25px;margin:20px -18px -25px;padding:13px 18px;background:#171428}.ep-care-actions button{flex:1;padding:0 10px}}

/* =========================================================
   v1.1.209 — túmulos em cor original no modo noturno
   ========================================================= */
/*
 * O modo noturno não pode ser aplicado ao contêiner que também contém os
 * memoriais. Um filtro no ancestral é composto depois dos filhos e não pode
 * ser anulado com precisão por um filtro inverso no túmulo. Isso causava os
 * brancos estourados. O ambiente continua escurecido pela camada noturna de
 * .cemiterio-scroll::before, enquanto os sprites permanecem intactos.
 */
body.cemiterio-scroll-mode.periodo-noite .cemiterio-scroll-lista,
body.cemiterio-scroll-mode.modo-noturno .cemiterio-scroll-lista{
  filter:none !important;
}

body.cemiterio-scroll-mode.periodo-noite .scroll-tomb,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb,
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-background-wrap,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-background-wrap,
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-model,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-model,
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-model img,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-model img,
body.cemiterio-scroll-mode.periodo-noite .scroll-tomb-art,
body.cemiterio-scroll-mode.modo-noturno .scroll-tomb-art,
body.cemiterio-scroll-mode.periodo-noite .scroll-empty-tomb,
body.cemiterio-scroll-mode.modo-noturno .scroll-empty-tomb{
  filter:none !important;
  box-shadow:none !important;
  text-shadow:none !important;
}

/* v1.1.223 — foto nos momentos da linha da história */
.memorial-timeline-foto{display:block;width:min(100%,420px);max-height:280px;object-fit:cover;border-radius:12px;margin-top:10px}


/* =========================================================
   v1.1.243 — mobile respeita o tamanho original dos túmulos
   ========================================================= */
/*
 * Em telas pequenas a quantidade de colunas é calculada pelo JavaScript
 * a partir da largura real configurada no painel. O sprite não é mais
 * reduzido para forçar três túmulos por linha.
 */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tomb,
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tomb,
  body.cemiterio-scroll-mode .tombs-30-block .scroll-tomb,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tomb{
    transform:none !important;
    transform-origin:center !important;
    width:100% !important;
    max-width:none !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-model,
  body.cemiterio-scroll-mode .scroll-tomb-background-wrap{
    max-width:none !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb img,
  body.cemiterio-scroll-mode .scroll-tomb .scroll-tomb-art,
  body.cemiterio-scroll-mode .scroll-tomb .scroll-empty-tomb,
  body.cemiterio-scroll-mode .scroll-tomb .lapide,
  body.cemiterio-scroll-mode .scroll-tomb .lapide-mini{
    max-width:none !important;
  }

  body.cemiterio-scroll-mode .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
    grid-template-columns:repeat(var(--tombs-per-row,2),minmax(0,1fr)) !important;
  }
}


/* =========================================================
   v1.1.246 — memorial aberto a partir da Capela
   ========================================================= */
body.cemiterio-scroll-mode.memorial-aberto-da-capela #memorialFullscreen.ativo{
  z-index:2147483646 !important;
  pointer-events:auto !important;
}
body.cemiterio-scroll-mode.memorial-aberto-da-capela #capelaOverlay.ativo{
  pointer-events:none !important;
}

/* =========================================================
   v1.1.248 — grade mobile realmente responsiva
   ========================================================= */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-tombs-grid{
    grid-template-columns:repeat(var(--tombs-per-row,2),minmax(0,1fr)) !important;
    column-gap:var(--tomb-grid-gap,12px) !important;
    row-gap:var(--tomb-grid-row-gap,38px) !important;
    width:100% !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-col{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  /* Mantém a proporção do sprite, mas impede que uma configuração desktop
     maior que a célula obrigue a grade inteira a cair para uma coluna. */
  body.cemiterio-scroll-mode .scroll-tomb-model,
  body.cemiterio-scroll-mode .scroll-tomb-background-wrap{
    max-width:100% !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-model img,
  body.cemiterio-scroll-mode .scroll-tomb-art,
  body.cemiterio-scroll-mode .scroll-empty-tomb{
    max-width:100% !important;
    height:auto !important;
  }
}

/* =========================================================
   v1.1.326 — mobile: memorial ocupado com a mesma área do lote vago
   ========================================================= */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tomb-background-wrap{
    width:min(var(--eterno-pet-vacant-tombstone-width,104px),100%) !important;
    height:var(--eterno-pet-vacant-tombstone-height,138px) !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap > .scroll-tomb-model{
    width:100% !important;
    height:100% !important;
    aspect-ratio:auto !important;
    display:block !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-tomb-art{
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain !important;
  }

  body.cemiterio-scroll-mode .scroll-empty-tomb{
    width:min(var(--eterno-pet-vacant-tombstone-width,104px),100%) !important;
    height:var(--eterno-pet-vacant-tombstone-height,138px) !important;
    object-fit:contain !important;
  }
}


/* =========================================================
   v1.1.326 — mobile: compensa margem transparente dos sprites ocupados
   ========================================================= */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tomb-background-wrap{
    overflow:visible !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap > .scroll-tomb-model{
    width:100% !important;
    height:100% !important;
    transform:scale(1.48) !important;
    transform-origin:center bottom !important;
    overflow:visible !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-tomb-art{
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center bottom !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-tomb-field{
    transform:translate(-50%,-50%) scale(.76) !important;
    transform-origin:center !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-candle{
    transform:translate(-50%,-50%) scale(.76) !important;
  }
}


/* =========================================================
   v1.1.326 — mobile: alinhar memorial ocupado e ampliar +20%
   ========================================================= */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tomb{
    position:relative !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap{
    position:absolute !important;
    left:50% !important;
    bottom:0 !important;
    width:100% !important;
    height:100% !important;
    transform:translateX(-50%) !important;
    transform-origin:center bottom !important;
    overflow:visible !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap > .scroll-tomb-model{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    margin:0 auto !important;
    width:100% !important;
    height:100% !important;
    transform:scale(1.776) !important;
    transform-origin:center bottom !important;
    overflow:visible !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-tomb-art{
    display:block !important;
    margin:0 auto !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center bottom !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-tomb-field{
    left:50% !important;
    transform:translate(-50%,-50%) scale(.64) !important;
    transform-origin:center !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-candle{
    transform:translate(-50%,-50%) scale(.64) !important;
  }
}


/* =========================================================
   v1.1.326 — mobile: restaura sprite, centraliza e mantém +20%
   ========================================================= */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tomb{
    position:relative !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    margin:0 auto !important;
    width:min(var(--eterno-pet-vacant-tombstone-width,104px),100%) !important;
    height:var(--eterno-pet-vacant-tombstone-height,138px) !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    overflow:visible !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap > .scroll-tomb-model{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    margin:0 auto !important;
    width:100% !important;
    height:100% !important;
    aspect-ratio:auto !important;
    transform:scale(1.776) !important;
    transform-origin:center bottom !important;
    overflow:visible !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-tomb-art{
    position:absolute !important;
    inset:0 !important;
    display:block !important;
    margin:0 auto !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center bottom !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-tomb-field{
    left:50% !important;
    transform:translate(-50%,-50%) scale(.64) !important;
    transform-origin:center !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap .scroll-candle{
    transform:translate(-50%,-50%) scale(.64) !important;
  }
}

/* =========================================================
   v1.1.326 — mobile: alinha todos os túmulos pela mesma base da linha
   ========================================================= */
@media(max-width:767.98px){
  body.cemiterio-scroll-mode .scroll-tombs-grid{
    align-items:stretch !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-col{
    display:flex !important;
    align-items:stretch !important;
    justify-content:center !important;
    align-self:stretch !important;
    min-height:0 !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb{
    height:100% !important;
    min-height:var(--eterno-pet-vacant-tombstone-height,138px) !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    align-self:stretch !important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-background-wrap{
    margin:auto auto 0 !important;
    align-self:flex-end !important;
  }

  body.cemiterio-scroll-mode .scroll-empty-tomb{
    display:block !important;
    margin:auto auto 0 !important;
    align-self:flex-end !important;
  }
}


/* v1.1.326 — máscara de abandono: preservar PNG/WebP transparente sem deformar. */
.scroll-tomb-neglected-layer{
  overflow:visible;
}
.scroll-tomb-neglected-layer>img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center bottom;
}


/* =========================================================
   v1.1.326 — camada de abandono sempre visível e acima do túmulo
   ========================================================= */
.scroll-tomb-model{
  isolation:isolate;
}
.scroll-tomb-model>.scroll-tomb-art{
  z-index:0!important;
}
.scroll-tomb-neglected-layer{
  position:absolute!important;
  left:-8%!important;
  right:auto!important;
  bottom:-6%!important;
  top:auto!important;
  width:116%!important;
  height:58%!important;
  z-index:8!important;
  display:block!important;
  overflow:visible!important;
  pointer-events:none!important;
  transform:scale(var(--neglected-scale,1))!important;
  transform-origin:center bottom!important;
}
.scroll-tomb-neglected-layer>img{
  position:absolute!important;
  inset:auto 0 0 0!important;
  z-index:2!important;
  display:block;
  width:100%!important;
  height:auto!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  image-rendering:pixelated;
}
.scroll-tomb-neglected-fallback{
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  opacity:1;
  transition:opacity .15s ease;
}
.scroll-tomb-neglected-layer.has-image .scroll-tomb-neglected-fallback{
  opacity:.18;
}
.scroll-tomb-neglected-fallback i{
  position:absolute;
  display:block;
  border-radius:50%;
  background:rgba(63,85,42,.38);
  filter:blur(.2px);
}
.scroll-tomb-neglected-fallback i:nth-of-type(1){left:14%;bottom:10%;width:52%;height:22%;transform:rotate(-8deg)}
.scroll-tomb-neglected-fallback i:nth-of-type(2){right:8%;bottom:4%;width:44%;height:18%;transform:rotate(9deg);background:rgba(84,69,43,.34)}
.scroll-tomb-neglected-fallback i:nth-of-type(3){left:36%;bottom:24%;width:34%;height:16%;transform:rotate(13deg);background:rgba(70,91,45,.3)}
.scroll-tomb-neglected-fallback b{
  position:absolute;
  bottom:8%;
  font-size:14px;
  line-height:1;
  filter:saturate(.65);
}
.scroll-tomb-neglected-fallback b:nth-of-type(1){left:17%;transform:rotate(-24deg)}
.scroll-tomb-neglected-fallback b:nth-of-type(2){right:14%;bottom:15%;transform:rotate(18deg)}
.scroll-tomb-model:has(.scroll-tomb-neglected-layer) .scroll-tomb-field.scroll-name,
.scroll-tomb-model:has(.scroll-tomb-neglected-layer) .scroll-tomb-field.scroll-dates{
  z-index:3!important;
}
@media(max-width:767.98px){
  .scroll-tomb-neglected-layer{
    left:-12%!important;
    width:124%!important;
    height:62%!important;
    bottom:-8%!important;
  }
}


/* =========================================================
   v1.1.326 — máscara de abandono em toda a área do memorial
   ========================================================= */
.scroll-tomb-model{
  overflow:visible!important;
  isolation:isolate;
}
.scroll-tomb-model>.scroll-tomb-art{
  position:relative;
  z-index:1!important;
}
.scroll-tomb-neglected-layer{
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  top:50%!important;
  bottom:auto!important;
  width:138%!important;
  height:118%!important;
  z-index:30!important;
  display:block!important;
  overflow:visible!important;
  pointer-events:none!important;
  transform:translate(-50%,-50%) scale(var(--neglected-scale,1))!important;
  transform-origin:center center!important;
  opacity:1!important;
}
.scroll-tomb-neglected-layer>img{
  position:absolute!important;
  left:50%!important;
  bottom:0!important;
  top:auto!important;
  right:auto!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  transform:translateX(-50%)!important;
  opacity:1!important;
  visibility:visible!important;
  z-index:4!important;
  image-rendering:pixelated;
  pointer-events:none!important;
}

/* O fallback só aparece quando a imagem realmente falha. */
.scroll-tomb-neglected-fallback{
  z-index:2!important;
  opacity:1!important;
}
.scroll-tomb-neglected-layer.has-image .scroll-tomb-neglected-fallback{
  opacity:0!important;
}

/* Ramos/vegetação ficam acima das inscrições do túmulo. */
.scroll-tomb-model:has(.scroll-tomb-neglected-layer) .scroll-tomb-field.scroll-name,
.scroll-tomb-model:has(.scroll-tomb-neglected-layer) .scroll-tomb-field.scroll-dates{
  z-index:3!important;
}

/* Em telas menores preserva o mesmo enquadramento sem achatar a máscara. */
@media(max-width:767.98px){
  .scroll-tomb-neglected-layer{
    width:145%!important;
    height:124%!important;
    top:51%!important;
  }
}


/* =========================================================
   v1.1.326 — mobile: máscara de abandono sem recorte lateral
   ========================================================= */
@media(max-width:767.98px){
  .scroll-tomb,
  .scroll-tomb-background-wrap,
  .scroll-tomb-model{
    overflow:visible!important;
  }

  .scroll-tomb-background-wrap{
    position:relative;
    z-index:1;
  }

  .scroll-tomb-model{
    position:relative;
    isolation:isolate;
  }

  .scroll-tomb-neglected-layer{
    left:50%!important;
    right:auto!important;
    width:152%!important;
    height:126%!important;
    max-width:none!important;
    overflow:visible!important;
    clip-path:none!important;
    transform:translate(-50%,-50%) scale(var(--neglected-scale,1))!important;
  }

  .scroll-tomb-neglected-layer>img{
    left:50%!important;
    right:auto!important;
    width:100%!important;
    max-width:none!important;
    overflow:visible!important;
    clip-path:none!important;
    transform:translateX(-50%)!important;
  }

  /* Nas colunas externas, a máscara continua centralizada no túmulo e não
   * é empurrada para dentro, evitando o corte do lado esquerdo/direito. */
  .cemiterio-scroll-lista,
  .cemiterio-scroll-shell,
  .cemiterio-scroll-world,
  .cemiterio-scroll-grid,
  .scroll-quarter,
  .scroll-quarter-inner{
    overflow:visible!important;
  }
}


/* =========================================================
   v1.1.326 — correção definitiva do recorte lateral da máscara
   ========================================================= */
@media(max-width:767.98px){

  /*
   * Há regras antigas com:
   * body.cemiterio-scroll-mode .scroll-quarter {
   *   overflow-x:hidden !important;
   * }
   *
   * Esta sobrescrita usa a mesma especificidade para que a máscara possa
   * ultrapassar a célula do túmulo nas colunas externas.
   */
  body.cemiterio-scroll-mode .scroll-quarter,
  body.cemiterio-scroll-mode .scroll-quarter-stage,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test{
    overflow:visible!important;
    overflow-x:visible!important;
    overflow-y:visible!important;
    clip-path:none!important;
    contain:none!important;
  }

  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
    overflow:visible!important;
    clip-path:none!important;
    contain:none!important;
    box-sizing:border-box!important;

    /*
     * Pequena margem interna para a arte de abandono das colunas da ponta
     * continuar dentro da largura útil do cemitério/viewport.
     */
    padding-left:14px!important;
    padding-right:14px!important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-col,
  body.cemiterio-scroll-mode .scroll-tomb,
  body.cemiterio-scroll-mode .scroll-tomb-background-wrap,
  body.cemiterio-scroll-mode .scroll-tomb-model{
    overflow:visible!important;
    overflow-x:visible!important;
    overflow-y:visible!important;
    clip-path:none!important;
    contain:none!important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-neglected-layer{
    left:50%!important;
    right:auto!important;
    width:145%!important;
    height:124%!important;
    max-width:none!important;
    overflow:visible!important;
    clip-path:none!important;
    contain:none!important;
    transform:translate(-50%,-50%) scale(var(--neglected-scale,1))!important;
    transform-origin:center center!important;
  }

  body.cemiterio-scroll-mode .scroll-tomb-neglected-layer>img{
    left:50%!important;
    right:auto!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    overflow:visible!important;
    clip-path:none!important;
    object-fit:contain!important;
    object-position:center bottom!important;
    transform:translateX(-50%)!important;
  }
}

/* Telas muito estreitas ganham um pouco mais de margem de segurança. */
@media(max-width:430px){
  body.cemiterio-scroll-mode .scroll-quarter-stage .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-30-block .scroll-tombs-grid,
  body.cemiterio-scroll-mode .scroll-quarter-stage.tombs-only-test .scroll-tombs-grid{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}


/* =========================================================
   v1.1.326 — aniversário no memorial de demonstração
   ========================================================= */
.scroll-tomb-model{
  overflow:visible!important;
}
.scroll-demo-birthday-balloon{
  position:absolute;
  right:-18%;
  top:-24%;
  z-index:60;
  width:48px;
  height:92px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  overflow:visible;
  pointer-events:auto;
  animation:ep-demo-birthday-float 2s ease-in-out infinite alternate;
  transform-origin:50% 85%;
}
.scroll-demo-birthday-balloon-shape{
  position:absolute;
  left:50%;
  top:0;
  width:38px;
  height:47px;
  transform:translateX(-50%);
  border:3px solid #1b1b1b;
  border-radius:52% 52% 48% 48%;
  background:#e93c49;
  box-shadow:inset 6px 5px 0 rgba(255,255,255,.22),3px 4px 0 rgba(0,0,0,.14);
}
.scroll-demo-birthday-balloon-shape:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-9px;
  transform:translateX(-50%);
  width:0;
  height:0;
  border-left:6px solid transparent;
  border-right:6px solid transparent;
  border-top:10px solid #1b1b1b;
}
.scroll-demo-birthday-balloon-shape i{
  position:absolute;
  left:9px;
  top:8px;
  width:7px;
  height:11px;
  border-radius:50%;
  background:rgba(255,255,255,.58);
  transform:rotate(26deg);
}
.scroll-demo-birthday-balloon-string{
  position:absolute;
  left:50%;
  top:51px;
  width:2px;
  height:41px;
  transform:translateX(-50%);
  background:#88766c;
  box-shadow:1px 0 0 rgba(0,0,0,.12);
}
.scroll-demo-birthday-balloon:hover{
  filter:brightness(1.07);
}
.scroll-demo-birthday-balloon:focus-visible{
  outline:3px solid rgba(233,60,73,.35);
  outline-offset:4px;
  border-radius:999px;
}
@keyframes ep-demo-birthday-float{
  from{transform:translateY(3px) rotate(-2deg)}
  to{transform:translateY(-7px) rotate(2deg)}
}

/* O modal de aniversário usa a foto do pet quando existir. */
#modalAniversarioPet .aniversario-pet-avatar img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Mobile: aproxima o balão do memorial para não cortar na borda da tela. */
@media(max-width:767.98px){
  .scroll-demo-birthday-balloon{
    right:-8%;
    top:-22%;
    transform:scale(.9);
  }
}


/* =========================================================
   v1.1.326 — balão de aniversário do painel no memorial demo
   ========================================================= */
.scroll-tomb-background-wrap,
.scroll-tomb-model{
  overflow:visible!important;
}
.scroll-tomb-model{
  position:relative!important;
  isolation:isolate;
}
.scroll-demo-birthday-balloon{
  --demo-balloon-width:48px;
  width:var(--demo-balloon-width)!important;
  height:auto!important;
  min-height:74px;
  right:-8%!important;
  top:auto!important;
  bottom:calc(100% - 12px)!important;
  z-index:500!important;
  display:block;
  overflow:visible!important;
  transform-origin:50% 100%;
}
.scroll-demo-birthday-balloon.has-custom-image{
  min-height:0;
  aspect-ratio:auto;
}
.scroll-demo-birthday-balloon-image{
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  height:auto;
  max-width:none;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 4px 3px rgba(0,0,0,.16));
}
.scroll-demo-birthday-balloon.has-custom-image .scroll-demo-birthday-balloon-shape,
.scroll-demo-birthday-balloon.has-custom-image .scroll-demo-birthday-balloon-string{
  display:none!important;
}
/* Camadas independentes: não sobrescrever o posicionamento dos textos. */
.scroll-tomb-art{
  position:relative;
  z-index:10;
}
.scroll-tomb-field{
  position:absolute!important;
  z-index:45!important;
}
.scroll-tomb-neglected-layer{
  position:absolute!important;
  z-index:35!important;
}
.scroll-demo-birthday-balloon{
  position:absolute!important;
  z-index:120!important;
}
@keyframes ep-demo-birthday-float{
  from{transform:translateY(2px) rotate(-1.5deg)}
  to{transform:translateY(-8px) rotate(1.5deg)}
}
@media(max-width:767.98px){
  .scroll-demo-birthday-balloon{
    right:-2%!important;
    bottom:calc(100% - 10px)!important;
    transform:none;
  }
}


/* =========================================================
   v1.1.326 — correção de camadas: texto, abandono e balão
   ========================================================= */
.scroll-tomb-background-wrap{
  position:relative!important;
  overflow:visible!important;
}
.scroll-tomb-model{
  position:relative!important;
  overflow:visible!important;
  isolation:isolate;
}
.scroll-tomb-art{
  position:relative!important;
  z-index:10!important;
}
.scroll-tomb-field.scroll-name,
.scroll-tomb-field.scroll-dates,
.scroll-tomb-field.scroll-candle{
  position:absolute!important;
  z-index:45!important;
}
.scroll-tomb-neglected-layer{
  position:absolute!important;
  z-index:35!important;
}
.scroll-demo-birthday-balloon{
  position:absolute!important;
  left:auto!important;
  right:-10%!important;
  top:-30%!important;
  bottom:auto!important;
  z-index:120!important;
  width:var(--demo-balloon-width,48px)!important;
  overflow:visible!important;
  pointer-events:auto!important;
}
.scroll-demo-birthday-balloon-image{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  visibility:visible!important;
  opacity:1!important;
}
@media(max-width:767.98px){
  .scroll-demo-birthday-balloon{
    right:-2%!important;
    top:-26%!important;
    bottom:auto!important;
  }
}


/* =========================================================
   v1.1.326 — balão centralizado à frente do túmulo
   ========================================================= */
.scroll-tomb-model{
  position:relative!important;
  overflow:visible!important;
  isolation:isolate;
}

.scroll-tomb-art{
  position:relative!important;
  z-index:10!important;
}

.scroll-tomb-field.scroll-name,
.scroll-tomb-field.scroll-dates,
.scroll-tomb-field.scroll-candle{
  position:absolute!important;
  z-index:45!important;
}

.scroll-tomb-neglected-layer{
  position:absolute!important;
  z-index:35!important;
}

/* O balão fica visualmente no centro do memorial e acima de todas as camadas. */
.scroll-demo-birthday-balloon{
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  top:50%!important;
  bottom:auto!important;
  z-index:999!important;
  width:var(--demo-balloon-width,48px)!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  pointer-events:auto!important;
  transform:translate(-50%,-50%)!important;
  transform-origin:center center!important;
  animation:ep-demo-birthday-float-center 2s ease-in-out infinite alternate!important;
}

.scroll-demo-birthday-balloon-image{
  position:relative!important;
  z-index:1000!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
  filter:drop-shadow(0 5px 4px rgba(0,0,0,.22));
}

/* Fallback em CSS, usado apenas quando não houver imagem configurada no painel. */
.scroll-demo-birthday-balloon-shape,
.scroll-demo-birthday-balloon-string{
  z-index:1000!important;
}

@keyframes ep-demo-birthday-float-center{
  from{
    transform:translate(-50%,calc(-50% + 3px)) rotate(-1.5deg);
  }
  to{
    transform:translate(-50%,calc(-50% - 7px)) rotate(1.5deg);
  }
}

/* No mobile ele permanece centralizado e não é deslocado para as bordas. */
@media(max-width:767.98px){
  .scroll-demo-birthday-balloon{
    left:50%!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    transform:translate(-50%,-50%)!important;
  }
}


/* =========================================================
   v1.1.326 — flutuação suave do balão de aniversário
   ========================================================= */
.scroll-demo-birthday-balloon{
  animation:ep-birthday-balloon-float 2.8s ease-in-out infinite!important;
  will-change:transform;
}

@keyframes ep-birthday-balloon-float{
  0%{
    transform:translate(-50%,-50%) translateY(2px) rotate(-1.5deg);
  }
  25%{
    transform:translate(-50%,-50%) translateY(-5px) rotate(.8deg);
  }
  50%{
    transform:translate(-50%,-50%) translateY(-10px) rotate(1.8deg);
  }
  75%{
    transform:translate(-50%,-50%) translateY(-5px) rotate(-.6deg);
  }
  100%{
    transform:translate(-50%,-50%) translateY(2px) rotate(-1.5deg);
  }
}

/* Pequena oscilação do fio/imagem sem exagero visual. */
.scroll-demo-birthday-balloon-image{
  transform-origin:50% 100%;
  animation:ep-birthday-balloon-sway 3.6s ease-in-out infinite;
}

@keyframes ep-birthday-balloon-sway{
  0%,100%{transform:rotate(-1deg)}
  50%{transform:rotate(1deg)}
}

@media(prefers-reduced-motion:reduce){
  .scroll-demo-birthday-balloon,
  .scroll-demo-birthday-balloon-image{
    animation:none!important;
  }
}


/* =========================================================
   v1.1.326 — galeria dos produtos da Lojinha Eterna
   ========================================================= */
.loja-produto-galeria{
  min-width:0;
}
.loja-produto-galeria>.loja-produto-principal{
  width:100%;
  aspect-ratio:1/1;
  display:block;
  object-fit:cover;
  border-radius:14px;
}
.loja-produto-miniaturas{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
  margin-top:6px;
}
.loja-produto-miniaturas>span{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  border:1px solid rgba(91,81,184,.15);
  border-radius:7px;
  background:#f4f4f8;
}
.loja-produto-miniaturas>span.ativo{
  border-color:#675bd4;
  box-shadow:0 0 0 2px rgba(103,91,212,.10);
}
.loja-produto-miniaturas img{
  width:100%!important;
  height:100%!important;
  display:block;
  object-fit:cover;
}
.loja-produto-miniaturas>em{
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  background:#efedff;
  color:#4a3fc0;
  font-size:9px;
  font-style:normal;
  font-weight:900;
}

/* v1.1.326 — loja virtual */
.loja-overlay{background:rgba(15,18,31,.82)!important;backdrop-filter:blur(8px);padding:18px!important}.loja-shell{width:min(1240px,100%)!important;max-height:calc(100dvh - 36px)!important;display:flex!important;flex-direction:column!important;border-radius:26px!important;overflow:hidden!important;background:#f7f8fb!important;box-shadow:0 30px 100px rgba(0,0,0,.4)!important}.loja-hero{display:flex!important;justify-content:space-between!important;align-items:center!important;padding:28px 34px!important;background:linear-gradient(135deg,#211b37,#30274c)!important;color:#fff!important}.loja-hero h2{margin:5px 0!important;font-size:40px!important;line-height:1.08!important}.loja-hero p{margin:0!important;color:#cbc6d9!important}.loja-carrinho-resumo{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid rgba(255,255,255,.15);border-radius:15px;background:rgba(255,255,255,.08)}.loja-carrinho-resumo strong,.loja-carrinho-resumo small{display:block}.loja-conteudo{flex:1;min-height:0;overflow:auto!important;padding:24px 34px!important}.loja-etapas{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:8px!important}.loja-etapas span{display:grid!important;grid-template-columns:32px 1fr!important;grid-template-rows:auto auto!important;gap:2px 8px!important;padding:11px!important;border:1px solid #e0e4eb!important;border-radius:14px!important;background:#fff!important;color:#8c95a4!important}.loja-etapas i{grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#eef0f4;font-style:normal}.loja-etapas b{font-size:10px}.loja-etapas small{font-size:8px}.loja-etapas .ativo{border-color:#c7c0f1!important;background:#f3f1ff!important;color:#4438bd!important}.loja-produtos{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:15px!important}.loja-produto-card{overflow:hidden;border:1px solid #e0e5ec;border-radius:19px;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.04)}.loja-produto-media{height:185px;background:#f1f3f6;display:grid;place-items:center;overflow:hidden}.loja-produto-media img{width:100%;height:100%;object-fit:cover}.loja-produto-info{padding:15px}.loja-produto-tags{display:flex;gap:5px}.loja-produto-tags span{padding:4px 7px;border-radius:999px;background:#f0efff;color:#4b40bf;font-size:8px;font-weight:800}.loja-produto-info h4{margin:8px 0 4px;font-size:15px;color:#222b3a}.loja-produto-info p{min-height:42px;margin:0;color:#7f8998;font-size:10px}.loja-produto-footer{display:flex;align-items:center;justify-content:space-between;margin-top:13px}.loja-produto-footer button,.loja-btn-principal{min-height:42px;border:0;border-radius:11px;background:#4438bd;color:#fff;padding:0 14px;font-size:9px;font-weight:900}.loja-carrinho,.loja-card{margin-top:18px;border:1px solid #e0e5ec!important;border-radius:19px!important;background:#fff!important;padding:18px!important}.loja-carrinho-head,.loja-cart-line,.loja-summary-line,.loja-summary-total{display:flex;align-items:center;justify-content:space-between;gap:10px}.loja-cart-line,.loja-summary-line{padding:10px 0;border-bottom:1px solid #edf0f4}.loja-cart-line button{width:28px;height:28px;border:1px solid #e0e4ea;border-radius:8px;background:#fff}.loja-cart-empty{padding:18px;text-align:center;color:#98a2b3}.loja-step-head small{color:#6559ca;font-size:9px;font-weight:900}.loja-step-head h3{margin:3px 0!important;color:#222b3a!important}.loja-step-head p{margin:0;color:#7f8998;font-size:10px}.loja-assignment{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;padding:12px;border:1px solid #e3e7ed;border-radius:13px;margin-bottom:9px}.loja-form-section{padding:15px;border:1px solid #e6e9ef;border-radius:15px;background:#fafbfc}.loja-form-section+.loja-form-section{margin-top:12px}.loja-form-section input,.loja-card-fields input{min-height:44px;border-radius:11px!important}.loja-nav{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.loja-nav>button:not(.loja-btn-principal){min-height:42px;border:1px solid #dce1e8;border-radius:11px;background:#fff;padding:0 13px}.loja-checkout-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.loja-payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px}.loja-payment-methods button{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid #dfe4eb;border-radius:13px;background:#fff;text-align:left}.loja-payment-methods button.ativo{border-color:#6559ca;background:#f4f2ff}.loja-payment-methods strong,.loja-payment-methods small{display:block}.loja-payment-methods small{font-size:8px;color:#98a2b3}.loja-finalizar{width:100%;margin-top:14px}.loja-order-success{text-align:center;margin-top:13px;padding:15px;border-radius:14px;background:#f0f9f3;border:1px solid #d5e9dc}.loja-order-success img{width:170px;display:block;margin:10px auto}.loja-order-success textarea{width:100%;height:55px}.loja-order-success strong,.loja-order-success small{display:block}.loja-empty{grid-column:1/-1;padding:50px;text-align:center;border:1px dashed #d8dde6;border-radius:17px;background:#fff}.painel-pedidos-lista{display:grid;gap:12px}.painel-pedido-card{border:1px solid #e0e5ec;border-radius:17px;background:#fff;overflow:hidden}.painel-pedido-head,.painel-pedido-foot{display:flex;justify-content:space-between;padding:13px 15px;background:#fafbfc}.painel-pedido-head small,.painel-pedido-head strong,.painel-pedido-head span,.painel-pedido-foot small,.painel-pedido-foot strong{display:block}.painel-pedido-itens{padding:5px 15px}.painel-pedido-itens>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #edf0f4}.painel-pedido-itens span strong,.painel-pedido-itens span small{display:block}.painel-pedido-status{padding:5px 8px;border-radius:999px;background:#fff2d5;color:#896406;font-size:8px;font-weight:900}
@media(max-width:900px){.loja-produtos{grid-template-columns:repeat(2,minmax(0,1fr))!important}.loja-checkout-grid{grid-template-columns:1fr}}@media(max-width:650px){.loja-overlay{padding:0!important}.loja-shell{height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.loja-hero{padding:18px!important}.loja-hero h2{font-size:27px!important}.loja-carrinho-resumo{display:none}.loja-conteudo{padding:14px!important}.loja-produtos{grid-template-columns:1fr!important}.loja-etapas small,.loja-etapas b{display:none}.loja-etapas span{display:flex!important;justify-content:center!important}.loja-assignment{grid-template-columns:1fr}.loja-payment-methods{grid-template-columns:1fr}}


/* =========================================================
   v1.1.326 — Lojinha Eterna: experiência e-commerce premium
   ========================================================= */
body.loja-aberta,
body.ep-store-cart-open{
  overflow:hidden!important;
}

.loja-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:2147482500!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:rgba(11,15,24,.76)!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.loja-overlay.ativo{display:flex!important}

.ep-store-shell{
  position:relative;
  width:min(1380px,100%);
  height:min(900px,calc(100dvh - 36px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.62);
  border-radius:30px;
  background:#f7f8fb;
  box-shadow:0 35px 120px rgba(0,0,0,.38);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#202939;
}

.ep-store-header{
  flex:0 0 auto;
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:15px 22px 15px 26px;
  border-bottom:1px solid #e8ebf1;
  background:#fff;
}
.ep-store-brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.ep-store-mark{
  width:48px;
  height:48px;
  flex:0 0 48px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#efedff;
  color:#493dc4;
  font-size:19px;
}
.ep-store-brand small,
.ep-store-brand strong{display:block}
.ep-store-brand small{
  color:#6b61cf;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
}
.ep-store-brand strong{
  margin-top:3px;
  color:#273247;
  font-size:14px;
  font-weight:850;
}
.ep-store-header-actions{
  display:flex;
  align-items:center;
  gap:9px;
}
.ep-store-cart-trigger{
  min-height:52px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:6px 12px 6px 7px;
  border:1px solid #e0e5ed;
  border-radius:15px;
  background:#fafbfc;
  color:#344054;
  cursor:pointer;
}
.ep-store-cart-icon{
  position:relative;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#4438bd;
  color:#fff;
}
.ep-store-cart-icon b{
  position:absolute;
  right:-5px;
  top:-5px;
  min-width:18px;
  height:18px;
  display:grid;
  place-items:center;
  padding:0 4px;
  border:2px solid #fff;
  border-radius:999px;
  background:#ef5259;
  color:#fff;
  font-size:8px;
}
.ep-store-cart-trigger>span:last-child strong,
.ep-store-cart-trigger>span:last-child small{display:block;text-align:left}
.ep-store-cart-trigger>span:last-child strong{font-size:10px;font-weight:850}
.ep-store-cart-trigger>span:last-child small{margin-top:2px;color:#7e8998;font-size:9px}
.ep-store-close{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border:1px solid #e0e4eb;
  border-radius:15px;
  background:#f5f6f8;
  color:#505b6c;
  font-size:18px;
  cursor:pointer;
}

.ep-store-progress-wrap{
  flex:0 0 auto;
  padding:10px 26px;
  border-bottom:1px solid #e8ebf1;
  background:#fff;
}
.ep-store-progress{
  max-width:850px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
}
.ep-store-progress button{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:8px 10px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#98a2b3;
  text-align:left;
  cursor:default;
}
.ep-store-progress button>i{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#f0f2f5;
  color:#7b8595;
  font-size:9px;
  font-style:normal;
  font-weight:900;
}
.ep-store-progress button span{min-width:0}
.ep-store-progress button b,
.ep-store-progress button small{display:block}
.ep-store-progress button b{
  color:#737e90;
  font-size:9px;
  font-weight:850;
}
.ep-store-progress button small{
  margin-top:1px;
  overflow:hidden;
  color:#a4acb9;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ep-store-progress button.ativo{
  background:#f2f0ff;
}
.ep-store-progress button.ativo>i{
  background:#4438bd;
  color:#fff;
}
.ep-store-progress button.ativo b{color:#4438bd}
.ep-store-progress button.concluido>i{
  background:#e6f6eb;
  color:#26814b;
}

.ep-store-main{
  flex:1;
  min-height:0;
  overflow:auto;
  padding:30px;
}
.ep-store-step{display:none}
.ep-store-step.ativo{display:block}

.ep-store-catalog-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:24px;
  padding:30px;
  overflow:hidden;
  border-radius:24px;
  background:
    radial-gradient(circle at 90% 10%,rgba(255,255,255,.14),transparent 28%),
    linear-gradient(135deg,#231d3a,#33284f);
  color:#fff;
}
.ep-store-eyebrow{
  display:block;
  margin-bottom:7px;
  color:#7569d8;
  font-size:9px;
  font-weight:950;
  letter-spacing:.13em;
}
.ep-store-catalog-hero .ep-store-eyebrow{color:#f0cf73}
.ep-store-catalog-hero h2,
.ep-store-section-head h2{
  margin:0;
  font-size:clamp(28px,4vw,44px);
  font-weight:850;
  line-height:1.04;
  letter-spacing:-.045em;
}
.ep-store-catalog-hero p,
.ep-store-section-head p{
  max-width:650px;
  margin:10px 0 0;
  line-height:1.55;
}
.ep-store-catalog-hero p{color:#cbc7d8;font-size:12px}
.ep-store-hero-note{
  max-width:270px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  background:rgba(255,255,255,.08);
}
.ep-store-hero-note>i{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#f2d47c;
  color:#241d37;
}
.ep-store-hero-note strong,
.ep-store-hero-note small{display:block}
.ep-store-hero-note strong{font-size:9px}
.ep-store-hero-note small{margin-top:2px;color:#d2cedc;font-size:8px;line-height:1.4}

.ep-store-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.ep-store-toolbar-copy strong,
.ep-store-toolbar-copy small{display:block}
.ep-store-toolbar-copy strong{font-size:13px}
.ep-store-toolbar-copy small{margin-top:2px;color:#98a2b3;font-size:9px}
.ep-store-toolbar-cart{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:0 12px;
  border:1px solid #dddff0;
  border-radius:11px;
  background:#fff;
  color:#4c43ad;
  font-size:9px;
  font-weight:850;
  cursor:pointer;
}
.ep-store-toolbar-cart span{
  min-width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#eeecff;
}

.ep-store-products{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.ep-store-product-card{
  min-width:0;
  overflow:hidden;
  border:1px solid #e0e5ed;
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 25px rgba(16,24,40,.04);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.ep-store-product-card:hover{
  transform:translateY(-3px);
  border-color:#c8c1f0;
  box-shadow:0 16px 36px rgba(68,56,189,.09);
}
.ep-store-product-card.adicionado{
  border-color:#55a976;
  box-shadow:0 0 0 3px rgba(57,153,92,.12);
}
.ep-store-product-media{
  position:relative;
  height:245px;
  overflow:hidden;
  background:#f0f2f5;
}
.ep-store-product-main-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .25s ease;
}
.ep-store-product-card:hover .ep-store-product-main-image{transform:scale(1.025)}
.ep-store-product-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:#a0a8b4;
  font-size:30px;
}
.ep-store-product-badges{
  position:absolute;
  left:10px;
  top:10px;
  display:flex;
  gap:5px;
  flex-wrap:wrap;
}
.ep-store-product-badges span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:26px;
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:999px;
  background:rgba(255,255,255,.91);
  color:#526071;
  font-size:8px;
  font-weight:850;
  box-shadow:0 4px 12px rgba(16,24,40,.08);
}
.ep-store-product-badges span.personalizado{
  background:#4438bd;
  color:#fff;
  border-color:#4438bd;
}
.ep-store-product-gallery{
  position:absolute;
  left:10px;
  right:10px;
  bottom:10px;
  display:flex;
  gap:5px;
  align-items:center;
}
.ep-store-product-gallery button{
  width:38px;
  height:38px;
  overflow:hidden;
  padding:0;
  border:2px solid rgba(255,255,255,.75);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  box-shadow:0 4px 10px rgba(0,0,0,.12);
}
.ep-store-product-gallery button.ativo{border-color:#f0cf73}
.ep-store-product-gallery button img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ep-store-product-gallery>span{
  min-width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(31,37,49,.76);
  color:#fff;
  font-size:8px;
  font-weight:900;
}
.ep-store-product-content{padding:17px}
.ep-store-product-copy h3{
  margin:0;
  color:#202939;
  font-size:16px;
  font-weight:850;
}
.ep-store-product-copy p{
  min-height:44px;
  margin:7px 0 0;
  color:#7b8798;
  font-size:10px;
  line-height:1.5;
}
.ep-store-product-buy{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin-top:16px;
}
.ep-store-product-buy>div small,
.ep-store-product-buy>div strong{display:block}
.ep-store-product-buy>div small{color:#98a2b3;font-size:8px}
.ep-store-product-buy>div strong{
  margin-top:2px;
  color:#202939;
  font-size:19px;
  font-weight:900;
}
.ep-store-add-product{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 13px;
  border:0;
  border-radius:11px;
  background:#4438bd;
  color:#fff;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}
.ep-store-product-helper{
  margin-top:13px;
  padding-top:11px;
  border-top:1px solid #edf0f4;
  color:#7f8897;
  font-size:8px;
  line-height:1.4;
}
.ep-store-product-helper i{margin-right:4px;color:#6c61cc}

.ep-store-step-layout,
.ep-store-checkout-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:24px;
  align-items:start;
}
.ep-store-section-head{
  margin-bottom:22px;
}
.ep-store-section-head h2{color:#202939}
.ep-store-section-head p{color:#7c8798;font-size:11px}
.ep-store-back-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:17px;
  padding:0;
  border:0;
  background:transparent;
  color:#6f7890;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}

.ep-store-side-card,
.ep-store-form-card,
.ep-store-review-card,
.ep-store-payment-card{
  border:1px solid #e0e5ed;
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 24px rgba(16,24,40,.04);
}
.ep-store-side-card{padding:17px;position:sticky;top:0}
.ep-store-side-title,
.ep-store-form-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.ep-store-side-title>span,
.ep-store-form-title>span{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#efedff;
  color:#493dc4;
}
.ep-store-side-title strong,
.ep-store-side-title small,
.ep-store-form-title strong,
.ep-store-form-title small{display:block}
.ep-store-side-title strong,
.ep-store-form-title strong{font-size:10px;font-weight:900}
.ep-store-side-title small,
.ep-store-form-title small{margin-top:2px;color:#98a2b3;font-size:8px}
.ep-store-compact-items>div{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:9px 0;
  border-bottom:1px solid #edf0f4;
}
.ep-store-compact-items>div span strong,
.ep-store-compact-items>div span small{display:block}
.ep-store-compact-items>div span strong{font-size:9px;color:#344054}
.ep-store-compact-items>div span small{margin-top:2px;color:#98a2b3;font-size:8px}
.ep-store-compact-items>div>strong{font-size:9px;color:#344054;white-space:nowrap}
.ep-store-side-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:13px 0;
  padding-top:12px;
  border-top:2px solid #e8ebf1;
}
.ep-store-side-total span{font-size:9px;font-weight:800}
.ep-store-side-total strong{font-size:18px;color:#4438bd}

.ep-store-primary{
  width:100%;
  min-height:45px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:12px;
  background:#4438bd;
  color:#fff;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 4px 0 #2e268d;
}
.ep-store-primary:hover{background:#3b30aa}

.ep-store-assignment-card{
  padding:18px;
  border:1px solid #e0e5ed;
  border-radius:20px;
  background:#fff;
  box-shadow:0 7px 22px rgba(16,24,40,.035);
}
.ep-store-assignment-card+.ep-store-assignment-card{margin-top:13px}
.ep-store-assignment-product{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:15px;
}
.ep-store-assignment-product>div{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:14px;
  background:#f2f4f7;
  color:#98a2b3;
}
.ep-store-assignment-product>div img{width:100%;height:100%;object-fit:cover}
.ep-store-assignment-product span small,
.ep-store-assignment-product span strong{display:block}
.ep-store-assignment-product span small{color:#7469ce;font-size:8px;font-weight:900;letter-spacing:.08em}
.ep-store-assignment-product span strong{margin-top:3px;font-size:12px}
.ep-store-assignment-product span p{margin:3px 0 0;color:#8b95a4;font-size:9px}
.ep-store-memorial-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.ep-store-memorial-option{
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:10px;
  border:1px solid #e1e5ec;
  border-radius:14px;
  background:#fafbfc;
  text-align:left;
  cursor:pointer;
  transition:.15s ease;
}
.ep-store-memorial-option:hover{
  border-color:#c5bff0;
  background:#f7f5ff;
}
.ep-store-memorial-option.selecionado{
  border-color:#5c50c9;
  background:#f2f0ff;
  box-shadow:0 0 0 3px rgba(92,80,201,.09);
}
.ep-store-memorial-photo{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:12px;
  background:#ebe9ff;
  color:#4f43bd;
}
.ep-store-memorial-photo img{width:100%;height:100%;object-fit:cover}
.ep-store-memorial-copy{min-width:0}
.ep-store-memorial-copy strong,
.ep-store-memorial-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ep-store-memorial-copy strong{color:#344054;font-size:9px}
.ep-store-memorial-copy small{margin-top:2px;color:#929baa;font-size:8px}
.ep-store-memorial-option>i{
  position:absolute;
  right:8px;
  top:8px;
  color:#4f43bd;
  font-size:13px;
  opacity:0;
}
.ep-store-memorial-option.selecionado>i{opacity:1}

.ep-store-no-custom,
.ep-store-digital-note{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px;
  border:1px solid #d8e9de;
  border-radius:17px;
  background:#f3faf5;
}
.ep-store-no-custom>span,
.ep-store-digital-note>span{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#dff2e5;
  color:#2d8a51;
}
.ep-store-no-custom strong,
.ep-store-digital-note strong{font-size:10px;color:#376847}
.ep-store-no-custom p,
.ep-store-digital-note p{margin:3px 0 0;color:#75877b;font-size:9px}

.ep-store-form-card{padding:20px}
.ep-store-form-card+.ep-store-form-card,
.ep-store-digital-note{margin-top:14px}
.ep-store-field{display:block}
.ep-store-field>span{
  display:block;
  margin-bottom:6px;
  color:#526071;
  font-size:9px;
  font-weight:850;
}
.ep-store-field .form-control{
  min-height:46px;
  padding:9px 12px;
  border:1px solid #dce2ea!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#273247!important;
  font-size:11px!important;
  box-shadow:none!important;
}
.ep-store-field .form-control:focus{
  border-color:#7569d4!important;
  box-shadow:0 0 0 3px rgba(87,73,195,.09)!important;
}

.ep-store-review-card,
.ep-store-payment-card{padding:20px}
.ep-store-review-card{margin-bottom:15px}
.ep-store-review-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.ep-store-review-title strong{font-size:11px}
.ep-store-review-title button{
  padding:0;
  border:0;
  background:transparent;
  color:#6256c8;
  font-size:8px;
  font-weight:850;
  cursor:pointer;
}
.ep-store-review-item{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid #edf0f4;
}
.ep-store-review-thumb{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:12px;
  background:#f1f3f6;
  color:#98a2b3;
}
.ep-store-review-thumb img{width:100%;height:100%;object-fit:cover}
.ep-store-review-item>div strong,
.ep-store-review-item>div small{display:block}
.ep-store-review-item>div strong{font-size:9px;color:#344054}
.ep-store-review-item>div small{margin-top:2px;color:#98a2b3;font-size:8px}
.ep-store-review-item>strong{font-size:9px}
.ep-store-review-delivery{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:13px;
  padding:11px;
  border-radius:13px;
  background:#f6f7fa;
}
.ep-store-review-delivery.digital{background:#f0f8f3}
.ep-store-review-delivery>i{color:#6559ca}
.ep-store-review-delivery.digital>i{color:#2b8a50}
.ep-store-review-delivery strong,
.ep-store-review-delivery small{display:block}
.ep-store-review-delivery strong{font-size:9px}
.ep-store-review-delivery small{margin-top:2px;color:#808b9b;font-size:8px}
.ep-store-review-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:14px;
  padding-top:13px;
  border-top:2px solid #e8ebf1;
}
.ep-store-review-total span{font-size:10px;font-weight:800}
.ep-store-review-total strong{color:#4438bd;font-size:19px}

.ep-store-payment-methods{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:14px;
}
.ep-store-payment-methods button{
  position:relative;
  min-height:70px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 18px;
  align-items:center;
  gap:9px;
  padding:11px;
  border:1px solid #dfe4eb;
  border-radius:14px;
  background:#fff;
  color:#344054;
  text-align:left;
  cursor:pointer;
}
.ep-store-payment-methods button>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#f0efff;
  color:#4c40bd;
  font-size:16px;
}
.ep-store-payment-methods button div strong,
.ep-store-payment-methods button div small{display:block}
.ep-store-payment-methods button div strong{font-size:9px}
.ep-store-payment-methods button div small{margin-top:2px;color:#98a2b3;font-size:8px}
.ep-store-payment-check{color:#4c40bd;opacity:0}
.ep-store-payment-methods button.ativo{
  border-color:#6559ca;
  background:#f5f3ff;
  box-shadow:0 0 0 3px rgba(101,89,202,.08);
}
.ep-store-payment-methods button.ativo .ep-store-payment-check{opacity:1}
.ep-store-card-fields{
  margin-top:13px;
  padding:15px;
  border:1px solid #e5e8ee;
  border-radius:14px;
  background:#fafbfc;
}
.ep-store-finish{margin-top:15px}
.ep-store-security-copy{
  margin:10px 0 0;
  color:#98a2b3;
  font-size:7px;
  line-height:1.5;
  text-align:center;
}
.ep-store-security-copy i{margin-right:3px}
.ep-store-payment-error{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:13px;
  padding:11px;
  border:1px solid #f2d5d2;
  border-radius:12px;
  background:#fff6f5;
  color:#a23c34;
}
.ep-store-payment-error strong,
.ep-store-payment-error small{display:block}
.ep-store-payment-error strong{font-size:9px}
.ep-store-payment-error small{margin-top:2px;font-size:8px}

.ep-store-side-benefits{
  display:grid;
  gap:7px;
  margin-top:13px;
  padding-top:12px;
  border-top:1px solid #edf0f4;
}
.ep-store-side-benefits span{
  display:flex;
  align-items:center;
  gap:7px;
  color:#7e8998;
  font-size:8px;
}
.ep-store-side-benefits i{
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:#f2f0ff;
  color:#5b4fc5;
}

.ep-store-order-success{
  margin-top:15px;
  padding:22px;
  border:1px solid #d4e8da;
  border-radius:18px;
  background:#f4faf6;
  text-align:center;
}
.ep-store-success-icon{
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  margin:0 auto 10px;
  border-radius:17px;
  background:#dff2e5;
  color:#2b8a50;
  font-size:20px;
}
.ep-store-order-success>small{
  color:#39845a;
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
}
.ep-store-order-success>h3{
  margin:4px 0 6px;
  color:#244a31;
  font-size:19px;
}
.ep-store-order-success>p{
  max-width:450px;
  margin:0 auto;
  color:#71877a;
  font-size:9px;
  line-height:1.55;
}
.ep-store-pix-box{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:13px;
  align-items:center;
  margin-top:15px;
  padding:13px;
  border:1px solid #d7e6dc;
  border-radius:14px;
  background:#fff;
  text-align:left;
}
.ep-store-pix-box img{width:150px;height:150px;object-fit:contain}
.ep-store-pix-box strong{display:block;margin-bottom:5px;font-size:9px}
.ep-store-pix-box textarea{
  width:100%;
  min-height:64px;
  padding:8px;
  border:1px solid #dde4df;
  border-radius:9px;
  background:#fafbfa;
  font-size:7px;
  resize:none;
}
.ep-store-pix-box button,
.ep-store-order-account{
  min-height:35px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:7px;
  padding:0 10px;
  border:0;
  border-radius:9px;
  background:#2d8d52;
  color:#fff;
  font-size:8px;
  font-weight:850;
  cursor:pointer;
}
.ep-store-success-total{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  margin-top:14px;
}
.ep-store-success-total span{font-size:9px}
.ep-store-success-total strong{font-size:16px}
.ep-store-order-account{
  min-height:40px;
  margin-top:13px;
  padding:0 14px;
  background:#4438bd;
}

/* Drawer do carrinho */
.ep-store-drawer{
  position:absolute;
  inset:0;
  z-index:50;
  visibility:hidden;
  pointer-events:none;
}
.ep-store-drawer.ativo{
  visibility:visible;
  pointer-events:auto;
}
.ep-store-drawer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(19,24,34,.45);
  opacity:0;
  transition:opacity .18s ease;
}
.ep-store-drawer.ativo .ep-store-drawer-backdrop{opacity:1}
.ep-store-drawer-panel{
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:min(440px,100%);
  display:flex;
  flex-direction:column;
  background:#fff;
  box-shadow:-18px 0 55px rgba(16,24,40,.16);
  transform:translateX(100%);
  transition:transform .22s ease;
}
.ep-store-drawer.ativo .ep-store-drawer-panel{transform:translateX(0)}
.ep-store-drawer-panel>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:22px;
  border-bottom:1px solid #e8ebf1;
}
.ep-store-drawer-panel>header h3{
  margin:2px 0 0;
  font-size:20px;
  letter-spacing:-.03em;
}
.ep-store-drawer-panel>header button{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid #e0e4eb;
  border-radius:12px;
  background:#f5f6f8;
  color:#596474;
  cursor:pointer;
}
.ep-store-drawer-body{
  flex:1;
  min-height:0;
  overflow:auto;
  padding:12px 20px;
}
.ep-store-drawer-panel>footer{
  flex:0 0 auto;
  padding:18px 20px 20px;
  border-top:1px solid #e8ebf1;
  background:#fff;
}
.ep-store-drawer-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}
.ep-store-drawer-total span{font-size:10px;font-weight:800}
.ep-store-drawer-total strong{font-size:19px;color:#4438bd}
.ep-store-drawer-panel>footer>small{
  display:block;
  margin-top:9px;
  color:#98a2b3;
  font-size:7px;
  line-height:1.45;
  text-align:center;
}
.ep-store-cart-item{
  display:grid;
  grid-template-columns:66px minmax(0,1fr) auto;
  gap:11px;
  align-items:start;
  padding:13px 0;
  border-bottom:1px solid #edf0f4;
}
.ep-store-cart-item-image{
  width:66px;
  height:66px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:14px;
  background:#f1f3f6;
  color:#98a2b3;
}
.ep-store-cart-item-image img{width:100%;height:100%;object-fit:cover}
.ep-store-cart-item-copy>strong{display:block;font-size:10px;color:#344054}
.ep-store-cart-item-copy>small{display:block;margin-top:3px;color:#98a2b3;font-size:8px}
.ep-store-cart-item-copy>span{display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:4px 6px;border-radius:999px;background:#f1efff;color:#5448bd;font-size:7px;font-weight:800}
.ep-store-cart-quantity{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:8px;
}
.ep-store-cart-quantity button{
  width:26px;
  height:26px;
  border:1px solid #dde2e9;
  border-radius:8px;
  background:#fff;
  color:#5e6878;
  cursor:pointer;
}
.ep-store-cart-quantity b{
  min-width:18px;
  text-align:center;
  font-size:9px;
}
.ep-store-cart-item-price{
  display:flex;
  min-height:66px;
  flex-direction:column;
  align-items:flex-end;
  justify-content:space-between;
  gap:8px;
}
.ep-store-cart-item-price>strong{
  color:#273247;
  font-size:10px;
  white-space:nowrap;
}
.ep-store-cart-item-price button{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:8px;
  background:#fff2f1;
  color:#bd3c34;
  cursor:pointer;
}
.ep-store-cart-empty{
  min-height:260px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.ep-store-cart-empty>span{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:20px;
  background:#f0efff;
  color:#5145c1;
  font-size:22px;
}
.ep-store-cart-empty h4{margin:11px 0 4px;font-size:13px}
.ep-store-cart-empty p{max-width:240px;margin:0;color:#98a2b3;font-size:9px}

.ep-store-empty{
  grid-column:1/-1;
  min-height:280px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:25px;
  border:1px dashed #d8dde6;
  border-radius:20px;
  background:#fff;
  text-align:center;
}
.ep-store-empty>span{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:#f0efff;
  color:#5145c1;
  font-size:23px;
}
.ep-store-empty h3{margin:11px 0 4px;font-size:14px}
.ep-store-empty p{max-width:420px;margin:0;color:#98a2b3;font-size:9px}
.ep-store-empty-small{min-height:220px}

/* Pedidos do painel do usuário */
.painel-pedido-card{
  overflow:hidden;
  border:1px solid #e0e5ed!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(16,24,40,.035)!important;
}
.painel-pedido-card+.painel-pedido-card{margin-top:12px}
.painel-pedido-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:15px 17px!important;
  border-bottom:1px solid #edf0f4!important;
  background:#fafbfc!important;
}
.painel-pedido-head>div small,
.painel-pedido-head>div strong,
.painel-pedido-head>div span{display:block}
.painel-pedido-head>div small{font-size:8px!important;color:#8d97a7!important;font-weight:900!important;letter-spacing:.08em}
.painel-pedido-head>div strong{margin-top:2px!important;color:#293447!important;font-size:12px!important}
.painel-pedido-head>div span{margin-top:2px!important;color:#9aa3b0!important;font-size:8px!important}
.painel-pedido-status{
  padding:6px 9px!important;
  border-radius:999px!important;
  background:#fff2d8!important;
  color:#8d6708!important;
  font-size:8px!important;
  font-weight:900!important;
}
.painel-pedido-itens{padding:6px 17px!important}
.painel-pedido-itens>div{
  display:flex!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:10px 0!important;
  border-bottom:1px solid #edf0f4!important;
}
.painel-pedido-itens>div:last-child{border-bottom:0!important}
.painel-pedido-itens span strong,
.painel-pedido-itens span small{display:block}
.painel-pedido-itens span strong{color:#344054!important;font-size:9px!important}
.painel-pedido-itens span small{margin-top:2px!important;color:#98a2b3!important;font-size:8px!important}
.painel-pedido-foot{
  display:flex!important;
  gap:28px!important;
  padding:12px 17px!important;
  border-top:1px solid #edf0f4!important;
  background:#fafbfc!important;
}
.painel-pedido-foot small,
.painel-pedido-foot strong{display:block}
.painel-pedido-foot small{color:#98a2b3!important;font-size:7px!important;font-weight:900!important}
.painel-pedido-foot strong{margin-top:2px!important;color:#344054!important;font-size:10px!important}

@media(max-width:1100px){
  .ep-store-products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ep-store-step-layout,
  .ep-store-checkout-layout{grid-template-columns:minmax(0,1fr) 300px}
  .ep-store-memorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .loja-overlay{padding:8px!important}
  .ep-store-shell{
    height:calc(100dvh - 16px);
    border-radius:22px;
  }
  .ep-store-main{padding:20px}
  .ep-store-catalog-hero{align-items:flex-start;flex-direction:column;padding:22px}
  .ep-store-hero-note{max-width:none}
  .ep-store-step-layout,
  .ep-store-checkout-layout{grid-template-columns:1fr}
  .ep-store-order-sidebar{order:-1}
  .ep-store-side-card{position:static}
  .ep-store-progress button small{display:none}
}
@media(max-width:640px){
  .loja-overlay{padding:0!important}
  .ep-store-shell{
    width:100%;
    height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
  }
  .ep-store-header{min-height:70px;padding:11px 12px}
  .ep-store-brand strong{font-size:11px}
  .ep-store-brand small{font-size:7px}
  .ep-store-mark{width:40px;height:40px;flex-basis:40px;border-radius:12px}
  .ep-store-cart-trigger>span:last-child{display:none}
  .ep-store-cart-trigger{padding:5px}
  .ep-store-close{width:44px;height:44px}
  .ep-store-progress-wrap{padding:7px 10px}
  .ep-store-progress{gap:3px}
  .ep-store-progress button{
    justify-content:center;
    padding:6px;
  }
  .ep-store-progress button span{display:none}
  .ep-store-main{padding:14px}
  .ep-store-catalog-hero{margin-bottom:17px;padding:18px;border-radius:18px}
  .ep-store-catalog-hero h2,
  .ep-store-section-head h2{font-size:27px}
  .ep-store-catalog-hero p{font-size:10px}
  .ep-store-products{grid-template-columns:1fr}
  .ep-store-product-media{height:230px}
  .ep-store-toolbar{align-items:flex-end}
  .ep-store-toolbar-cart{font-size:8px}
  .ep-store-memorial-grid{grid-template-columns:1fr}
  .ep-store-payment-methods{grid-template-columns:1fr}
  .ep-store-review-item{grid-template-columns:46px minmax(0,1fr);align-items:center}
  .ep-store-review-item>strong{grid-column:2;text-align:left}
  .ep-store-drawer-panel{width:100%}
  .ep-store-pix-box{grid-template-columns:1fr}
  .ep-store-pix-box img{margin:0 auto}
}

/* =========================================================
   v1.1.326 — detalhes, quantidade, memoriais por unidade e legal
   ========================================================= */
.ep-store-product-actions{display:flex;gap:7px}.ep-store-product-actions button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:11px;font-size:8px;font-weight:900;cursor:pointer}.ep-store-view-product{padding:0 11px;border:1px solid #dfe4eb;background:#fff;color:#5147b3}.ep-store-add-product{padding:0 12px!important}.ep-store-cart-quantity{height:30px;align-items:center!important}.ep-store-cart-quantity button{display:grid!important;place-items:center!important;padding:0!important;line-height:1!important;font-family:Arial,sans-serif!important;font-size:18px!important;font-weight:500!important}.ep-store-cart-quantity b{display:grid!important;place-items:center!important;height:26px!important;line-height:1!important}.ep-store-product-modal{position:absolute;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:24px;visibility:hidden;opacity:0;pointer-events:none;transition:.18s}.ep-store-product-modal.ativo{visibility:visible;opacity:1;pointer-events:auto}.ep-store-product-modal-backdrop{position:absolute;inset:0;background:rgba(20,24,35,.58);backdrop-filter:blur(7px)}.ep-store-product-modal-dialog{position:relative;z-index:1;width:min(980px,100%);max-height:calc(100% - 20px);overflow:auto;border:1px solid rgba(255,255,255,.7);border-radius:25px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.28)}.ep-store-product-modal-close{position:absolute;right:15px;top:15px;z-index:3;width:44px;height:44px;display:grid;place-items:center;border:1px solid #e0e5eb;border-radius:13px;background:#f6f7f9;color:#596474;font-size:16px;cursor:pointer}.ep-store-product-detail-grid{display:grid;grid-template-columns:1.1fr .9fr;min-height:560px}.ep-store-detail-gallery{padding:22px;background:#f6f7fa;border-radius:25px 0 0 25px}.ep-store-detail-main{height:430px;display:grid;place-items:center;overflow:hidden;border:1px solid #e1e5eb;border-radius:19px;background:#fff}.ep-store-detail-main img{width:100%;height:100%;object-fit:contain}.ep-store-detail-main>span{color:#a0a8b5;font-size:32px}.ep-store-detail-thumbs{display:flex;gap:8px;margin-top:12px;overflow:auto;padding-bottom:2px}.ep-store-detail-thumbs button{width:62px;height:62px;flex:0 0 62px;padding:0;overflow:hidden;border:2px solid transparent;border-radius:11px;background:#fff;cursor:pointer}.ep-store-detail-thumbs button.ativo{border-color:#6559ca}.ep-store-detail-thumbs img{width:100%;height:100%;object-fit:cover}.ep-store-detail-info{display:flex;flex-direction:column;padding:38px 32px 30px}.ep-store-detail-info h2{margin:0;color:#202939;font-size:29px;line-height:1.08;letter-spacing:-.035em}.ep-store-detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.ep-store-detail-tags span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:999px;background:#f1f2f5;color:#647084;font-size:8px;font-weight:850}.ep-store-detail-tags span.personalizado{background:#eeecff;color:#4f43bd}.ep-store-detail-info>p{margin:20px 0 0;color:#717d8f;font-size:11px;line-height:1.65}.ep-store-detail-price{margin-top:auto;padding-top:25px}.ep-store-detail-price small,.ep-store-detail-price strong{display:block}.ep-store-detail-price small{color:#98a2b3;font-size:8px;font-weight:850}.ep-store-detail-price strong{margin-top:3px;color:#202939;font-size:28px;font-weight:900}.ep-store-detail-note{display:flex;align-items:center;gap:9px;margin:14px 0;padding:11px;border:1px solid #e5e8ee;border-radius:13px;background:#fafbfc}.ep-store-detail-note>i{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;background:#efedff;color:#5145c1}.ep-store-detail-note strong,.ep-store-detail-note small{display:block}.ep-store-detail-note strong{font-size:9px;color:#344054}.ep-store-detail-note small{margin-top:2px;color:#8a94a4;font-size:8px;line-height:1.4}.ep-store-unit-list{display:grid;gap:12px}.ep-store-unit-assignment{padding:13px;border:1px solid #e5e8ee;border-radius:15px;background:#fafbfc}.ep-store-unit-title{display:flex;align-items:center;gap:9px;margin-bottom:10px}.ep-store-unit-title>span{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:#4438bd;color:#fff;font-size:9px;font-weight:900}.ep-store-unit-title strong,.ep-store-unit-title small{display:block}.ep-store-unit-title strong{font-size:9px;color:#344054}.ep-store-unit-title small{margin-top:2px;color:#98a2b3;font-size:8px}.ep-store-single-memorial{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid #cfe6d7;border-radius:14px;background:#f3faf5}.ep-store-single-memorial>div{flex:1}.ep-store-single-memorial strong,.ep-store-single-memorial small{display:block}.ep-store-single-memorial strong{font-size:9px;color:#356345}.ep-store-single-memorial small{margin-top:2px;color:#7b9182;font-size:8px}.ep-store-single-memorial>i{color:#2c8b50}.ep-store-legal-accept{display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;align-items:start;margin-top:15px;padding:12px;border:1px solid #e2e6ed;border-radius:13px;background:#fafbfc;cursor:pointer}.ep-store-legal-accept>input{position:absolute;opacity:0}.ep-store-checkmark{width:22px;height:22px;display:grid;place-items:center;border:1px solid #ccd3dd;border-radius:7px;background:#fff;color:#fff;font-size:9px;transition:.15s}.ep-store-legal-accept>input:checked+.ep-store-checkmark{border-color:#4438bd;background:#4438bd}.ep-store-legal-accept>span:last-child{color:#6f7a8b;font-size:8px;line-height:1.5}.ep-store-legal-accept a{color:#4438bd;font-weight:850;text-decoration:none}.ep-store-review-shipping{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:10px 0;border-top:1px solid #edf0f4}.ep-store-review-shipping span{color:#657082;font-size:9px}.ep-store-review-shipping strong{color:#344054;font-size:9px}
@media(max-width:760px){.ep-store-product-detail-grid{grid-template-columns:1fr}.ep-store-detail-gallery{border-radius:25px 25px 0 0;padding:15px}.ep-store-detail-main{height:310px}.ep-store-detail-info{padding:24px 18px}.ep-store-detail-price{margin-top:18px}.ep-store-product-modal{padding:8px}.ep-store-product-modal-dialog{max-height:calc(100% - 8px)}.ep-store-product-actions{flex-direction:column}.ep-store-product-actions button{width:100%}}


/* v1.1.326 — loja sem hero e vídeo responsivo nos detalhes */
.ep-store-step[data-shop-step="1"] .ep-store-toolbar{
  margin-top:0!important;
}
.ep-store-detail-video{
  position:relative;
  width:100%;
  height:100%;
  min-height:280px;
  overflow:hidden;
  border-radius:18px;
  background:#111;
}
.ep-store-detail-video iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.ep-store-detail-thumbs .ep-store-detail-video-thumb{
  width:72px!important;
  height:62px!important;
  flex:0 0 72px!important;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border:2px solid transparent!important;
  border-radius:11px!important;
  background:#fff4f4!important;
  color:#d73535!important;
}
.ep-store-detail-thumbs .ep-store-detail-video-thumb.ativo{
  border-color:#d73535!important;
}
.ep-store-detail-video-thumb>span{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#e33c3c;
  color:#fff;
  font-size:14px;
}
.ep-store-detail-video-thumb small{
  color:#b34141;
  font-size:7px;
  font-weight:900;
}
@media(max-width:760px){
  .ep-store-detail-video{
    min-height:0;
    aspect-ratio:16/9;
  }
  .ep-store-detail-main:has(.ep-store-detail-video){
    height:auto;
    aspect-ratio:16/9;
  }
}

/* v1.1.326 — promoções e contador */
.ep-store-product-price-wrap{min-width:0}.ep-store-price{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.ep-store-price-from{width:100%;color:#98a2b3;font-size:8px;line-height:1}.ep-store-price-now{color:#202939;font-size:20px;font-weight:950}.ep-store-price.is-promo .ep-store-price-now{color:#d94a49}.ep-store-discount-badge{display:inline-flex;align-items:center;min-height:22px;padding:4px 7px;border-radius:999px;background:#e8f7ed;color:#267b47;font-size:8px;font-weight:950}.ep-store-promo-countdown{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;padding:7px 8px;border:1px solid #f1d7c9;border-radius:10px;background:#fff7f2;color:#8a4933}.ep-store-promo-label{display:inline-flex;align-items:center;gap:4px;font-size:7px;font-weight:900}.ep-store-promo-label i{color:#e05b35}.ep-store-promo-time{display:inline-flex;align-items:center;gap:2px;margin-left:auto}.ep-store-promo-time b{min-width:20px;height:20px;display:grid;place-items:center;border-radius:6px;background:#fff;color:#713a2c;font-size:8px;font-weight:950}.ep-store-promo-time small{color:#ad725f;font-size:6px;font-weight:850}.ep-store-promo-countdown.ended{border-color:#e4e7ec;background:#f8f9fb;color:#7d8796}#lojaDetailPrice .ep-store-price-now{font-size:27px}#lojaDetailPrice .ep-store-price-from{font-size:10px}#lojaDetailPrice .ep-store-promo-countdown{margin-top:11px}

/* v1.1.326 — produção e Correios */
.ep-store-production-info{display:flex;align-items:center;gap:10px;margin-top:13px;padding:11px 12px;border:1px solid #e4e0fa;border-radius:13px;background:#f7f5ff}.ep-store-production-info>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#ebe8ff;color:#5043c2}.ep-store-production-info strong,.ep-store-production-info small{display:block}.ep-store-production-info strong{font-size:9px}.ep-store-production-info small{margin-top:2px;color:#7f7899;font-size:8px}.ep-store-shipping-calculator{margin-top:17px;padding-top:16px;border-top:1px solid #e8ebf1}.ep-store-shipping-title{display:flex;align-items:center;gap:9px;margin-bottom:11px}.ep-store-shipping-title>span{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#efedff;color:#4d42bf}.ep-store-shipping-title strong,.ep-store-shipping-title small{display:block}.ep-store-shipping-title strong{font-size:10px}.ep-store-shipping-title small{margin-top:2px;color:#98a2b3;font-size:8px}.ep-store-shipping-options{display:grid;gap:8px}.ep-store-shipping-placeholder,.ep-store-shipping-loading{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px dashed #d9dee7;border-radius:13px;background:#fafbfc;color:#8792a2;font-size:9px}.ep-store-shipping-placeholder.is-error{border-color:#efd1ce;background:#fff6f5;color:#a64a42}.ep-store-shipping-option{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid #dfe4ec;border-radius:14px;background:#fff;color:#344054;text-align:left;cursor:pointer}.ep-store-shipping-option.selecionado{border-color:#6256c8;background:#f4f2ff;box-shadow:0 0 0 3px rgba(98,86,200,.08)}.ep-store-shipping-radio{width:28px;height:28px;display:grid;place-items:center;border:1px solid #dce1e8;border-radius:999px;background:#fff;color:transparent}.ep-store-shipping-option.selecionado .ep-store-shipping-radio{border-color:#6256c8;background:#6256c8;color:#fff}.ep-store-shipping-copy strong,.ep-store-shipping-copy small,.ep-store-shipping-copy em{display:block}.ep-store-shipping-copy strong{font-size:10px}.ep-store-shipping-copy small{margin-top:3px;color:#788395;font-size:8px}.ep-store-shipping-copy em{margin-top:3px;color:#5a4fc0;font-size:8px;font-style:normal;font-weight:800}.ep-store-shipping-value strong{font-size:11px;white-space:nowrap}.ep-store-review-shipping{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 11px;border-radius:12px;background:#f7f8fa}.ep-store-review-shipping>span strong,.ep-store-review-shipping>span small{display:block}.ep-store-review-shipping>span small{margin-top:2px;color:#8b95a4;font-size:7px}.ep-store-review-shipping>strong{font-size:9px;white-space:nowrap}@media(max-width:640px){.ep-store-shipping-option{grid-template-columns:28px minmax(0,1fr)}.ep-store-shipping-value{grid-column:2}}

/* v1.1.326 — estoque e variações */
.ep-store-product-badges .ep-stock-low{border-color:#f5d69a;background:#fff6df;color:#8e6416}.ep-store-product-badges .ep-stock-out{border-color:#efcfcc;background:#fff2f1;color:#a8443c}.ep-store-add-product:disabled{cursor:not-allowed;background:#aab1bd!important;box-shadow:none!important;opacity:.8}.ep-store-detail-variations{margin-top:14px;padding:14px;border:1px solid #e0e4eb;border-radius:15px;background:#fafbfc}.ep-store-variation-title strong,.ep-store-variation-title small{display:block}.ep-store-variation-title strong{color:#344054;font-size:11px}.ep-store-variation-title small{margin-top:3px;color:#8c96a5;font-size:8px}.ep-store-variation-group{margin-top:13px;padding-top:12px;border-top:1px solid #e7eaf0}.ep-store-variation-group-name{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.ep-store-variation-group-name strong{font-size:9px}.ep-store-variation-group-name span{padding:4px 7px;border-radius:999px;background:#efedff;color:#5549be;font-size:7px;font-weight:900}.ep-store-variation-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ep-store-variation-option{position:relative;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:9px 34px 9px 10px;border:1px solid #dfe4eb;border-radius:12px;background:#fff;color:#344054;text-align:left;cursor:pointer}.ep-store-variation-option:hover{border-color:#c8c1f0;background:#f9f8ff}.ep-store-variation-option.selecionado{border-color:#6559ca;background:#f3f1ff;box-shadow:0 0 0 3px rgba(101,89,202,.08)}.ep-store-variation-option.esgotado{cursor:not-allowed;opacity:.5}.ep-store-variation-option span strong,.ep-store-variation-option span small{display:block}.ep-store-variation-option span strong{font-size:9px}.ep-store-variation-option span small{margin-top:2px;color:#98a2b3;font-size:7px}.ep-store-variation-option em{color:#5f55b8;font-size:8px;font-style:normal;font-weight:850;white-space:nowrap}.ep-store-variation-option>i{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#574bc2;opacity:0}.ep-store-variation-option.selecionado>i{opacity:1}.ep-store-cart-variation{display:inline-flex!important;align-items:center;gap:4px;margin-top:5px;padding:4px 6px;border-radius:999px;background:#f4f2ff!important;color:#584cc2!important;font-size:7px!important;font-weight:800}@media(max-width:640px){.ep-store-variation-options{grid-template-columns:1fr}}


/* v1.1.326 — variações obrigatórias, seleção múltipla e lightbox */
.ep-store-variation-group-name>div strong,.ep-store-variation-group-name>div small{display:block}
.ep-store-variation-group-name>div small{margin-top:2px;color:#8b95a4;font-size:7px}
.ep-store-variation-option-wrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;min-width:0}
.ep-store-variation-option-wrap:not(:has(.ep-store-variation-image)){grid-template-columns:1fr}
.ep-store-variation-option-wrap.selecionado .ep-store-variation-image{border-color:#6559ca}
.ep-store-variation-image{position:relative;width:58px;height:58px;padding:0;overflow:hidden;border:1px solid #dfe4eb;border-radius:12px;background:#fff;cursor:zoom-in}
.ep-store-variation-image img{width:100%;height:100%;object-fit:cover}
.ep-store-variation-image i{position:absolute;right:4px;bottom:4px;width:20px;height:20px;display:grid;place-items:center;border-radius:7px;background:rgba(32,41,57,.75);color:#fff;font-size:8px}
.ep-store-variation-option-wrap .ep-store-variation-option{height:100%}
.ep-store-option-lightbox{position:fixed;inset:0;z-index:2147483500;display:none;align-items:center;justify-content:center;padding:26px;background:rgba(10,14,22,.84);backdrop-filter:blur(8px)}
.ep-store-option-lightbox.ativo{display:flex}
.ep-store-option-lightbox img{max-width:min(960px,92vw);max-height:88vh;object-fit:contain;border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.45)}
.ep-store-option-lightbox button{position:fixed;top:22px;right:22px;width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(255,255,255,.94);color:#323946;font-size:18px;cursor:pointer}
@media(max-width:640px){.ep-store-variation-option-wrap{grid-template-columns:54px minmax(0,1fr)}.ep-store-variation-image{width:54px;height:54px}}

/* v1.1.326 — memorial junto da personalização do produto */
.ep-store-detail-personalization{margin-top:14px;padding:14px;border:1px solid #e0e4eb;border-radius:15px;background:#fafbfc}
.ep-store-personalization-head strong,.ep-store-personalization-head small{display:block}.ep-store-personalization-head strong{font-size:11px;color:#344054}.ep-store-personalization-head small{margin-top:3px;color:#8c96a5;font-size:8px;line-height:1.45}
.ep-store-detail-memorials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.ep-store-memorial-choice{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) 26px;gap:9px;align-items:center;padding:9px;border:1px solid #dfe4eb;border-radius:12px;background:#fff;color:#344054;text-align:left;cursor:pointer}
.ep-store-memorial-choice:hover{border-color:#c9c3ee;background:#faf9ff}.ep-store-memorial-choice.selecionado{border-color:#6559ca;background:#f2f0ff;box-shadow:0 0 0 3px rgba(101,89,202,.08)}
.ep-store-memorial-choice-photo{width:46px;height:46px;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:#ebe8ff;color:#574bc2}.ep-store-memorial-choice-photo img{width:100%;height:100%;object-fit:cover}
.ep-store-memorial-choice-copy strong,.ep-store-memorial-choice-copy small{display:block}.ep-store-memorial-choice-copy strong{font-size:9px}.ep-store-memorial-choice-copy small{margin-top:2px;color:#8f99a7;font-size:7px}
.ep-store-memorial-choice-check{width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:#fff;color:transparent;border:1px solid #d9dee7}.ep-store-memorial-choice.selecionado .ep-store-memorial-choice-check{background:#6559ca;border-color:#6559ca;color:#fff}
.ep-store-login-memorial{grid-column:1/-1;width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 20px;gap:10px;align-items:center;padding:11px;border:1px solid #dedbf7;border-radius:12px;background:#f6f4ff;color:#5145c2;text-align:left;cursor:pointer}.ep-store-login-memorial span strong,.ep-store-login-memorial span small{display:block}.ep-store-login-memorial span strong{font-size:9px}.ep-store-login-memorial span small{margin-top:2px;color:#817aa6;font-size:7px}
.ep-store-no-memorial{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #ead9b5;border-radius:12px;background:#fff9ec;color:#7b5a1d}.ep-store-no-memorial>i{font-size:18px}.ep-store-no-memorial strong,.ep-store-no-memorial small{display:block}.ep-store-no-memorial strong{font-size:9px}.ep-store-no-memorial small{margin-top:2px;font-size:7px}
@media(max-width:640px){.ep-store-detail-memorials{grid-template-columns:1fr}}


/* v1.1.326 — modal de produto totalmente responsivo no mobile */
#lojaProductModal,
#lojaProductModal *,
#lojaProductModal *::before,
#lojaProductModal *::after{
    box-sizing:border-box;
}

#lojaProductModal{
    overflow:hidden!important;
}

#lojaProductModal .ep-store-product-modal-dialog{
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
}

#lojaProductModal .ep-store-product-detail-grid,
#lojaProductModal .ep-store-detail-gallery,
#lojaProductModal .ep-store-detail-info,
#lojaProductModal .ep-store-detail-main,
#lojaProductModal .ep-store-detail-thumbs,
#lojaProductModal .ep-store-detail-price,
#lojaProductModal .ep-store-detail-personalization,
#lojaProductModal .ep-store-detail-memorials,
#lojaProductModal .ep-store-detail-variations,
#lojaProductModal .ep-store-variation-group,
#lojaProductModal .ep-store-variation-options,
#lojaProductModal .ep-store-production-info,
#lojaProductModal .ep-store-detail-note{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
}

#lojaProductModal img,
#lojaProductModal iframe,
#lojaProductModal video{
    max-width:100%!important;
}

@media(max-width:760px){
    #lojaProductModal.ep-store-product-modal{
        position:fixed!important;
        inset:0!important;
        width:100vw!important;
        height:100dvh!important;
        padding:8px!important;
        overflow:hidden!important;
    }

    #lojaProductModal .ep-store-product-modal-dialog{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        max-height:calc(100dvh - 16px)!important;
        height:auto!important;
        margin:0!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        border-radius:18px!important;
        overscroll-behavior:contain;
    }

    #lojaProductModal .ep-store-product-detail-grid{
        display:block!important;
        width:100%!important;
        min-width:0!important;
        min-height:0!important;
    }

    #lojaProductModal .ep-store-detail-gallery{
        width:100%!important;
        min-width:0!important;
        padding:12px!important;
        overflow:hidden!important;
        border-radius:18px 18px 0 0!important;
    }

    #lojaProductModal .ep-store-detail-main{
        width:100%!important;
        height:auto!important;
        min-height:240px!important;
        aspect-ratio:1 / 1!important;
        overflow:hidden!important;
        border-radius:14px!important;
    }

    #lojaProductModal .ep-store-detail-main img{
        width:100%!important;
        height:100%!important;
        max-width:100%!important;
        object-fit:contain!important;
    }

    #lojaProductModal .ep-store-detail-video{
        width:100%!important;
        height:auto!important;
        min-height:0!important;
        aspect-ratio:16 / 9!important;
    }

    #lojaProductModal .ep-store-detail-video iframe{
        position:absolute!important;
        inset:0!important;
        width:100%!important;
        height:100%!important;
    }

    #lojaProductModal .ep-store-detail-thumbs{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        display:flex!important;
        gap:7px!important;
        margin-top:9px!important;
        padding:0 0 3px!important;
        overflow-x:auto!important;
        overflow-y:hidden!important;
        scrollbar-width:none;
    }

    #lojaProductModal .ep-store-detail-thumbs::-webkit-scrollbar{
        display:none;
    }

    #lojaProductModal .ep-store-detail-thumbs button{
        width:54px!important;
        height:54px!important;
        min-width:54px!important;
        flex:0 0 54px!important;
    }

    #lojaProductModal .ep-store-detail-info{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        padding:22px 14px 18px!important;
        overflow:hidden!important;
    }

    #lojaProductModal .ep-store-detail-info h2{
        max-width:calc(100% - 44px)!important;
        font-size:24px!important;
        line-height:1.08!important;
        overflow-wrap:anywhere!important;
    }

    #lojaProductModal .ep-store-detail-info > p,
    #lojaProductModal .ep-store-personalization-head small,
    #lojaProductModal .ep-store-variation-title small,
    #lojaProductModal .ep-store-detail-note small{
        overflow-wrap:anywhere!important;
        word-break:normal!important;
    }

    #lojaProductModal .ep-store-detail-tags{
        width:100%!important;
        min-width:0!important;
    }

    #lojaProductModal .ep-store-detail-price strong{
        font-size:25px!important;
        line-height:1.12!important;
        overflow-wrap:anywhere!important;
    }

    #lojaProductModal .ep-store-price{
        max-width:100%!important;
        min-width:0!important;
    }

    #lojaProductModal .ep-store-detail-personalization,
    #lojaProductModal .ep-store-detail-variations{
        padding:12px!important;
        overflow:hidden!important;
    }

    #lojaProductModal .ep-store-detail-memorials{
        grid-template-columns:1fr!important;
    }

    #lojaProductModal .ep-store-memorial-choice{
        width:100%!important;
        min-width:0!important;
        grid-template-columns:42px minmax(0,1fr) 24px!important;
    }

    #lojaProductModal .ep-store-memorial-choice-copy{
        min-width:0!important;
    }

    #lojaProductModal .ep-store-memorial-choice-copy strong,
    #lojaProductModal .ep-store-memorial-choice-copy small{
        overflow:hidden!important;
        text-overflow:ellipsis!important;
        white-space:nowrap!important;
    }

    #lojaProductModal .ep-store-variation-options{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    #lojaProductModal .ep-store-variation-option-wrap{
        width:100%!important;
        min-width:0!important;
        grid-template-columns:52px minmax(0,1fr)!important;
    }

    #lojaProductModal .ep-store-variation-option-wrap:not(:has(.ep-store-variation-image)){
        grid-template-columns:minmax(0,1fr)!important;
    }

    #lojaProductModal .ep-store-variation-option{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
    }

    #lojaProductModal .ep-store-variation-option > span{
        min-width:0!important;
    }

    #lojaProductModal .ep-store-variation-option > span strong,
    #lojaProductModal .ep-store-variation-option > span small{
        overflow:hidden!important;
        text-overflow:ellipsis!important;
        white-space:nowrap!important;
    }

    #lojaProductModal .ep-store-variation-option em{
        max-width:90px!important;
        overflow:hidden!important;
        text-overflow:ellipsis!important;
    }

    #lojaProductModal .ep-store-detail-note{
        align-items:flex-start!important;
    }

    #lojaProductModal #lojaDetailAdd{
        width:100%!important;
        max-width:100%!important;
    }

    #lojaProductModal .ep-store-product-modal-close{
        position:sticky!important;
        float:right!important;
        top:10px!important;
        right:10px!important;
        margin:10px 10px -54px auto!important;
        z-index:20!important;
    }
}

@media(max-width:420px){
    #lojaProductModal.ep-store-product-modal{
        padding:0!important;
    }

    #lojaProductModal .ep-store-product-modal-dialog{
        max-height:100dvh!important;
        min-height:100dvh!important;
        border-radius:0!important;
        border:0!important;
    }

    #lojaProductModal .ep-store-detail-gallery{
        border-radius:0!important;
        padding:10px!important;
    }

    #lojaProductModal .ep-store-detail-main{
        min-height:210px!important;
    }

    #lojaProductModal .ep-store-detail-info{
        padding:20px 12px 18px!important;
    }

    #lojaProductModal .ep-store-detail-info h2{
        font-size:22px!important;
    }

    #lojaProductModal .ep-store-detail-price strong{
        font-size:23px!important;
    }
}

/* Foto de perfil do memorial: abre a imagem original no lightbox. */
.memorial-perfil-avatar.tem-lightbox{
  cursor:zoom-in !important;
  transition:transform .18s ease,box-shadow .18s ease !important;
}
.memorial-perfil-avatar.tem-lightbox:hover{
  transform:translateY(-2px) !important;
  box-shadow:7px 9px 0 rgba(0,0,0,.28) !important;
}
.memorial-fullscreen.memorial-gratis .memorial-perfil-avatar.tem-lightbox:hover{
  transform:translateX(-50%) translateY(-2px) !important;
}
.memorial-perfil-avatar.tem-lightbox:focus-visible{
  outline:3px solid #fff !important;
  outline-offset:4px !important;
}

/* Foto de perfil: lightbox simples, sem controles de galeria. */
.memorial-lightbox.foto-perfil-unica .memorial-lightbox-dialog{
  width:min(920px,94vw);
  grid-template-columns:minmax(0,1fr);
}
.memorial-lightbox.foto-perfil-unica .memorial-lightbox-nav,
.memorial-lightbox.foto-perfil-unica .memorial-lightbox-figure figcaption{
  display:none !important;
}
.memorial-lightbox.foto-perfil-unica .memorial-lightbox-figure{
  grid-template-rows:minmax(0,1fr);
}
.memorial-lightbox.foto-perfil-unica .memorial-lightbox-fechar{
  top:8px;
  right:8px;
  z-index:10;
  pointer-events:auto;
}
