.cabecalho{
  position:fixed;
  top:0; left:0; right:0;
  z-index:1000;
  padding:18px 0;
  transition: background var(--transicao), padding var(--transicao), box-shadow var(--transicao);
}
.cabecalho .container{
  max-width:1600px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.cabecalho.rolado{
  background: rgba(26,26,26,0.94);
  backdrop-filter: blur(10px);
  padding:10px 0;
  box-shadow: var(--sombra-suave);
}
.cabecalho.rolado .brasao-mini{ height:36px; }

.marca{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
  min-width:0;
}
.brasao-mini{
  width:auto;
  height:46px;
  flex-shrink:0;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.35));
  transition: transform 0.4s ease, filter 0.4s ease, height 0.3s ease;
}
.marca:hover .brasao-mini{
  transform: scale(1.05);
  filter: drop-shadow(0 3px 10px rgba(212,175,55,0.4));
}

.nome-santuario{
  font-family: var(--fonte-titulo);
  font-size:0.92rem;
  color: var(--marfim);
  letter-spacing:0.02em;
  line-height:1.25;
  white-space:nowrap;
}
.nome-santuario small{
  display:block;
  font-family: var(--fonte-texto);
  font-size:0.58rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color: var(--ouro-claro);
  margin-top:3px;
  font-weight:500;
  white-space:nowrap;
}

.menu-desktop{
  display:flex;
  align-items:center;
  gap:clamp(14px, 1.6vw, 26px);
  flex-wrap:nowrap;
  min-width:0;
}
.menu-desktop a{
  font-size:0.82rem;
  color: var(--marfim);
  letter-spacing:0.02em;
  position:relative;
  padding:4px 0;
  white-space:nowrap;
}
.menu-desktop a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0%;
  height:1px;
  background: var(--dourado);
  transition: width 0.35s ease;
}
.menu-desktop a:hover::after{ width:100%; }

.btn-header-cta{
  padding:11px 22px;
  font-size:0.72rem;
  white-space:nowrap;
  flex-shrink:0;
}

.botao-menu-mobile{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
  z-index:1100;
  flex-shrink:0;
}
.botao-menu-mobile span{
  width:26px;
  height:2px;
  background: var(--marfim);
  transition: transform 0.35s ease, opacity 0.35s ease;
}
.botao-menu-mobile.aberto span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.botao-menu-mobile.aberto span:nth-child(2){ opacity:0; }
.botao-menu-mobile.aberto span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   SIDEBAR MOBILE — painel deslizante pela direita
   ============================================================ */

/* Fundo escurecido atrás do sidebar, clicável para fechar */
.menu-mobile-fundo{
  position:fixed;
  inset:0;
  background: rgba(10,8,6,0.6);
  backdrop-filter: blur(2px);
  z-index:1040;
  opacity:0;
  visibility:hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}
.menu-mobile-fundo.aberto{ opacity:1; visibility:visible; }

.menu-mobile-sidebar{
  position:fixed;
  top:0; right:0;
  height:100%;
  width:min(360px, 86vw);
  background: #1A1A1A;
  border-left:1px solid rgba(212,175,55,0.3);
  box-shadow: -12px 0 40px rgba(0,0,0,0.4);
  z-index:1050;
  display:flex;
  flex-direction:column;
  transform: translateX(100%);
  transition: transform 0.4s cubic-bezier(.22,.61,.36,1);
}
.menu-mobile-sidebar.aberto{ transform: translateX(0); }

.sidebar-topo{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:22px 18px;
  border-bottom:1px solid rgba(212,175,55,0.18);
  flex-shrink:0;
}
.sidebar-marca{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.sidebar-marca .brasao-mini{ height:38px; }
.sidebar-marca .nome-santuario{ font-size:0.82rem; }
.sidebar-marca .nome-santuario small{ font-size:0.52rem; }

.sidebar-fechar{
  flex-shrink:0;
  width:38px; height:38px;
  border-radius:50%;
  border:1px solid rgba(243,233,216,0.25);
  background: rgba(243,233,216,0.05);
  color: var(--marfim);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.sidebar-fechar svg{ width:18px; height:18px; }
.sidebar-fechar:hover{
  background: rgba(212,175,55,0.15);
  border-color: var(--dourado);
  transform: rotate(90deg);
}

.sidebar-nav{
  flex:1;
  overflow-y:auto;
  padding:14px 12px;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.sidebar-link{
  display:flex;
  align-items:center;
  gap:14px;
  padding:15px 14px;
  border-radius:8px;
  color: var(--marfim);
  font-size:0.98rem;
  font-weight:500;
  letter-spacing:0.01em;
  transition: background 0.25s ease, color 0.25s ease, padding-left 0.25s ease;
}
.sidebar-link:hover, .sidebar-link:active{
  background: rgba(212,175,55,0.1);
  color: var(--ouro-claro);
  padding-left:18px;
}
.sidebar-icone{
  width:19px; height:19px;
  flex-shrink:0;
  opacity:0.85;
}

.sidebar-grupo{
  border-radius:8px;
  overflow:hidden;
}
.sidebar-grupo-cabecalho{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:15px 14px;
  background:none;
  border:none;
  color: var(--marfim);
  font-family: var(--fonte-texto);
  font-size:0.98rem;
  font-weight:500;
  letter-spacing:0.01em;
  cursor:pointer;
  border-radius:8px;
  transition: background 0.25s ease, color 0.25s ease;
}
.sidebar-grupo-cabecalho span{
  display:flex;
  align-items:center;
  gap:14px;
}
.sidebar-grupo-cabecalho:hover{
  background: rgba(212,175,55,0.08);
  color: var(--ouro-claro);
}
.sidebar-seta{
  width:16px; height:16px;
  flex-shrink:0;
  transition: transform 0.3s ease;
}
.sidebar-grupo.aberto .sidebar-seta{ transform: rotate(180deg); }
.sidebar-grupo.aberto .sidebar-grupo-cabecalho{ color: var(--ouro-claro); }

.sidebar-grupo-itens{
  display:grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s ease;
}
.sidebar-grupo-itens-inner{ overflow:hidden; min-height:0; }
.sidebar-grupo.aberto .sidebar-grupo-itens{ grid-template-rows: 1fr; }

.sidebar-grupo-itens a{
  display:block;
  padding:12px 14px 12px 46px;
  color: rgba(243,233,216,0.78);
  font-size:0.9rem;
  border-left:1px solid rgba(212,175,55,0.2);
  margin-left:24px;
  transition: color 0.25s ease, border-color 0.25s ease;
}
.sidebar-grupo-itens a:hover{
  color: var(--ouro-claro);
  border-color: var(--dourado);
}

.sidebar-rodape{
  padding:18px;
  border-top:1px solid rgba(212,175,55,0.18);
  flex-shrink:0;
}
.sidebar-rodape .btn{
  width:100%;
  justify-content:center;
}

/* Com o menu agrupado em dropdowns, o conteúdo do cabeçalho cabe
   com folga a partir de ~900px. Abaixo disso, hamburger. */
@media (max-width:900px){
  .menu-desktop, .btn-header-cta{ display:none; }
  .botao-menu-mobile{ display:flex; }
}
@media (max-width:480px){
  .cabecalho .nome-santuario{ font-size:0.8rem; }
  .cabecalho .nome-santuario small{ font-size:0.52rem; letter-spacing:0.1em; }
  .cabecalho .brasao-mini{ height:38px; }
}

/* ============================================================
   NAVEGAÇÃO MULTIPÁGINA — links ativos e submenu "Passeio"
   ============================================================ */
.menu-desktop a.ativo{ color: var(--ouro-claro); }
.menu-desktop a.ativo::after{ width:100%; }

.menu-item-submenu{
  position:relative;
  display:flex;
  align-items:center;
}
.seta-submenu{
  display:inline-block;
  font-size:0.7em;
  margin-left:3px;
  transition: transform 0.25s ease;
}
.menu-item-submenu:hover .seta-submenu{ transform: rotate(180deg); }

.submenu{
  position:absolute;
  top:100%;
  left:50%;
  transform: translateX(-50%) translateY(8px);
  min-width:210px;
  padding:10px 0;
  background: rgba(26,26,26,0.97);
  border:1px solid rgba(212,175,55,0.3);
  box-shadow: var(--sombra-suave);
  opacity:0;
  visibility:hidden;
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
  z-index:1200;
}
.menu-item-submenu:hover .submenu,
.menu-item-submenu:focus-within .submenu{
  opacity:1;
  visibility:visible;
  transform: translateX(-50%) translateY(0);
}
.submenu a{
  display:block;
  padding:10px 22px;
  font-size:0.82rem;
  white-space:nowrap;
}
.submenu a::after{ display:none; }
.submenu a:hover{ background: rgba(212,175,55,0.1); color: var(--ouro-claro); }
