/* As páginas interiores da maqueta v3: a biblioteca de exames, a universidade, o curso, o guia e a app.
   Mesmo sistema da página inicial (system.css, a paleta do logótipo, Figtree); aqui ficam as peças de cada página.
   Referências: E09–E15 (biblioteca e hubs), E16–E20 (questão e sheet), E04 (secção escura). */

/* a barra: «App» com o logótipo, para se ver que é outra coisa */
.nav__link--app { display: inline-flex; align-items: center; gap: 6px; }
.nav__link--app img { width: 18px; height: auto; }
.link--app { color: var(--marca-tinta); }

/* as páginas interiores não são ecrãs: cada secção tem a altura do que leva */
main.interior > section.livre, main.interior > article.livre { height: auto; min-height: 0; display: block; padding: var(--s-9) 0; }
main.interior > :first-child { padding-top: calc(var(--nav) + var(--s-6)); }
main.interior h1 { margin: 0; font-size: clamp(36px, 2.6vw + 14px, 56px); line-height: 1.04; letter-spacing: var(--display-tracking-xl); }
main.interior h2 { margin: 0 0 var(--s-6); }
.migalhas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: var(--s-5); font-size: var(--t-small); color: var(--muted); }
.migalhas a { color: var(--muted); text-decoration: none; }
.migalhas a:hover { color: var(--ink); }
.migalhas [aria-current] { color: var(--ink); }
.u-sec { border-top: 1px solid var(--line); }
.u-sec.ground-inverse { border-top: 0; }
.u-duas { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-8); align-items: start; }

/* factos em linha: número grande, rótulo por baixo */
.u-factos { display: flex; flex-wrap: wrap; gap: var(--s-5) var(--s-7); margin: var(--s-6) 0; }
.u-factos > div { display: flex; flex-direction: column-reverse; gap: 2px; }
.u-factos dd { margin: 0; font: var(--display-weight) 32px/1.1 var(--font-display); letter-spacing: -0.02em; color: var(--ink); }
.u-factos dt { font-size: 14px; color: var(--muted); }

/* ── Biblioteca de exames ─────────────────────────────────────────────────────────────── */
.bib-topo { background: var(--surface); }
.bib-topo__grelha { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-8); align-items: end; }
.bib-topo .t-lead { margin: var(--s-3) 0 var(--s-6); }
.bib-procura { display: flex; align-items: center; gap: 12px; height: 60px; padding: 0 20px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 18px 36px -28px rgb(42 21 22 / 0.5); }
.bib-procura svg { width: 22px; height: 22px; color: var(--ink); flex: none; }
.bib-procura input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: 400 17px/1 var(--font-text); color: var(--ink); }
.bib-procura:focus-within { box-shadow: 0 0 0 2px var(--marca-tinta); }
.bib-portas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.porta { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--line); color: var(--ink); text-decoration: none; transition: transform 200ms var(--saida); }
.porta:hover { transform: translateY(-2px); }
.porta img { width: 40px; height: 40px; object-fit: contain; }
.porta b { display: block; font-weight: 500; }
.porta small { font-size: 13px; color: var(--muted); }
main.interior > section.bib { padding-top: var(--s-7); }
.bib__grelha { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--s-7); align-items: start; }
.filtros { position: sticky; top: calc(var(--nav) + var(--s-5)); display: grid; gap: var(--s-6); }
.filtro { margin: 0; padding: 0; border: 0; display: grid; gap: 4px; }
.filtro legend { margin-bottom: 8px; font: 500 15px/1.3 var(--font-text); color: var(--ink); }
.filtro__op { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 34px; font-size: 15px; color: var(--ink); cursor: pointer; }
.filtro__op input { width: 18px; height: 18px; margin: 0; accent-color: var(--marca-tinta); }
.filtro__op small { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.bib__cab { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); }
.bib__cab p { margin: 0; font-size: 17px; color: var(--muted); }
.bib__cab b { color: var(--ink); font-weight: 500; }
.filtros__abrir { display: none; }
.bib__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: var(--s-4) 0; min-height: 4px; }
.chip-f { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px 0 14px; border: 0; border-radius: 999px; background: var(--marca-tinta); color: #fff; font: 500 14px/1 var(--font-text); cursor: pointer; }
.chip-f--limpar { background: none; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
.bib__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); }
.pc { display: grid; gap: 12px; color: var(--ink); text-decoration: none; }
.pc__papel { display: flex; align-items: flex-end; justify-content: center; height: 200px; overflow: hidden; border-radius: 16px; background: var(--surface); }
.pc__img, .pc__gerada { width: 62%; transition: transform 300ms var(--saida); box-shadow: 0 0 0 1px rgb(42 21 22 / 0.08), 0 16px 30px -18px rgb(42 21 22 / 0.5); border-radius: 3px 3px 0 0; }
.pc__img { height: 170px; object-fit: cover; object-position: top; background: #fff; }
.pc:hover .pc__img, .pc:hover .pc__gerada { transform: translateY(-5px); }
.pc__gerada { display: block; height: 170px; padding: 14px 12px 0; background: #fff; }
.pc__cab { display: grid; gap: 4px; padding: 6px 6px 5px; border: 2px double #1d1d1b; text-align: center; margin-bottom: 10px; }
.pc__cab span { font: 600 6.5px/1.2 var(--estreita); letter-spacing: 0.06em; text-transform: uppercase; color: #2b2b2b; }
.pc__cab b { font: italic 700 8px/1.2 var(--estreita); color: #1d1d1b; text-transform: uppercase; }
.pc__gerada i { display: block; height: 4px; margin: 0 0 7px; border-radius: 2px; background: #e4e1de; }
.pc__gerada i:nth-of-type(3n) { width: 70%; }
.pc__gerada i:nth-of-type(3n+1) { width: 92%; }
.pc__txt { display: grid; gap: 2px; justify-items: start; }
.pc__txt b { font: 500 18px/1.3 var(--font-text); }
.pc__meta { font-size: 15px; color: var(--muted); }
.pc__txt .chip { margin-top: 6px; }
.chip--q { background: rgb(255 82 44 / 0.1); color: var(--marca-tinta); }
.pc-app { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); align-items: stretch; overflow: hidden; border-radius: 20px; background: #2a1516; color: #fff; text-decoration: none; }
.pc-app__txt { display: grid; align-content: center; justify-items: start; gap: 8px; padding: var(--s-6) var(--s-7); }
.pc-app b { font: var(--display-weight) clamp(24px, 1.2vw + 14px, 32px)/1.15 var(--font-display); letter-spacing: -0.02em; }
.pc-app__txt > span:not(.pc-app__link) { color: rgb(255 255 255 / 0.8); font-size: 17px; max-width: 46ch; }
.pc-app__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-weight: 500; color: var(--marca); }
.pc-app .pc-app__link { color: #ff9b7d; }
.pc-app__link .ic { width: 18px; height: 18px; }
.bib__mais { margin: var(--s-7) auto 0; display: flex; }
.bib__mais[hidden] { display: none; }
.bib__vazio { grid-column: 1 / -1; color: var(--muted); }
.veu { position: fixed; inset: 0; z-index: 40; background: rgb(42 21 22 / 0.45); }
.veu[hidden], .filtros-baixo[hidden] { display: none; }
.filtros-baixo { position: fixed; z-index: 41; left: 0; right: 0; bottom: 0; max-height: 84vh; overflow: auto; display: grid; gap: var(--s-5); padding: 10px 20px calc(20px + env(safe-area-inset-bottom));
  border-radius: 24px 24px 0 0; background: #fff; box-shadow: 0 -16px 40px -16px rgb(0 0 0 / 0.35); }
.filtros-baixo .filtros { position: static; }
.filtros-baixo__cab { display: flex; align-items: center; justify-content: space-between; font-size: 18px; }
.filtros-baixo__ver { width: 100%; justify-content: center; }
.sol__pega { width: 40px; height: 5px; margin: 0 auto; border-radius: 99px; background: rgb(42 21 22 / 0.18); }
.sol__fecho { width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 999px; background: var(--surface); color: var(--ink); cursor: pointer; }

/* ── Universidade ─────────────────────────────────────────────────────────────────────── */
.u-topo__grelha { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-8); align-items: stretch; }
.u-topo__logo { width: 64px; height: 64px; object-fit: contain; margin-bottom: var(--s-4); }
.u-topo .t-lead:empty { display: none; }
.u-topo .t-lead { margin: var(--s-4) 0 0; }
.u-topo__img { min-height: 460px; padding: 0; }
.u-topo__img .frame__img { width: 100%; height: 100%; object-fit: cover; }
.u-logo-grande { display: grid; place-items: center; width: 100%; height: 100%; min-height: 460px; background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); }
.u-logo-grande img { width: 46%; max-height: 60%; object-fit: contain; padding: 24px; border-radius: 24px; background: #fff; }
.u-anos { list-style: none; margin: 0 0 var(--s-6); padding: 0; }
.u-anos li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--s-4); padding: 14px 0; border-bottom: 1px solid var(--line); }
.ano { font: 500 18px/32px var(--font-text); font-variant-numeric: tabular-nums; }
.ano__provas { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-d { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border-radius: 999px; background: var(--surface); color: var(--ink); text-decoration: none; font: 500 14px/1 var(--font-text); }
.chip-d:hover { background: rgb(255 82 44 / 0.12); color: var(--marca-tinta); }
.u-discs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.u-disc { display: grid; gap: 2px; padding: 14px 16px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); text-decoration: none; }
.u-disc b { font-weight: 500; }
.u-disc span { font-size: 14px; color: var(--marca-tinta); }
.u-cal { margin-top: var(--s-7); padding: var(--s-5); border-radius: 18px; background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); color: #2a1516; }
.u-cal h3 { margin: 0 0 var(--s-3); font: 500 18px/1.3 var(--font-text); }
.u-cal dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
.u-cal dl > div { padding: 12px 14px; border-radius: 12px; background: #fff; }
.u-cal dt { font-size: 13px; color: var(--muted); }
.u-cal dd { margin: 2px 0 0; font: 500 16px/1.3 var(--font-text); color: var(--ink); }
.u-cursos { list-style: none; margin: 0; padding: 0; display: grid; }
.u-cursos li { border-bottom: 1px solid var(--line); }
.u-cursos a { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); padding: 14px 0; color: var(--ink); text-decoration: none; }
.u-cursos b { font-weight: 500; font-size: 17px; }
.u-cursos small { color: var(--muted); font-size: 14px; }
.u-cursos a:hover b { color: var(--marca-tinta); }
.u-app { display: grid; grid-template-columns: minmax(0, 1fr) 360px; overflow: hidden; border-radius: 24px; background: #2a1516; color: #fff; text-decoration: none; }
.u-app__txt { display: grid; align-content: center; gap: 8px; padding: var(--s-7); }
.u-app__txt b { font: var(--display-weight) 30px/1.15 var(--font-display); letter-spacing: -0.02em; }
.u-app__txt > span:not(.pc-app__link) { color: rgb(255 255 255 / 0.8); font-size: 17px; }
.u-app .pc-app__link { color: #ff9b7d; }

/* ── Curso ────────────────────────────────────────────────────────────────────────────── */
.c-topo__grelha { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-8); align-items: end; }
.c-unis { display: flex; flex-wrap: wrap; gap: 8px; margin: var(--s-4) 0; }
.c-uni { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px 0 6px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); text-decoration: none; font-weight: 500; }
.c-uni img { width: 30px; height: 30px; object-fit: contain; }
.c-topo .t-lead { margin: 0; max-width: 34ch; }
.c-factos { margin: 0; padding: var(--s-5); border-radius: 20px; background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); }
.c-factos dd, .c-factos dt { color: #2a1516; }
.c-provas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5); }
.c-prova { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--s-5); align-items: center; padding: 14px; border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); text-decoration: none; }
.c-prova .pc__papel { height: 180px; background: var(--surface); }
.c-prova__txt { display: grid; gap: 4px; }
.c-prova__txt b { font: var(--display-weight) 26px/1.15 var(--font-display); }
.c-peso { justify-self: start; padding: 6px 12px; border-radius: 999px; background: var(--marca-tinta); color: #fff; font: 500 14px/1 var(--font-text); }
.c-prova__txt > span:not(.c-peso):not(.pc-app__link) { color: var(--muted); }
.c-prova .pc-app__link { color: var(--marca-tinta); }
.c-app__txt { display: grid; gap: var(--s-5); justify-items: start; }
.c-app__txt h2 { margin: 0; }
.c-passos { list-style: none; margin: 0; padding: 0; counter-reset: p; display: grid; gap: var(--s-4); }
.c-passos li { counter-increment: p; display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; }
.c-passos li::before { content: counter(p); grid-row: span 2; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgb(255 82 44 / 0.12); color: var(--marca-tinta); font-weight: 600; }
.c-passos b { font-weight: 500; font-size: 18px; }
.c-passos span { color: var(--ink); }
/* o vídeo da app no iPhone, inteiro, sobre o gradiente da marca */
.c-app__palco { display: grid; place-items: center; padding: var(--s-7) var(--s-6); border-radius: 28px;
  background: radial-gradient(70% 60% at 70% 0%, #ff8a5c, transparent 60%), linear-gradient(160deg, #ff7a4d, #ff522c 50%, #d63f1a); }
.c-iguais a { flex-direction: column; align-items: flex-start; gap: 2px; }

/* ── Guia ─────────────────────────────────────────────────────────────────────────────── */
.artigo__cab { max-width: 760px; display: grid; gap: var(--s-4); }
.artigo__cab .t-lead { margin: 0; }
.artigo__foto { margin: var(--s-7) 0; padding: 0; aspect-ratio: 16 / 7; }
.artigo__foto .frame__img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.artigo__grelha { display: grid; grid-template-columns: 220px minmax(0, 680px); gap: var(--s-8); }
.artigo__indice { position: sticky; top: calc(var(--nav) + var(--s-5)); align-self: start; display: grid; gap: 10px; }
.artigo__indice a { color: var(--ink); text-decoration: none; font-size: 15px; padding-left: 12px; box-shadow: inset 2px 0 0 var(--line); }
.artigo__indice a:hover { box-shadow: inset 2px 0 0 var(--marca); }
.artigo__texto h2 { margin: var(--s-7) 0 var(--s-4); font-size: 30px; }
.artigo__texto h2:first-child { margin-top: 0; }
.artigo__texto p { font-size: 18px; line-height: 1.7; color: var(--ink); margin: 0 0 var(--s-4); }
.artigo__datas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: var(--s-5) 0; }
.artigo__datas > div { padding: 16px 18px; border-radius: 16px; background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); }
.artigo__datas dt { font-size: 14px; color: #2a1516; }
.artigo__datas dd { margin: 4px 0 0; font: var(--display-weight) 24px/1.2 var(--font-display); color: #2a1516; }
.artigo__app { display: grid; gap: 6px; margin: var(--s-6) 0; padding: var(--s-5); border-radius: 18px; background: #2a1516; color: #fff; }
.artigo__app b { font: var(--display-weight) 22px/1.2 var(--font-display); }
.artigo__app span { color: rgb(255 255 255 / 0.8); }
.artigo__app .link--app { color: #ff9b7d; justify-self: start; }

/* ── App ──────────────────────────────────────────────────────────────────────────────── */
.a-topo__grelha { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-8); align-items: center; }
.a-topo h1 { font-size: clamp(40px, 3.4vw + 10px, 68px); }
.a-topo .t-lead { margin: var(--s-5) 0 var(--s-6); }
.a-topo__img { aspect-ratio: 4 / 5; }
.a-passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-5); }
.a-passos li { display: grid; gap: 8px; align-content: start; }
.a-passos img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 18px; margin-bottom: 8px; }
.a-passos__n { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--marca-tinta); color: #fff; font-weight: 600; }
.a-passos b { font: 500 20px/1.3 var(--font-text); }
.a-escuro h2 { color: #fff; }
.a-escuro .t-lead { color: rgb(255 255 255 / 0.8); margin: 0 0 var(--s-5); }
.a-cursos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.a-cursos li { padding: 10px 16px; border-radius: 999px; background: rgb(255 255 255 / 0.08); color: #fff; font-size: 16px; }
.a-cursos li:nth-child(3n+1) { background: var(--marca-tinta); }
.a-preco { display: grid; gap: var(--s-3); justify-items: start; }
.a-preco h2 { margin: 0; }
.a-preco__valor { margin: 0; font-size: 20px; color: var(--muted); }
.a-preco__valor b { font: var(--display-weight) 64px/1 var(--font-display); color: var(--ink); letter-spacing: -0.03em; }
.a-linha { list-style: none; margin: var(--s-4) 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: 100%; }
.a-linha li { display: grid; gap: 2px; padding: 12px 14px; border-radius: 14px; background: var(--surface); }
.a-linha b { font-weight: 500; }
.a-linha span { font-size: 14px; color: var(--muted); }
.a-inclui { align-self: center; }

/* ── Tablet e telemóvel ───────────────────────────────────────────────────────────────── */
@media (max-width: 1279px) { .bib__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } .a-passos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1023px) {
  .u-duas, .u-topo__grelha, .c-topo__grelha, .bib-topo__grelha, .a-topo__grelha { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
  .bib__grelha { grid-template-columns: minmax(0, 1fr); }
  .bib__grelha > .filtros { display: none; }
  .filtros__abrir { display: inline-flex; }
  .artigo__grelha { grid-template-columns: minmax(0, 1fr); }
  .artigo__indice { display: none; }
  .c-provas { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 639px) {
  main.interior > section.livre, main.interior > article.livre { padding: var(--s-7) 0; }
  .bib-portas { gap: 8px; }
  .bib__lista { gap: var(--s-4) 12px; }
  .pc__papel { height: 150px; }
  .pc__img, .pc__gerada { height: 128px; width: 70%; }
  .pc__txt b { font-size: 16px; }
  .pc-app { grid-template-columns: minmax(0, 1fr); }
  .u-topo__img, .u-logo-grande { min-height: 260px; }
  .u-discs { grid-template-columns: 1fr 1fr; }
  .u-app { grid-template-columns: minmax(0, 1fr); }
  .c-prova { grid-template-columns: 110px minmax(0, 1fr); }
  .c-prova .pc__papel { height: 130px; }
  .c-prova__txt b { font-size: 22px; }
  .artigo__foto { aspect-ratio: 4 / 3; }
  .artigo__datas { grid-template-columns: 1fr; }
  .a-passos { grid-template-columns: minmax(0, 1fr); }
  .a-linha { grid-template-columns: minmax(0, 1fr); }
  .u-factos dd { font-size: 26px; }
}

/* o .wrap das secções do sistema é uma coluna com a altura do ecrã; nas páginas interiores é a grelha da página */
main.interior > :is(section, article) > .wrap { height: auto; }
main.interior > :is(section, article) > .wrap.bib__grelha { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--s-7); align-items: start; }
main.interior > :is(section, article) > .wrap.u-duas { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-8); align-items: start; }
main.interior > :is(section, article) > .wrap.a-topo__grelha { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-8); align-items: center; }
main.interior .u-factos > div { flex-direction: column; }
@media (max-width: 1023px) {
  main.interior > :is(section, article) > .wrap.bib__grelha,
  main.interior > :is(section, article) > .wrap.u-duas,
  main.interior > :is(section, article) > .wrap.a-topo__grelha { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
}
main.interior > section.livre, main.interior > article.livre { padding: var(--s-8) 0; }
main.interior > :first-child { padding-top: calc(var(--nav) + var(--s-6)); }
@media (max-width: 639px) { main.interior > section.livre, main.interior > article.livre { padding: var(--s-7) 0; } main.interior > :first-child { padding-top: calc(var(--nav) + var(--s-5)); } }
/* o topo da biblioteca no laranja da marca: a procura e as portas brancas por cima (E01, E12) */
main.interior > section.bib-topo { background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); padding-bottom: var(--s-7); color: #2a1516; }
.bib-topo .migalhas, .bib-topo .migalhas a, .bib-topo .migalhas [aria-current] { color: #2a1516; }
.bib-topo h1, .bib-topo .t-lead { color: #2a1516; }
.porta { box-shadow: none; }
main.interior > :is(section, article).livre:first-child { padding-top: calc(var(--nav) + var(--s-6)); }
@media (max-width: 639px) { main.interior > :is(section, article).livre:first-child { padding-top: calc(var(--nav) + var(--s-5)); } }
.artigo__foto { aspect-ratio: 16 / 6; }
.artigo__foto .frame__img { object-position: 50% 62%; }
.u-cursos li { min-width: 0; }
.u-cursos a { flex-wrap: wrap; row-gap: 8px; }
.u-cursos .curso__disc { flex-wrap: wrap; }

/* Universidade, v3.2: o exame desta universidade (as questões que voltam, o formato, as datas) e o que mais sai */
.u-exame { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--s-4); }
.ux { grid-column: span 3; display: grid; align-content: start; gap: 6px; padding: var(--s-5); border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.ux p { margin: 0; color: var(--ink); font-size: 16px; line-height: 1.5; }
.ux__n { font: var(--display-weight) 44px/1.05 var(--font-display) !important; letter-spacing: -0.03em; }
.ux--volta { grid-column: span 6; grid-row: span 2; align-content: end; min-height: 320px; color: #2a1516; box-shadow: none;
  background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); }
.ux--volta .ux__n { font-size: clamp(48px, 4vw + 10px, 76px) !important; color: #2a1516; }
.ux--volta p { color: #2a1516; font-size: 18px; max-width: 30ch; }
.ux--volta .pc-app__link { color: #2a1516; text-decoration: underline; text-underline-offset: 4px; }
.ux--datas { grid-column: span 6; }
.ux--datas dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 6px 0 8px; }
.ux--datas dl > div { padding: 12px 14px; border-radius: 12px; background: var(--surface); }
.ux--datas dt { font-size: 13px; color: var(--muted); }
.ux--datas dd { margin: 2px 0 0; font: 500 17px/1.3 var(--font-text); color: var(--ink); }
.u-temas { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--s-7); align-items: start; }
.u-tabs { display: grid; gap: 4px; }
.u-tab { display: flex; align-items: center; justify-content: space-between; height: 46px; padding: 0 16px; border: 0; border-radius: 12px; background: none; color: var(--ink); font: 500 16px/1 var(--font-text); text-align: left; cursor: pointer; }
.u-tab:hover { background: var(--surface); }
.u-tab[aria-selected="true"] { background: #2a1516; color: #fff; }
.u-barras { display: grid; gap: var(--s-4); padding: var(--s-6); border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.barra { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr) 52px; align-items: center; gap: var(--s-4); }
.barra__t { font-size: 16px; color: var(--ink); }
.barra__fio { height: 14px; border-radius: 999px; background: var(--surface); overflow: hidden; }
.barra__fio i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--marca-clara), var(--marca-tinta)); }
.barra__p { font: 500 17px/1 var(--font-text); color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; }
.u-barras__nota { margin: 4px 0 0; }
@media (max-width: 1023px) {
  .ux, .ux--volta, .ux--datas { grid-column: span 6; }
  .ux--volta { grid-row: auto; min-height: 0; }
  .u-temas { grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
  .u-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
  .u-tab { height: 40px; border-radius: 999px; background: var(--surface); }
}
@media (max-width: 639px) {
  .ux, .ux--volta, .ux--datas { grid-column: 1 / -1; }
  .ux__n { font-size: 36px !important; }
  .barra { grid-template-columns: minmax(0, 1fr) 44px; row-gap: 6px; }
  .barra__t { grid-column: 1 / -1; }
  .u-barras { padding: var(--s-5); }
}
@media (max-width: 639px) { .u-exame > .ux:not(.ux--volta):not(.ux--datas) { grid-column: span 6; padding: var(--s-4); } }

/* ── v3.3 (2026-11-11): as páginas da barra ───────────────────────────────────────────── */
main.interior > article[hidden] { display: none; }
main.interior > article.artigo { padding-top: calc(var(--nav) + var(--s-6)); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Universidades: os cartões e o quadro */
.us-topo .t-lead { margin: var(--s-3) 0 var(--s-7); max-width: 52ch; }
.us-cartoes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-5); }
.us-c { display: grid; gap: var(--s-4); color: var(--ink); text-decoration: none; }
.us-c__img { display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 20px; }
.us-c__foto { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms var(--saida); }
.us-c:hover .us-c__foto { transform: scale(1.03); }
.us-c__logo { display: grid; place-items: center; width: 100%; height: 100%; background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); }
.us-c:nth-child(3) .us-c__logo { background: #2a1516; }
.us-c__logo img { width: 52%; max-height: 46%; object-fit: contain; padding: 18px; border-radius: 22px; background: #fff; }
.us-c__txt { display: grid; gap: 4px; }
.us-c__sigla { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); }
.us-c__sigla img { width: 28px; height: 28px; object-fit: contain; }
.us-c__txt b { font: 500 20px/1.3 var(--font-text); }
.us-c__txt > span:not(.us-c__sigla):not(.pc-app__link) { color: var(--muted); font-size: 15px; }
.us-c .pc-app__link { color: var(--marca-tinta); }
.us-tabela-caixa { overflow-x: auto; border-radius: 20px; box-shadow: inset 0 0 0 1px var(--line); }
.us-tabela { width: 100%; border-collapse: collapse; font-size: 16px; }
.us-tabela th, .us-tabela td { padding: 16px 20px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
.us-tabela tbody tr:last-child > * { border-bottom: 0; }
.us-tabela thead th { background: #2a1516; color: #fff; font-weight: 500; }
.us-tabela thead a { display: inline-flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; }
.us-tabela thead img { width: 28px; height: 28px; object-fit: contain; border-radius: 6px; background: #fff; padding: 2px; }
.us-tabela tbody th { font-weight: 500; color: var(--muted); }
.us-tabela td { color: var(--ink); font-variant-numeric: tabular-nums; }

/* Calendário: os próximos marcos, a lista e os meses */
.cal-topo .t-lead { margin: var(--s-3) 0 var(--s-7); max-width: 56ch; }
.cal-proximo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); }
.cal-p { display: grid; gap: 4px; padding: var(--s-5); border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.cal-p__n { font: var(--display-weight) 32px/1.1 var(--font-display); letter-spacing: -0.02em; color: var(--ink); }
.cal-p b { font-weight: 500; }
.cal-p > span:last-child { color: var(--muted); }
.cal-p--1 { background: linear-gradient(160deg, var(--marca-clara), var(--marca) 55%, var(--marca-funda)); box-shadow: none; color: #2a1516; }
.cal-p--1 .cal-p__n, .cal-p--1 > span:last-child { color: #2a1516; }
.cal-marcos { list-style: none; margin: 0 0 var(--s-6); padding: 0; }
.marco { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: var(--s-4); padding: 16px 0; border-bottom: 1px solid var(--line); }
.marco__data { font: 500 17px/1.4 var(--font-text); color: var(--marca-tinta); }
.marco--prazo .marco__data { color: var(--ink); }
.marco__txt { display: grid; gap: 2px; }
.marco__txt b { font-weight: 500; font-size: 17px; }
.marco__txt a { color: var(--muted); font-size: 15px; text-decoration: none; }
.marco--passou { opacity: 0.5; }
.marco--nada .marco__data { color: var(--muted); }
.cal-meses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 24px; border-radius: 24px; background: #2a1516; }
.cal-meses .mes { box-shadow: none; }
.cal-meses .meses__legenda { grid-column: 1 / -1; }

/* Cursos: o destaque e a lista */
.cs-destaque { display: grid; gap: 4px; padding: var(--s-5); border-radius: 20px; background: #fff; color: var(--ink); text-decoration: none; }
.cs-destaque .t-small { color: var(--marca-tinta); font-weight: 500; }
.cs-destaque b { font: var(--display-weight) 28px/1.15 var(--font-display); }
.cs-destaque > span:last-child { color: var(--muted); }
.cs-lista { list-style: none; margin: var(--s-4) 0 0; padding: 0; }
.cs-lista li { border-bottom: 1px solid var(--line); }
.cs-lista a { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px var(--s-4); padding: 16px 4px; color: var(--ink); text-decoration: none; }
.cs-lista a:hover b { color: var(--marca-tinta); }
.cs__nome { display: grid; gap: 4px; min-width: 0; }
.cs__nome b { font-weight: 500; font-size: 17px; }
.cs__unis { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--muted); }
.cs__unis img { width: 20px; height: 20px; object-fit: contain; }
.cs-lista .curso__disc { flex-wrap: wrap; }

/* Guias: o destaque grande, os outros e a app */
.gs-topo .t-lead { margin: var(--s-3) 0 var(--s-7); }
.gs-grelha { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--s-5); }
.gs-c { grid-column: span 6; display: grid; gap: var(--s-4); color: var(--ink); text-decoration: none; align-content: start; }
.gs-c--grande { grid-column: 1 / -1; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--s-7); }
.gs-c__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 20px; }
.gs-c__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms var(--saida); }
.gs-c:hover .gs-c__img img { transform: scale(1.03); }
.gs-c__txt { display: grid; gap: 6px; }
.gs-c__txt b { font: var(--display-weight) 26px/1.2 var(--font-display); letter-spacing: -0.01em; }
.gs-c--grande .gs-c__txt b { font-size: clamp(30px, 2vw + 12px, 40px); }
.gs-c__txt > span:not(.t-small):not(.pc-app__link) { color: var(--ink); font-size: 17px; }
.gs-c .pc-app__link { color: var(--marca-tinta); }
.gs-app { grid-column: 1 / -1; display: grid; gap: 6px; padding: var(--s-6); border-radius: 24px; background: #2a1516; color: #fff; text-decoration: none; }
.gs-app b { font: var(--display-weight) 28px/1.2 var(--font-display); }
.gs-app span { color: rgb(255 255 255 / 0.8); }
.gs-app .pc-app__link { color: #ff9b7d; }

@media (max-width: 1023px) {
  .us-cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cal-proximo { grid-template-columns: minmax(0, 1fr); }
  .cal-meses { grid-template-columns: 1fr 1fr; }
  .gs-c--grande { grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
}
@media (max-width: 639px) {
  .us-cartoes { grid-template-columns: minmax(0, 1fr); }
  .us-c__img { aspect-ratio: 16 / 10; }
  .cal-meses { grid-template-columns: minmax(0, 1fr); padding: 14px; }
  .cal-meses .mes:first-child { display: none; }
  .marco { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .gs-c { grid-column: 1 / -1; }
}

/* ── Página da app, v3.4 (A01, A04, A05, A06, A07, A03) ───────────────────────────────────────────────── */
main.interior.app-pag > section.a-hero { padding-top: calc(var(--nav) + var(--s-5)); padding-bottom: 0; }
.a-hero__painel { position: relative; overflow: hidden; border-radius: 36px; padding: var(--s-9) var(--s-6) 0; text-align: center; color: #fff;
  background: radial-gradient(55% 45% at 50% 0%, rgb(255 190 160 / 0.55), transparent 70%), radial-gradient(70% 60% at 50% 100%, #2a1516, transparent 75%),
              linear-gradient(170deg, #ff8a5c 0%, #ff522c 38%, #d63f1a 70%, #5a2318 100%); }
.a-hero__txt { display: grid; justify-items: center; gap: var(--s-5); max-width: 860px; margin: 0 auto; }
.a-hero h1 { color: #fff; font-size: clamp(40px, 3.6vw + 12px, 76px); line-height: 1.02; letter-spacing: var(--display-tracking-xl); }
.a-hero .t-lead { margin: 0; color: rgb(255 255 255 / 0.9); max-width: 46ch; }
.a-provas { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.a-provas li { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 16px; border-radius: 999px; background: rgb(255 255 255 / 0.16); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.28); font-size: 15px; }
.a-provas b { font-weight: 600; }
.a-hero .btn-row { justify-content: center; }
.a-hero__palco { position: relative; display: flex; justify-content: center; margin-top: var(--s-8); height: clamp(300px, 34vw, 470px); }
.a-hero__palco .aparelho--ipad { position: absolute; left: 50%; top: 0; transform: translateX(-56%); }
.a-hero__tel { position: absolute; left: 50%; top: 18%; transform: translateX(118%); }
.a-dentro .section-head--split p { margin: 0; }
.a-fila { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-6); align-items: end; padding: var(--s-6) var(--s-6) 0; border-radius: 32px; background: linear-gradient(180deg, #fff, #f1ece8); overflow: hidden; }
.a-fila__item { margin: 0; display: grid; justify-items: center; gap: var(--s-3); }
.a-fila__item .tel { margin-bottom: -16%; }
.a-fila__item--alto .tel { margin-bottom: -2%; }
.a-fila__item figcaption { order: -1; font: 500 16px/1 var(--font-text); color: var(--ink); }
.a-como__grelha { display: grid; grid-template-columns: minmax(0, 4fr) auto minmax(0, 4fr); gap: var(--s-8); align-items: center; }
.a-como__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.a-como__lista button { display: flex; align-items: center; gap: 14px; width: 100%; height: 64px; padding: 0 18px; border: 0; border-radius: 18px; background: transparent; color: var(--ink); font: 500 22px/1 var(--font-display); text-align: left; cursor: pointer; }
.a-como__lista button span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--surface); font: 600 15px/1 var(--font-text); }
.a-como__lista button[aria-selected="true"] { background: #2a1516; color: #fff; }
.a-como__lista button[aria-selected="true"] span { background: var(--marca-tinta); color: #fff; }
.a-como__txt { display: grid; gap: var(--s-3); }
.a-como__txt b { font: var(--display-weight) 32px/1.15 var(--font-display); color: var(--ink); }
.a-como__txt p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--ink); }
.a-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--s-4); }
.ab { grid-column: span 4; display: grid; align-content: start; gap: 8px; padding: var(--s-6); border-radius: 24px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; position: relative; min-height: 200px; }
.ab b { font: var(--display-weight) 24px/1.2 var(--font-display); color: var(--ink); }
.ab p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--ink); }
.ab--marca { grid-column: span 7; grid-row: span 2; min-height: 420px; color: #2a1516; box-shadow: none; background: radial-gradient(60% 60% at 80% 0%, rgb(255 255 255 / 0.25), transparent 60%), linear-gradient(150deg, #ff8a5c, #ff522c 55%, #e64519); }
.ab--marca .ab__n { font: var(--display-weight) clamp(64px, 6vw, 110px)/1 var(--font-display); letter-spacing: -0.04em; margin: 0; color: #2a1516; }
.ab--marca p { color: #2a1516; font-size: 20px; max-width: 26ch; }
.ab__capas { position: absolute; right: 6%; bottom: -12%; display: flex; }
.ab__capas img { width: 150px; border-radius: 4px; box-shadow: 0 20px 40px -16px rgb(42 21 22 / 0.6); }
.ab__capas img:nth-child(1) { transform: rotate(-8deg) translate(30px, 20px); }
.ab__capas img:nth-child(3) { transform: rotate(7deg) translate(-30px, 18px); }
/* o telemóvel ao lado do texto e a começar no topo, para o «Porquê» (que abre em baixo no ecrã) ficar à vista */
.ab--noite { grid-column: span 5; grid-row: span 2; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr; column-gap: var(--s-5); padding-bottom: 0; background: #2a1516; box-shadow: none; }
.ab--noite > b { grid-column: 1; grid-row: 1; }
.ab--noite > p { grid-column: 1; grid-row: 2; align-self: start; }
.ab--noite b, .ab--noite p { color: #fff; }
.ab--noite p { color: rgb(255 255 255 / 0.8); }
.ab__tel { grid-column: 2; grid-row: 1 / span 2; align-self: start; display: flex; margin-bottom: -22%; }
.a-preco-cartao { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-8); align-items: center; padding: var(--s-8); border-radius: 32px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 30px 60px -40px rgb(42 21 22 / 0.4); }
@media (max-width: 1023px) {
  .a-fila { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a-como__grelha { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); justify-items: center; }
  .a-como__lista { display: flex; flex-wrap: wrap; justify-content: center; }
  .a-como__lista button { height: 48px; font-size: 17px; }
  .ab, .ab--marca, .ab--noite { grid-column: span 6; }
  .ab--noite { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .ab--noite > b, .ab--noite > p, .ab__tel { grid-column: 1; grid-row: auto; }
  .ab__tel { justify-content: center; margin: var(--s-4) 0 -8%; }
  .a-preco-cartao { grid-template-columns: minmax(0, 1fr); padding: var(--s-6); }
}
@media (max-width: 639px) {
  .a-hero__painel { padding: var(--s-7) var(--s-4) 0; border-radius: 28px; }
  .a-hero__palco { height: 330px; }
  .a-hero__palco .aparelho--ipad { transform: translateX(-62%); }
  .a-hero__tel { transform: translateX(28%); top: 10%; }
  .a-fila { gap: var(--s-4); padding: var(--s-4) var(--s-4) 0; }
  .ab, .ab--marca, .ab--noite { grid-column: 1 / -1; }
  .ab--marca { min-height: 340px; }
  .ab__capas img { width: 110px; }
}
