/* Amigo Bode — estilo do site, mesma identidade do artifact "O Bode Feliz":
   azul-tinteiro + latão sobre papel de livro-caixa, Fraunces + Karla. */

:root{
  --bg: #E8E2D0;
  --surface: #DFD8C2;
  --surface-2: #D2C9AC;
  --text: #1C2126;
  --text-muted: #565D68;
  --rule: #B7AB84;
  --accent: #1E2A45;
  --accent-deep: #10182B;
  --accent-2: #8C6A34;
  --accent-2-soft: #B58E52;
  --erro: #8A2F2F;
  --erro-bg: #F3DEDE;
  --ok: #33613F;
  --ok-bg: #DCE8DC;
  --sombra: rgba(20, 24, 33, 0.12);
  --raio: 8px;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg: #12161F;
    --surface: #181E2A;
    --surface-2: #202A3B;
    --text: #EEE7D3;
    --text-muted: #9AA3B0;
    --rule: #2C3546;
    --accent: #6E8DC7;
    --accent-deep: #46628F;
    --accent-2: #D3AD70;
    --accent-2-soft: #E8CE9C;
    --erro: #E19999;
    --erro-bg: #3A2222;
    --ok: #8FC49B;
    --ok-bg: #1E2E20;
    --sombra: rgba(0, 0, 0, 0.45);
  }
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
html,body{ margin:0; padding:0; }
body{
  background: var(--bg);
  color: var(--text);
  font-family: "Karla", ui-sans-serif, system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
::selection{ background: var(--accent-2-soft); color: var(--accent-deep); }

a{ color: var(--accent); text-decoration-color: var(--accent-2); }
a:hover{ color: var(--accent-2); }

h1,h2,h3{
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-wrap: balance;
  margin: 0 0 18px;
  color: var(--text);
}
h1{ font-size: clamp(2rem, 4.4vw, 2.9rem); line-height:1.12; }
h2{ font-size: clamp(1.4rem, 2.6vw, 1.7rem); margin-top: 44px; }
h3{ font-style: normal; font-weight: 600; font-size: 1.08rem; margin-bottom: 8px; }

p{ margin: 0 0 16px; }

:focus-visible{ outline: 2px solid var(--accent-2); outline-offset: 2px; }

.wrap{ max-width: 720px; margin: 0 auto; padding: 0 24px; }

/* ---------- topo ---------- */
.topo{
  border-bottom: 1px solid var(--rule);
  padding: 16px 0;
  background: var(--bg);
  position: sticky;
  top: 0;
  z-index: 10;
}
.topo .wrap{ display:flex; align-items:center; justify-content:space-between; max-width: 980px; gap:16px; flex-wrap: wrap; }
.marca{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text); flex:none; }
.marca svg{ width:30px; height:30px; }
.marca .nome{ font-family:"Fraunces",serif; font-weight:600; font-size:1.25rem; }
.topo nav{ display:flex; gap:20px; font-size:0.9rem; flex-wrap: wrap; row-gap:6px; }
.topo nav a{
  text-decoration:none; color:var(--text-muted);
  padding-bottom: 2px; border-bottom: 1px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
.topo nav a:hover{ color:var(--accent); border-bottom-color: var(--accent-2); }

main.wrap{ padding-top: 44px; padding-bottom: 24px; min-height: 60vh; }

/* ---------- rodapé ---------- */
.rodape{ border-top:1px solid var(--rule); margin-top:72px; padding:26px 0; color:var(--text-muted); font-size:0.85rem; }
.rodape a{ color: var(--text-muted); text-decoration: underline; }
.rodape a:hover{ color: var(--accent); }

/* ---------- hero (home) ---------- */
.hero{ padding: 12px 0 8px; }
.hero .eyebrow{
  display:block; font-size:0.75rem; font-weight:700; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--accent-2); margin-bottom:14px;
}
.hero p{ font-size: 1.08rem; color: var(--text-muted); max-width: 56ch; }
.hero-acoes{ display:flex; gap:14px; flex-wrap:wrap; margin-top: 8px; }

/* ---------- cartões / formulários ---------- */
.cartao{
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: var(--raio);
  padding: 32px;
  margin: 28px 0;
  box-shadow: 0 12px 28px -18px var(--sombra);
}
label{ display:block; font-size:0.85rem; font-weight:600; margin-bottom:6px; margin-top:20px; }
label:first-child{ margin-top:0; }
input[type=text], input[type=email], input[type=password], input[type=tel], select, textarea{
  width:100%;
  padding:11px 13px;
  border:1px solid var(--rule);
  border-radius:5px;
  background: var(--bg);
  color: var(--text);
  font-family: inherit;
  font-size: 0.98rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
input:focus, select:focus, textarea:focus{
  outline:none; border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}
textarea{ min-height: 150px; resize: vertical; line-height:1.5; }
.ajuda{ font-size:0.8rem; color:var(--text-muted); margin-top:5px; }
.linha-check{ display:flex; align-items:flex-start; gap:9px; margin-top:20px; font-size:0.88rem; }
.linha-check input{ margin-top:4px; }

button, .botao{
  display:inline-block;
  background: var(--accent);
  color: var(--bg);
  border:none;
  padding:12px 24px;
  border-radius:5px;
  font-size:0.95rem;
  font-weight:600;
  font-family: inherit;
  cursor:pointer;
  text-decoration:none;
  margin-top:28px;
  transition: background .15s ease, transform .1s ease;
}
button:hover, .botao:hover{ background: var(--accent-deep); }
button:active, .botao:active{ transform: translateY(1px); }
.botao-secundario{ background: transparent; color: var(--accent); border:1px solid var(--accent); }
.botao-secundario:hover{ background: var(--surface-2); color: var(--accent-deep); }

.erro{ background:var(--erro-bg); color:var(--erro); border-radius:6px; padding:13px 16px; margin:18px 0; font-size:0.9rem; border:1px solid color-mix(in srgb, var(--erro) 35%, transparent); }
.aviso-ok{ background: var(--ok-bg); color: var(--ok); border-radius:6px; padding:13px 16px; margin:18px 0; font-size:0.9rem; border:1px solid color-mix(in srgb, var(--ok) 30%, transparent); }

/* ---------- convite de doação ---------- */
.convite-doacao{
  background: var(--accent-deep);
  color: var(--bg);
  border-radius: var(--raio);
  padding: 26px 28px;
  margin: 30px 0;
  text-align:center;
  box-shadow: 0 16px 34px -20px var(--sombra);
}
.convite-doacao p{ margin:0 0 18px; font-size:1.02rem; }
.convite-doacao .botao{ background: var(--accent-2); color: var(--accent-deep); margin-top:0; }
.convite-doacao .botao:hover{ background: var(--accent-2-soft); }

/* ---------- banner de destaque ---------- */
.banner-destaque{ margin: 32px 0; text-align:center; }
.banner-destaque-rotulo{ display:block; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-muted); margin-bottom:8px; }
.banner-destaque img{ max-width:100%; border-radius:var(--raio); border:1px solid var(--rule); box-shadow: 0 10px 24px -16px var(--sombra); }

/* ---------- listas (instituições, vagas, currículos) ---------- */
.lista-instituicoes{ display:grid; gap:16px; margin-top:22px; }
.instituicao-item{
  background:var(--surface); border:1px solid var(--rule); border-radius:var(--raio);
  padding:20px 22px; box-shadow: 0 8px 20px -16px var(--sombra);
  transition: box-shadow .15s ease, transform .1s ease;
}
.instituicao-item:has(a):hover{ box-shadow: 0 12px 26px -14px var(--sombra); transform: translateY(-1px); }
.instituicao-item h3{ margin-bottom:6px; }
.instituicao-item h3 a{ color:var(--text); text-decoration:none; }
.instituicao-item h3 a:hover{ color:var(--accent); }
.instituicao-item .dado{ font-size:0.86rem; color:var(--text-muted); }
.instituicao-item .dado + .dado{ margin-top:4px; }

/* ---------- status (pill) ---------- */
.pill{
  display:inline-flex; align-items:center; gap:5px;
  font-size:0.74rem; font-weight:700; letter-spacing:0.02em;
  padding:3px 10px; border-radius:999px;
  text-transform: lowercase;
}
.pill-ok{ background: var(--ok-bg); color: var(--ok); }
.pill-espera{ background: var(--surface-2); color: var(--text-muted); }
.pill-fim{ background: var(--erro-bg); color: var(--erro); }

@media (max-width: 640px){
  body{ font-size:16px; }
  .cartao{ padding:22px; }
  main.wrap{ padding-top:28px; }
  .topo .wrap{ gap:10px; }
}
