/* Partial: header (escopo .site-header) */
.site-header { position: fixed; inset: 0 0 auto 0; z-index: 900; height: var(--header-h); display: flex; align-items: center; background: var(--c-purple-700); border-bottom: 1px solid rgba(255,255,255,0.08); transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.site-header.is-scrolled { border-color: rgba(255,255,255,0.14); box-shadow: 0 6px 24px rgba(31,11,58,0.25); }
.site-header.is-dark:not(.is-scrolled) { background: rgba(78,27,129,0.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.site-header.is-dark:not(.is-scrolled) .nav__link, .site-header.is-dark:not(.is-scrolled) .nav__toggle { color: #fff; }
.site-header.is-dark:not(.is-scrolled) .nav__link::after { background: var(--c-cyan-500); }
.site-header.is-dark:not(.is-scrolled) .brand__img--light { display: block; }
.site-header.is-dark:not(.is-scrolled) .nav__cta .btn { --btn-fg: #fff; --btn-bd: rgba(255,255,255,0.55); --btn-bg: rgba(255,255,255,0.08); }
.site-header.is-dark:not(.is-scrolled) .nav__cta .btn:hover { --btn-bg: #fff; color: var(--c-purple-900); }
.site-header.is-dark:not(.is-scrolled) .brand__img--dark { display: none; }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand__img { height: 40px; width: auto; }
.brand__img--light { display: block; }
.brand__img--dark { display: none; }
@media (max-width: 760px) { .brand__img { height: 34px; } }
.nav { display: flex; align-items: center; gap: 0.25rem; }
.nav__list { display: flex; align-items: center; gap: 0.1rem; list-style: none; margin: 0; padding: 0; }
.nav__item { position: relative; }
.nav__link { position: relative; display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.6rem 0.8rem; font-size: var(--fs-sm); font-weight: 500; color: #fff; text-decoration: none; border-radius: var(--r-sm); background: none; border: 0; cursor: pointer; font-family: var(--f-text); transition: color var(--dur-fast) var(--ease-out); }
.nav__link::after { content: ''; position: absolute; left: 0.8rem; right: 0.8rem; bottom: 0.25rem; height: 2px; background: var(--c-cyan-500); border-radius: 2px; transform: scaleX(0); transform-origin: left; transition: transform var(--dur-base) var(--ease-out); }
.nav__link:hover { color: var(--c-cyan-500); }
.nav__link:hover::after, .nav__item.is-active > .nav__link::after { transform: scaleX(1); }
.nav__link svg { width: 14px; height: 14px; transition: transform var(--dur-base) var(--ease-out); }
.nav__item:hover > .nav__link svg, .nav__item.is-open > .nav__link svg { transform: rotate(180deg); }
.nav__sub { position: absolute; top: calc(100% + 0.5rem); left: 0; min-width: 260px; padding: 0.6rem; margin: 0; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md); box-shadow: var(--shadow-lg); }
.nav__sub::before { content: ''; position: absolute; top: -0.6rem; left: 0; right: 0; height: 0.6rem; }
.nav__cta { margin-left: 0.5rem; }
.nav__cta .btn { --btn-fg: #fff; --btn-bd: rgba(255,255,255,0.55); --btn-bg: transparent; }
.nav__cta .btn:hover { --btn-bg: var(--c-cyan-500); --btn-bd: var(--c-cyan-500); color: var(--c-purple-900); }
.nav__toggle { display: none; width: 44px; height: 44px; border: 0; background: none; color: #fff; cursor: pointer; border-radius: var(--r-sm); align-items: center; justify-content: center; }
.nav__toggle svg { width: 26px; height: 26px; }
.nav__toggle .ico-close { display: none; }
body.nav-open .nav__toggle .ico-menu { display: none; }
body.nav-open .nav__toggle .ico-close { display: block; }
@media (max-width: 1080px) {
  .nav__toggle { display: inline-flex; }
  .nav { position: fixed; inset: var(--header-h) 0 0 0; background: var(--c-purple-700); color: #fff; flex-direction: column; align-items: stretch; padding: 1rem var(--gutter) 2rem; overflow-y: auto; opacity: 0; visibility: hidden; transform: perspective(var(--perspective)) translateZ(-40px) translateY(-8px); transform-origin: top center; transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base); }
  body.nav-open .nav { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  body.nav-open { overflow: hidden; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__item { border-bottom: 1px solid rgba(255,255,255,0.12); }
  .nav__link { width: 100%; justify-content: space-between; padding: 1rem 0.25rem; font-size: var(--fs-base); }
  .nav__link::after { display: none; }
  .nav__sub { position: static; min-width: 0; box-shadow: none; border: 0; padding: 0 0 0.5rem 0.75rem; display: none; transform: none; opacity: 1; visibility: visible; background: transparent; }
  .nav__item.is-open > .nav__sub { display: block; }
  .nav__item:hover > .nav__sub { display: none; }
  .nav__item.is-open:hover > .nav__sub { display: block; }
  .nav__cta { margin: 1.25rem 0 0; }
  .nav__cta .btn { width: 100%; }
  /* O backdrop-filter do header cria bloco de contenção e prende o .nav fixo dentro
     dele, o que deixava o menu móvel com 48px de altura nas páginas de header escuro. */
  .site-header.is-dark:not(.is-scrolled).is-open, body.nav-open .site-header { background: #fff; }
  body.nav-open .site-header.is-dark:not(.is-scrolled) { backdrop-filter: none; -webkit-backdrop-filter: none; }
  body.nav-open .site-header .nav__link, body.nav-open .site-header .nav__toggle { color: var(--c-ink); }
  body.nav-open .site-header .brand__img--light { display: block; }
.brand__img--dark { display: none; }
  body.nav-open .site-header .brand__img--dark { display: block; }
}

/* Mega menu ------------------------------------------------------------- */
/* O painel usa a mesma base do .nav__sub (fundo, borda, sombra e a transição
   de abertura em motion.css) e só troca a largura e o miolo por um grid. */
.mega__titulo { display: block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--c-purple-600); margin-bottom: 0.85rem; }
.mega-card { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 0.2rem 0.75rem; padding: 0.75rem 0.85rem; text-decoration: none; border-radius: var(--r-sm); transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.mega-card strong { grid-column: 1; font-size: var(--fs-sm); font-weight: 600; color: var(--c-purple-800); line-height: 1.3; }
.mega-card span { grid-column: 1; font-size: var(--fs-xs); color: var(--c-mute); line-height: 1.45; }
.mega-card .icon { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 15px; height: 15px; color: var(--c-purple-500); opacity: 0; transform: translateX(-4px); transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.mega-card:hover, .mega-card:focus-visible, .mega-card.is-active { background: var(--c-purple-050); }
.mega-card:hover .icon, .mega-card:focus-visible .icon, .mega-card.is-active .icon { opacity: 1; transform: none; }
.mega-link { display: flex; align-items: center; gap: 0.6rem; padding: 0.6rem 0.7rem; font-size: var(--fs-sm); color: var(--c-ink); text-decoration: none; border-radius: var(--r-sm); transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.mega-link .icon { width: 16px; height: 16px; color: var(--c-purple-500); flex: none; }
.mega-link:hover, .mega-link:focus-visible { background: var(--c-purple-050); color: var(--c-purple-700); }
.mega-destaque { display: block; text-decoration: none; border-radius: var(--r-md); overflow: hidden; background: var(--c-purple-050); border: 1px solid var(--c-line); transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.mega-destaque img { display: block; width: 100%; height: 120px; object-fit: cover; }
.mega-destaque__corpo { display: block; padding: 0.9rem 1rem 1rem; }
.mega-destaque__corpo strong { display: block; margin: 0.5rem 0 0.2rem; font-size: var(--fs-base); font-weight: 700; color: var(--c-purple-800); }
.mega-destaque__meta { display: block; font-size: var(--fs-xs); color: var(--c-mute); margin-bottom: 0.7rem; }
.mega-destaque .link-arrow { font-size: var(--fs-xs); }
.mega-destaque:hover { border-color: var(--c-purple-500); box-shadow: var(--shadow-md); }

@media (min-width: 1081px) {
  /* O painel se ancora no header, não no item, para ocupar a largura toda. */
  .nav__item--mega { position: static; }
  .nav__sub--mega { top: 100%; left: 0; right: 0; width: 100%; min-width: 0; padding: 0; border-left: 0; border-right: 0; border-radius: 0 0 var(--r-md) var(--r-md); }
  .mega { display: grid; gap: 2.5rem; padding: 2rem 0 2.25rem; align-items: start; }
  .mega--sobre { grid-template-columns: minmax(0, 1fr) 20rem; }
  .mega--eventos { grid-template-columns: 17rem minmax(0, 1fr) 16rem; }
  .mega__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.25rem; }
  .mega__cards--compacto { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
  .mega__aside { border-left: 1px solid var(--c-line-soft); padding-left: 2rem; }
}

@media (max-width: 1080px) {
  /* No menu móvel o painel vira lista simples dentro do acordeão. */
  .nav__sub--mega .container { width: auto; max-width: none; padding: 0; }
  .mega { display: block; }
  .mega__titulo { color: rgba(255,255,255,0.62); margin: 0.9rem 0 0.35rem; }
  .mega__aside { margin-top: 0.5rem; }
  .mega-card strong, .mega-link { color: #fff; }
  .mega-card span { color: rgba(255,255,255,0.66); }
  .mega-card .icon { display: none; }
  .mega-card:hover, .mega-card.is-active, .mega-link:hover { background: rgba(255,255,255,0.08); color: var(--c-cyan-500); }
  .mega-card:hover strong, .mega-card.is-active strong { color: var(--c-cyan-500); }
  /* O painel do menu móvel é sempre roxo, então o destaque continua sendo o único
     cartão claro, para separar a próxima edição da lista das anteriores. */
  .mega-destaque img { display: none; }
}
