@import url("../tokens.css");

/* ============================================================
   Direção 4 — Dossiê
   ------------------------------------------------------------
   Metáfora de peça processual: margem larga, marginália
   numerada, filete dourado vertical como eixo da página.
   A metáfora é EVOCADA, não imitada — nada de cosplay de papel
   timbrado. Onde ela brigou com legibilidade ou alvo de toque,
   ela cedeu.

   Contrastes medidos (WCAG AA: 4.5:1 normal / 3:1 grande):
     --ink         / --paper ......... 13.99:1
     --forest      / --paper .......... 8.33:1
     --ink         / --gold-pale ..... 11.82:1
     --paper       / --forest-deep ... 15.36:1
     --forest-deep / --gold ........... 6.47:1
   --gold-muted sobre --paper dá 2.72:1 e REPROVA: aqui ele é
   só filete e numeração grande, nunca texto de leitura.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.7;
  -webkit-text-size-adjust: 100%;
}

h1, h2, h3 { line-height: 1.25; margin: 0 0 0.5em; font-weight: 500; }
p { margin: 0 0 1em; }

/* ---------- a folha: margem + eixo ---------- */
.folha {
  position: relative;
  padding: 3rem 1.25rem;
}
/* O filete vertical é o eixo visual da direção. No celular ele
   encosta na borda; no desktop ele marca a margem da peça. */
.folha::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 1px;
  background: var(--gold-muted);
}
@media (min-width: 900px) {
  .folha { padding: 5rem 3rem 5rem 12rem; }
  .folha::before { left: 9rem; }
}

.corpo { max-width: 60ch; }

/* ---------- marginália numerada ---------- */
.marginalia {
  display: block;
  margin-bottom: 1.5rem;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--gold-muted);
}
@media (min-width: 900px) {
  /* No desktop vira marginália de verdade, na margem esquerda. */
  .marginalia {
    position: absolute;
    left: 3rem;
    top: 5rem;
    margin: 0;
  }
}
.marginalia--clara { color: var(--gold); }

/* ---------- capa ---------- */
.folha--capa {
  padding: 3rem 1.25rem 2rem;
  border-bottom: 1px solid var(--paper-line);
}
.folha--capa::before { display: none; }
.selo {
  display: block;
  width: 72px;
  height: 72px;
  color: var(--forest);
  margin-bottom: 1rem;
}
.capa__nome {
  margin: 0;
  font-size: 1.6rem;
  letter-spacing: 0.02em;
  color: var(--ink);
}
.capa__linha {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--forest);
}
@media (min-width: 900px) {
  .folha--capa { padding-left: 9rem; }
}

/* ---------- hero ---------- */
.rotulo {
  margin: 0 0 1rem;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--forest);
}
#hero h1 { font-size: clamp(2.1rem, 6vw, 3.4rem); }
.hero__sub { font-style: italic; font-size: 1.3rem; color: var(--forest); }
.nota { font-family: var(--font-sans); font-size: 0.85rem; color: var(--forest); }

/* ---------- botões ---------- */
.botao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35em;              /* espaço entre itens flex não colapsa */
  min-height: 52px;         /* alvo de toque: a metáfora não come isto */
  margin: 0.5rem 0 1rem;
  padding: 0.8rem 1.6rem;
  background: var(--forest);
  color: var(--paper);
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 0.2s;
}
.botao:hover { background: var(--forest-deep); }
.botao--ouro { background: var(--gold); color: var(--forest-deep); }
.botao--ouro:hover { background: var(--gold-pale); }
.botao:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.folha--fecho .botao:focus-visible { outline-color: var(--paper); }
@media (max-width: 619px) { .botao { width: 100%; } }

/* ---------- itens numerados (atuação e diferenciais) ---------- */
.itens { list-style: none; margin: 2rem 0 0; padding: 0; counter-reset: item; }
.itens li {
  counter-increment: item;
  position: relative;
  padding: 1.25rem 0 1.25rem 3rem;
  border-top: 1px solid var(--paper-line);
}
.itens li::before {
  content: counter(item, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1.45rem;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--gold-muted);
}
.itens h3 {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--forest);
}
.itens p { margin: 0; }

/* ---------- checklist ---------- */
.folha--destaque { background: var(--gold-pale); }
.folha--destaque::before { background: var(--gold); }
#checklist h2 { font-size: clamp(1.5rem, 4.5vw, 2.1rem); }
.lista { list-style: none; margin: 1.5rem 0; padding: 0; }
.lista li {
  position: relative;
  padding: 0.6rem 0 0.6rem 1.75rem;
  border-bottom: 1px solid var(--gold-muted);
}
/* Check desenhado em CSS — sem ícone, sem emoji, sem requisição. */
.lista li::before {
  content: "";
  position: absolute;
  left: 0.1rem;
  top: 1.15rem;
  width: 0.55rem;
  height: 0.28rem;
  border-left: 2px solid var(--forest);
  border-bottom: 2px solid var(--forest);
  transform: rotate(-45deg);
}

/* ---------- quem somos ---------- */
#quem-somos h2, #atuacao h2, #diferenciais h2, #contato h2 {
  font-size: clamp(1.5rem, 4vw, 2.1rem);
}
/* Capitular: abertura de peça. */
.abertura::first-letter {
  float: left;
  font-size: 3.4em;
  line-height: 0.82;
  padding: 0.05em 0.1em 0 0;
  color: var(--forest);
}
.reservado:empty { display: none; }

/* ---------- fecho ---------- */
.folha--fecho { background: var(--forest-deep); color: var(--paper); }
.folha--fecho::before { background: var(--gold); }
.folha--fecho p { color: var(--paper); }

/* ---------- rodapé ---------- */
footer {
  position: relative;
  padding: 2.5rem 1.25rem;
  background: var(--forest-deep);
  color: var(--paper);
  border-top: 1px solid var(--forest);
  overflow: hidden;
}
@media (min-width: 900px) { footer { padding-left: 9rem; } }
/* Marca d'água discreta: o logo fecha o dossiê. */
.marca-dagua {
  position: absolute;
  right: -1.5rem;
  bottom: -1.5rem;
  width: 150px;
  height: 150px;
  color: var(--forest);
  opacity: 0.5;
  pointer-events: none;
}
.footer__marca {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.footer__aviso {
  position: relative;
  margin: 0;
  max-width: 70ch;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--paper);
  opacity: 0.85;
}

/* ---------- entrada ---------- */
@keyframes rise-in {
  0%   { opacity: 0; transform: translateY(10px); }
  100% { opacity: 1; transform: translateY(0); }
}
#hero .rotulo,
#hero h1,
#hero .hero__sub,
#hero .botao,
#hero .nota {
  animation: rise-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
#hero h1 { animation-delay: 70ms; }
#hero .hero__sub { animation-delay: 140ms; }
#hero .botao { animation-delay: 210ms; }
#hero .nota { animation-delay: 280ms; }

/* opacity:1 é obrigatório: sem ele, desligar uma animação com fill "both"
   deixaria o hero invisível justamente para quem pediu menos movimento. */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
  #hero .rotulo,
  #hero h1,
  #hero .hero__sub,
  #hero .botao,
  #hero .nota {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
}
