/* ajuste-atalhos-v1075 */
/* v1.0.75 — Menu e busca alinhados à direita no mesmo eixo do Explorar */
.atalhos-laterais-externos{
  align-items:flex-end !important;
  right:18px !important;
}
.atalhos-laterais-externos .btn-atalho-externo,
.atalhos-laterais-externos .btn-atalho-externo.busca{
  align-self:flex-end !important;
  margin-left:auto !important;
  margin-right:0 !important;
}
@media (max-width:767.98px){
  .atalhos-laterais-externos{
    right:10px !important;
  }
}

/* ajuste-modal-eternizar-v1076 */
/* v1.0.76 — modal Eternizar sempre acima dos controles flutuantes */
#modalEternizar,
.modal-eternizar,
.modal-overlay,
.modal-backdrop-eternizar{
    z-index: 2147483000 !important;
}
#modalEternizar .modal-content,
.modal-eternizar .modal-content,
.modal-eternizar-conteudo{
    position: relative !important;
    z-index: 2147483001 !important;
}
body:has(#modalEternizar.show) .atalhos-laterais-externos,
body:has(#modalEternizar.ativo) .atalhos-laterais-externos,
body:has(.modal-eternizar.show) .atalhos-laterais-externos,
body:has(.modal-eternizar.ativo) .atalhos-laterais-externos{
    z-index: 1 !important;
}

/* ajuste-modal-pet-v1077 */
/* v1.0.77 — memorial do pet sempre em destaque sobre painel/atalhos */
#modalPet{
    z-index: 2147483000 !important;
}
#modalPet .modal-dialog,
#modalPet .modal-content{
    position: relative !important;
    z-index: 2147483001 !important;
}

/* Quando o memorial estiver aberto, toda a navegação lateral fica atrás */
body:has(#modalPet.show) .painel-lateral-cemiterio,
body:has(#modalPet.show) .atalhos-laterais-externos,
body:has(#modalPet.show) .aba-painel-cemiterio,
body:has(#modalPet.show) .btn-eternizar-fixo{
    z-index: 1 !important;
    pointer-events: none !important;
}

/* Backdrop específico do memorial fica acima do mundo e abaixo do modal */
.modal-backdrop.backdrop-modal-pet{
    z-index: 2147482990 !important;
}

/* capela-v1079 */
/* =========================================================
   v1.0.79 — Capela das Lembranças
   ========================================================= */

.local-capela{
  overflow:hidden !important;
  border-color:#6f5637 !important;
  background:
    linear-gradient(180deg,#d9ca98 0 34%,transparent 34%),
    var(--gramado-textura),
    var(--gramado-cor) !important;
  background-repeat:no-repeat,repeat,repeat !important;
  background-size:100% 100%,16px 16px,auto !important;
}

body.modo-noturno .local-capela{
  background:
    linear-gradient(180deg,#51495b 0 34%,transparent 34%),
    var(--gramado-textura),
    var(--gramado-cor-noturno) !important;
  background-repeat:no-repeat,repeat,repeat !important;
  background-size:100% 100%,16px 16px,auto !important;
}

.local-capela .cenario-especial{
  inset:74px 22px 62px !important;
}

.capela-exterior-wrap{
  position:relative;
  width:100%;
  height:100%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  pointer-events:none;
}

.capela-exterior-svg{
  width:min(76%,390px);
  max-height:94%;
  height:auto;
  image-rendering:pixelated;
  filter:drop-shadow(7px 9px 0 rgba(0,0,0,.14));
}

.capela-exterior-svg *{
  shape-rendering:crispEdges;
}

.local-capela .local-especial-titulo{
  background:#f4d376 !important;
}

.local-capela .placa-descoberta{
  background:#573e7e !important;
  color:#f2e7ff !important;
}

/* overlay da capela */
.capela-overlay{
  position:fixed;
  inset:0;
  z-index:2100;
  display:none;
  overflow:hidden;
  background:#090a0d;
  opacity:0;
}

.capela-overlay.ativo{
  display:block;
  animation:capela-overlay-entrada .38s ease forwards;
}

@keyframes capela-overlay-entrada{
  from{opacity:0}
  to{opacity:1}
}

.capela-transicao{
  position:absolute;
  inset:0;
  z-index:8;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at center,rgba(255,232,175,.10),transparent 32%),
    #11161b;
  overflow:hidden;
}

.capela-transicao.saindo{
  animation:capela-transicao-sumir .7s ease forwards;
}

@keyframes capela-transicao-sumir{
  from{opacity:1}
  to{opacity:0;visibility:hidden}
}

.capela-fachada-entrada{
  width:min(520px,80vw);
  animation:aproximar-capela 1.05s cubic-bezier(.2,.72,.2,1) forwards;
  image-rendering:pixelated;
  filter:drop-shadow(14px 18px 0 rgba(0,0,0,.24));
}

@keyframes aproximar-capela{
  0%{
    transform:scale(.48) translateY(55px);
    opacity:.2;
  }
  55%{
    opacity:1;
  }
  100%{
    transform:scale(1.38) translateY(12px);
    opacity:1;
  }
}

/* interior */
.capela-interior{
  position:absolute;
  inset:0;
  z-index:2;
  overflow:hidden;
  opacity:0;
  transform:scale(1.035);
  transition:opacity .55s ease,transform .75s ease;
  background:#161111;
}

.capela-overlay.interior-visivel .capela-interior{
  opacity:1;
  transform:scale(1);
}

/* imagem de fundo em pixel art */
.capela-fundo-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:pixelated;
  pointer-events:none;
}

.capela-fundo-svg *{
  shape-rendering:crispEdges;
}

.capela-vinheta{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  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%);
}

.capela-raio-luz{
  position:absolute;
  top:0;
  left:50%;
  z-index:3;
  width:36%;
  height:66%;
  transform:translateX(-50%);
  clip-path:polygon(36% 0,64% 0,100% 100%,0 100%);
  background:linear-gradient(180deg,rgba(255,238,177,.24),rgba(255,238,177,.02));
  pointer-events:none;
  opacity:.75;
}

.capela-cabecalho{
  position:absolute;
  left:22px;
  top:20px;
  z-index:20;
  max-width:540px;
  padding:14px 16px;
  border:4px solid #0f0f0f;
  background:rgba(21,17,38,.92);
  color:#fff;
  box-shadow:6px 6px 0 rgba(0,0,0,.18);
}

.capela-cabecalho strong{
  display:block;
  color:#f8d77d;
  font-size:18px;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.capela-cabecalho span{
  display:block;
  margin-top:5px;
  color:#dfd8ea;
  font-family:Arial,sans-serif;
  font-size:12px;
  line-height:1.45;
}

.capela-sair{
  position:absolute;
  right:22px;
  top:20px;
  z-index:25;
  min-width:124px;
  height:52px;
  border:4px solid #111;
  background:#f1d16f;
  color:#111;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  box-shadow:5px 5px 0 rgba(0,0,0,.18);
  cursor:pointer;
}

.capela-sair:hover{
  transform:translate(-1px,-1px);
}

/* galeria */
.capela-galeria{
  position:absolute;
  left:0;
  right:0;
  bottom:5.5%;
  z-index:12;
  padding:18px 0 26px;
  border-top:4px solid rgba(30,20,14,.88);
  border-bottom:4px solid rgba(30,20,14,.88);
  background:rgba(22,13,10,.74);
  backdrop-filter:blur(2px);
}

.capela-galeria-titulo{
  width:min(1100px,92vw);
  margin:0 auto 13px;
  color:#f8e7b0;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  text-shadow:3px 3px 0 rgba(0,0,0,.32);
}

.capela-faixa-viewport{
  position:relative;
  width:100%;
  overflow:hidden;
}

.capela-faixa-viewport:before,
.capela-faixa-viewport:after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  z-index:4;
  width:90px;
  pointer-events:none;
}

.capela-faixa-viewport:before{
  left:0;
  background:linear-gradient(90deg,rgba(22,13,10,1),transparent);
}

.capela-faixa-viewport:after{
  right:0;
  background:linear-gradient(-90deg,rgba(22,13,10,1),transparent);
}

.capela-faixa{
  display:flex;
  width:max-content;
  gap:18px;
  padding:4px 18px 8px;
  animation:capela-fotos-passando 38s linear infinite;
  will-change:transform;
}

.capela-faixa:hover{
  animation-play-state:paused;
}

@keyframes capela-fotos-passando{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

.capela-pet-card{
  width:176px;
  flex:0 0 176px;
  padding:8px;
  border:5px solid #24160e;
  background:#e8d2a2;
  box-shadow:
    inset 0 0 0 4px #b89658,
    7px 7px 0 rgba(0,0,0,.18);
  cursor:pointer;
  transition:transform .15s ease,filter .15s ease;
}

.capela-pet-card:hover{
  transform:translateY(-8px) scale(1.03);
  filter:brightness(1.05);
}

.capela-foto{
  position:relative;
  height:132px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:4px solid #2b1a10;
  background:
    linear-gradient(180deg,#81c7e9 0 48%,#8ccf64 48% 100%);
  image-rendering:pixelated;
}

.capela-foto:before{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:8px;
  height:20px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,.12) 0 8px,
      transparent 8px 16px
    );
  opacity:.6;
}

.capela-foto .avatar{
  position:relative;
  z-index:2;
  font-size:64px;
  line-height:1;
  filter:drop-shadow(4px 5px 0 rgba(0,0,0,.15));
}

.capela-foto>img,.capela-historia-avatar>img{width:100%;height:100%;object-fit:cover;display:block}
.capela-faixa-vazia{margin:0;padding:18px 22px;color:#fff;text-align:center;font:700 13px/1.4 Arial,sans-serif}

.capela-info{
  padding:8px 3px 2px;
  text-align:center;
}

.capela-info strong{
  display:block;
  color:#342117;
  font-size:12px;
  text-transform:uppercase;
}

.capela-info small{
  display:block;
  margin-top:4px;
  color:#765d47;
  font-family:Arial,sans-serif;
  font-size:10px;
}

/* cartão de história */
.capela-historia{
  position:absolute;
  left:50%;
  top:50%;
  z-index:18;
  width:min(580px,88vw);
  transform:translate(-50%,-53%);
  padding:18px;
  border:5px solid #15100d;
  background:rgba(246,236,213,.95);
  color:#3c2f27;
  box-shadow:12px 12px 0 rgba(0,0,0,.28);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;
}

.capela-historia.ativo{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,-50%);
}

.capela-historia-fechar{
  position:absolute;
  right:10px;
  top:10px;
  width:38px;
  height:38px;
  border:4px solid #111;
  background:#ef4444;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

.capela-historia-topo{
  display:flex;
  gap:14px;
  align-items:center;
  padding-right:46px;
}

.capela-historia-avatar{
  width:92px;
  height:92px;
  flex:0 0 92px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:4px solid #33251b;
  background:#bfd8e8;
  font-size:52px;
}

.capela-historia h3{
  margin:0;
  color:#2e211a;
  font-size:20px;
  text-transform:uppercase;
}

.capela-historia .datas{
  margin-top:4px;
  color:#7a6657;
  font-family:Arial,sans-serif;
  font-size:12px;
}

.capela-historia p{
  margin:16px 0 0;
  color:#5a4b40;
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1.7;
}

/* mobile */
@media (max-width:767.98px){
  .capela-cabecalho{
    left:10px;
    top:10px;
    max-width:66vw;
    padding:10px 11px;
  }

  .capela-cabecalho strong{
    font-size:12px;
  }

  .capela-cabecalho span{
    font-size:9px;
  }

  .capela-sair{
    right:10px;
    top:10px;
    min-width:88px;
    height:44px;
    font-size:9px;
  }

  .capela-galeria{
    bottom:3.5%;
  }

  .capela-pet-card{
    width:144px;
    flex-basis:144px;
  }

  .capela-foto{
    height:108px;
  }

  .capela-foto .avatar{
    font-size:50px;
  }

  .capela-historia-topo{
    align-items:flex-start;
  }

  .capela-historia-avatar{
    width:72px;
    height:72px;
    flex-basis:72px;
    font-size:42px;
  }
}

body.capela-aberta{
  overflow:hidden !important;
}

body.capela-aberta .painel-lateral-cemiterio,
body.capela-aberta .atalhos-laterais-externos,
body.capela-aberta .btn-eternizar-fixo{
  display:none !important;
}

/* capela-saida-v1080 */
/* v1.0.80 — saída cinematográfica da Capela das Lembranças */

.capela-portas-saida{
  position:absolute;
  inset:0;
  z-index:35;
  display:none;
  pointer-events:none;
  overflow:hidden;
}

.capela-portas-saida.ativo{
  display:block;
}

.capela-porta{
  position:absolute;
  top:0;
  bottom:0;
  width:50.2%;
  background:
    repeating-linear-gradient(
      90deg,
      #70462c 0 34px,
      #845536 34px 68px
    );
  border-top:12px solid #3d2a1e;
  border-bottom:12px solid #3d2a1e;
  box-shadow:inset 0 0 0 8px rgba(0,0,0,.10);
  image-rendering:pixelated;
}

.capela-porta:before,
.capela-porta:after{
  content:"";
  position:absolute;
  left:12%;
  right:12%;
  border:8px solid #4b3020;
  background:rgba(255,255,255,.025);
}

.capela-porta:before{
  top:12%;
  height:28%;
}

.capela-porta:after{
  bottom:12%;
  height:28%;
}

.capela-porta-esq{
  left:-50.2%;
  border-right:10px solid #2f2118;
}

.capela-porta-dir{
  right:-50.2%;
  border-left:10px solid #2f2118;
}

.capela-portas-saida.ativo .capela-porta-esq{
  animation:fechar-porta-capela-esq .72s cubic-bezier(.24,.72,.24,1) forwards;
}

.capela-portas-saida.ativo .capela-porta-dir{
  animation:fechar-porta-capela-dir .72s cubic-bezier(.24,.72,.24,1) forwards;
}

.capela-porta-puxador{
  position:absolute;
  top:51%;
  width:16px;
  height:16px;
  border:4px solid #5a451f;
  background:#e0b94b;
  box-shadow:2px 2px 0 rgba(0,0,0,.22);
}

.capela-porta-esq .capela-porta-puxador{
  right:20px;
}

.capela-porta-dir .capela-porta-puxador{
  left:20px;
}

@keyframes fechar-porta-capela-esq{
  from{left:-50.2%}
  to{left:0}
}

@keyframes fechar-porta-capela-dir{
  from{right:-50.2%}
  to{right:0}
}

.capela-overlay.saindo .capela-interior{
  animation:interior-capela-afastar .9s ease forwards;
}

@keyframes interior-capela-afastar{
  0%{
    transform:scale(1);
    filter:brightness(1);
  }
  100%{
    transform:scale(.92);
    filter:brightness(.48);
  }
}

.capela-overlay.saindo .capela-galeria,
.capela-overlay.saindo .capela-cabecalho,
.capela-overlay.saindo .capela-sair{
  animation:capela-ui-sumir .24s ease forwards;
}

@keyframes capela-ui-sumir{
  to{
    opacity:0;
    transform:translateY(6px);
  }
}

/* Depois das portas fecharem, reaparece a fachada e "afasta" a câmera */
.capela-fachada-saida{
  position:absolute;
  inset:0;
  z-index:42;
  display:none;
  align-items:center;
  justify-content:center;
  background:#11161b;
  opacity:0;
  pointer-events:none;
}

.capela-fachada-saida.ativo{
  display:flex;
  animation:mostrar-fachada-saida .18s ease forwards;
}

.capela-fachada-saida .capela-fachada-entrada{
  animation:afastar-capela-saida .82s cubic-bezier(.3,.75,.3,1) forwards;
}

@keyframes mostrar-fachada-saida{
  to{opacity:1}
}

@keyframes afastar-capela-saida{
  0%{
    transform:scale(1.38) translateY(12px);
    opacity:1;
  }
  100%{
    transform:scale(.50) translateY(58px);
    opacity:.08;
  }
}

.capela-overlay.saindo-total{
  animation:capela-overlay-saida-final .38s ease forwards;
}

@keyframes capela-overlay-saida-final{
  from{opacity:1}
  to{opacity:0}
}

/* mariah-guia-v1081 */
/* =========================================================
   v1.0.81 — Espírito Guia Mariah
   ========================================================= */

.mariah-guia{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:2050;
  display:none;
  align-items:flex-end;
  gap:12px;
  max-width:min(610px,calc(100vw - 36px));
  pointer-events:none;
}

.mariah-guia.ativo{
  display:flex;
}

.mariah-avatar-wrap{
  position:relative;
  width:118px;
  min-width:118px;
  height:132px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  pointer-events:none;
  filter:drop-shadow(7px 9px 0 rgba(0,0,0,.15));
}

.mariah-avatar{
  width:108px;
  height:128px;
  overflow:visible;
  image-rendering:pixelated;
  animation:mariah-flutuar 2.25s steps(6,end) infinite alternate;
}

.mariah-avatar *{
  shape-rendering:crispEdges;
}

@keyframes mariah-flutuar{
  from{transform:translateY(0)}
  to{transform:translateY(-8px)}
}

.mariah-brilho{
  position:absolute;
  left:50%;
  bottom:5px;
  width:82px;
  height:18px;
  transform:translateX(-50%);
  border-radius:50%;
  background:rgba(161,238,255,.24);
  filter:blur(3px);
  animation:mariah-brilho 1.8s ease-in-out infinite alternate;
}

@keyframes mariah-brilho{
  from{transform:translateX(-50%) scale(.85);opacity:.48}
  to{transform:translateX(-50%) scale(1.08);opacity:.82}
}

.mariah-balao{
  position:relative;
  width:min(448px,calc(100vw - 165px));
  min-height:152px;
  padding:17px 18px 14px;
  border:5px solid #101010;
  background:#fffdf1;
  color:#273244;
  box-shadow:8px 8px 0 rgba(0,0,0,.18);
  pointer-events:auto;
}

.mariah-balao:before{
  content:"";
  position:absolute;
  left:-23px;
  bottom:30px;
  width:24px;
  height:24px;
  border-left:5px solid #101010;
  border-bottom:5px solid #101010;
  background:#fffdf1;
  transform:rotate(45deg);
}

.mariah-topo{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}

.mariah-nome{
  display:flex;
  align-items:center;
  gap:7px;
  color:#151196;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}

.mariah-etapa{
  padding:5px 7px;
  border:2px solid #c7d0dc;
  background:#eef3f8;
  color:#697586;
  font-family:Arial,sans-serif;
  font-size:9px;
  font-weight:800;
}

.mariah-texto{
  min-height:74px;
  color:#3f4c5f;
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1.62;
}

.mariah-cursor{
  display:inline-block;
  width:7px;
  height:14px;
  margin-left:2px;
  vertical-align:-2px;
  background:#151196;
  animation:mariah-cursor .72s steps(2,end) infinite;
}

@keyframes mariah-cursor{
  50%{opacity:0}
}

.mariah-acoes{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:14px;
}

.mariah-acoes-esq,
.mariah-acoes-dir{
  display:flex;
  gap:7px;
}

.mariah-btn{
  min-height:39px;
  padding:0 11px;
  border:3px solid #101010;
  background:#fff;
  color:#111;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:3px 3px 0 rgba(0,0,0,.09);
}

.mariah-btn:hover{
  transform:translate(-1px,-1px);
}

.mariah-btn.primario{
  background:#ffd21c;
}

.mariah-btn.pular{
  border-color:#b8c0cb;
  color:#6b7280;
  background:#f5f7fa;
}

.mariah-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.mariah-destaque{
  position:relative !important;
  z-index:2042 !important;
  outline:6px solid #ffd21c !important;
  outline-offset:5px !important;
  animation:mariah-destaque-pulso 1s steps(2,end) infinite !important;
}

@keyframes mariah-destaque-pulso{
  0%,100%{filter:brightness(1)}
  50%{filter:brightness(1.18)}
}

.mariah-dica-alvo{
  position:fixed;
  z-index:2044;
  display:none;
  max-width:230px;
  padding:8px 10px;
  border:3px solid #101010;
  background:#ffd21c;
  color:#111;
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:900;
  line-height:1.35;
  box-shadow:4px 4px 0 rgba(0,0,0,.13);
  pointer-events:none;
}

.mariah-dica-alvo.visivel{
  display:block;
}

.mariah-reabrir{
  position:fixed;
  left:16px;
  bottom:16px;
  z-index:1078;
  display:none;
  width:54px;
  height:54px;
  padding:0;
  border:4px solid #101010;
  border-radius:0;
  background:#dff9ff;
  cursor:pointer;
  box-shadow:5px 5px 0 rgba(0,0,0,.14);
}

.mariah-reabrir.visivel{
  display:flex;
  align-items:center;
  justify-content:center;
}

.mariah-reabrir svg{
  width:42px;
  height:46px;
  image-rendering:pixelated;
}

.mariah-reabrir:hover{
  transform:translate(-1px,-1px);
}

.mariah-reabrir .badge-guia{
  position:absolute;
  right:-8px;
  top:-8px;
  min-width:21px;
  height:21px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:3px solid #101010;
  background:#ffd21c;
  color:#111;
  font-size:10px;
  font-weight:900;
}

body.mariah-tutorial-ativo .mariah-reabrir{
  display:none !important;
}

/* reduz conflitos com modais e capela */
body.modal-open .mariah-guia,
body.capela-aberta .mariah-guia{
  z-index:1030;
}

body.capela-aberta .mariah-reabrir{
  display:none !important;
}

@media (max-width:767.98px){
  .mariah-guia{
    left:10px;
    right:10px;
    bottom:10px;
    max-width:none;
    gap:7px;
  }

  .mariah-avatar-wrap{
    width:82px;
    min-width:82px;
    height:98px;
  }

  .mariah-avatar{
    width:78px;
    height:94px;
  }

  .mariah-balao{
    width:calc(100vw - 109px);
    min-height:150px;
    padding:13px 13px 11px;
    border-width:4px;
  }

  .mariah-balao:before{
    left:-18px;
    bottom:25px;
    width:19px;
    height:19px;
    border-width:0 0 4px 4px;
  }

  .mariah-texto{
    min-height:88px;
    font-size:11px;
    line-height:1.5;
  }

  .mariah-btn{
    min-height:36px;
    padding:0 8px;
    font-size:9px;
  }

  .mariah-etapa{
    display:none;
  }

  .mariah-acoes{
    align-items:flex-end;
  }

  .mariah-acoes-esq{
    display:none;
  }

  .mariah-reabrir{
    left:10px;
    bottom:10px;
    width:48px;
    height:48px;
  }

  .mariah-dica-alvo{
    max-width:180px;
    font-size:9px;
  }
}

@media (prefers-reduced-motion:reduce){
  .mariah-avatar,
  .mariah-brilho,
  .mariah-cursor,
  .mariah-destaque{
    animation:none !important;
  }
}

/* mariah-spotlight-v1082 */
/* =========================================================
   v1.0.82 — Spotlight do Espírito Guia
   ========================================================= */

.mariah-spotlight{
  position:fixed;
  inset:0;
  z-index:2038;
  display:none;
  pointer-events:none;
}

.mariah-spotlight.ativo{
  display:block;
}

.mariah-spotlight .sombra{
  position:absolute;
  background:rgba(4,8,14,.76);
  backdrop-filter:blur(1.5px);
  transition:
    left .28s ease,
    top .28s ease,
    width .28s ease,
    height .28s ease,
    opacity .2s ease;
}

.mariah-spotlight-top{
  left:0;
  top:0;
  right:0;
  height:var(--spot-top,0px);
}

.mariah-spotlight-bottom{
  left:0;
  top:var(--spot-bottom-start,100vh);
  right:0;
  bottom:0;
}

.mariah-spotlight-left{
  left:0;
  top:var(--spot-top,0px);
  width:var(--spot-left,0px);
  height:var(--spot-height,0px);
}

.mariah-spotlight-right{
  left:var(--spot-right-start,100vw);
  top:var(--spot-top,0px);
  right:0;
  height:var(--spot-height,0px);
}

/* Halo em volta do elemento destacado */
.mariah-spotlight-halo{
  position:fixed;
  z-index:2041;
  display:none;
  border:5px solid #ffd21c;
  box-shadow:
    0 0 0 4px rgba(255,255,255,.92),
    0 0 22px rgba(255,210,28,.78),
    0 0 52px rgba(255,210,28,.28);
  pointer-events:none;
  transition:
    left .28s ease,
    top .28s ease,
    width .28s ease,
    height .28s ease;
}

.mariah-spotlight-halo.ativo{
  display:block;
}

/* Quando não há alvo específico, escurece a tela inteira mas mantém Mariah visível */
.mariah-spotlight.sem-alvo .mariah-spotlight-top{
  height:100vh !important;
}

.mariah-spotlight.sem-alvo .mariah-spotlight-bottom,
.mariah-spotlight.sem-alvo .mariah-spotlight-left,
.mariah-spotlight.sem-alvo .mariah-spotlight-right{
  display:none;
}

/* Mariah e o balão sempre ficam acima do spotlight */
.mariah-guia{
  z-index:2050 !important;
}

.mariah-dica-alvo{
  z-index:2051 !important;
}

/* Evita outros controles flutuantes por cima da explicação */
body.mariah-tutorial-ativo .atalhos-laterais-externos,
body.mariah-tutorial-ativo .painel-lateral-cemiterio,
body.mariah-tutorial-ativo .btn-eternizar-fixo{
  z-index:2039 !important;
}

/* O alvo focado permanece acima da camada escura */
body.mariah-tutorial-ativo .mariah-destaque{
  z-index:2043 !important;
  pointer-events:auto !important;
}

/* Fundo do balão um pouco mais sólido para leitura */
body.mariah-tutorial-ativo .mariah-balao{
  background:#fffdf1 !important;
  box-shadow:
    9px 9px 0 rgba(0,0,0,.24),
    0 0 0 3px rgba(255,255,255,.55);
}

body.mariah-tutorial-ativo .mariah-avatar-wrap{
  filter:
    drop-shadow(7px 9px 0 rgba(0,0,0,.18))
    drop-shadow(0 0 16px rgba(202,247,255,.48));
}

@media (max-width:767.98px){
  .mariah-spotlight .sombra{
    background:rgba(3,7,12,.79);
    backdrop-filter:none;
  }

  .mariah-spotlight-halo{
    border-width:4px;
    box-shadow:
      0 0 0 3px rgba(255,255,255,.92),
      0 0 16px rgba(255,210,28,.72);
  }
}

/* mariah-ajustes-passos-v1083 */
/* v1.0.83 — ajustes finos do tutorial da Mariah */

.mariah-guia{
  transition:
    bottom .45s cubic-bezier(.22,.72,.22,1),
    transform .45s cubic-bezier(.22,.72,.22,1);
}

/* 5/7: deixa a área central mais livre para o túmulo demonstrado */
.mariah-guia.mariah-passo-5{
  left:auto !important;
  right:18px !important;
  transform:translateY(0);
}

/* 6/7: sobe suavemente todo o Espírito Guia para não cobrir o botão Eternizar */
.mariah-guia.mariah-passo-6{
  bottom:168px !important;
  transform:translateY(0);
}

/* O túmulo escolhido para a demonstração recebe foco extra */
.tumulo-tutorial-mariah{
  z-index:2045 !important;
  outline:7px solid #ffd21c !important;
  outline-offset:7px !important;
  filter:
    brightness(1.12)
    drop-shadow(0 0 18px rgba(255,210,28,.65)) !important;
  animation:tumulo-tutorial-mariah-pulso .9s steps(2,end) infinite !important;
}

@keyframes tumulo-tutorial-mariah-pulso{
  0%,100%{
    transform:scale(1);
  }
  50%{
    transform:scale(1.025);
  }
}

@media (max-width:767.98px){
  .mariah-guia.mariah-passo-5{
    left:10px !important;
    right:10px !important;
  }

  .mariah-guia.mariah-passo-6{
    bottom:112px !important;
  }
}

/* mariah-dica-ajuste-v1084 */
/* v1.0.84 — dica do passo 5 não cobre o guia nem o memorial */
.mariah-guia.mariah-passo-5 + .mariah-dica-alvo{
  max-width:250px;
}

body.mariah-tutorial-ativo .mariah-dica-alvo{
  transition:left .28s ease, top .28s ease;
}

/* mariah-botao-reabrir-v1085 */
/* v1.0.85 — guia acima do botão Eternizar Pet */
.mariah-reabrir{
  left:22px !important;
  bottom:138px !important;
  z-index:4100 !important;
}

@media (max-width:767.98px){
  .mariah-reabrir{
    left:14px !important;
    bottom:118px !important;
  }
}

/* matar-saudade-v1086 */
/* =========================================================
   v1.0.86 — Vídeo de lembranças para memoriais pagos
   ========================================================= */

.btn-memorial.saudade{
  background:#151196 !important;
  color:#fff !important;
  border-color:#101010 !important;
}

.btn-memorial.saudade:hover{
  background:#211bc4 !important;
}

.saudade-overlay{
  position:fixed;
  inset:0;
  z-index:2147483200;
  display:none;
  overflow:hidden;
  background:#090b12;
  opacity:0;
}

.saudade-overlay.ativo{
  display:block;
  animation:saudade-overlay-entrar .38s ease forwards;
}

@keyframes saudade-overlay-entrar{
  to{opacity:1}
}

.saudade-overlay.saindo{
  animation:saudade-overlay-sair .34s ease forwards;
}

@keyframes saudade-overlay-sair{
  from{opacity:1}
  to{opacity:0}
}

.saudade-palco{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 40%,rgba(70,65,145,.24),transparent 32%),
    linear-gradient(180deg,#101426,#090b12 72%);
}

.saudade-estrelas{
  position:absolute;
  inset:0;
  opacity:.34;
  pointer-events:none;
  background-image:
    radial-gradient(circle,#fff 0 1px,transparent 1.6px),
    radial-gradient(circle,#9edcff 0 1px,transparent 1.5px);
  background-size:83px 71px,137px 109px;
  animation:saudade-estrelas 12s linear infinite;
}

@keyframes saudade-estrelas{
  from{background-position:0 0,0 0}
  to{background-position:83px 71px,-137px 109px}
}

.saudade-cinema{
  position:relative;
  width:min(930px,92vw);
  height:min(650px,82vh);
  display:flex;
  flex-direction:column;
  border:5px solid #101010;
  background:#f5f1e6;
  box-shadow:16px 16px 0 rgba(0,0,0,.34);
  overflow:hidden;
}

.saudade-topo{
  min-height:74px;
  padding:13px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border-bottom:5px solid #101010;
  background:#151196;
  color:#fff;
}

.saudade-topo-info strong{
  display:block;
  font-size:17px;
  text-transform:uppercase;
}

.saudade-topo-info span{
  display:block;
  margin-top:3px;
  color:#d9d9ff;
  font-family:Arial,sans-serif;
  font-size:11px;
}

.saudade-fechar{
  width:46px;
  height:46px;
  flex:0 0 46px;
  border:4px solid #101010;
  background:#ef4444;
  color:#fff;
  font-size:18px;
  font-weight:900;
  cursor:pointer;
}

.saudade-video{
  position:relative;
  flex:1;
  min-height:0;
  overflow:hidden;
  background:#111722;
}

.saudade-slide{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transform:scale(1.06);
  transition:
    opacity 1.15s ease,
    transform 6.5s ease;
  overflow:hidden;
}

.saudade-slide.ativo{
  opacity:1;
  transform:scale(1);
}

.saudade-slide.saindo{
  opacity:0;
  transform:scale(.97);
}

.saudade-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.saudade-slide-fundo{
  position:absolute;
  inset:-28px;
  background-size:cover;
  background-position:center;
  filter:blur(20px) brightness(.42);
  transform:scale(1.12);
}

.saudade-slide-imagem{
  position:relative;
  z-index:2;
  width:auto !important;
  max-width:84%;
  height:auto !important;
  max-height:83%;
  object-fit:contain !important;
  border:5px solid rgba(255,255,255,.9);
  box-shadow:10px 10px 0 rgba(0,0,0,.22);
}

/* fallback visual quando ainda não há imagens carregadas na demonstração */
.saudade-slide-placeholder{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    linear-gradient(180deg,#a8d8ef 0 52%,#75b75d 52% 100%);
}

.saudade-slide-placeholder .quadro{
  position:relative;
  z-index:2;
  width:min(510px,70%);
  height:min(350px,65%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:8px solid #f4e8d2;
  background:
    radial-gradient(circle at 50% 38%,rgba(255,255,255,.7),transparent 38%),
    rgba(255,255,255,.16);
  box-shadow:
    0 0 0 5px #503923,
    12px 12px 0 rgba(0,0,0,.18);
}

.saudade-slide-placeholder .avatar{
  font-size:110px;
  filter:drop-shadow(6px 7px 0 rgba(0,0,0,.14));
}

.saudade-slide-placeholder strong{
  margin-top:12px;
  color:#32291e;
  font-size:20px;
  text-transform:uppercase;
}

.saudade-legenda{
  position:absolute;
  left:50%;
  bottom:26px;
  z-index:6;
  width:min(700px,88%);
  transform:translateX(-50%);
  padding:12px 16px;
  border:4px solid #101010;
  background:rgba(255,252,240,.94);
  color:#354054;
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1.45;
  text-align:center;
  box-shadow:6px 6px 0 rgba(0,0,0,.18);
}

.saudade-vinheta{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.14),transparent 22%,transparent 68%,rgba(0,0,0,.42)),
    radial-gradient(circle at center,transparent 50%,rgba(0,0,0,.30));
}

.saudade-controles{
  min-height:74px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:15px;
  padding:11px 15px;
  border-top:5px solid #101010;
  background:#eef2f6;
}

.saudade-progresso-wrap{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.saudade-progresso{
  position:relative;
  height:14px;
  overflow:hidden;
  border:3px solid #101010;
  background:#fff;
}

.saudade-progresso-barra{
  width:0%;
  height:100%;
  background:#ffd21c;
  transition:width .2s linear;
}

.saudade-status{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#697586;
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:700;
}

.saudade-botoes{
  display:flex;
  gap:7px;
}

.saudade-botoes button{
  min-width:48px;
  height:44px;
  border:4px solid #101010;
  background:#fff;
  color:#111;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
}

.saudade-botoes .principal{
  min-width:64px;
  background:#ffd21c;
}

.saudade-botoes .musica-ativa{
  background:#c9f2b8;
}

.saudade-intro{
  position:absolute;
  inset:0;
  z-index:20;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:30px;
  background:
    radial-gradient(circle at 50% 42%,rgba(31,26,144,.75),rgba(9,11,18,.95) 58%);
  color:#fff;
  text-align:center;
  transition:opacity .55s ease,visibility .55s ease;
}

.saudade-intro.oculto{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.saudade-intro .icone{
  font-size:58px;
}

.saudade-intro h2{
  margin:0;
  font-size:30px;
  text-transform:uppercase;
}

.saudade-intro p{
  max-width:580px;
  margin:0;
  color:#dce3f2;
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1.6;
}

.saudade-intro button{
  margin-top:5px;
  min-height:54px;
  padding:0 22px;
  border:4px solid #101010;
  background:#ffd21c;
  color:#111;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  box-shadow:6px 6px 0 rgba(0,0,0,.25);
  cursor:pointer;
}

.saudade-musica-aviso{
  color:#aeb9cb;
  font-family:Arial,sans-serif;
  font-size:9px;
}

body.saudade-aberta{
  overflow:hidden !important;
}

body.saudade-aberta .mariah-reabrir,
body.saudade-aberta .atalhos-laterais-externos,
body.saudade-aberta .painel-lateral-cemiterio,
body.saudade-aberta .btn-eternizar-fixo{
  display:none !important;
}

@media(max-width:767.98px){
  .saudade-cinema{
    width:94vw;
    height:84vh;
  }

  .saudade-topo{
    min-height:62px;
    padding:9px 11px;
  }

  .saudade-topo-info strong{
    font-size:12px;
  }

  .saudade-slide-placeholder .avatar{
    font-size:76px;
  }

  .saudade-slide-placeholder strong{
    font-size:15px;
  }

  .saudade-legenda{
    bottom:16px;
    font-size:11px;
  }

  .saudade-controles{
    grid-template-columns:1fr;
  }

  .saudade-botoes{
    justify-content:center;
  }

  .saudade-intro h2{
    font-size:22px;
  }
}

/* qr-tumulo-v1087 */
/* =========================================================
   v1.0.87 — QR Code único por túmulo
   ========================================================= */

.btn-memorial.qr-unico{
  background:#fff !important;
}

.qr-tumulo-modal .modal-dialog{
  max-width:520px !important;
}

.qr-tumulo-modal .modal-content{
  border:5px solid #101010 !important;
  background:#f5f7fa !important;
  box-shadow:10px 10px 0 rgba(0,0,0,.22) !important;
}

.qr-tumulo-modal .modal-header{
  padding:16px 18px !important;
  border-bottom:5px solid #101010 !important;
  background:#151196 !important;
  color:#fff !important;
}

.qr-tumulo-modal .modal-title{
  font-size:18px !important;
  text-transform:uppercase;
}

.qr-tumulo-modal .btn-close{
  width:40px !important;
  height:40px !important;
  border:4px solid #101010 !important;
  border-radius:0 !important;
  background-color:#ef4444 !important;
  opacity:1 !important;
}

.qr-tumulo-corpo{
  padding:22px;
  text-align:center;
}

.qr-tumulo-box{
  width:260px;
  height:260px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border:6px solid #101010;
  background:#fff;
  box-shadow:7px 7px 0 rgba(0,0,0,.12);
}

.qr-tumulo-box img,
.qr-tumulo-box canvas{
  max-width:220px !important;
  max-height:220px !important;
}

.qr-tumulo-lote{
  margin-top:16px;
  color:#151196;
  font-size:16px;
  font-weight:900;
  text-transform:uppercase;
}

.qr-tumulo-url{
  margin-top:10px;
  padding:10px 12px;
  border:3px solid #c4ced8;
  background:#fff;
  color:#5d6979;
  font-family:Arial,sans-serif;
  font-size:10px;
  line-height:1.45;
  word-break:break-all;
}

.qr-tumulo-acoes{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:15px;
}

.qr-tumulo-acoes button{
  min-height:42px;
  padding:0 12px;
  border:4px solid #101010;
  background:#ffd21c;
  color:#111;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

@media(max-width:767.98px){
  .qr-tumulo-box{
    width:220px;
    height:220px;
  }

  .qr-tumulo-box img,
  .qr-tumulo-box canvas{
    max-width:185px !important;
    max-height:185px !important;
  }
}

/* qr-tumulo-frente-v1088 */
#modalQrTumulo{
  z-index: 20050 !important;
}
#modalQrTumulo.show{
  z-index: 20050 !important;
}
body.modal-open .modal-backdrop.qr-tumulo-backdrop{
  z-index: 20040 !important;
}

/* qr-tumulo-frente-v1089 */
/* v1.0.89 — QR abre isolado, acima do memorial */
#modalQrTumulo{
  z-index:2147483600 !important;
}

#modalQrTumulo .modal-dialog,
#modalQrTumulo .modal-content{
  position:relative !important;
  z-index:2147483601 !important;
}

.modal-backdrop.qr-tumulo-backdrop{
  z-index:2147483590 !important;
}

/* copiar-link-feedback-v1090 */
#btnCopiarLink{
  min-width:190px;
}

#btnCopiarLink:active{
  transform:translate(2px,2px);
}

/* memoriais-planos-v1091 */
/* =========================================================
   v1.0.91 — design diferenciado para memorial pago e grátis
   ========================================================= */

/* ---------- Memorial pago ---------- */
#modalPet.memorial-pago .modal-content{
  background:
    linear-gradient(180deg,#fff9e8 0 110px,#eef6ff 110px 100%) !important;
  border-color:#151515 !important;
  box-shadow:14px 14px 0 rgba(0,0,0,.30) !important;
}

#modalPet.memorial-pago .barra-topo{
  height:30px !important;
  background:
    repeating-linear-gradient(
      90deg,
      #ffd34d 0 72px,
      #ff9fb6 72px 144px,
      #8ed5ef 144px 216px,
      #b9e58c 216px 288px
    ) !important;
  border-bottom:5px solid #101010 !important;
}

#modalPet.memorial-pago .modal-body{
  background:
    radial-gradient(circle at 12% 14%,rgba(255,214,79,.19),transparent 18%),
    radial-gradient(circle at 88% 11%,rgba(255,159,182,.16),transparent 18%),
    #f4f8fc !important;
}

#modalPet.memorial-pago .foto-pet-modal{
  max-width:260px !important;
  background:
    linear-gradient(180deg,#aee3fa 0 54%,#bce49a 54% 100%) !important;
  border:5px solid #101010 !important;
  box-shadow:
    8px 8px 0 rgba(0,0,0,.14),
    inset 0 0 0 8px rgba(255,255,255,.48) !important;
}

#modalPet.memorial-pago .foto-pet-modal:before,
#modalPet.memorial-pago .foto-pet-modal:after{
  content:"🐾";
  position:absolute;
  z-index:1;
  font-size:26px;
  opacity:.22;
}

#modalPet.memorial-pago .foto-pet-modal:before{
  left:18px;
  top:17px;
  transform:rotate(-18deg);
}

#modalPet.memorial-pago .foto-pet-modal:after{
  right:18px;
  bottom:17px;
  transform:rotate(18deg);
}

#modalPet.memorial-pago #modalAvatar{
  position:relative;
  z-index:2;
  filter:drop-shadow(5px 7px 0 rgba(0,0,0,.12));
}

#modalPet.memorial-pago .zoom-foto{
  z-index:3;
  background:rgba(21,17,150,.78) !important;
  border:3px solid #fff !important;
}

#modalPet.memorial-pago .memorial-cabecalho-destaque{
  padding:14px 16px;
  border:4px solid #101010;
  background:#fff;
  box-shadow:5px 5px 0 rgba(0,0,0,.08);
}

#modalPet.memorial-pago .nome-pet-modal{
  color:#151196 !important;
  font-size:38px !important;
  text-shadow:3px 3px 0 #dfe7ff;
}

#modalPet.memorial-pago .status-chip{
  background:#e8f8d9 !important;
  color:#2a671d !important;
}

#modalPet.memorial-pago .badge-lote{
  background:#1d2430 !important;
}

#modalPet.memorial-pago .badge-plano{
  background:#ffd34d !important;
}

#modalPet.memorial-pago .quadro-dados-pet{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:10px !important;
  padding:12px !important;
  border:4px solid #101010 !important;
  background:#fff !important;
}

#modalPet.memorial-pago .linha-dado{
  min-height:62px !important;
  padding:10px 12px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  gap:5px !important;
  border:3px solid #d7e0ea !important;
  background:#f8fbff !important;
}

#modalPet.memorial-pago .linha-dado:nth-child(2n){
  background:#fff8e6 !important;
}

#modalPet.memorial-pago .linha-dado small{
  font-size:9px !important;
}

#modalPet.memorial-pago .linha-dado strong{
  text-align:left !important;
  font-size:15px !important;
}

#modalPet.memorial-pago .acoes-memorial{
  gap:10px !important;
}

#modalPet.memorial-pago .btn-memorial{
  min-height:48px !important;
  padding:9px 15px !important;
  border:4px solid #101010 !important;
  background:#fff !important;
  box-shadow:4px 4px 0 rgba(0,0,0,.12) !important;
}

#modalPet.memorial-pago .btn-memorial.saudade{
  background:#151196 !important;
  color:#fff !important;
}

#modalPet.memorial-pago #btnCopiarLink{
  background:#e8f4ff !important;
}

#modalPet.memorial-pago .btn-memorial:nth-child(3){
  background:#ffe9ef !important;
}

#modalPet.memorial-pago #btnQrTumulo{
  background:#fff4c8 !important;
}

#modalPet.memorial-pago .mensagem-memorial{
  background:
    linear-gradient(135deg,#fff7df,#fff0ef) !important;
  border-color:#101010 !important;
}

#modalPet.memorial-pago .luzes-saudade,
#modalPet.memorial-pago .acender-vela{
  background:#fff !important;
  border:4px solid #101010;
  box-shadow:5px 5px 0 rgba(0,0,0,.08);
}


/* ---------- Túmulo grátis no mundo ---------- */
.tumulo-mini-procedural.tumulo-gratis .lapide-mini{
  background:#c9c8c3 !important;
  border-color:#66645e !important;
  box-shadow:
    inset 5px 0 0 rgba(255,255,255,.12),
    inset -5px 0 0 rgba(0,0,0,.06) !important;
}

.tumulo-mini-procedural.tumulo-gratis .avatar-mini,
.tumulo-mini-procedural.tumulo-gratis .vela-noturna-procedural{
  display:none !important;
}

.tumulo-mini-procedural.tumulo-gratis .lapide-mini{
  justify-content:center !important;
  gap:12px !important;
}

.tumulo-mini-procedural.tumulo-gratis .lapide-mini strong{
  font-size:12px !important;
}

.tumulo-mini-procedural.tumulo-gratis .lapide-mini small{
  padding:4px 6px;
  border:2px solid #74726c;
  background:#e5e4df;
  color:#32322f;
}

.tumulo-mini-procedural.tumulo-gratis .base-mini{
  background:#66543c !important;
  border-color:#493c2b !important;
}

.tumulo-mini-procedural.tumulo-gratis:after{
  content:"GRÁTIS";
  position:absolute;
  left:50%;
  bottom:8px;
  transform:translateX(-50%);
  z-index:4;
  padding:2px 5px;
  border:2px solid #101010;
  background:#eef3f8;
  color:#5f6670;
  font-size:7px;
  font-weight:900;
}


/* ---------- Modal grátis simplificado ---------- */
#modalPet.memorial-gratis .modal-dialog{
  max-width:560px !important;
}

#modalPet.memorial-gratis .modal-content{
  background:#f3f4f2 !important;
  box-shadow:10px 10px 0 rgba(0,0,0,.28) !important;
}

#modalPet.memorial-gratis .barra-topo{
  height:20px !important;
  background:#9a9b96 !important;
}

#modalPet.memorial-gratis .modal-body{
  padding:30px !important;
  background:#f3f4f2 !important;
}

#modalPet.memorial-gratis .row.g-4{
  display:block !important;
}

#modalPet.memorial-gratis .col-md-4{
  display:none !important;
}

#modalPet.memorial-gratis .col-md-8{
  width:100% !important;
  max-width:none !important;
}

#modalPet.memorial-gratis .memorial-cabecalho-destaque{
  display:block !important;
  padding:22px 20px 18px !important;
  border:5px solid #101010;
  background:#d3d2ce;
  text-align:center;
  box-shadow:6px 6px 0 rgba(0,0,0,.10);
}

#modalPet.memorial-gratis .nome-pet-modal{
  color:#2f302d !important;
  font-size:34px !important;
  text-shadow:none !important;
}

#modalPet.memorial-gratis .memorial-mini-status,
#modalPet.memorial-gratis .badges-memorial,
#modalPet.memorial-gratis .mensagem-memorial,
#modalPet.memorial-gratis .luzes-saudade,
#modalPet.memorial-gratis .acender-vela{
  display:none !important;
}

#modalPet.memorial-gratis .quadro-dados-pet{
  margin-top:16px !important;
  padding:0 !important;
  border:5px solid #101010 !important;
  background:#fff !important;
  box-shadow:6px 6px 0 rgba(0,0,0,.08);
}

/* esconde Tutor, Idade e Visitas */
#modalPet.memorial-gratis .linha-dado:has(#modalTutor),
#modalPet.memorial-gratis .linha-dado:has(#modalIdade),
#modalPet.memorial-gratis .linha-dado:has(#modalVisitas){
  display:none !important;
}

#modalPet.memorial-gratis .linha-dado{
  min-height:70px !important;
  padding:12px 18px !important;
  border-bottom:3px solid #d8dadd !important;
}

#modalPet.memorial-gratis .linha-dado:last-child{
  border-bottom:0 !important;
}

#modalPet.memorial-gratis .linha-dado small{
  font-size:10px !important;
  color:#7a8189 !important;
}

#modalPet.memorial-gratis .linha-dado strong{
  font-size:17px !important;
  color:#31363d !important;
}

#modalPet.memorial-gratis .acoes-memorial{
  margin-top:20px !important;
  justify-content:center !important;
}

/* no grátis sobra somente copiar link */
#modalPet.memorial-gratis .acoes-memorial .btn-memorial{
  display:none !important;
}

#modalPet.memorial-gratis #btnCopiarLink{
  display:inline-flex !important;
  min-width:210px !important;
  min-height:50px !important;
  align-items:center;
  justify-content:center;
  background:#fff !important;
  color:#111 !important;
  border:5px solid #101010 !important;
  box-shadow:5px 5px 0 rgba(0,0,0,.11) !important;
}

#modalPet.memorial-gratis:before{
  content:"MEMORIAL GRATUITO";
  position:absolute;
  top:54px;
  left:50%;
  transform:translateX(-50%);
  z-index:6;
  padding:5px 10px;
  border:3px solid #101010;
  background:#eef0ed;
  color:#666b70;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
}

@media(max-width:767.98px){
  #modalPet.memorial-pago .quadro-dados-pet{
    grid-template-columns:1fr !important;
  }

  #modalPet.memorial-pago .nome-pet-modal{
    font-size:30px !important;
  }

  #modalPet.memorial-gratis .modal-body{
    padding:24px 16px !important;
  }
}

/* aniversario-pet-v1092 */
/* =========================================================
   v1.0.92 — aniversário do pet
   ========================================================= */

.tumulo-mini-procedural{
  overflow:visible !important;
}

.balao-aniversario-pet{
  position:absolute;
  right:-16px;
  top:-54px;
  z-index:18;
  width:42px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:4px solid #101010;
  border-radius:52% 52% 48% 48%;
  background:#ef3340;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:18px;
  font-weight:900;
  box-shadow:
    inset 6px 5px 0 rgba(255,255,255,.24),
    5px 6px 0 rgba(0,0,0,.14);
  cursor:pointer;
  pointer-events:auto;
  animation:balao-pet-flutuar 1.9s ease-in-out infinite alternate;
}

.balao-aniversario-pet:before{
  content:"";
  position:absolute;
  left:50%;
  bottom:-11px;
  width:0;
  height:0;
  transform:translateX(-50%);
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-top:12px solid #101010;
}

.balao-aniversario-pet:after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  width:2px;
  height:52px;
  transform:translateX(-50%);
  background:#b9a99b;
  box-shadow:1px 0 0 rgba(0,0,0,.15);
}

.balao-aniversario-pet .brilho{
  position:absolute;
  left:9px;
  top:8px;
  width:8px;
  height:12px;
  border-radius:50%;
  background:rgba(255,255,255,.58);
  transform:rotate(28deg);
}

.balao-aniversario-pet .icone{
  position:relative;
  z-index:2;
  line-height:1;
}

.balao-aniversario-pet:hover{
  filter:brightness(1.08);
}

@keyframes balao-pet-flutuar{
  from{transform:translateY(2px) rotate(-2deg)}
  to{transform:translateY(-8px) rotate(2deg)}
}

.modal-aniversario-pet{
  z-index:2147483650 !important;
}

.modal-aniversario-pet .modal-dialog{
  max-width:590px !important;
}

.modal-aniversario-pet .modal-content{
  overflow:hidden;
  border:5px solid #101010 !important;
  background:#fff9e7 !important;
  box-shadow:12px 12px 0 rgba(0,0,0,.26) !important;
}

.aniversario-pet-topo{
  position:relative;
  min-height:154px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border-bottom:5px solid #101010;
  background:
    radial-gradient(circle at 50% 20%,rgba(255,255,255,.26),transparent 30%),
    linear-gradient(135deg,#ef3340,#ff6b78);
}

.aniversario-pet-topo:before,
.aniversario-pet-topo:after{
  content:"🎈";
  position:absolute;
  font-size:54px;
  animation:aniversario-baloes 2.4s ease-in-out infinite alternate;
}

.aniversario-pet-topo:before{
  left:34px;
  bottom:15px;
}

.aniversario-pet-topo:after{
  right:34px;
  top:13px;
  animation-delay:.4s;
}

@keyframes aniversario-baloes{
  from{transform:translateY(4px) rotate(-4deg)}
  to{transform:translateY(-10px) rotate(5deg)}
}

.aniversario-pet-avatar{
  position:relative;
  z-index:2;
  width:106px;
  height:106px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:5px solid #101010;
  background:#fff;
  font-size:64px;
  box-shadow:7px 7px 0 rgba(0,0,0,.14);
  animation:aniversario-avatar-entrar .48s cubic-bezier(.18,.78,.18,1) both;
}

@keyframes aniversario-avatar-entrar{
  from{transform:scale(.5) rotate(-8deg);opacity:0}
  to{transform:scale(1) rotate(0);opacity:1}
}

.aniversario-pet-corpo{
  padding:26px 28px 28px;
  text-align:center;
}

.aniversario-pet-selo{
  display:inline-block;
  margin-bottom:12px;
  padding:6px 10px;
  border:3px solid #101010;
  background:#ffd21c;
  color:#111;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}

.aniversario-pet-corpo h3{
  margin:0;
  color:#151196;
  font-size:28px;
  text-transform:uppercase;
}

.aniversario-pet-corpo p{
  max-width:480px;
  margin:13px auto 0;
  color:#4f5a69;
  font-family:Arial,sans-serif;
  font-size:15px;
  line-height:1.65;
}

.aniversario-pet-idade{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:130px;
  min-height:58px;
  margin-top:18px;
  padding:8px 16px;
  border:4px solid #101010;
  background:#fff;
  color:#ef3340;
  font-size:25px;
  font-weight:900;
  box-shadow:5px 5px 0 rgba(0,0,0,.10);
}

.aniversario-pet-fechar{
  margin-top:20px;
  min-height:46px;
  padding:0 18px;
  border:4px solid #101010;
  background:#151196;
  color:#fff;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

.modal-backdrop.backdrop-aniversario-pet{
  z-index:2147483640 !important;
}

@media(max-width:767.98px){
  .balao-aniversario-pet{
    right:-8px;
    top:-45px;
    width:36px;
    height:44px;
    font-size:15px;
  }

  .aniversario-pet-topo{
    min-height:128px;
  }

  .aniversario-pet-avatar{
    width:86px;
    height:86px;
    font-size:52px;
  }

  .aniversario-pet-corpo{
    padding:21px 18px 24px;
  }

  .aniversario-pet-corpo h3{
    font-size:22px;
  }
}

/* aniversario-pet-ajustes-v1093 */
/* v1.0.93 — balão acima do túmulo e sempre em primeiro plano */

.tumulo-mini-procedural{
  position:relative !important;
  overflow:visible !important;
  z-index:1;
}

.tumulo-mini-procedural:hover,
.tumulo-mini-procedural:focus-within{
  z-index:25 !important;
}

/* Quarteirão/área de túmulos não deve recortar nem esconder o balão */
.quarteirao-procedural,
.area-tumulos-procedural{
  overflow:visible !important;
}

.balao-aniversario-pet{
  left:50% !important;
  right:auto !important;
  top:-72px !important;
  width:42px !important;
  height:52px !important;
  transform:translateX(-50%) !important;
  z-index:60 !important;
  pointer-events:auto !important;
  isolation:isolate;
}

/* Mantém a animação sem perder o translateX de centralização */
.balao-aniversario-pet{
  animation:balao-pet-flutuar-central 1.9s ease-in-out infinite alternate !important;
}

@keyframes balao-pet-flutuar-central{
  from{
    transform:translateX(-50%) translateY(2px) rotate(-2deg);
  }
  to{
    transform:translateX(-50%) translateY(-8px) rotate(2deg);
  }
}

/* Linha do balão alinhada ao centro do túmulo */
.balao-aniversario-pet:after{
  left:50% !important;
  top:100% !important;
  height:46px !important;
  z-index:-1;
}

/* Sem ícone interno */
.balao-aniversario-pet .icone{
  display:none !important;
}

/* Brilho discreto para continuar parecendo um balão */
.balao-aniversario-pet .brilho{
  left:9px !important;
  top:8px !important;
  width:8px !important;
  height:12px !important;
}

/* Mesmo ao passar o mouse no túmulo, o balão continua acima de todos */
.tumulo-mini-procedural:hover .balao-aniversario-pet,
.tumulo-mini-procedural:focus-within .balao-aniversario-pet{
  z-index:80 !important;
}

/* Garante que túmulos de outras linhas não cubram o balão */
.quarteirao-procedural .tumulo-mini-procedural{
  isolation:isolate;
}

@media(max-width:767.98px){
  .balao-aniversario-pet{
    top:-60px !important;
    width:36px !important;
    height:44px !important;
  }

  .balao-aniversario-pet:after{
    height:38px !important;
  }
}

/* aniversario-pet-zindex-v1094 */
/* v1.0.94 — balão sempre acima dos túmulos e das fileiras vizinhas */

/* O quarteirão não pode criar uma camada que recorte o balão */
.quarteirao-procedural{
  overflow:visible !important;
}

/* A área de túmulos precisa permitir sobreposição entre linhas */
.area-tumulos-procedural{
  overflow:visible !important;
  position:relative !important;
  z-index:10 !important;
}

/* Túmulos normais ficam numa camada baixa */
.area-tumulos-procedural > .tumulo-mini-procedural{
  position:relative !important;
  z-index:10 !important;
}

/* Túmulos que possuem balão ficam SEMPRE acima dos outros */
.area-tumulos-procedural > .tumulo-mini-procedural.tumulo-com-aniversario{
  z-index:500 !important;
  overflow:visible !important;
  isolation:visible !important;
}

/* Hover do próprio túmulo de aniversário sobe ainda mais */
.area-tumulos-procedural > .tumulo-mini-procedural.tumulo-com-aniversario:hover,
.area-tumulos-procedural > .tumulo-mini-procedural.tumulo-com-aniversario:focus-within{
  z-index:900 !important;
}

/* Hover de um túmulo comum não pode ultrapassar o balão */
.area-tumulos-procedural > .tumulo-mini-procedural:not(.tumulo-com-aniversario):hover,
.area-tumulos-procedural > .tumulo-mini-procedural:not(.tumulo-com-aniversario):focus-within{
  z-index:40 !important;
}

/* Balão à frente de tudo dentro do quarteirão */
.tumulo-com-aniversario .balao-aniversario-pet{
  z-index:9999 !important;
  pointer-events:auto !important;
}

/*
 * Remove qualquer isolamento que transforme o balão em uma camada
 * presa atrás de outro túmulo.
 */
.tumulo-com-aniversario{
  isolation:auto !important;
}

.tumulo-com-aniversario .lapide-mini,
.tumulo-com-aniversario .base-mini{
  position:relative;
  z-index:2;
}

/* O balão e o fio ficam na camada superior */
.tumulo-com-aniversario .balao-aniversario-pet{
  position:absolute !important;
  left:50% !important;
  top:-74px !important;
  transform:translateX(-50%) !important;
}

.tumulo-com-aniversario .balao-aniversario-pet:after{
  z-index:1 !important;
}

/* Durante animação de hover, mantém o z-index alto */
.tumulo-com-aniversario:hover .balao-aniversario-pet{
  z-index:10000 !important;
}

/* Evita que transform/filter dos túmulos vizinhos criem camada superior */
.area-tumulos-procedural > .tumulo-mini-procedural:not(.tumulo-com-aniversario){
  isolation:auto !important;
}

@media(max-width:767.98px){
  .tumulo-com-aniversario .balao-aniversario-pet{
    top:-62px !important;
  }
}

/* aniversario-pet-zindex-v1095 */
/* v1.0.95 — correção definitiva do empilhamento do balão */

/*
 * A grade real dos túmulos usa .tumulos-quarteirao.
 * Ela precisa permitir que os balões ultrapassem os limites das células.
 */
.quarteirao-procedural,
.tumulos-quarteirao{
  overflow:visible !important;
}

/* Evita que a própria grade crie uma camada acima dos balões */
.tumulos-quarteirao{
  position:relative !important;
  z-index:20 !important;
  isolation:isolate !important;
}

/* Túmulos comuns */
.tumulos-quarteirao > .tumulo-mini-procedural{
  position:relative !important;
  z-index:10 !important;
  overflow:visible !important;
  isolation:auto !important;
}

/* Hover comum nunca ultrapassa um túmulo com balão */
.tumulos-quarteirao > .tumulo-mini-procedural:not(.tumulo-com-aniversario):hover,
.tumulos-quarteirao > .tumulo-mini-procedural:not(.tumulo-com-aniversario):focus-within{
  z-index:30 !important;
}

/* Túmulo com aniversário fica permanentemente acima das outras fileiras */
.tumulos-quarteirao > .tumulo-mini-procedural.tumulo-com-aniversario{
  z-index:5000 !important;
  overflow:visible !important;
  isolation:auto !important;
}

/* E no hover sobe ainda mais */
.tumulos-quarteirao > .tumulo-mini-procedural.tumulo-com-aniversario:hover,
.tumulos-quarteirao > .tumulo-mini-procedural.tumulo-com-aniversario:focus-within{
  z-index:9000 !important;
}

/*
 * Balão mais próximo e visualmente "na frente" do próprio túmulo,
 * em vez de ficar perdido no espaço entre as fileiras.
 */
.tumulo-com-aniversario > .balao-aniversario-pet{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  top:-48px !important;
  width:42px !important;
  height:52px !important;
  z-index:99999 !important;
  pointer-events:auto !important;
  transform:translateX(-50%) !important;
  animation:balao-pet-flutuar-frente 1.9s ease-in-out infinite alternate !important;
}

/* fio do balão desce até o topo da lápide */
.tumulo-com-aniversario > .balao-aniversario-pet:after{
  left:50% !important;
  top:100% !important;
  width:2px !important;
  height:43px !important;
  z-index:-1 !important;
}

/* triângulo fica logo abaixo do balão */
.tumulo-com-aniversario > .balao-aniversario-pet:before{
  z-index:2 !important;
}

@keyframes balao-pet-flutuar-frente{
  from{
    transform:translateX(-50%) translateY(1px) rotate(-2deg);
  }
  to{
    transform:translateX(-50%) translateY(-7px) rotate(2deg);
  }
}

/*
 * Alguns estilos antigos aplicam transform no hover do túmulo.
 * Mantemos isso, mas sem criar uma camada capaz de cobrir o balão.
 */
.tumulo-mini-procedural:hover{
  z-index:30 !important;
}

.tumulo-mini-procedural.tumulo-com-aniversario:hover{
  z-index:9000 !important;
}

/* Garante que a lápide/base fiquem atrás do balão */
.tumulo-com-aniversario .lapide-mini,
.tumulo-com-aniversario .base-mini{
  position:relative !important;
  z-index:2 !important;
}

@media(max-width:767.98px){
  .tumulo-com-aniversario > .balao-aniversario-pet{
    top:-40px !important;
    width:36px !important;
    height:44px !important;
  }

  .tumulo-com-aniversario > .balao-aniversario-pet:after{
    height:36px !important;
  }
}

/* aniversario-pet-flutuacao-v1096 */
/* v1.0.96 — flutuação mais natural do balão */

.tumulo-com-aniversario > .balao-aniversario-pet{
  transform-origin:50% 115% !important;
  animation:
    balao-flutuar-natural 2.8s ease-in-out infinite,
    balao-balancar-natural 4.6s ease-in-out infinite !important;
  will-change:transform;
}

/* pequeno movimento vertical contínuo */
@keyframes balao-flutuar-natural{
  0%{
    transform:translateX(-50%) translateY(0) rotate(-1.5deg);
  }
  25%{
    transform:translateX(-50%) translateY(-5px) rotate(.8deg);
  }
  50%{
    transform:translateX(-50%) translateY(-10px) rotate(1.8deg);
  }
  75%{
    transform:translateX(-50%) translateY(-5px) rotate(-.6deg);
  }
  100%{
    transform:translateX(-50%) translateY(0) rotate(-1.5deg);
  }
}

/* leve balanço lateral, como se tivesse vento */
@keyframes balao-balancar-natural{
  0%,100%{
    margin-left:-2px;
  }
  35%{
    margin-left:3px;
  }
  68%{
    margin-left:-1px;
  }
}

/* fio acompanha o balanço */
.tumulo-com-aniversario > .balao-aniversario-pet:after{
  transform-origin:50% 0;
  animation:fio-balao-natural 3.2s ease-in-out infinite;
}

@keyframes fio-balao-natural{
  0%,100%{
    transform:translateX(-50%) rotate(-1deg);
  }
  50%{
    transform:translateX(-50%) rotate(2deg);
  }
}

/* brilho também muda levemente para dar volume */
.tumulo-com-aniversario > .balao-aniversario-pet .brilho{
  animation:brilho-balao-natural 2.8s ease-in-out infinite;
}

@keyframes brilho-balao-natural{
  0%,100%{
    opacity:.46;
    transform:rotate(28deg) scale(1);
  }
  50%{
    opacity:.72;
    transform:rotate(24deg) scale(.9);
  }
}

@media (prefers-reduced-motion:reduce){
  .tumulo-com-aniversario > .balao-aniversario-pet,
  .tumulo-com-aniversario > .balao-aniversario-pet:after,
  .tumulo-com-aniversario > .balao-aniversario-pet .brilho{
    animation:none !important;
  }
}

/* aniversario-pet-fechar-padrao-v1097 */
.modal-aniversario-pet .modal-content{
  position:relative !important;
  overflow:visible !important;
}

.modal-aniversario-pet .btn-fechar-aniversario{
  position:absolute;
  top:-8px;
  right:-28px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  padding:0;
  border:5px solid #101010;
  border-radius:0;
  background:#df2d28;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:28px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  z-index:20;
  box-shadow:5px 5px 0 rgba(0,0,0,.18);
}

.modal-aniversario-pet .btn-fechar-aniversario:hover{
  background:#f0443e;
  transform:translate(-1px,-1px);
}

@media(max-width:767.98px){
  .modal-aniversario-pet .btn-fechar-aniversario{
    top:-12px;
    right:-8px;
    width:44px;
    height:44px;
    font-size:25px;
  }
}

/* pontos-visuais-arvores-v1099 */
/* =========================================================
   v1.0.99 — pontos de interesse visuais + árvores procedurais
   ========================================================= */

/* Todos os pontos, menos a capela, viram espaços para arte pixel */
.local-especial:not(.local-capela){
  cursor:default !important;
  overflow:hidden !important;
}

.local-especial:not(.local-capela):hover{
  transform:none !important;
  filter:none !important;
}

.local-especial:not(.local-capela) .cenario-especial{
  inset:68px 18px 52px !important;
  overflow:hidden !important;
  border:5px solid #101010 !important;
  background:#dce8cf !important;
  box-shadow:
    inset 0 0 0 5px rgba(255,255,255,.16),
    6px 6px 0 rgba(0,0,0,.10) !important;
}

.ponto-imagem-pixel{
  position:absolute;
  inset:0;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    linear-gradient(180deg,rgba(142,202,236,.88) 0 46%,rgba(95,176,70,.92) 46% 100%);
}

.ponto-imagem-pixel.tem-imagem{
  background-position:center !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  image-rendering:pixelated;
}

.ponto-imagem-pixel .ponto-placeholder{
  width:min(84%,390px);
  padding:18px 16px;
  border:4px dashed rgba(16,16,16,.58);
  background:rgba(255,255,255,.72);
  color:#435063;
  text-align:center;
  box-shadow:5px 5px 0 rgba(0,0,0,.08);
}

.ponto-imagem-pixel .ponto-placeholder .icone{
  display:block;
  margin-bottom:8px;
  font-size:52px;
  line-height:1;
  filter:drop-shadow(4px 5px 0 rgba(0,0,0,.10));
}

.ponto-imagem-pixel .ponto-placeholder strong{
  display:block;
  color:#28364a;
  font-size:11px;
  text-transform:uppercase;
}

.ponto-imagem-pixel .ponto-placeholder small{
  display:block;
  margin-top:5px;
  color:#6e7784;
  font-family:Arial,sans-serif;
  font-size:9px;
  line-height:1.35;
}

/* Não há mais ação/modal nos pontos visuais */
.local-especial:not(.local-capela) .local-especial-subtitulo{
  background:rgba(255,255,255,.94) !important;
  color:#596575 !important;
  font-size:9px !important;
  pointer-events:none !important;
}

.local-especial:not(.local-capela) .placa-descoberta{
  background:#516276 !important;
  color:#fff !important;
}

/* ---------- Árvores espalhadas pelo mundo ---------- */
.arvore-procedural-mundo{
  position:absolute;
  z-index:7;
  width:64px;
  height:88px;
  pointer-events:none;
  image-rendering:pixelated;
  transform-origin:50% 100%;
  filter:drop-shadow(4px 5px 0 rgba(0,0,0,.12));
}

.arvore-procedural-mundo svg{
  width:100%;
  height:100%;
  overflow:visible;
}

.arvore-procedural-mundo svg *{
  shape-rendering:crispEdges;
}

.arvore-procedural-mundo.variante-2{
  transform:scale(.88);
}

.arvore-procedural-mundo.variante-3{
  transform:scale(1.08);
}

.arvore-procedural-mundo .copa-movimento{
  transform-box:fill-box;
  transform-origin:50% 100%;
  animation:arvore-vento-suave 3.4s ease-in-out infinite alternate;
}

.arvore-procedural-mundo:nth-of-type(2n) .copa-movimento{
  animation-delay:.8s;
}

@keyframes arvore-vento-suave{
  from{transform:rotate(-.7deg) translateX(-1px)}
  to{transform:rotate(.9deg) translateX(1px)}
}

/*
 * As árvores ficam somente em posições seguras das bordas do quarteirão,
 * longe da grade principal dos 12 túmulos.
 */
.arvore-procedural-mundo.pos-0{left:18px;top:18px}
.arvore-procedural-mundo.pos-1{right:18px;top:18px}
.arvore-procedural-mundo.pos-2{left:18px;bottom:18px}
.arvore-procedural-mundo.pos-3{right:18px;bottom:18px}
.arvore-procedural-mundo.pos-4{left:48%;top:10px;transform:translateX(-50%) scale(.86)}
.arvore-procedural-mundo.pos-5{left:48%;bottom:8px;transform:translateX(-50%) scale(.82)}

body.modo-noturno .arvore-procedural-mundo{
  filter:
    brightness(.58)
    saturate(.84)
    drop-shadow(4px 5px 0 rgba(0,0,0,.22));
}

body.zoom-distante .arvore-procedural-mundo{
  display:none !important;
}

@media(max-width:767.98px){
  .arvore-procedural-mundo{
    width:54px;
    height:74px;
  }

  .ponto-imagem-pixel .ponto-placeholder .icone{
    font-size:42px;
  }
}

@media(prefers-reduced-motion:reduce){
  .arvore-procedural-mundo .copa-movimento{
    animation:none !important;
  }
}

/* animais-arvores-v1100 */
/* =========================================================
   v1.0.100 — fauna procedural contínua + árvores extras
   ========================================================= */

/* Garante que a fauna não seja recortada pelas bordas dos quarteirões */
.quarteirao-procedural,
.tumulos-quarteirao,
.local-especial,
.cenario-especial,
.mundo-chunks,
#mundoChunks,
#mundo,
#mundoViewport{
  overflow:visible !important;
}

/* Camada de fauna acima do gramado e abaixo dos túmulos/POIs */
.fauna-procedural{
  position:absolute;
  inset:0;
  z-index:8 !important;
  overflow:visible !important;
  pointer-events:none;
}

.fauna-procedural .passaro-pixel,
.fauna-procedural .borboleta-pixel,
.passaro-procedural,
.borboleta-procedural{
  position:absolute;
  z-index:8 !important;
  overflow:visible !important;
  pointer-events:none !important;
  image-rendering:pixelated;
  will-change:transform;
}

/* Mais variações de cor */
.fauna-cor-azul{ --fauna-cor:#4ec5ff; --fauna-cor-2:#1767b7; }
.fauna-cor-amarela{ --fauna-cor:#ffd84d; --fauna-cor-2:#d69018; }
.fauna-cor-rosa{ --fauna-cor:#ff7bab; --fauna-cor-2:#b93f70; }
.fauna-cor-roxa{ --fauna-cor:#a26cff; --fauna-cor-2:#5f33b5; }
.fauna-cor-verde{ --fauna-cor:#75dc70; --fauna-cor-2:#2d8e37; }
.fauna-cor-laranja{ --fauna-cor:#ff9b45; --fauna-cor-2:#c85a22; }
.fauna-cor-branca{ --fauna-cor:#f4f7fb; --fauna-cor-2:#a4afbc; }
.fauna-cor-vermelha{ --fauna-cor:#ff515a; --fauna-cor-2:#b32631; }

.borboleta-procedural .asa-a,
.borboleta-procedural .asa-b,
.passaro-procedural .asa-a,
.passaro-procedural .asa-b,
.passaro-procedural .corpo{
  fill:var(--fauna-cor,#4ec5ff) !important;
}

.borboleta-procedural .detalhe,
.passaro-procedural .detalhe{
  fill:var(--fauna-cor-2,#1767b7) !important;
}

/* Movimento mais amplo para atravessar o cemitério, sem "parar" na borda */
.borboleta-procedural{
  animation:
    borboleta-mundo-horizontal var(--duracao-fauna,18s) linear infinite,
    borboleta-mundo-flutua 2.2s ease-in-out infinite alternate !important;
}

.passaro-procedural{
  animation:
    passaro-mundo-horizontal var(--duracao-fauna,22s) linear infinite,
    passaro-mundo-altura 3.8s ease-in-out infinite alternate !important;
}

@keyframes borboleta-mundo-horizontal{
  from{
    transform:translate3d(var(--inicio-x,-180px),0,0);
  }
  to{
    transform:translate3d(var(--fim-x,1350px),0,0);
  }
}

@keyframes borboleta-mundo-flutua{
  from{margin-top:-5px}
  to{margin-top:9px}
}

@keyframes passaro-mundo-horizontal{
  from{
    transform:translate3d(var(--inicio-x,-220px),0,0);
  }
  to{
    transform:translate3d(var(--fim-x,1450px),0,0);
  }
}

@keyframes passaro-mundo-altura{
  from{margin-top:-9px}
  to{margin-top:8px}
}

/* Evita que transform/hover dos túmulos esconda a fauna */
.tumulo-mini-procedural{
  z-index:12 !important;
}
.tumulo-mini-procedural:hover{
  z-index:24 !important;
}

@media(max-width:767.98px){
  .passaro-procedural,
  .borboleta-procedural{
    transform:scale(.9);
  }
}

/* menu-jardim-viewport-v1102 */
/* =========================================================
   v1.0.102 — Menu do Jardim sempre dentro da viewport
   ========================================================= */

.modal-menu-jardim{
  padding:16px !important;
}

.modal-menu-jardim .modal-dialog{
  width:min(430px,calc(100vw - 32px)) !important;
  max-width:430px !important;
  height:auto !important;
  max-height:calc(100dvh - 32px) !important;
  margin:0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.modal-menu-jardim .modal-content{
  width:100% !important;
  max-height:calc(100dvh - 32px) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

.modal-menu-jardim .modal-header{
  flex:0 0 auto !important;
}

.modal-menu-jardim .modal-body{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  padding:18px !important;
}

.modal-menu-jardim .modal-footer{
  flex:0 0 auto !important;
}

.menu-jardim-lista{
  gap:9px !important;
}

.menu-jardim-link{
  min-height:58px !important;
  padding:9px 12px !important;
}

.menu-jardim-separador{
  margin:8px 0 3px !important;
}

/* telas mais baixas */
@media (max-height:760px){
  .modal-menu-jardim{
    padding:10px !important;
  }

  .modal-menu-jardim .modal-dialog,
  .modal-menu-jardim .modal-content{
    max-height:calc(100dvh - 20px) !important;
  }

  .modal-menu-jardim .modal-header{
    min-height:52px !important;
    padding:9px 10px !important;
  }

  .modal-menu-jardim .modal-title{
    font-size:18px !important;
  }

  .modal-menu-jardim .modal-body{
    padding:14px !important;
  }

  .menu-jardim-link{
    min-height:52px !important;
    font-size:13px !important;
  }

  .menu-jardim-icone{
    font-size:18px !important;
  }

  .modal-menu-jardim .modal-footer{
    min-height:32px !important;
    padding:7px 10px !important;
  }
}

/* mobile */
@media (max-width:575.98px){
  .modal-menu-jardim{
    padding:8px !important;
  }

  .modal-menu-jardim .modal-dialog{
    width:calc(100vw - 16px) !important;
    max-width:none !important;
    max-height:calc(100dvh - 16px) !important;
  }

  .modal-menu-jardim .modal-content{
    max-height:calc(100dvh - 16px) !important;
  }

  .modal-menu-jardim .modal-title{
    font-size:16px !important;
  }

  .modal-menu-jardim .btn-fechar-menu{
    width:34px !important;
    height:34px !important;
    flex-basis:34px !important;
  }

  .modal-menu-jardim .modal-body{
    padding:12px !important;
  }

  .menu-jardim-link{
    min-height:50px !important;
    gap:9px !important;
    padding:8px 10px !important;
    font-size:12px !important;
  }

  .menu-jardim-icone{
    width:24px !important;
    flex-basis:24px !important;
    font-size:17px !important;
  }

  .modal-menu-jardim .modal-footer{
    font-size:8px !important;
  }
}

/* modo-globo-v1106 */
/* =========================================================
   v1.0.106 — globo interativo com rotação e céu com nuvens
   ========================================================= */

.modo-globo-ativo{
  overflow:hidden !important;
}

.modo-globo-ativo #mundo{
  opacity:0 !important;
  pointer-events:none !important;
}

#mundo{
  transition:opacity .42s ease;
}

/* Céu exclusivo do modo globo */
.ceu-globo{
  position:fixed;
  inset:0;
  z-index:1500;
  display:none;
  overflow:hidden;
  pointer-events:none;
  background:
    linear-gradient(
      180deg,
      #66c9f2 0%,
      #8bd7f3 42%,
      #b9e8f8 78%,
      #d9f4ff 100%
    );
}

.modo-globo-ativo .ceu-globo{
  display:block;
}

.ceu-globo::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% -5%,rgba(255,255,255,.50),transparent 38%),
    linear-gradient(180deg,rgba(255,255,255,.10),transparent 55%);
}

.nuvem-globo{
  position:absolute;
  width:180px;
  height:58px;
  border-radius:50px;
  background:rgba(255,255,255,.88);
  box-shadow:
    42px -25px 0 4px rgba(255,255,255,.92),
    92px -9px 0 -1px rgba(255,255,255,.88),
    132px 4px 0 -9px rgba(255,255,255,.82);
  opacity:.9;
  filter:drop-shadow(0 8px 0 rgba(70,146,183,.07));
  animation:nuvem-globo-mover var(--tempo,48s) linear infinite;
}

.nuvem-globo.n1{top:12%;left:-260px;--tempo:56s;transform:scale(.85)}
.nuvem-globo.n2{top:28%;left:-340px;--tempo:72s;transform:scale(1.2);animation-delay:-24s}
.nuvem-globo.n3{top:57%;left:-300px;--tempo:64s;transform:scale(.72);animation-delay:-42s}
.nuvem-globo.n4{top:74%;left:-390px;--tempo:82s;transform:scale(1.38);animation-delay:-18s}
.nuvem-globo.n5{top:40%;left:-280px;--tempo:76s;transform:scale(.58);animation-delay:-55s}

@keyframes nuvem-globo-mover{
  from{translate:0 0}
  to{translate:calc(100vw + 760px) 0}
}

/* Área principal do globo */
.globo-cemiterio{
  position:fixed;
  left:50%;
  top:50%;
  z-index:1600;
  width:min(70vw,760px);
  aspect-ratio:1/1;
  transform:translate(-50%,-50%) scale(.92);
  border-radius:50%;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  perspective:1200px;
  transition:
    opacity .45s ease,
    transform .56s cubic-bezier(.2,.72,.2,1),
    visibility .45s ease;
}

.globo-cemiterio.ativo{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,-50%) scale(1);
  cursor:grab;
}

.globo-cemiterio.arrastando{
  cursor:grabbing;
}

.globo-esfera{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:50%;
  background:#47ad37;
  box-shadow:
    inset -88px -80px 118px rgba(3,37,54,.35),
    inset 48px 38px 72px rgba(255,255,255,.20),
    0 34px 70px rgba(17,72,101,.28),
    0 0 0 8px rgba(255,255,255,.24),
    0 0 0 13px rgba(28,101,133,.15);
}

.globo-esfera::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:20;
  border-radius:50%;
  pointer-events:none;
  background:
    radial-gradient(circle at 29% 23%,rgba(255,255,255,.28),transparent 15%),
    radial-gradient(circle at 50% 48%,transparent 49%,rgba(6,44,57,.10) 67%,rgba(1,25,38,.38) 100%);
}

.globo-esfera::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:21;
  border-radius:50%;
  pointer-events:none;
  box-shadow:
    inset 0 0 46px rgba(255,255,255,.09),
    inset -44px -24px 80px rgba(0,0,0,.16);
}

.globo-camada-3d{
  position:absolute;
  inset:5%;
  transform-style:preserve-3d;
  transform:
    rotateX(var(--globo-rx,-8deg))
    rotateY(var(--globo-ry,0deg))
    rotateZ(var(--globo-rz,-4deg))
    scale(1.08);
  transition:transform .08s linear;
  will-change:transform;
}

.globo-cemiterio.sem-transicao .globo-camada-3d{
  transition:none;
}

.globo-grade{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:50%;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0 78px,
      #bea77a 78px 94px
    ),
    repeating-linear-gradient(
      0deg,
      transparent 0 78px,
      #bea77a 78px 94px
    ),
    #4db732;
  box-shadow:inset 0 0 70px rgba(23,104,39,.20);
}

.globo-grade::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    repeating-radial-gradient(
      circle at center,
      transparent 0 88px,
      rgba(255,255,255,.035) 89px 90px
    );
}

.globo-tumulo{
  position:absolute;
  width:13px;
  height:19px;
  transform:translate(-50%,-50%);
  border:2px solid #5c5953;
  background:#c6c3ba;
  box-shadow:2px 2px 0 rgba(0,0,0,.15);
}

.globo-tumulo.vago{
  border-style:dashed;
  border-color:#5e843f;
  background:#b6d99a;
}

.globo-tumulo.aniversario{
  box-shadow:
    0 0 0 3px #ffd21c,
    2px 2px 0 rgba(0,0,0,.15);
}

.globo-ponto{
  position:absolute;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:center;
  border:3px solid #101010;
  box-shadow:3px 3px 0 rgba(0,0,0,.12);
  font-size:19px;
  transform:translate(-50%,-50%);
}

.globo-entrada{
  left:49%;
  top:10%;
  width:78px;
  min-height:32px;
  padding:4px 6px;
  background:#ffd21c;
  color:#111;
  font-size:8px;
  font-weight:900;
  text-align:center;
  text-transform:uppercase;
}

.globo-capela{
  left:67%;
  top:24%;
  width:38px;
  height:38px;
  background:#f1ddb0;
}

.globo-ponto-extra{
  left:33%;
  top:27%;
  width:34px;
  height:34px;
  background:#d8ebc3;
}

/* HUD */
.globo-hud{
  position:fixed;
  inset:0;
  z-index:1650;
  pointer-events:none;
  display:none;
}

.modo-globo-ativo .globo-hud{
  display:block;
}

.globo-hud-topo{
  position:absolute;
  left:50%;
  top:18px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border:4px solid #101010;
  background:rgba(14,25,35,.90);
  color:#fff;
  box-shadow:5px 5px 0 rgba(0,0,0,.16);
}

.globo-hud-topo strong{
  color:#9ff36b;
  font-size:11px;
  text-transform:uppercase;
}

.globo-hud-topo span{
  color:#d8e4ee;
  font-family:Arial,sans-serif;
  font-size:10px;
}

.globo-controles{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  align-items:center;
  pointer-events:auto;
}

.globo-dica{
  min-height:46px;
  display:flex;
  align-items:center;
  padding:0 14px;
  border:4px solid #101010;
  background:rgba(255,255,255,.94);
  color:#354153;
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:700;
  box-shadow:5px 5px 0 rgba(0,0,0,.13);
}

.globo-voltar{
  min-height:46px;
  padding:0 14px;
  border:4px solid #101010;
  background:#ffd21c;
  color:#111;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:5px 5px 0 rgba(0,0,0,.13);
}

.globo-voltar:hover{
  transform:translate(-1px,-1px);
}

/* bússola */
.globo-bussola{
  position:absolute;
  right:24px;
  bottom:24px;
  width:72px;
  height:72px;
  border:4px solid #101010;
  border-radius:50%;
  background:rgba(255,255,255,.93);
  box-shadow:5px 5px 0 rgba(0,0,0,.13);
}

.globo-bussola::before{
  content:"N";
  position:absolute;
  left:50%;
  top:6px;
  transform:translateX(-50%);
  color:#d52f36;
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:900;
}

.globo-bussola-ponteiro{
  position:absolute;
  left:50%;
  top:50%;
  width:5px;
  height:44px;
  margin-left:-2.5px;
  margin-top:-22px;
  background:linear-gradient(180deg,#e53c43 0 50%,#28303b 50% 100%);
  clip-path:polygon(50% 0,100% 50%,65% 50%,65% 100%,35% 100%,35% 50%,0 50%);
  transform:rotate(var(--bussola-angulo,0deg));
  transition:transform .10s linear;
}

/* UI original continua acima */
.modo-globo-ativo .atalhos-laterais-externos,
.modo-globo-ativo .painel-lateral-cemiterio,
.modo-globo-ativo .btn-eternizar-fixo,
.modo-globo-ativo .mariah-reabrir{
  z-index:1700 !important;
}

@media(max-width:767.98px){
  .globo-cemiterio{
    width:min(88vw,640px);
  }

  .globo-hud-topo{
    top:10px;
    max-width:calc(100vw - 20px);
  }

  .globo-hud-topo span{
    display:none;
  }

  .globo-controles{
    width:calc(100vw - 20px);
    bottom:10px;
    justify-content:center;
  }

  .globo-dica{
    font-size:9px;
    padding:0 9px;
  }

  .globo-voltar{
    padding:0 10px;
  }

  .globo-bussola{
    right:12px;
    bottom:72px;
    width:58px;
    height:58px;
  }

  .globo-bussola-ponteiro{
    height:34px;
    margin-top:-17px;
  }

  .globo-tumulo{
    width:10px;
    height:15px;
  }
}

@media(prefers-reduced-motion:reduce){
  .nuvem-globo{
    animation:none !important;
  }
}

/* globo-cartografico-v1107 */
/* =========================================================
   v1.0.107 — globo cartográfico real do cemitério
   ========================================================= */

.globo-cemiterio{
  touch-action:none;
}

.globo-esfera{
  background:#3f9f2b !important;
}

.globo-camada-3d{
  inset:0 !important;
  transform:none !important;
  transition:none !important;
}

.globo-grade{
  display:none !important;
}

#globoCanvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  border-radius:50%;
  image-rendering:pixelated;
}

.globo-cursor-info{
  position:fixed;
  z-index:1660;
  display:none;
  min-width:150px;
  max-width:250px;
  padding:8px 10px;
  border:3px solid #101010;
  background:rgba(255,255,255,.96);
  color:#344153;
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:800;
  line-height:1.35;
  pointer-events:none;
  box-shadow:4px 4px 0 rgba(0,0,0,.14);
}

.globo-cursor-info.visivel{
  display:block;
}

.globo-hud-topo strong::after{
  content:" • MAPA REAL";
  color:#ffd21c;
}

.globo-dica{
  max-width:560px;
}

.globo-alvo{
  position:absolute;
  left:50%;
  top:50%;
  z-index:22;
  width:18px;
  height:18px;
  transform:translate(-50%,-50%);
  border:3px solid rgba(255,255,255,.95);
  border-radius:50%;
  box-shadow:0 0 0 3px rgba(0,0,0,.20);
  pointer-events:none;
}

.globo-alvo::before,
.globo-alvo::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  background:#fff;
  transform:translate(-50%,-50%);
}

.globo-alvo::before{
  width:32px;
  height:2px;
}

.globo-alvo::after{
  width:2px;
  height:32px;
}

@media(max-width:767.98px){
  .globo-dica{
    max-width:66vw;
  }
}

/* globo-melhorias-v1108 */
/* =========================================================
   v1.0.108 — globo procedural contínuo, sem áreas vazias
   ========================================================= */

#globoCanvas{
  image-rendering:auto !important;
}

.globo-esfera{
  background:#3e9e30 !important;
}

.globo-esfera::before{
  z-index:30 !important;
  background:
    radial-gradient(circle at 28% 20%,rgba(255,255,255,.30),transparent 17%),
    radial-gradient(circle at 50% 50%,transparent 50%,rgba(6,52,52,.09) 68%,rgba(0,25,41,.40) 100%) !important;
}

.globo-esfera::after{
  z-index:31 !important;
}

.globo-cursor-info{
  min-width:178px !important;
}

.globo-cursor-info strong{
  display:block;
  color:#151196;
  margin-bottom:2px;
}

.globo-cursor-info span{
  color:#647182;
  font-weight:700;
}

.globo-legenda-marcadores{
  position:absolute;
  left:22px;
  bottom:22px;
  z-index:4;
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:9px 10px;
  border:3px solid #101010;
  background:rgba(255,255,255,.92);
  color:#3e4b5c;
  font-family:Arial,sans-serif;
  font-size:9px;
  font-weight:800;
  box-shadow:4px 4px 0 rgba(0,0,0,.12);
}

.globo-legenda-marcadores span{
  display:flex;
  align-items:center;
  gap:6px;
}

.globo-legenda-marcadores i{
  width:10px;
  height:10px;
  display:inline-block;
  border:2px solid #101010;
}

.globo-legenda-marcadores .l-ocupado{background:#c7c4ba}
.globo-legenda-marcadores .l-vago{background:#b8d99d}
.globo-legenda-marcadores .l-poi{background:#9a72dc}
.globo-legenda-marcadores .l-voce{background:#ff4d56}

@media(max-width:767.98px){
  .globo-legenda-marcadores{
    left:10px;
    bottom:74px;
    padding:7px 8px;
    font-size:8px;
  }
}

/* globo-lod-procedural-v1109 */
/* =========================================================
   v1.0.109 — lotes procedurais continuam visíveis à distância
   ========================================================= */

.globo-hud-topo strong::after{
  content:" • MUNDO PROCEDURAL INFINITO" !important;
}

.globo-dica{
  background:rgba(255,255,255,.96) !important;
}

.globo-legenda-marcadores .l-ocupado{
  background:#2f65d0 !important;
}

.globo-legenda-marcadores .l-vago{
  background:#ffe35a !important;
}

/* globo-lotes-miniatura-v1110 */
/* v1.0.110 — lotes do globo mais proporcionais à visão aérea */
.globo-legenda-marcadores .l-ocupado{background:#b8b6ae !important}
.globo-legenda-marcadores .l-vago{background:#bad99d !important}

/* entrada-cinematografica-v1111 */
/* =========================================================
   v1.0.111 — Portal celestial em pixel art
   Inspirado na referência enviada: céu estrelado, raios,
   nuvens volumosas e grande porta luminosa central.
   ========================================================= */

.entrada-cinematografica{
  position:fixed;
  inset:0;
  z-index:2147483000;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    linear-gradient(180deg,#142554 0%,#213f78 38%,#345a91 62%,#7088b6 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .75s ease,visibility .75s ease;
  perspective:1400px;
  isolation:isolate;
}

.entrada-cinematografica.oculta{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.entrada-cinematografica.entrando{
  pointer-events:none;
}

/* fundo noturno */
.intro-ceu-profundo{
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(circle at 50% 44%,rgba(74,116,170,.34),transparent 34%),
    linear-gradient(180deg,#142554 0%,#213f78 42%,#395b92 71%,#7f91b8 100%);
}

/* estrelas em pixel art */
.intro-estrelas{
  position:absolute;
  inset:0;
  z-index:1;
  opacity:.92;
  background-image:
    radial-gradient(circle,#fff5bd 0 2px,transparent 2.5px),
    radial-gradient(circle,#fff9d6 0 1.4px,transparent 2px),
    radial-gradient(circle,#dce8ff 0 1px,transparent 1.7px);
  background-size:97px 83px,143px 117px,71px 131px;
  background-position:18px 13px,52px 34px,8px 76px;
  animation:estrelas-cintilar 3.8s steps(2,end) infinite;
}

@keyframes estrelas-cintilar{
  0%,100%{opacity:.76}
  50%{opacity:1}
}

/* raios saindo da porta */
.intro-raios{
  position:absolute;
  left:50%;
  top:45%;
  z-index:2;
  width:150vmax;
  height:150vmax;
  transform:translate(-50%,-50%);
  pointer-events:none;
  opacity:.55;
  background:
    repeating-conic-gradient(
      from -4deg,
      rgba(205,226,220,.28) 0deg 1.1deg,
      transparent 1.1deg 8deg,
      rgba(255,237,174,.20) 8deg 9deg,
      transparent 9deg 15deg
    );
  mask-image:radial-gradient(circle at center,#000 0 62%,transparent 83%);
  animation:raios-respirar 4.5s ease-in-out infinite alternate;
}

@keyframes raios-respirar{
  from{opacity:.42;transform:translate(-50%,-50%) scale(.98)}
  to{opacity:.67;transform:translate(-50%,-50%) scale(1.025)}
}

/* nuvens */
.intro-nuvens-base,
.intro-nuvens-frente{
  position:absolute;
  left:0;
  right:0;
  bottom:-3vh;
  z-index:4;
  height:48vh;
  pointer-events:none;
}

.intro-nuvens-base::before,
.intro-nuvens-base::after,
.intro-nuvens-frente::before,
.intro-nuvens-frente::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:drop-shadow(0 10px 0 rgba(31,55,103,.10));
}

/* grande banco de nuvens */
.intro-nuvens-base::before{
  left:-5vw;
  bottom:7vh;
  width:36vw;
  height:20vh;
  background:#b9bfdf;
  box-shadow:
    8vw -5vh 0 #d2c6dc,
    18vw -1vh 0 #b9c1df,
    28vw -6vh 0 #e5c9cf,
    42vw -2vh 0 #c3c7e2,
    55vw -7vh 0 #ebd0d1,
    69vw -1vh 0 #bdc4e1,
    82vw -6vh 0 #dfc8d9,
    96vw -1vh 0 #b6bddb;
}

.intro-nuvens-base::after{
  left:0;
  bottom:-3vh;
  width:100vw;
  height:22vh;
  background:
    linear-gradient(180deg,#aeb7da 0%,#8696c2 75%,#7488b7 100%);
  border-radius:48% 52% 0 0 / 48% 45% 0 0;
}

/* nuvens iluminadas na frente */
.intro-nuvens-frente{
  z-index:8;
  height:36vh;
}

.intro-nuvens-frente::before{
  left:-9vw;
  bottom:-2vh;
  width:30vw;
  height:16vh;
  background:#8d9fc9;
  box-shadow:
    9vw -5vh 0 #afb5d6,
    19vw -1vh 0 #98a6cf,
    31vw -5vh 0 #d4bccc,
    45vw 0 0 #9eacd1,
    58vw -4vh 0 #d4becf,
    71vw 0 0 #9da9ce,
    84vw -5vh 0 #c8b9d2,
    96vw 0 0 #8e9fc9;
}

.intro-nuvens-frente::after{
  left:50%;
  bottom:6vh;
  width:28vw;
  height:9vh;
  transform:translateX(-50%);
  background:#ffe1ba;
  box-shadow:
    -17vw 1vh 0 #c9bad2,
    17vw 1vh 0 #c9bad2;
  opacity:.82;
}

/* portal central */
.intro-portal{
  position:absolute;
  left:50%;
  top:36%;
  z-index:7;
  width:min(270px,24vw);
  height:min(390px,45vh);
  transform:translate(-50%,-50%);
  filter:
    drop-shadow(0 0 18px rgba(255,208,101,.62))
    drop-shadow(0 0 40px rgba(255,224,146,.28));
  transform-style:preserve-3d;
}

.intro-portal-corpo{
  position:absolute;
  inset:0;
  border:14px solid #e49b39;
  border-bottom-width:18px;
  border-radius:49% 49% 3px 3px / 29% 29% 3px 3px;
  background:
    linear-gradient(90deg,#d9892c 0 9%,#ffba4c 9% 16%,#f19a31 16% 22%,#ffbf54 22% 78%,#e78b2c 78% 86%,#ffb64a 86% 92%,#d8872d 92%);
  box-shadow:
    inset 0 0 0 7px #ffcc69,
    inset 0 0 0 12px #f49d35,
    0 0 0 7px rgba(255,201,91,.20);
}

.intro-portal-luz{
  position:absolute;
  left:50%;
  top:53%;
  width:70%;
  height:77%;
  transform:translate(-50%,-50%);
  border-radius:50% 50% 2px 2px / 28% 28% 2px 2px;
  background:
    radial-gradient(circle at 50% 46%,#fffce3 0 50%,#fff5bf 69%,#ffe99f 100%);
  box-shadow:
    0 0 26px #fff6c9,
    0 0 52px rgba(255,224,135,.85),
    inset 0 0 30px #fff;
  animation:luz-portal 2.2s ease-in-out infinite alternate;
}

@keyframes luz-portal{
  from{filter:brightness(.96);box-shadow:0 0 25px #fff2b7,0 0 45px rgba(255,211,94,.68),inset 0 0 24px #fff}
  to{filter:brightness(1.12);box-shadow:0 0 36px #fffbd9,0 0 72px rgba(255,220,111,.88),inset 0 0 42px #fff}
}

/* caminho de luz */
.intro-caminho-luz{
  position:absolute;
  left:50%;
  top:52%;
  z-index:6;
  width:min(420px,34vw);
  height:45vh;
  transform:translateX(-50%);
  transform-origin:50% 0;
  clip-path:polygon(36% 0,64% 0,100% 100%,0 100%);
  background:
    linear-gradient(180deg,#fffbd8 0%,#ffeeb8 45%,#f6d5b5 100%);
  opacity:.88;
  filter:drop-shadow(0 0 18px rgba(255,229,159,.42));
}

/* marca */
.intro-marca{
  position:absolute;
  left:50%;
  top:6.5%;
  z-index:20;
  width:min(640px,86vw);
  transform:translateX(-50%);
  text-align:center;
  transition:opacity .45s ease,transform .7s ease;
}

.intro-marca img{
  display:block;
  max-width:min(310px,65vw);
  max-height:96px;
  margin:0 auto 10px;
  object-fit:contain;
  filter:drop-shadow(0 6px 0 rgba(0,0,0,.14));
}

.intro-logo-fallback{
  display:none;
  color:#fff6c7;
  font-size:40px;
  font-weight:900;
  text-shadow:4px 4px 0 #1b2d5e;
}

.intro-marca p{
  margin:6px auto 0;
  color:#e9edf7;
  font-family:Arial,sans-serif;
  font-size:13px;
  font-weight:700;
  text-shadow:0 2px 0 rgba(0,0,0,.18);
}

/* botão */
.intro-botao{
  position:absolute;
  left:50%;
  bottom:5.5%;
  z-index:25;
  transform:translateX(-50%);
  min-height:58px;
  padding:0 28px;
  border:5px solid #101010;
  background:#ffd21c;
  color:#111;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:7px 7px 0 rgba(0,0,0,.18);
  transition:transform .16s ease,opacity .28s ease,filter .16s ease;
}

.intro-botao:hover{
  transform:translateX(-50%) translate(-2px,-2px);
  filter:brightness(1.06);
}

.intro-botao:active{
  transform:translateX(-50%) translate(2px,2px);
  box-shadow:3px 3px 0 rgba(0,0,0,.18);
}

/* animação de entrada */
.entrada-cinematografica.entrando .intro-botao{
  opacity:0;
}

.entrada-cinematografica.entrando .intro-marca{
  opacity:0;
  transform:translateX(-50%) translateY(-40px) scale(.90);
}

.entrada-cinematografica.entrando .intro-portal{
  animation:portal-aproximar 2.75s cubic-bezier(.16,.82,.18,1) forwards;
}

.entrada-cinematografica.entrando .intro-raios{
  animation:raios-acelerar 2.75s cubic-bezier(.18,.7,.18,1) forwards;
}

.entrada-cinematografica.entrando .intro-caminho-luz{
  animation:caminho-aproximar 2.75s cubic-bezier(.16,.82,.18,1) forwards;
}

.entrada-cinematografica.entrando .intro-nuvens-base{
  animation:nuvens-base-afastar 2.75s cubic-bezier(.16,.82,.18,1) forwards;
}

.entrada-cinematografica.entrando .intro-nuvens-frente{
  animation:nuvens-frente-passar 2.75s cubic-bezier(.16,.82,.18,1) forwards;
}

@keyframes portal-aproximar{
  0%{transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 0 18px rgba(255,208,101,.62))}
  58%{transform:translate(-50%,-50%) scale(2.15);filter:drop-shadow(0 0 46px rgba(255,230,148,.9))}
  100%{transform:translate(-50%,-50%) scale(9.5);filter:blur(1px) brightness(1.28)}
}

@keyframes raios-acelerar{
  0%{transform:translate(-50%,-50%) scale(1);opacity:.55}
  100%{transform:translate(-50%,-50%) scale(2.8);opacity:.95}
}

@keyframes caminho-aproximar{
  0%{transform:translateX(-50%) scale(1);opacity:.88}
  100%{transform:translateX(-50%) scale(3.3);opacity:1}
}

@keyframes nuvens-base-afastar{
  0%{transform:scale(1) translateY(0)}
  100%{transform:scale(1.55) translateY(18vh);filter:blur(3px)}
}

@keyframes nuvens-frente-passar{
  0%{transform:scale(1) translateY(0);opacity:1}
  55%{transform:scale(1.45) translateY(5vh);opacity:1}
  100%{transform:scale(2.4) translateY(26vh);opacity:0}
}

/* clarão/teleporte */
.intro-flash{
  position:absolute;
  inset:0;
  z-index:60;
  background:#fffdea;
  opacity:0;
  pointer-events:none;
}

.entrada-cinematografica.entrando .intro-flash{
  animation:teleporte-luz 2.95s ease forwards;
}

@keyframes teleporte-luz{
  0%,58%{opacity:0}
  69%{opacity:.30}
  79%{opacity:1}
  91%{opacity:.82}
  100%{opacity:0}
}

/* pós-portal: céu claro passando rapidamente */
.intro-teleporte-ceu{
  position:absolute;
  inset:0;
  z-index:58;
  opacity:0;
  background:
    radial-gradient(circle at 50% 35%,rgba(255,255,255,.75),transparent 30%),
    linear-gradient(180deg,#70d3f3,#d9f6ff);
  pointer-events:none;
}

.entrada-cinematografica.entrando .intro-teleporte-ceu{
  animation:teleporte-ceu 3.15s ease forwards;
}

@keyframes teleporte-ceu{
  0%,73%{opacity:0}
  82%{opacity:1}
  100%{opacity:0}
}

body.intro-eterno-ativa{
  overflow:hidden !important;
}

@media(max-width:767.98px){
  .intro-marca{top:5%}
  .intro-logo-fallback{font-size:30px}
  .intro-marca p{font-size:10px}

  .intro-portal{
    width:min(210px,42vw);
    height:min(310px,40vh);
    top:39%;
  }

  .intro-caminho-luz{
    width:46vw;
    top:56%;
  }

  .intro-botao{
    bottom:4%;
    width:calc(100vw - 34px);
    min-height:56px;
    padding:0 14px;
    font-size:11px;
  }

  .intro-nuvens-base,
  .intro-nuvens-frente{
    height:44vh;
  }
}

@media(prefers-reduced-motion:reduce){
  .intro-estrelas,
  .intro-raios,
  .intro-portal-luz{
    animation:none !important;
  }
}

/* interior-entrada-principal-v1112 */
/* =========================================================
   v1.0.112 — Interior da Entrada Principal
   ========================================================= */

.entrada-interior-overlay{
  position:fixed;
  inset:0;
  z-index:2147482500;
  display:none;
  overflow:hidden;
  background:#10151b;
  opacity:0;
}

.entrada-interior-overlay.ativo{
  display:block;
  animation:entrada-interior-aparecer .38s ease forwards;
}

.entrada-interior-overlay.saindo{
  animation:entrada-interior-sair .3s ease forwards;
}

@keyframes entrada-interior-aparecer{
  from{opacity:0}
  to{opacity:1}
}

@keyframes entrada-interior-sair{
  from{opacity:1}
  to{opacity:0}
}

.entrada-interior-cenario{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(28,22,17,.12),rgba(18,14,12,.18)),
    repeating-linear-gradient(
      90deg,
      #b7824d 0 42px,
      #c18d58 42px 84px
    );
}

/* ambiente de madeira levemente desfocado */
.entrada-interior-cenario::before{
  content:"";
  position:absolute;
  inset:-28px;
  z-index:0;
  background:
    radial-gradient(circle at 14% 24%,#f3d9a6 0 3%,transparent 3.5%),
    radial-gradient(circle at 86% 18%,#f1d29f 0 3%,transparent 3.5%),
    repeating-linear-gradient(
      90deg,
      rgba(83,54,31,.16) 0 7px,
      transparent 7px 54px
    ),
    linear-gradient(180deg,#d8b07c 0 64%,#9d7147 64% 100%);
  filter:blur(4px);
  transform:scale(1.04);
}

.entrada-interior-cenario::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(255,244,218,.06),transparent 28%),
    radial-gradient(circle at center,transparent 48%,rgba(21,15,12,.26) 100%);
  pointer-events:none;
}

.entrada-interior-janela{
  position:absolute;
  z-index:2;
  top:9%;
  width:180px;
  height:230px;
  border:12px solid #6d4729;
  background:
    linear-gradient(180deg,#8fd6f3 0 55%,#6fb34a 55% 100%);
  box-shadow:
    inset 0 0 0 7px #ecd29b,
    8px 8px 0 rgba(0,0,0,.12);
  opacity:.86;
}

.entrada-interior-janela.esq{left:7%}
.entrada-interior-janela.dir{right:7%}

.entrada-interior-janela::before,
.entrada-interior-janela::after{
  content:"";
  position:absolute;
  background:#6d4729;
}

.entrada-interior-janela::before{
  left:50%;
  top:0;
  bottom:0;
  width:7px;
  transform:translateX(-50%);
}

.entrada-interior-janela::after{
  left:0;
  right:0;
  top:50%;
  height:7px;
  transform:translateY(-50%);
}

.entrada-interior-flor{
  position:absolute;
  z-index:3;
  bottom:12%;
  font-size:62px;
  filter:drop-shadow(4px 5px 0 rgba(0,0,0,.10));
}

.entrada-interior-flor.f1{left:6%}
.entrada-interior-flor.f2{left:18%;bottom:7%;font-size:48px}
.entrada-interior-flor.f3{right:7%}
.entrada-interior-flor.f4{right:19%;bottom:8%;font-size:50px}

.entrada-interior-prateleira{
  position:absolute;
  z-index:2;
  left:50%;
  top:7%;
  width:min(720px,58vw);
  height:48px;
  transform:translateX(-50%);
  border:7px solid #5f3c22;
  background:#9a6638;
  box-shadow:0 13px 0 rgba(0,0,0,.12);
}

.entrada-interior-prateleira::before{
  content:none;
  position:absolute;
  left:50%;
  bottom:25px;
  transform:translateX(-50%);
  white-space:nowrap;
  font-size:35px;
}

.entrada-interior-painel{
  position:absolute;
  left:50%;
  top:50%;
  z-index:10;
  width:min(1050px,88vw);
  max-height:82vh;
  transform:translate(-50%,-50%);
  display:grid;
  grid-template-columns:330px 1fr;
  border:6px solid #101010;
  background:rgba(247,242,229,.96);
  box-shadow:16px 16px 0 rgba(0,0,0,.25);
  overflow:hidden;
}

.entrada-interior-lateral{
  position:relative;
  padding:30px 24px;
  border-right:6px solid #101010;
  background:
    linear-gradient(180deg,#f6e9c8,#edd3a4);
  text-align:center;
}

.entrada-interior-lateral h2{
  margin:12px 0 8px;
  color:#151196;
  font-size:24px;
  text-transform:uppercase;
}

.entrada-interior-lateral p{
  margin:0;
  color:#596474;
  font-family:Arial,sans-serif;
  font-size:12px;
  line-height:1.6;
}

.mariah-recepcao{
  width:170px;
  height:190px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border:5px solid #101010;
  background:
    linear-gradient(180deg,#a6def5 0 60%,#d9efc8 60% 100%);
  box-shadow:7px 7px 0 rgba(0,0,0,.11);
}

.mariah-recepcao span{
  font-size:116px;
  filter:drop-shadow(5px 6px 0 rgba(0,0,0,.11));
}

.entrada-interior-acoes-mariah{
  display:grid;
  gap:9px;
  margin-top:18px;
}

.entrada-interior-acoes-mariah button{
  min-height:46px;
  border:4px solid #101010;
  background:#fff;
  color:#111;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:4px 4px 0 rgba(0,0,0,.10);
}

.entrada-interior-acoes-mariah .historia{
  background:#e8ddff;
}

.entrada-interior-acoes-mariah .ajuda{
  background:#ffd21c;
}

.entrada-interior-conteudo{
  min-width:0;
  padding:28px;
  overflow-y:auto;
}

.entrada-interior-topo{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.entrada-interior-topo h3{
  margin:0;
  color:#232c3a;
  font-size:28px;
  text-transform:uppercase;
}

.entrada-interior-topo p{
  max-width:620px;
  margin:8px 0 0;
  color:#657184;
  font-family:Arial,sans-serif;
  font-size:12px;
  line-height:1.55;
}

.btn-fechar-entrada-interior{
  width:48px;
  height:48px;
  flex:0 0 48px;
  border:5px solid #101010;
  background:#ef4444;
  color:#fff;
  font-size:24px;
  font-weight:900;
  cursor:pointer;
}

.busca-pet-card{
  margin-top:22px;
  padding:20px;
  border:5px solid #101010;
  background:#fff;
  box-shadow:6px 6px 0 rgba(0,0,0,.08);
}

.busca-pet-card h4{
  margin:0 0 14px;
  color:#151196;
  font-size:18px;
  text-transform:uppercase;
}

.busca-pet-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.busca-pet-campo{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.busca-pet-campo.full{
  grid-column:1 / -1;
}

.busca-pet-campo label{
  color:#697586;
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
}

.busca-pet-campo input,
.busca-pet-campo select{
  min-height:44px;
  padding:8px 10px;
  border:4px solid #101010;
  border-radius:0;
  background:#f9fbfd;
  color:#202733;
  font-family:Arial,sans-serif;
  font-size:13px;
  outline:none;
}

.busca-pet-campo input:focus,
.busca-pet-campo select:focus{
  background:#fff9d9;
  box-shadow:0 0 0 3px rgba(255,210,28,.35);
}

.busca-pet-botoes{
  display:flex;
  gap:9px;
  margin-top:14px;
}

.busca-pet-botoes button{
  min-height:46px;
  padding:0 16px;
  border:4px solid #101010;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

.busca-pet-botoes .buscar{
  background:#ffd21c;
}

.busca-pet-botoes .limpar{
  background:#eef2f6;
}

.busca-pet-regras{
  margin-top:12px;
  padding:11px 12px;
  border:3px solid #cdd6df;
  background:#f7f9fb;
  color:#657184;
  font-family:Arial,sans-serif;
  font-size:10px;
  line-height:1.5;
}

.busca-pet-resultados{
  display:none;
  margin-top:18px;
}

.busca-pet-resultados.ativo{
  display:block;
}

.busca-pet-resultados h5{
  margin:0 0 10px;
  color:#283548;
  font-size:13px;
  text-transform:uppercase;
}

.resultado-pet-item{
  display:grid;
  grid-template-columns:62px 1fr auto;
  gap:12px;
  align-items:center;
  padding:11px;
  border:4px solid #101010;
  background:#f8fbff;
  box-shadow:4px 4px 0 rgba(0,0,0,.07);
}

.resultado-pet-item + .resultado-pet-item{
  margin-top:9px;
}

.resultado-pet-avatar{
  width:62px;
  height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:3px solid #101010;
  background:#d9edf6;
  font-size:38px;
}

.resultado-pet-info strong{
  display:block;
  color:#151196;
  font-size:13px;
}

.resultado-pet-info span{
  display:block;
  margin-top:3px;
  color:#677487;
  font-family:Arial,sans-serif;
  font-size:10px;
}

.resultado-pet-item button{
  min-height:40px;
  padding:0 10px;
  border:3px solid #101010;
  background:#e8ddff;
  color:#111;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

.entrada-historia-mariah{
  display:none;
  margin-top:22px;
  padding:20px;
  border:5px solid #101010;
  background:#fff5f8;
  box-shadow:6px 6px 0 rgba(0,0,0,.08);
}

.entrada-historia-mariah.ativo{
  display:block;
}

.entrada-historia-mariah h4{
  margin:0;
  color:#151196;
  font-size:18px;
  text-transform:uppercase;
}

.entrada-historia-mariah p{
  margin:12px 0 0;
  color:#596575;
  font-family:Arial,sans-serif;
  font-size:12px;
  line-height:1.7;
}

body.entrada-interior-aberta{
  overflow:hidden !important;
}

body.entrada-interior-aberta .atalhos-laterais-externos,
body.entrada-interior-aberta .painel-lateral-cemiterio,
body.entrada-interior-aberta .btn-eternizar-fixo,
body.entrada-interior-aberta .mariah-reabrir{
  display:none !important;
}

@media(max-width:820px){
  .entrada-interior-painel{
    grid-template-columns:1fr;
    max-height:88vh;
  }

  .entrada-interior-lateral{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:14px;
    align-items:center;
    text-align:left;
    border-right:0;
    border-bottom:5px solid #101010;
    padding:16px;
  }

  .mariah-recepcao{
    width:100px;
    height:110px;
  }

  .mariah-recepcao span{
    font-size:70px;
  }

  .entrada-interior-lateral h2{
    margin-top:0;
    font-size:18px;
  }

  .entrada-interior-acoes-mariah{
    grid-column:1/-1;
    grid-template-columns:1fr 1fr;
    margin-top:0;
  }

  .entrada-interior-conteudo{
    padding:18px;
  }

  .busca-pet-grid{
    grid-template-columns:1fr;
  }

  .busca-pet-campo.full{
    grid-column:auto;
  }

  .entrada-interior-janela{
    display:none;
  }
}

/* entrada-principal-click-v1113 */
#portalEntradaPrincipal{
  cursor:pointer !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
  z-index:80 !important;
}

#portalEntradaPrincipal *{
  pointer-events:none !important;
}

#portalEntradaPrincipal:hover{
  filter:brightness(1.045);
}

#portalEntradaPrincipal:focus-visible{
  outline:6px solid #ffd21c;
  outline-offset:8px;
}

#portalEntradaPrincipal .placa{
  transition:transform .16s ease,filter .16s ease;
}

#portalEntradaPrincipal:hover .placa{
  transform:translateY(-3px);
  filter:brightness(1.06);
}

/* entrada-mobile-polimento-v1114 */
/* =========================================================
   v1.0.114 — Polimento visual da entrada + UX mobile
   ========================================================= */

/* ---------- PORTAL CELESTIAL ---------- */

.entrada-cinematografica{
  background:
    radial-gradient(circle at 50% 42%,rgba(92,136,198,.28),transparent 32%),
    linear-gradient(180deg,#10214f 0%,#1c376d 36%,#365b93 66%,#8395bc 100%) !important;
}

.intro-estrelas{
  background-image:
    radial-gradient(circle,#fff8c8 0 2px,transparent 2.8px),
    radial-gradient(circle,#fffce3 0 1.4px,transparent 2.1px),
    radial-gradient(circle,#dceaff 0 1px,transparent 1.8px),
    radial-gradient(circle,#ffe59a 0 2.4px,transparent 3px) !important;
  background-size:
    83px 91px,
    137px 119px,
    67px 149px,
    181px 163px !important;
  background-position:
    10px 16px,
    41px 31px,
    7px 78px,
    73px 19px !important;
  animation:
    estrelas-cintilar-v1114 3.4s steps(3,end) infinite,
    estrelas-deslocar-v1114 18s linear infinite !important;
}

@keyframes estrelas-cintilar-v1114{
  0%,100%{opacity:.70;filter:brightness(.95)}
  35%{opacity:1;filter:brightness(1.28)}
  62%{opacity:.82;filter:brightness(1.02)}
}

@keyframes estrelas-deslocar-v1114{
  from{background-position:10px 16px,41px 31px,7px 78px,73px 19px}
  to{background-position:22px 29px,28px 47px,18px 64px,58px 37px}
}

/* estrelas maiores que piscam em locais específicos */
.intro-estrela-destaque{
  position:absolute;
  z-index:3;
  width:7px;
  height:7px;
  background:#fffbd0;
  box-shadow:
    0 0 0 2px rgba(255,248,178,.20),
    0 0 12px rgba(255,239,137,.82);
  animation:estrela-destaque-v1114 var(--tempo,2.4s) ease-in-out infinite;
}

.intro-estrela-destaque::before,
.intro-estrela-destaque::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  background:#fff7b6;
  transform:translate(-50%,-50%);
}

.intro-estrela-destaque::before{
  width:18px;
  height:2px;
}

.intro-estrela-destaque::after{
  width:2px;
  height:18px;
}

.intro-estrela-destaque.s1{left:18%;top:14%;--tempo:2.2s}
.intro-estrela-destaque.s2{left:78%;top:19%;--tempo:3.1s}
.intro-estrela-destaque.s3{left:70%;top:42%;--tempo:2.6s}
.intro-estrela-destaque.s4{left:28%;top:38%;--tempo:3.5s}
.intro-estrela-destaque.s5{left:88%;top:55%;--tempo:2.9s}
.intro-estrela-destaque.s6{left:10%;top:50%;--tempo:3.3s}

@keyframes estrela-destaque-v1114{
  0%,100%{transform:scale(.65);opacity:.32}
  45%{transform:scale(1.25);opacity:1}
  65%{transform:scale(.92);opacity:.72}
}

/* halo atrás da porta */
.intro-portal::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:-2;
  width:195%;
  aspect-ratio:1/1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:
    radial-gradient(circle,
      rgba(255,247,194,.72) 0 14%,
      rgba(255,220,118,.30) 29%,
      rgba(255,203,81,.12) 44%,
      transparent 68%);
  animation:portal-halo-v1114 2.6s ease-in-out infinite alternate;
}

@keyframes portal-halo-v1114{
  from{transform:translate(-50%,-50%) scale(.92);opacity:.66}
  to{transform:translate(-50%,-50%) scale(1.08);opacity:1}
}

/* portal mais refinado */
.intro-portal-corpo{
  border-width:11px !important;
  background:
    linear-gradient(90deg,
      #a95f23 0 5%,
      #d98a33 5% 11%,
      #ffca68 11% 17%,
      #e79735 17% 22%,
      #ffc45f 22% 78%,
      #d9832f 78% 85%,
      #ffd075 85% 91%,
      #a85d22 91% 100%) !important;
  box-shadow:
    inset 0 0 0 5px #ffe08e,
    inset 0 0 0 10px #e69331,
    0 0 0 5px rgba(255,215,110,.22),
    0 8px 0 rgba(93,52,23,.18) !important;
}

.intro-portal-corpo::before{
  content:"";
  position:absolute;
  left:50%;
  top:4%;
  width:76%;
  height:9px;
  transform:translateX(-50%);
  background:#ffe9a8;
  box-shadow:
    0 18px 0 rgba(255,213,104,.72),
    0 36px 0 rgba(205,122,42,.34);
}

.intro-portal-luz{
  background:
    radial-gradient(circle at 50% 44%,
      #ffffff 0 24%,
      #fffde7 42%,
      #fff4b7 70%,
      #ffd966 100%) !important;
  box-shadow:
    0 0 34px #fff9cf,
    0 0 78px rgba(255,226,136,.92),
    0 0 135px rgba(255,205,86,.42),
    inset 0 0 40px #fff !important;
  animation:
    luz-portal-v1114 2.05s ease-in-out infinite alternate,
    luz-pulsar-v1114 4.8s ease-in-out infinite !important;
}

@keyframes luz-portal-v1114{
  from{filter:brightness(.98) saturate(.96)}
  to{filter:brightness(1.18) saturate(1.06)}
}

@keyframes luz-pulsar-v1114{
  0%,100%{opacity:.90}
  50%{opacity:1}
}

/* partículas subindo perto da luz */
.intro-particulas{
  position:absolute;
  left:50%;
  top:48%;
  z-index:9;
  width:220px;
  height:290px;
  transform:translate(-50%,-50%);
  pointer-events:none;
}

.intro-particulas i{
  position:absolute;
  bottom:5%;
  width:4px;
  height:4px;
  background:#fff6b6;
  box-shadow:0 0 8px rgba(255,239,147,.85);
  animation:particula-subir-v1114 var(--dur,3.5s) linear infinite;
  opacity:0;
}

.intro-particulas i:nth-child(1){left:16%;--dur:3.1s;animation-delay:-1.2s}
.intro-particulas i:nth-child(2){left:34%;--dur:3.8s;animation-delay:-2.5s}
.intro-particulas i:nth-child(3){left:50%;--dur:2.9s;animation-delay:-.6s}
.intro-particulas i:nth-child(4){left:68%;--dur:4.2s;animation-delay:-3.1s}
.intro-particulas i:nth-child(5){left:82%;--dur:3.4s;animation-delay:-1.9s}
.intro-particulas i:nth-child(6){left:43%;--dur:4.0s;animation-delay:-3.4s}
.intro-particulas i:nth-child(7){left:59%;--dur:3.6s;animation-delay:-2.1s}

@keyframes particula-subir-v1114{
  0%{transform:translateY(0) scale(.65);opacity:0}
  18%{opacity:.9}
  70%{opacity:.78}
  100%{transform:translateY(-235px) scale(1.35);opacity:0}
}

/* caminho com luz respirando */
.intro-caminho-luz{
  background:
    linear-gradient(180deg,
      rgba(255,255,244,.98) 0%,
      rgba(255,242,194,.94) 43%,
      rgba(239,202,184,.80) 100%) !important;
  filter:
    drop-shadow(0 0 20px rgba(255,235,170,.52))
    blur(.15px) !important;
  animation:caminho-brilho-v1114 3.2s ease-in-out infinite alternate;
}

@keyframes caminho-brilho-v1114{
  from{opacity:.74;filter:drop-shadow(0 0 13px rgba(255,235,170,.42))}
  to{opacity:.96;filter:drop-shadow(0 0 28px rgba(255,235,170,.76))}
}

/* botão mais elegante */
.intro-botao{
  border-width:4px !important;
  background:
    linear-gradient(180deg,#ffe765,#ffd21c) !important;
  box-shadow:
    0 6px 0 #9c7411,
    0 12px 26px rgba(0,0,0,.17) !important;
  letter-spacing:.3px;
}

.intro-botao::after{
  content:"";
  position:absolute;
  inset:4px;
  border:2px solid rgba(255,255,255,.38);
  pointer-events:none;
}

/* ---------- INTERIOR / RECEPÇÃO ---------- */

.entrada-interior-cenario{
  background:
    linear-gradient(180deg,rgba(74,49,28,.10),rgba(43,28,18,.20)),
    repeating-linear-gradient(
      90deg,
      #ad7748 0 48px,
      #bd8957 48px 96px
    ) !important;
}

.entrada-interior-cenario::before{
  filter:blur(6px) !important;
  opacity:.96;
}

.entrada-interior-painel{
  width:min(1080px,92vw) !important;
  max-height:min(84vh,760px) !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  border-width:5px !important;
  border-radius:18px;
  overflow:hidden;
  background:rgba(250,247,237,.985) !important;
  box-shadow:
    0 22px 60px rgba(0,0,0,.30),
    10px 10px 0 rgba(0,0,0,.14) !important;
}

.entrada-interior-lateral{
  padding:24px 20px !important;
  background:
    radial-gradient(circle at 50% 14%,rgba(255,255,255,.72),transparent 22%),
    linear-gradient(180deg,#f6e8c5,#e9c995) !important;
}

.mariah-recepcao{
  width:150px !important;
  height:165px !important;
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 25%,rgba(255,255,255,.48),transparent 22%),
    linear-gradient(180deg,#a9e1f4 0 58%,#d6ebc7 58% 100%) !important;
}

.entrada-interior-lateral h2{
  font-size:22px !important;
}

.entrada-interior-conteudo{
  padding:24px !important;
}

.entrada-interior-topo{
  position:sticky;
  top:-24px;
  z-index:10;
  margin:-24px -24px 18px;
  padding:20px 24px 16px;
  background:rgba(250,247,237,.97);
  border-bottom:2px solid #d9d2c7;
  backdrop-filter:blur(8px);
}

.entrada-interior-topo h3{
  font-size:24px !important;
}

.btn-fechar-entrada-interior{
  border-radius:12px;
  flex:0 0 44px !important;
  width:44px !important;
  height:44px !important;
  font-size:21px !important;
}

.busca-pet-card{
  margin-top:0 !important;
  border-width:4px !important;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.08) !important;
}

.busca-pet-campo input,
.busca-pet-campo select{
  border-width:3px !important;
  border-radius:10px !important;
  min-height:46px !important;
}

.busca-pet-botoes button,
.entrada-interior-acoes-mariah button{
  border-width:3px !important;
  border-radius:10px;
}

/* MOBILE-FIRST: vira bottom-sheet/tela cheia confortável */
@media(max-width:820px){
  .entrada-interior-overlay{
    background:rgba(20,17,14,.66);
  }

  .entrada-interior-cenario{
    overflow:auto !important;
  }

  .entrada-interior-painel{
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    width:100% !important;
    height:min(92dvh,860px) !important;
    max-height:92dvh !important;
    transform:none !important;
    display:flex !important;
    flex-direction:column !important;
    border:0 !important;
    border-radius:26px 26px 0 0 !important;
    box-shadow:0 -18px 50px rgba(0,0,0,.28) !important;
    animation:entrada-sheet-subir-v1114 .38s cubic-bezier(.18,.78,.18,1) both;
  }

  @keyframes entrada-sheet-subir-v1114{
    from{transform:translateY(100%)}
    to{transform:translateY(0)}
  }

  .entrada-interior-lateral{
    flex:0 0 auto;
    display:grid !important;
    grid-template-columns:82px minmax(0,1fr) !important;
    grid-template-areas:
      "avatar texto"
      "acoes acoes";
    gap:12px !important;
    align-items:center;
    padding:16px 16px 14px !important;
    border:0 !important;
    border-bottom:1px solid #dbcdb4 !important;
    text-align:left !important;
  }

  .mariah-recepcao{
    grid-area:avatar;
    width:78px !important;
    height:84px !important;
    margin:0 !important;
    border-width:3px !important;
    border-radius:16px !important;
  }

  .mariah-recepcao span{
    font-size:52px !important;
  }

  .entrada-interior-lateral > div:nth-child(2){
    grid-area:texto;
    min-width:0;
  }

  .entrada-interior-lateral h2{
    margin:0 0 3px !important;
    font-size:17px !important;
  }

  .entrada-interior-lateral p{
    font-size:10px !important;
    line-height:1.4 !important;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  .entrada-interior-acoes-mariah{
    grid-area:acoes;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    margin:0 !important;
  }

  .entrada-interior-acoes-mariah button{
    min-height:42px !important;
    font-size:9px !important;
    padding:0 8px;
  }

  .entrada-interior-conteudo{
    flex:1 1 auto;
    min-height:0;
    padding:0 14px 24px !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .entrada-interior-topo{
    top:0 !important;
    margin:0 -14px 14px !important;
    padding:12px 14px !important;
    align-items:center !important;
    background:rgba(250,247,237,.97) !important;
  }

  .entrada-interior-topo h3{
    font-size:17px !important;
  }

  .entrada-interior-topo p{
    display:none;
  }

  .btn-fechar-entrada-interior{
    width:40px !important;
    height:40px !important;
    flex-basis:40px !important;
    border-width:3px !important;
    font-size:18px !important;
  }

  .busca-pet-card{
    padding:14px !important;
    border-width:3px !important;
    border-radius:14px !important;
  }

  .busca-pet-card h4{
    margin-bottom:12px !important;
    font-size:15px !important;
  }

  .busca-pet-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .busca-pet-campo.full{
    grid-column:auto !important;
  }

  .busca-pet-campo label{
    font-size:9px !important;
  }

  .busca-pet-campo input,
  .busca-pet-campo select{
    min-height:46px !important;
    font-size:14px !important;
    padding:9px 11px !important;
  }

  .busca-pet-botoes{
    position:sticky;
    bottom:-24px;
    z-index:6;
    display:grid !important;
    grid-template-columns:1fr auto;
    gap:8px !important;
    margin:14px -14px -24px !important;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom));
    background:linear-gradient(180deg,rgba(250,247,237,.88),#faf7ed 28%);
    border-top:1px solid #ddd4c7;
  }

  .busca-pet-botoes button{
    min-height:48px !important;
    font-size:10px !important;
  }

  .busca-pet-regras{
    margin-bottom:8px;
    font-size:9px !important;
  }

  .resultado-pet-item{
    grid-template-columns:52px 1fr !important;
    gap:9px !important;
    padding:10px !important;
    border-width:3px !important;
    border-radius:12px;
  }

  .resultado-pet-avatar{
    width:52px !important;
    height:52px !important;
    font-size:31px !important;
    border-width:2px !important;
    border-radius:10px;
  }

  .resultado-pet-item button{
    grid-column:1/-1;
    min-height:40px !important;
    width:100%;
    border-radius:8px;
  }

  .entrada-historia-mariah{
    border-width:3px !important;
    border-radius:14px;
    padding:15px !important;
  }

  .entrada-interior-janela,
  .entrada-interior-prateleira,
  .entrada-interior-flor{
    opacity:.18;
  }
}

/* portão mobile */
@media(max-width:575.98px){
  .intro-marca{
    top:4.5% !important;
  }

  .intro-marca img{
    max-height:68px !important;
  }

  .intro-marca p{
    max-width:86vw;
    font-size:9px !important;
  }

  .intro-portal{
    top:39% !important;
    width:44vw !important;
    max-width:205px !important;
    height:36vh !important;
    max-height:310px !important;
  }

  .intro-caminho-luz{
    top:52% !important;
    width:54vw !important;
    height:45vh !important;
  }

  .intro-nuvens-base{
    height:40vh !important;
  }

  .intro-nuvens-frente{
    height:33vh !important;
  }

  .intro-botao{
    bottom:max(18px,env(safe-area-inset-bottom)) !important;
    width:calc(100vw - 28px) !important;
    min-height:54px !important;
    font-size:11px !important;
    border-width:3px !important;
    box-shadow:0 5px 0 #9c7411,0 9px 22px rgba(0,0,0,.18) !important;
  }

  .intro-particulas{
    width:150px;
    height:235px;
  }
}

/* mariah-historia-scroll-v1115 */
.entrada-interior-painel{min-height:0!important}
.entrada-interior-conteudo{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.entrada-interior-conteudo::-webkit-scrollbar{width:12px}.entrada-interior-conteudo::-webkit-scrollbar-track{background:#eee8dd;border-left:2px solid #d7cfc2}.entrada-interior-conteudo::-webkit-scrollbar-thumb{background:#8f795c;border:3px solid #eee8dd;border-radius:10px}.entrada-interior-conteudo::-webkit-scrollbar-thumb:hover{background:#745f47}
@media(max-width:820px){.entrada-interior-painel{overflow:hidden!important}.entrada-interior-conteudo{flex:1 1 0!important;height:auto!important;max-height:none!important;overflow-y:auto!important;padding-bottom:110px!important}.busca-pet-botoes{bottom:-110px!important;margin-bottom:-110px!important}}
.modal-historia-mariah{position:fixed;inset:0;z-index:2147483600;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(12,13,19,.78);backdrop-filter:blur(5px)}
.modal-historia-mariah.ativo{display:flex;animation:mariah-modal-in .28s ease both}.modal-historia-mariah.saindo{animation:mariah-modal-out .24s ease both}@keyframes mariah-modal-in{from{opacity:0}to{opacity:1}}@keyframes mariah-modal-out{from{opacity:1}to{opacity:0}}
.mariah-modal-box{position:relative;width:min(1060px,94vw);max-height:min(86vh,820px);display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);overflow:hidden;border:6px solid #101010;border-radius:20px;background:#fffaf0;box-shadow:16px 16px 0 rgba(0,0,0,.24)}
.mariah-modal-fotos{position:relative;min-height:560px;overflow:hidden;border-right:6px solid #101010;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.55),transparent 22%),linear-gradient(180deg,#bde8f7 0 58%,#d8edcb 58% 100%)}
.mariah-slides{position:absolute;inset:0}.mariah-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:26px;opacity:0;transform:scale(1.06);transition:opacity .7s ease,transform 1.1s ease}.mariah-slide.ativo{opacity:1;transform:scale(1)}
.mariah-slide img{width:100%;height:100%;object-fit:cover;border:5px solid #101010;border-radius:16px;box-shadow:7px 7px 0 rgba(0,0,0,.12);background:#fff}
.mariah-slide-fallback{width:100%;height:100%;display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px;border:5px solid #101010;border-radius:16px;background:radial-gradient(circle at 50% 30%,rgba(255,255,255,.70),transparent 23%),linear-gradient(180deg,#caedf9 0 60%,#d8edcb 60% 100%);color:#596575;text-align:center;box-shadow:7px 7px 0 rgba(0,0,0,.12)}
.mariah-slide-fallback strong{font-size:86px}.mariah-slide-fallback span{max-width:250px;font-family:Arial,sans-serif;font-size:12px;line-height:1.45}
.mariah-fotos-overlay{position:absolute;left:18px;right:18px;bottom:18px;z-index:4;padding:10px 12px;border:3px solid #101010;border-radius:12px;background:rgba(19,25,33,.86);color:#fff;font-family:Arial,sans-serif;font-size:10px;font-weight:700;text-align:center}
.mariah-indicadores{position:absolute;left:50%;top:18px;z-index:5;transform:translateX(-50%);display:flex;gap:7px}.mariah-indicadores button{width:12px;height:12px;padding:0;border:2px solid #101010;border-radius:50%;background:#fff;cursor:pointer}.mariah-indicadores button.ativo{background:#ffd21c}
.mariah-modal-historia{min-width:0;display:flex;flex-direction:column;overflow:hidden}.mariah-modal-topo{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:3px solid #dfd7c8;background:#fffaf0}.mariah-modal-topo h3{margin:0;color:#151196;font-size:26px;text-transform:uppercase}.btn-fechar-historia-mariah{width:46px;height:46px;flex:0 0 46px;border:4px solid #101010;border-radius:11px;background:#ef4444;color:#fff;font-size:21px;font-weight:900;cursor:pointer}
.mariah-modal-texto{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px 28px 32px;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.mariah-modal-texto::-webkit-scrollbar{width:10px}.mariah-modal-texto::-webkit-scrollbar-thumb{background:#9c8669;border-radius:8px}.mariah-modal-texto .selo{display:inline-block;margin-bottom:14px;padding:6px 10px;border:3px solid #101010;border-radius:8px;background:#e8ddff;color:#151196;font-size:9px;font-weight:900;text-transform:uppercase}.mariah-modal-texto h4{margin:0;color:#283548;font-size:21px}.mariah-modal-texto p{margin:14px 0 0;color:#596575;font-family:Arial,sans-serif;font-size:13px;line-height:1.75}.mariah-modal-texto .destaque{margin-top:20px;padding:16px;border:4px solid #101010;border-radius:12px;background:#fff4c8;color:#3d4652;font-family:Arial,sans-serif;font-size:12px;line-height:1.6}body.modal-mariah-aberto{overflow:hidden!important}
@media(max-width:820px){.modal-historia-mariah{padding:10px;align-items:flex-end}.mariah-modal-box{width:100%;max-height:92dvh;grid-template-columns:1fr;grid-template-rows:240px minmax(0,1fr);border-width:0;border-radius:24px 24px 0 0;box-shadow:0 -16px 42px rgba(0,0,0,.24)}.mariah-modal-fotos{min-height:0;border-right:0;border-bottom:4px solid #101010}.mariah-slide{padding:12px}.mariah-slide img,.mariah-slide-fallback{border-width:3px;border-radius:12px}.mariah-slide-fallback strong{font-size:56px}.mariah-fotos-overlay{left:12px;right:12px;bottom:10px;font-size:9px}.mariah-indicadores{top:10px}.mariah-modal-topo{padding:12px 14px}.mariah-modal-topo h3{font-size:18px}.btn-fechar-historia-mariah{width:40px;height:40px;flex-basis:40px;border-width:3px;font-size:18px}.mariah-modal-texto{padding:18px 16px 28px}.mariah-modal-texto h4{font-size:18px}.mariah-modal-texto p{font-size:12px}}

/* recepcao-scroll-avatar-v1116 */
/* =========================================================
   v1.0.116 — avatar com foto + rolagem interna do formulário
   ========================================================= */

.mariah-recepcao{
  overflow:hidden !important;
  padding:0 !important;
}

.mariah-recepcao img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

/*
 * A rolagem fica concentrada na área do formulário, deixando
 * cabeçalho e recepção mais estáveis durante a navegação.
 */
.entrada-interior-conteudo{
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}

.entrada-interior-topo{
  flex:0 0 auto !important;
}

.busca-pet-card{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
  padding-right:18px !important;
}

.busca-pet-card::-webkit-scrollbar{
  width:11px;
}

.busca-pet-card::-webkit-scrollbar-track{
  background:#ece8df;
  border-left:2px solid #d7d0c4;
  border-radius:8px;
}

.busca-pet-card::-webkit-scrollbar-thumb{
  background:#8b765a;
  border:3px solid #ece8df;
  border-radius:10px;
}

.busca-pet-card::-webkit-scrollbar-thumb:hover{
  background:#705d47;
}

@media(max-width:820px){
  .entrada-interior-conteudo{
    min-height:0 !important;
    overflow:hidden !important;
    padding-bottom:0 !important;
  }

  .busca-pet-card{
    flex:1 1 auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    margin-bottom:0 !important;
    padding:14px 18px 120px 14px !important;
    border-bottom-left-radius:0 !important;
    border-bottom-right-radius:0 !important;
  }

  .busca-pet-botoes{
    position:sticky !important;
    bottom:-120px !important;
    z-index:8 !important;
    margin:14px -18px -120px -14px !important;
    padding:
      12px 14px
      calc(12px + env(safe-area-inset-bottom))
      14px !important;
    background:
      linear-gradient(
        180deg,
        rgba(250,247,237,.88),
        #faf7ed 26%
      ) !important;
    border-top:1px solid #ddd4c7;
  }

  .mariah-recepcao{
    width:78px !important;
    height:84px !important;
    border-radius:16px !important;
  }
}

@media(min-width:821px){
  .busca-pet-card{
    max-height:calc(84vh - 150px) !important;
  }
}

/* mariah-scroll-v1117 */
/* Rolagem independente e sempre visível na história da Mariah */
.mariah-modal-historia{
  min-height:0 !important;
  overflow:hidden !important;
}

.mariah-modal-texto{
  flex:1 1 0 !important;
  min-height:0 !important;
  max-height:calc(86vh - 94px) !important;
  overflow-y:scroll !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
  padding-right:22px !important;
}

.mariah-modal-texto::-webkit-scrollbar{
  width:13px !important;
}

.mariah-modal-texto::-webkit-scrollbar-track{
  background:#e9e2d6 !important;
  border-left:2px solid #d0c6b7;
}

.mariah-modal-texto::-webkit-scrollbar-thumb{
  background:#8b765a !important;
  border:3px solid #e9e2d6 !important;
  border-radius:12px !important;
}

.mariah-modal-texto::-webkit-scrollbar-thumb:hover{
  background:#66533e !important;
}

@media(max-width:820px){
  .mariah-modal-historia{
    min-height:0 !important;
  }

  .mariah-modal-texto{
    min-height:0 !important;
    max-height:none !important;
    overflow-y:scroll !important;
    padding-bottom:42px !important;
  }
}

/* scroll-resultado-busca-v1118 */
.busca-pet-resultados{
  scroll-margin-top:16px;
  scroll-margin-bottom:16px;
}

/* =========================================================
   v1.1.32 — personalização visual da Capela das Lembranças
   ========================================================= */
.capela-fachada-personalizada{width:min(82vw,520px);height:auto;max-height:78vh;object-fit:contain}
.capela-fundo-personalizado{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}
.capela-fundo-svg.tem-fundo-personalizado{display:none!important}


/* =========================================================
   v1.1.33 — galeria compacta dentro da Capela
   ========================================================= */
.capela-galeria{
  width:min(72vw,760px) !important;
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.capela-galeria-titulo{
  margin-bottom:7px !important;
  font-size:clamp(11px,1.15vw,15px) !important;
}

.capela-faixa-viewport{
  min-height:104px !important;
  padding:6px 0 !important;
}

.capela-faixa{
  gap:10px !important;
}

.capela-pet-card{
  width:112px !important;
  min-width:112px !important;
  flex:0 0 112px !important;
  padding:7px !important;
  gap:6px !important;
}

.capela-foto{
  width:48px !important;
  height:48px !important;
  min-height:48px !important;
}

.capela-foto .avatar{
  font-size:34px !important;
}

.capela-info strong{
  font-size:11px !important;
  line-height:1.15 !important;
}

.capela-info small{
  font-size:9px !important;
  line-height:1.15 !important;
}

@media (max-width:767.98px){
  .capela-galeria{
    width:min(84vw,560px) !important;
  }

  .capela-faixa-viewport{
    min-height:90px !important;
  }

  .capela-pet-card{
    width:94px !important;
    min-width:94px !important;
    flex-basis:94px !important;
    padding:5px !important;
  }

  .capela-foto{
    width:40px !important;
    height:40px !important;
    min-height:40px !important;
  }

  .capela-foto .avatar{
    font-size:28px !important;
  }
}


/* =========================================================
   v1.1.34 — refinamento do box de homenageados da Capela
   ========================================================= */
.capela-galeria{
  box-sizing:border-box !important;
  padding:12px 14px 14px !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,rgba(24,17,14,.62),rgba(13,9,8,.48)) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.08) !important;
  backdrop-filter:blur(5px) !important;
  -webkit-backdrop-filter:blur(5px) !important;
  overflow:hidden !important;
}

.capela-galeria-titulo{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:22px !important;
  margin:0 0 8px !important;
  padding:0 10px 7px !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  text-align:center !important;
  letter-spacing:.04em !important;
  text-shadow:0 1px 2px rgba(0,0,0,.65) !important;
}

.capela-faixa-viewport{
  border-radius:11px !important;
  background:rgba(5,4,4,.22) !important;
  box-shadow:inset 0 0 18px rgba(0,0,0,.18) !important;
}

.capela-pet-card{
  border:1px solid rgba(255,255,255,.13) !important;
  border-radius:11px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.055)) !important;
  box-shadow:0 4px 12px rgba(0,0,0,.16) !important;
}

.capela-pet-card:hover,
.capela-pet-card:focus-visible{
  border-color:rgba(255,255,255,.28) !important;
  background:linear-gradient(180deg,rgba(255,255,255,.17),rgba(255,255,255,.08)) !important;
  transform:translateY(-2px) !important;
}

.capela-foto{
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:9px !important;
  background:rgba(255,255,255,.08) !important;
}

@media (max-width:767.98px){
  .capela-galeria{
    padding:9px 10px 11px !important;
    border-radius:13px !important;
  }
}


/* =========================================================
   v1.1.35 — fachada da animação da Capela em tela inteira
   ========================================================= */
.capela-transicao .capela-fachada-personalizada,
.capela-fachada-saida .capela-fachada-personalizada{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  width:100vw !important;
  height:100vh !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  margin:0 !important;
}

.capela-transicao,
.capela-fachada-saida{
  width:100vw !important;
  height:100vh !important;
  max-width:none !important;
  max-height:none !important;
  overflow:hidden !important;
}

@supports (height:100dvh){
  .capela-transicao .capela-fachada-personalizada,
  .capela-fachada-saida .capela-fachada-personalizada,
  .capela-transicao,
  .capela-fachada-saida{
    height:100dvh !important;
  }
}


/* =========================================================
   v1.1.36 — saída da Capela somente com fechamento das portas
   ========================================================= */
.capela-fachada-saida,
.capela-fachada-saida.ativo{
  display:none !important;
}


/* =========================================================
   v1.1.37 — alinhamento do título da galeria da Capela
   ========================================================= */
.capela-galeria-titulo{
  width:100% !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}


/* =========================================================
   v1.1.38 — entrada da Capela com zoom mínimo
   ========================================================= */
.capela-transicao .capela-fachada-personalizada{
  animation:capela-entrada-zoom-suave 5s ease-out forwards !important;
  transform-origin:center center !important;
}

@keyframes capela-entrada-zoom-suave{
  0%{
    transform:scale(1);
  }
  100%{
    transform:scale(1.025);
  }
}

/* =========================================================
   v1.1.168 — experiência interna imersiva da Capela
   ========================================================= */
.capela-overlay{
  isolation:isolate;
  background:#09080d;
}

.capela-interior:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 8%,rgba(255,223,151,.26),transparent 37%),
    linear-gradient(90deg,rgba(9,5,15,.42),transparent 24%,transparent 76%,rgba(9,5,15,.42)),
    linear-gradient(180deg,rgba(5,3,8,.18),transparent 42%,rgba(5,3,8,.58));
}

.capela-fundo-personalizado{
  filter:saturate(.9) contrast(1.04) brightness(.76);
  transform:scale(1.012);
}

.capela-vinheta{
  z-index:3;
  background:
    radial-gradient(ellipse at center,transparent 25%,rgba(5,3,8,.14) 60%,rgba(3,2,5,.76) 100%),
    linear-gradient(180deg,rgba(3,2,5,.2),transparent 25%,transparent 65%,rgba(3,2,5,.54));
}

.capela-raio-luz{
  z-index:4;
  width:min(52vw,700px);
  height:72%;
  opacity:.88;
  filter:blur(1px);
  background:linear-gradient(180deg,rgba(255,235,174,.34),rgba(255,235,174,.025));
}

.capela-cabecalho{
  z-index:22;
  width:min(510px,calc(100vw - 172px));
  box-sizing:border-box;
  padding:18px 20px;
  border:1px solid rgba(255,239,196,.32);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(28,20,37,.94),rgba(17,13,25,.82));
  box-shadow:0 18px 45px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
}

.capela-cabecalho-selo{
  display:flex!important;
  align-items:center;
  gap:7px;
  width:max-content;
  margin:0 0 8px!important;
  padding:5px 8px;
  border:1px solid rgba(255,226,149,.28);
  border-radius:999px;
  color:#ffe2a0!important;
  background:rgba(255,218,135,.08);
  font:800 10px/1 Arial,sans-serif!important;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.capela-cabecalho strong{
  color:#fff4cd!important;
  font-size:clamp(18px,2vw,27px)!important;
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}

.capela-cabecalho>span:last-child{
  max-width:460px;
  color:rgba(255,248,230,.82)!important;
  font-size:13px!important;
  line-height:1.55!important;
}

.capela-sair{
  z-index:26;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:142px;
  height:46px;
  border:1px solid rgba(255,235,180,.42);
  border-radius:12px;
  background:rgba(26,18,33,.9);
  color:#fff3d3;
  box-shadow:0 12px 30px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.1);
  backdrop-filter:blur(8px);
}

.capela-sair:hover,.capela-sair:focus-visible{
  outline:0;
  transform:translateY(-2px);
  background:#f4d27f;
  color:#24170f;
}

.capela-galeria{
  z-index:14;
  bottom:4.5%!important;
  border:1px solid rgba(255,239,210,.18)!important;
  background:linear-gradient(135deg,rgba(21,15,29,.88),rgba(26,16,17,.79))!important;
  box-shadow:0 22px 60px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.08)!important;
  backdrop-filter:blur(12px)!important;
}

.capela-galeria-titulo{
  gap:8px;
  color:#ffebad!important;
  text-shadow:0 2px 12px rgba(0,0,0,.5)!important;
}

.capela-faixa-viewport:before{background:linear-gradient(90deg,rgba(21,15,29,.94),transparent)!important}
.capela-faixa-viewport:after{background:linear-gradient(-90deg,rgba(21,15,29,.94),transparent)!important}

.capela-pet-card{
  border:1px solid rgba(255,238,194,.3)!important;
  border-radius:12px;
  background:rgba(250,239,210,.96)!important;
  box-shadow:0 10px 20px rgba(0,0,0,.25),inset 0 0 0 3px rgba(142,104,60,.42)!important;
}

.capela-pet-card:hover,.capela-pet-card:focus-visible{
  outline:2px solid #ffe3a0;
  outline-offset:3px;
  transform:translateY(-6px) scale(1.025);
}

.capela-historia{
  z-index:30;
  border:1px solid rgba(255,237,195,.45);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(255,249,233,.98),rgba(233,218,188,.98));
  box-shadow:0 28px 90px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.9);
}

.capela-historia-fechar{
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#34233e;
  box-shadow:0 4px 10px rgba(0,0,0,.25);
}

.capela-historia-fechar:hover,.capela-historia-fechar:focus-visible{
  outline:0;
  background:#8e3e54;
  transform:scale(1.07);
}

@media (max-width:767.98px){
  .capela-cabecalho{width:calc(100vw - 128px);padding:12px 14px;border-radius:14px}
  .capela-cabecalho-selo{font-size:8px!important;margin-bottom:6px!important}
  .capela-cabecalho>span:last-child{font-size:10px!important;line-height:1.4!important}
  .capela-sair{right:10px;top:10px;min-width:104px;height:40px;font-size:8px}
  .capela-galeria{bottom:3%!important;width:min(92vw,560px)!important}
  .capela-historia{width:min(90vw,540px);padding:16px}
}


/* v1.1.242 — Capela: foto centralizada e card abre o memorial completo */
.capela-overlay .capela-pet-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
.capela-overlay .capela-foto{
  margin-left:auto !important;
  margin-right:auto !important;
  flex:0 0 auto !important;
}
.capela-overlay .capela-foto>img{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center center !important;
}
.capela-overlay .capela-info{
  width:100% !important;
  text-align:center !important;
}


/* =========================================================
   v1.1.326 — redesign UI/UX do modal de aniversário
   ========================================================= */
.modal-aniversario-pet .modal-dialog{
  width:min(92vw,620px)!important;
  max-width:620px!important;
  margin:1.5rem auto!important;
}

.modal-aniversario-pet .modal-content{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.7)!important;
  border-radius:28px!important;
  background:#fff!important;
  box-shadow:0 28px 80px rgba(16,24,40,.32)!important;
}

.modal-aniversario-pet .aniversario-pet-topo{
  min-height:190px;
  padding:28px 28px 20px;
  overflow:hidden;
  border:0!important;
  background:
    radial-gradient(circle at 50% -20%,rgba(255,255,255,.42),transparent 48%),
    linear-gradient(135deg,#ff5968 0%,#f33b4c 100%)!important;
}

.modal-aniversario-pet .aniversario-pet-topo:before,
.modal-aniversario-pet .aniversario-pet-topo:after{
  font-size:48px;
  filter:drop-shadow(0 7px 8px rgba(115,14,27,.16));
  opacity:.95;
}

.modal-aniversario-pet .aniversario-pet-topo:before{
  left:46px;
  bottom:42px;
}

.modal-aniversario-pet .aniversario-pet-topo:after{
  right:46px;
  top:32px;
}

.modal-aniversario-pet .aniversario-pet-avatar{
  width:118px;
  height:118px;
  overflow:hidden;
  border:5px solid rgba(255,255,255,.96)!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(98,15,25,.22)!important;
  font-size:56px;
}

.modal-aniversario-pet .aniversario-pet-avatar img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  border-radius:50%!important;
}

.modal-aniversario-pet .aniversario-pet-corpo{
  position:relative;
  padding:34px 42px 38px!important;
  text-align:center;
}

.modal-aniversario-pet .aniversario-pet-selo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:0 0 18px;
  padding:8px 14px;
  border:0!important;
  border-radius:999px!important;
  background:#fff3c4!important;
  color:#8a6400!important;
  font-family:Arial,sans-serif;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  line-height:1;
  text-transform:uppercase;
  box-shadow:none!important;
}

.modal-aniversario-pet .aniversario-pet-corpo h3{
  max-width:500px;
  margin:0 auto!important;
  color:#202939!important;
  font-family:inherit;
  font-size:clamp(28px,4vw,38px)!important;
  font-weight:800!important;
  line-height:1.12!important;
  letter-spacing:-.035em;
  text-transform:none!important;
}

.modal-aniversario-pet .aniversario-pet-corpo p{
  max-width:490px;
  margin:16px auto 0!important;
  color:#667085!important;
  font-family:Arial,sans-serif;
  font-size:16px!important;
  line-height:1.65!important;
}

.modal-aniversario-pet .aniversario-pet-idade{
  min-width:0!important;
  min-height:0!important;
  margin-top:24px!important;
  padding:11px 20px!important;
  border:0!important;
  border-radius:14px!important;
  background:#fff1f2!important;
  color:#e73545!important;
  font-family:Arial,sans-serif;
  font-size:22px!important;
  font-weight:800!important;
  line-height:1.2;
  box-shadow:none!important;
}

.modal-aniversario-pet .btn-fechar-aniversario{
  top:18px!important;
  right:18px!important;
  width:44px!important;
  height:44px!important;
  border:1px solid rgba(255,255,255,.42)!important;
  border-radius:14px!important;
  background:rgba(105,14,26,.22)!important;
  color:#fff!important;
  font-family:Arial,sans-serif!important;
  font-size:26px!important;
  font-weight:500!important;
  box-shadow:none!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:background .18s ease,transform .18s ease!important;
}

.modal-aniversario-pet .btn-fechar-aniversario:hover{
  background:rgba(105,14,26,.34)!important;
  transform:scale(1.04)!important;
}

.modal-aniversario-pet + .modal-backdrop,
.modal-backdrop.backdrop-aniversario-pet{
  background:#111827!important;
}

@media(max-width:767.98px){
  .modal-aniversario-pet .modal-dialog{
    width:calc(100vw - 24px)!important;
    margin:12px auto!important;
  }

  .modal-aniversario-pet .modal-content{
    max-height:calc(100dvh - 24px);
    overflow:auto!important;
    border-radius:22px!important;
  }

  .modal-aniversario-pet .aniversario-pet-topo{
    min-height:150px;
    padding:22px 20px 16px;
  }

  .modal-aniversario-pet .aniversario-pet-topo:before,
  .modal-aniversario-pet .aniversario-pet-topo:after{
    font-size:38px;
  }

  .modal-aniversario-pet .aniversario-pet-topo:before{
    left:24px;
    bottom:30px;
  }

  .modal-aniversario-pet .aniversario-pet-topo:after{
    right:24px;
    top:30px;
  }

  .modal-aniversario-pet .aniversario-pet-avatar{
    width:94px;
    height:94px;
  }

  .modal-aniversario-pet .aniversario-pet-corpo{
    padding:27px 22px 30px!important;
  }

  .modal-aniversario-pet .aniversario-pet-corpo h3{
    font-size:28px!important;
  }

  .modal-aniversario-pet .aniversario-pet-corpo p{
    font-size:15px!important;
    line-height:1.55!important;
  }

  .modal-aniversario-pet .aniversario-pet-idade{
    margin-top:20px!important;
    font-size:20px!important;
  }

  .modal-aniversario-pet .btn-fechar-aniversario{
    top:14px!important;
    right:14px!important;
    width:40px!important;
    height:40px!important;
    border-radius:12px!important;
    font-size:23px!important;
  }
}
