/* ==========================================================================
   AS VITRINES PÚBLICAS NO DESENHO "DESTAQUE" (set/2026).

   O dono escolheu para a página inicial a faixa na cor da marca com a
   constelação viva ao fundo, e pediu o mesmo desenho nas páginas que
   concentram editais, eventos e ligas — as três vitrines que a instituição
   divulga para fora. É o mesmo vocabulário da página inicial, escrito UMA vez:
   - .vt-faixa     a faixa escura (a constelação entra por arche-ceu.js);
   - .vt-tiles     os números em quadrados de vidro;
   - .vt-busca     a busca de vidro, e .vt-chips os filtros;
   - .vt-pilha     o conteúdo que SOBE por cima da faixa;
   - .vt-trilha    a navegação entre as três vitrines, no topo.
   Depende de arche-ui.css (as cores e as fontes do portal), e o celular
   continua sendo o arche-celular.css, carregado depois deste.
   ========================================================================== */

/* ------------------- a trilha entre as vitrines, no topo ------------------- */
.vt-trilha{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:13px;flex:none}
.topo-inner:has(.vt-trilha) .topo-txt{min-width:0}
.vt-trilha a{color:var(--brand-3);font-weight:600;padding:8px 12px;border-radius:9px;transition:background .15s,color .15s}
.vt-trilha a:hover{background:var(--wash);color:var(--brand)}
.vt-trilha a[aria-current="page"]{background:var(--brand);color:#fff}
.vt-trilha .vt-entrar{border:1px solid var(--line-strong);margin-left:6px}
.topo-inner:has(.vt-trilha) img.p{display:none}

/* --------------------------------- a faixa --------------------------------- */
.vt-faixa{position:relative;overflow:hidden;color:#fff;padding:46px 0 104px;
  background:linear-gradient(135deg,#16303a 0%,var(--brand) 45%,#28505a 100%)}
.vt-faixa canvas.vt-ceu{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.vt-faixa::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;pointer-events:none;
  background:linear-gradient(transparent,rgba(22,48,58,.55))}
.vt-wrap{position:relative;z-index:1;max-width:1080px;margin:0 auto;width:100%;padding:0 26px}
.vt-eb{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;color:var(--accent);
  font-weight:600;text-transform:uppercase}
.vt-h1{font-family:Sora,sans-serif;font-weight:800;font-size:42px;letter-spacing:-.03em;line-height:1.06;
  margin:12px 0 0;color:#fff;text-wrap:balance;max-width:820px}
.vt-h1 span{color:var(--accent)}
.vt-txt{color:#b9ced4;font-size:15px;line-height:1.65;max-width:660px;margin-top:14px}
.vt-txt b{color:#fff;font-weight:600}

/* os números em quadrados de vidro: é o tamanho do acervo, dito antes de tudo */
.vt-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:26px;max-width:820px}
.vt-tiles:empty{display:none}
.vt-tile{display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);
  border-radius:14px;padding:12px 14px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff}
a.vt-tile,button.vt-tile{cursor:pointer;font:inherit;text-align:left;transition:background .2s,transform .2s,border-color .2s}
a.vt-tile:hover,button.vt-tile:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}
.vt-tile[aria-pressed="true"]{background:rgba(113,200,226,.2);border-color:var(--accent)}
.vt-tile .ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:rgba(113,200,226,.18);color:var(--accent)}
.vt-tile .ic svg{width:18px;height:18px}
.vt-tile b{display:block;font-family:Sora,sans-serif;font-weight:700;font-size:24px;line-height:1.05;
  font-variant-numeric:tabular-nums}
.vt-tile span{display:block;font-size:11.5px;line-height:1.35;color:#a9c0c6;margin-top:2px}

/* a busca e os filtros, de vidro, dentro da faixa */
.vt-ferr{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:22px}
.vt-busca{position:relative;flex:1 1 280px;max-width:460px;display:block;margin:0}
.vt-busca input{width:100%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;
  border-radius:14px;padding:13px 16px 13px 44px;font-size:15px;font-family:inherit;box-shadow:none;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s,border-color .2s}
.vt-busca input::placeholder{color:#a9c0c6}
.vt-busca input:focus{outline:none;background:rgba(255,255,255,.16);border-color:var(--accent);box-shadow:none}
.vt-busca input::-webkit-search-cancel-button{filter:invert(1)}
.vt-busca svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;
  color:#a9c0c6;pointer-events:none}
.vt-chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.vt-chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;font-weight:600;color:#fff;cursor:pointer;
  transition:background .2s,transform .2s,border-color .2s;white-space:nowrap}
.vt-chip:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.vt-chip[aria-pressed="true"],.vt-chip.on{background:var(--accent);border-color:var(--accent);color:var(--brand)}
.vt-chip .n{font-size:11.5px;opacity:.8;font-variant-numeric:tabular-nums}
.vt-chip:focus-visible,.vt-tile:focus-visible,.vt-bt:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* os botões de ação da faixa: o branco é o ato principal; o de vidro, o segundo */
.vt-bts{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.vt-bt{display:inline-flex;align-items:center;gap:8px;border-radius:12px;padding:12px 18px;font-weight:700;font-size:14px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;transition:background .2s,transform .2s}
.vt-bt:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.vt-bt.pri{background:#fff;color:var(--brand);border-color:#fff}
.vt-bt.pri:hover{background:#eaf6fa}
.vt-bt svg{width:16px;height:16px}

/* ----------------------- o conteúdo que sobe sobre a faixa ----------------------- */
main.vt-pilha{position:relative;z-index:2;margin-top:-64px;padding-top:0}
@keyframes vt-sobe{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.vt-entra{animation:vt-sobe .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--d,0) * 1ms)}
.vt-vazio{background:var(--card);border:1px dashed var(--line-strong);border-radius:18px;padding:44px 24px;
  text-align:center;color:var(--muted);font-size:14.5px;line-height:1.7;box-shadow:var(--shadow)}
.vt-vazio b{color:var(--ink)}
.vt-secao{display:flex;align-items:center;gap:12px;margin:34px 0 14px}
.vt-secao h2{font-family:Sora,sans-serif;font-size:19px;font-weight:700;color:var(--brand);margin:0}
.vt-secao .n{font-size:12.5px;color:var(--muted);font-weight:600}
.vt-secao::after{content:"";flex:1;height:1px;background:var(--line)}
/* a contagem do filtro mora NA faixa: o que sobe sobre ela tem de ser cartão,
   e um texto escuro ali cairia sobre o fundo escuro */
.vt-contagem{font-size:12.5px;color:#a9c0c6;margin-top:14px;min-height:1.2em}

/* o filtro de CURSO na faixa (padronização, set/2026): o <select> do
   ArcheFiltros vestido de vidro, como a busca e os chips ao lado dele */
.vt-sel select{appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23a9c0c6' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;
  color:#fff;border-radius:999px;padding:9px 38px 9px 16px;font:600 13.5px Figtree,system-ui,sans-serif;
  max-width:100%;cursor:pointer}
.vt-sel select:focus{outline:2px solid var(--accent);outline-offset:2px}
.vt-sel select option{color:var(--ink);background:#fff}
/* "✕ Limpar filtros": só aparece com algum filtro ligado */
.vt-limpar{background:none;border:0;color:var(--accent);font:600 13px Figtree,system-ui,sans-serif;
  cursor:pointer;padding:8px 6px;text-decoration:underline;text-underline-offset:3px}
.vt-limpar:hover{color:#fff}
/* "↻ Tentar de novo" do aviso de falha de carga (as três vitrines) */
.vt-refazer{margin-top:14px;background:#fff;border:1px solid var(--line-strong);border-radius:9px;padding:9px 16px;
  font:600 13.5px Figtree,system-ui,sans-serif;color:var(--brand);cursor:pointer;min-height:40px}
.vt-refazer:hover{border-color:var(--accent)}
/* o bloco que se recolhe sobre a faixa: o cabeçalho é CARTÃO (branco), para
   não cair escuro sobre o fundo escuro quando é o primeiro da pilha */
details.vt-grupo{margin-top:22px}
details.vt-grupo>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;box-shadow:var(--shadow);
  font-family:Sora,sans-serif;font-size:17px;font-weight:700;color:var(--brand)}
details.vt-grupo>summary::-webkit-details-marker{display:none}
details.vt-grupo>summary .n{font-family:Figtree,system-ui,sans-serif;font-size:12.5px;color:var(--muted);font-weight:600}
details.vt-grupo>summary::after{content:"▸";margin-left:auto;color:var(--muted);transition:transform .15s}
details.vt-grupo[open]>summary::after{transform:rotate(90deg)}
details.vt-grupo[open]>summary{margin-bottom:14px}

@media (max-width:760px){
  .vt-faixa{padding:30px 0 84px}
  .vt-wrap{padding:0 16px}
  .vt-h1{font-size:30px}
  .vt-txt{font-size:14.5px}
  .vt-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vt-tile b{font-size:21px}
  .vt-busca{max-width:none;flex-basis:100%}
  .vt-busca input{font-size:16px}
  .vt-sel,.vt-sel select{width:100%}
  .vt-sel select{font-size:16px}
  main.vt-pilha{margin-top:-52px}
  .vt-trilha{margin-left:0;width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* os quatro atalhos cabem na linha de 358px se o recheio aperta um pouco: com
     12px de cada lado sobravam 18px e o "Portal" saía cortado na borda, sem
     dizer que a trilha rola (varredura de layout, set/2026) */
  .vt-trilha{gap:2px}
  .vt-trilha a{white-space:nowrap;padding:8px 9px}
  .vt-trilha .vt-entrar{margin-left:4px}
}
@media (prefers-reduced-motion:reduce){
  .vt-entra{animation:none}
  .vt-tile,.vt-chip,.vt-bt{transition:none}
  details.vt-grupo>summary::after{transition:none}
}
