/* ============================================================
   Paginas ONLINE e OFFLINE. Mesmo esqueleto, tom diferente.

     .capa   olho em mono + h1 em Archivo Expanded
     (o cabecalho e o mesmo da home: css/cabecalho.css)
     .bl     blocos alternando o lado do texto e da imagem
     .pe     rodape com o botao para a outra pagina
   ============================================================ */

/* ---------------- capa ---------------- */
.capa {
  min-height: 78vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.25rem, 3vh, 2rem);
  text-align: center;
  padding: clamp(3rem, 8vh, 6rem) var(--margem);
  border-bottom: 1px solid var(--borda);
}
.capa-lead {
  margin: 0;
  max-width: 54ch;
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 1.6;
  color: var(--neutro);
}
.capa h1 {
  margin: 0;
  font-family: var(--fonte-texto);
  font-weight: 800;
  font-stretch: 118%;
  font-size: clamp(34px, 6.4vw, 92px);
  line-height: .98;
  letter-spacing: -.02em;
  max-width: 16ch;
  color: var(--osso);
}

/* ---------------- blocos ---------------- */
.bl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  padding: clamp(56px, 9vw, 120px) var(--margem);
  border-bottom: 1px solid var(--borda);
}
/* inverte o lado: e isso que faz os blocos alternarem */
.bl.esq .bl-tx  { order: 2; }
.bl.esq .bl-img { order: 1; }

.bl h2 {
  margin: .6rem 0 1rem;
  font-family: var(--fonte-texto);
  font-weight: 800;
  font-stretch: 112%;
  font-size: clamp(24px, 3.2vw, 44px);
  line-height: 1.08;
  letter-spacing: -.015em;
  color: var(--osso);
}
/* So os paragrafos SEM classe. Antes isto era `.bl p`, que tem
   especificidade 0-1-1 e portanto ganhava de qualquer classe sozinha
   (0-1-0): .olho, .destaque e os .comp-* ficavam todos em
   16px, o tamanho daqui, em vez do seu proprio. O :not([class]) deixa
   cada um mandar no que e seu. */
.bl .bl-tx > p:not([class]) {
  margin: 0 0 1rem;
  font-size: 16px;
  line-height: 1.6;
  color: var(--neutro);
  max-width: 46ch;
}

.olho {
  font-family: var(--fonte-mono);
  font-size: 11.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--neutro);
}
.olho b { color: var(--ambar); font-weight: inherit; }

.destaque {
  margin: 0 0 1rem;
  font-size: 16px;
  line-height: 1.6;
  max-width: 46ch;
  color: var(--osso);
  border-left: 2px solid var(--ambar);
  padding-left: 16px;
}

/* ---------------- imagens ----------------
   Empilham com 18px e alinham na borda EXTERNA do bloco: no bloco
   normal a imagem fica a direita, entao encostam a direita; no .esq
   fica a esquerda e encostam a esquerda. */
.bl-img {
  display: flex;
  flex-direction: column;
  gap: 18px;
  align-items: flex-end;
}
.bl.esq .bl-img { align-items: flex-start; }

.bl-img img {
  display: block;
  width: var(--larg, 100%);
  height: auto;
  border-radius: 3px;
}

/* ---------------- espaco reservado (Online) ----------------
   O Online ainda nao tem fotos. Em vez de esconder o bloco, marca o
   lugar: borda tracejada e o rotulo do que vai ali. */
.vago {
  width: var(--larg, 100%);
  min-height: clamp(220px, 34vh, 400px);
  display: grid;
  place-items: center;
  gap: .5rem;
  padding: 2rem 1.25rem;
  border: 1px dashed var(--borda);
  border-radius: 3px;
  text-align: center;
}
.vago span {
  font-family: var(--fonte-mono);
  font-size: 11.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--neutro);
}
.vago i {
  font-style: normal;
  font-family: var(--fonte-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  color: var(--ambar);
  opacity: .75;
}

/* ---------------- diagramas ----------------
   #100E0C e um degrau acima da tinta: separa o diagrama da pagina
   sem virar caixa clara. Nada de altura fixa — os SVG tem viewBox e
   escalam sozinhos. */
.dg-box {
  width: 100%;
  background: #100E0C;
  border: 1px solid var(--borda);
  border-radius: 4px;
  padding: clamp(16px, 2.4vw, 28px);
}
.dg-box svg,
.dg-box img {
  width: 100%;
  height: auto;
  display: block;
}

/* 04: texto puro, sem coluna de imagem — o respiro entre as
   secoes ilustradas. */
.bl--so-texto { grid-template-columns: 1fr; }
.bl--so-texto .bl-tx { max-width: 52rem; }

/* ---------------- 07 manifesto: sem imagem, texto maior ---------------- */
.bl--manifesto { grid-template-columns: 1fr; }
.bl--manifesto .bl-tx { max-width: 62rem; margin-inline: auto; text-align: center; }
.bl--manifesto .bl-tx > p:not([class]),
.bl--manifesto .destaque { font-size: clamp(17px, 1.5vw, 21px); max-width: none; color: var(--osso); }
.bl--manifesto h2 { font-size: clamp(28px, 4vw, 56px); }

/* ---------------- 08 competencias ---------------- */
.bl--comp { grid-template-columns: 1fr; }
.comp-grade {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 72px);
  margin-top: 2rem;
}
.comp-col h3 {
  margin: .5rem 0 1.5rem;
  font-family: var(--fonte-texto);
  font-weight: 800;
  font-stretch: 112%;
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.15;
  color: var(--osso);
}
/* o soft e o da esquerda e leva o ambar: o site ja prova o tecnico
   nos projetos, o soft e o que precisa do destaque. Nao inverter. */
.comp-col--soft h3 { color: var(--ambar); }

.comp-grupo { margin-bottom: 1.6rem; }
.comp-nome {
  margin: 0 0 .4rem;
  font-family: var(--fonte-mono);
  font-size: 11.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--osso);
}
.comp-itens {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--neutro);
  max-width: 44ch;
}

/* ---------------- botao da trilha ---------------- */
.trilha-btn {
  font-family: var(--fonte-mono);
  font-size: 12.5px;
  letter-spacing: .08em;
  color: var(--ambar);
  background: none;
  border: 1px solid var(--ambar);
  border-radius: 99px;
  padding: .62em 1.25em;
  cursor: pointer;
  transition: background-color .25s ease, color .25s ease;
}
.trilha-btn:hover,
.trilha-btn:focus-visible { background: var(--ambar); color: var(--tinta); }
.trilha-btn[hidden] { display: none; }

/* ---------------- rodape ---------------- */
.pe {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  text-align: center;
  padding: clamp(64px, 12vh, 140px) var(--margem);
}
.pe p {
  margin: 0;
  font-size: clamp(20px, 3vw, 34px);
  font-weight: 600;
  color: var(--osso);
  max-width: 24ch;
}
.pe-btn {
  font-family: var(--fonte-mono);
  font-size: 13px;
  letter-spacing: .08em;
  color: var(--tinta);
  background: var(--ambar);
  border-radius: 99px;
  padding: .85em 1.6em;
  text-decoration: none;
  transition: filter .25s ease;
}
.pe-btn:hover,
.pe-btn:focus-visible { filter: brightness(1.12); }

/* ---------------- mobile ----------------
   Uma coluna, texto acima da imagem, sem alternar lado. */
@media (max-width: 860px) {
  .bl { grid-template-columns: 1fr; }
  .bl.esq .bl-tx,
  .bl.esq .bl-img { order: initial; }
  /* o diagrama sobe: ele apresenta a ideia, entao vem antes do texto.
     As fotos do Offline seguem abaixo do texto, como estavam.
     Escrito como .bl.bl--dg (e nao so .bl--dg) de proposito: com uma
     classe so ele perdia para o `.bl.esq ... { order: initial }` logo
     acima, que tem especificidade maior, e os blocos 02 e 06 — os
     unicos .esq com diagrama — ficavam com o diagrama ABAIXO do
     texto enquanto 01, 03 e 05 ficavam acima. */
  .bl.bl--dg .bl-tx  { order: 2; }
  .bl.bl--dg .bl-img { order: 1; }
  .dg-box { padding: 14px; }
  .bl-img,
  .bl.esq .bl-img { align-items: center; }
  .comp-grade { grid-template-columns: 1fr; }
  .capa { min-height: 68vh; }
}
