/* ================================================================
   NAV — partes comuns a todas as páginas (Cursos, Loja, Coleção, Blog):
   "Área de membros" como link de texto (a nav não tem botão, padrão Apple),
   botão de menu no celular e o menu de tela cheia. A cor de destaque vem de
   --nav-accent, que cada seção define (roxo, verde da Loja, rosa do Blog).
   A Início tem a mesma coisa inline. Mudou aqui? Mude lá também.
   ================================================================ */
.nav .logo { text-decoration: none; }
.nav .member {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12.5px; font-weight: 500; letter-spacing: -0.005em;
  padding: 7px 12px 7px 14px; margin-left: 4px;
  border-left: 1px solid rgba(255,255,255,0.1);
  color: #9891AB; transition: color .2s ease;
}
.nav .member svg { width: 9px; height: 9px; opacity: .8; }
.nav .member:hover { color: var(--nav-accent, #D9CBFF); }
.nav .menu-btn {
  display: none; position: relative;
  width: 38px; height: 38px; border: 0; border-radius: 50%; padding: 0;
  background: transparent; color: #fff; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.nav .menu-btn span {
  position: absolute; left: 11px; right: 11px; height: 1.5px; border-radius: 2px; background: currentColor;
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.nav .menu-btn span:first-child { top: 15px; }
.nav .menu-btn span:last-child { top: 21.5px; }
.nav .menu-btn[aria-expanded="true"] span:first-child { transform: translateY(3.25px) rotate(45deg); }
.nav .menu-btn[aria-expanded="true"] span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
.nav .menu-btn:focus-visible, .nav-sheet a:focus-visible { outline: 2px solid var(--nav-accent, #A78BFA); outline-offset: 2px; }

/* prefixo .nav-dock: vale mesmo quando o CSS da página carrega depois deste */
@media (max-width: 640px) {
  .nav-dock .nav .links, .nav-dock .nav .member { display: none; }
  .nav-dock .nav .menu-btn { display: block; }
  .nav-dock .nav .logo { border-right: none; padding-right: 0; margin-right: 0; }
  .nav-dock .nav { width: 100%; justify-content: space-between; gap: 6px; padding: 4px 4px 4px 12px; background: rgba(14,12,20,0.78); }
}

.nav-sheet {
  position: fixed; inset: 0; z-index: 99;
  padding: 92px 30px calc(32px + env(safe-area-inset-bottom));
  display: flex; flex-direction: column;
  background: rgba(9,8,13,0.78);
  backdrop-filter: blur(40px) saturate(170%); -webkit-backdrop-filter: blur(40px) saturate(170%);
  opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility 0s linear .35s;
}
.nav-sheet.is-open { opacity: 1; visibility: visible; transition: opacity .35s ease, visibility 0s; }
.nav-sheet ul { list-style: none; margin: 0; padding: 0; }
.nav-sheet li { opacity: 0; transform: translateY(-8px); transition: opacity .4s ease, transform .5s cubic-bezier(.16,1,.3,1); }
.nav-sheet.is-open li { opacity: 1; transform: none; }
.nav-sheet.is-open li:nth-child(1) { transition-delay: .05s; }
.nav-sheet.is-open li:nth-child(2) { transition-delay: .09s; }
.nav-sheet.is-open li:nth-child(3) { transition-delay: .13s; }
.nav-sheet.is-open li:nth-child(4) { transition-delay: .17s; }
.nav-sheet .main a {
  display: block; padding: 9px 0; text-decoration: none;
  font-family: inherit; font-size: 30px; font-weight: 600; letter-spacing: -0.022em; line-height: 1.15; color: #fff;
}
.nav-sheet .main a[aria-current="page"] { color: var(--nav-accent, #D9CBFF); }
.nav-sheet .sub { margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,0.1); }
.nav-sheet .sub a {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 0; text-decoration: none;
  font-size: 17px; font-weight: 500; letter-spacing: -0.01em; color: #B7AFC9;
}
.nav-sheet .sub a svg { width: 11px; height: 11px; }
html.menu-open, html.menu-open body { overflow: hidden; }
@media (min-width: 641px) { .nav-sheet { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .nav-sheet, .nav-sheet li, .nav .menu-btn span { transition: none !important; }
}
