/* ================================================================
   TOKENS — mude estas variáveis para alterar cores/tipografia em
   TODO o site de uma só vez.
   ================================================================ */
:root{
  --ink:      #221D14;   /* quase-preto quente — header/hero/footer */
  --ink-2:    #2C2419;
  --paper:    #FAF6EC;   /* porcelana — fundo das páginas de conteúdo */
  --panel:    #FFFFFF;   /* cartões */
  --moss:     #B9790C;   /* açafrão escurecido — texto/ícones sobre claro */
  --moss-2:   #A66B0A;
  --lime:     #F2A413;   /* açafrão vivo — destaques e CTA (cor única) */
  --coral:    #B9790C;   /* mesma família do açafrão — marcadores, tabs */
  --line:     #EFE3C8;   /* linhas finas, tom de casca de trigo */
  --text-soft:#6B6255;
  --shadow:   0 18px 40px -18px rgba(34,29,20,.28);
  --radius:   16px;
  --wrap:     1180px;
  --speed:    .22s;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Inter', system-ui, sans-serif; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px;}
h1,h2,h3,h4{
  font-family:'Space Grotesk', sans-serif; color:var(--ink);
  line-height:1.1; margin:0 0 .5em; font-weight:700; letter-spacing:-.01em;
}
h1{font-family:'Fraunces', serif; font-weight:600; letter-spacing:0;}
h2{font-size:clamp(1.7rem, 3.2vw, 2.5rem);}
h3{font-size:clamp(1.15rem, 2vw, 1.45rem);}
.mono{font-family:'JetBrains Mono', monospace;}
.eyebrow{
  font-family:'JetBrains Mono', monospace; text-transform:uppercase;
  letter-spacing:.14em; font-size:.72rem; color:var(--coral);
  display:inline-flex; align-items:center; gap:.6em; margin-bottom:1em;
}
.eyebrow::before{content:""; width:16px; height:2px; background:var(--coral); display:inline-block;}
p{margin:0 0 1em;}
.lede{font-size:1.06rem; color:var(--text-soft); max-width:62ch;}

/* marca de lista — traço curto estilo "linha de campo", não decorativo */
ul.mark-list{list-style:none; margin:0; padding:0;}
ul.mark-list li{position:relative; padding-left:1.5em; margin-bottom:.6em;}
ul.mark-list li::before{
  content:""; position:absolute; left:0; top:.68em; width:10px; height:3px;
  background:var(--coral); border-radius:2px;
}

.btn{
  display:inline-flex; align-items:center; gap:.55em;
  background:var(--ink); color:var(--paper);
  font-family:'JetBrains Mono', monospace; font-size:.83rem; letter-spacing:.02em;
  text-decoration:none; padding:.85em 1.4em; border-radius:999px; border:none; cursor:pointer;
  transition:transform var(--speed) ease, background var(--speed) ease;
}
.btn:hover{background:var(--moss); transform:translateY(-2px);}
.btn.lime{background:var(--lime); color:var(--ink);}
.btn.lime:hover{background:#c3ec3f;}
.btn.ghost{background:transparent; color:var(--ink); border:1.5px solid var(--ink);}
.btn.ghost:hover{background:var(--ink); color:var(--paper);}

.tag{
  display:inline-block; font-family:'JetBrains Mono', monospace; font-size:.68rem;
  letter-spacing:.06em; text-transform:uppercase; background:rgba(46,74,58,.09);
  color:var(--moss); border:1px solid rgba(46,74,58,.22); padding:.32em .75em;
  border-radius:999px; margin:0 .4em .4em 0;
}
.tag.risk{background:rgba(255,90,60,.1); color:var(--coral); border-color:rgba(255,90,60,.3);}

/* ---------------------------------------------------------------
   HEADER / NAV (injetado por site.js em #site-header)
   --------------------------------------------------------------- */
header.site-header{position:sticky; top:0; z-index:100; background:var(--moss); color:var(--paper);}
.nav-row{display:flex; align-items:center; justify-content:space-between; padding:16px 0;}
.logo{display:flex; align-items:center; gap:.6em; font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:1.1rem; text-decoration:none; color:var(--paper);}
.logo .mark{width:11px; height:11px; background:var(--lime); border-radius:2px; flex:none;}
nav.main-nav{display:flex; align-items:center; gap:28px;}
nav.main-nav a{text-decoration:none; font-size:.92rem; color:rgba(245,243,236,.72); font-weight:500; padding:6px 0; border-bottom:2px solid transparent; transition:color var(--speed) ease, border-color var(--speed) ease;}
nav.main-nav a:hover{color:var(--paper);}
nav.main-nav a.active{color:var(--lime); border-color:var(--lime);}
.header-actions{display:flex; align-items:center; gap:14px;}
.lang-switch{display:flex; font-family:'JetBrains Mono', monospace; font-size:.72rem; border:1px solid rgba(245,243,236,.3); border-radius:999px; overflow:hidden;}
.lang-switch button{border:none; background:transparent; padding:.45em .8em; cursor:pointer; color:rgba(245,243,236,.75); font-family:inherit;}
.lang-switch button[aria-pressed="true"]{background:var(--lime); color:var(--ink);}
.burger{display:none; background:none; border:none; cursor:pointer; flex-direction:column; gap:5px; padding:6px;}
.burger span{width:22px; height:2px; background:var(--paper); display:block;}
#mobile-nav{display:none;}
@media (max-width: 900px){
  nav.main-nav{display:none;}
  .burger{display:flex;}
  #mobile-nav.open{display:flex; flex-direction:column; gap:0; padding:4px 0 18px; background:var(--moss);}
  #mobile-nav a{text-decoration:none; color:var(--paper); font-size:1rem; padding:13px 4px; border-top:1px solid rgba(245,243,236,.15);}
  #mobile-nav a.active{color:var(--lime);}
}

/* ---------------------------------------------------------------
   PAGE HERO (cada página tem um cabeçalho escuro curto)
   --------------------------------------------------------------- */
.page-hero{background:var(--ink); color:var(--paper); padding:72px 0 56px;}
.page-hero .eyebrow{color:var(--lime);}
.page-hero .eyebrow::before{background:var(--lime);}
.page-hero h1{color:var(--paper); font-size:clamp(1.8rem, 3.6vw, 2.6rem); max-width:20ch;}
.page-hero .lede{color:rgba(245,243,236,.72);}
.highlight{background:var(--lime); color:var(--ink); padding:.05em .2em; border-radius:4px;}

/* Home hero maior */
.home-hero{background:var(--ink); color:var(--paper); padding:96px 0 76px; position:relative; overflow:hidden;}
.home-hero .grid-dots{position:absolute; inset:0; opacity:.12; background-image:radial-gradient(rgba(214,255,87,.9) 1.5px, transparent 1.5px); background-size:26px 26px; pointer-events:none;}
.home-hero-inner{position:relative; display:grid; grid-template-columns:1.2fr .8fr; gap:48px; align-items:end;}
.home-hero h1{font-size:clamp(1.9rem, 3.4vw, 2.7rem); color:var(--paper); max-width:15ch;}
.home-hero .lede{color:rgba(245,243,236,.75); font-size:1.08rem;}
.stat-strip{display:flex; gap:32px; margin-top:2em; flex-wrap:wrap;}
.stat-strip div{border-left:2px solid var(--lime); padding-left:14px;}
.stat-strip strong{display:block; font-family:'Space Grotesk',sans-serif; font-size:1.6rem; color:var(--paper);}
.stat-strip span{font-family:'JetBrains Mono', monospace; font-size:.72rem; color:rgba(245,243,236,.6); text-transform:uppercase; letter-spacing:.06em;}
@media (max-width:880px){.home-hero-inner{grid-template-columns:1fr;}}

/* Cartões de destino (home) */
.destination-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:-46px; position:relative; z-index:2;}
@media (max-width:900px){.destination-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.destination-grid{grid-template-columns:1fr;}}
.dest-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px; text-decoration:none; color:var(--ink); box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:.5em; transition:transform var(--speed) ease;
}
.dest-card:hover{transform:translateY(-4px);}
.dest-card .num{font-family:'JetBrains Mono', monospace; font-size:.72rem; color:var(--coral);}
.dest-card h3{margin-bottom:.2em;}
.dest-card p{color:var(--text-soft); font-size:.92rem; margin-bottom:0;}

/* ---------------------------------------------------------------
   SECTION SHELL
   --------------------------------------------------------------- */
section.block{padding:64px 0; border-top:1px solid var(--line);}
section.block.alt{background:var(--panel);}
.section-head{max-width:70ch; margin-bottom:2.2em;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
@media (max-width:880px){.two-col{grid-template-columns:1fr;}}

/* ---------------------------------------------------------------
   DOSSIER CARD — elemento assinatura, reutilizado em toda a parte
   (equipa, publicações, raças, cursos): cartão com "separador" de
   arquivo no canto, como uma ficha de catálogo científico.
   --------------------------------------------------------------- */
.dossier{
  position:relative; background:var(--panel); border:1px solid var(--line);
  border-radius:12px; padding:22px 20px 18px; overflow:hidden;
}
.dossier::before{
  content:attr(data-code); position:absolute; top:0; left:0;
  background:var(--coral); color:var(--paper); font-family:'JetBrains Mono', monospace;
  font-size:.62rem; letter-spacing:.05em; padding:4px 10px 5px; border-radius:0 0 8px 0;
}
.dossier h4{margin:1.7em 0 .15em; font-size:1rem;}
.dossier .role{font-family:'JetBrains Mono', monospace; font-size:.76rem; color:var(--text-soft);}

.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:1.6em;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:1.6em;}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.grid-3,.grid-4{grid-template-columns:1fr;}}

/* Publications timeline */
.pub-list{border-left:2px solid var(--line); padding-left:22px; margin-left:4px;}
.pub-item{position:relative; margin-bottom:1.6em;}
.pub-item::before{content:""; position:absolute; left:-27px; top:.4em; width:9px; height:9px; background:var(--coral); border-radius:2px;}
.pub-year{font-family:'JetBrains Mono', monospace; color:var(--coral); font-size:.85rem;}
.pub-item p{margin:.25em 0 0; color:var(--text-soft); font-size:.96rem;}
.pub-item a{color:var(--moss); font-weight:600; text-decoration:none; border-bottom:1px solid var(--lime);}

/* Tables */
.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel);}
table{border-collapse:collapse; width:100%; min-width:680px; font-size:.87rem;}
table caption{caption-side:top; text-align:left; padding:12px 16px; font-family:'JetBrains Mono', monospace; font-size:.74rem; color:var(--text-soft);}
th, td{padding:10px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top;}
th{font-family:'JetBrains Mono', monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; color:var(--moss); background:rgba(46,74,58,.06);}
tr:last-child td{border-bottom:none;}

details.disclosure{margin-top:1.4em; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); padding:2px 0;}
details.disclosure > summary{cursor:pointer; list-style:none; padding:14px 18px; font-family:'JetBrains Mono', monospace; font-size:.8rem; color:var(--moss); display:flex; align-items:center; justify-content:space-between;}
details.disclosure > summary::-webkit-details-marker{display:none;}
details.disclosure > summary::after{content:"+"; font-size:1.1rem; color:var(--coral);}
details.disclosure[open] > summary::after{content:"–";}
details.disclosure .disclosure-body{padding:4px 20px 18px;}
details.disclosure .disclosure-body ol, details.disclosure .disclosure-body ul{padding-left:1.2em; font-size:.9rem; color:var(--text-soft);}
details.disclosure .disclosure-body li{margin-bottom:.6em;}

/* Outreach — book + courses */
.book-card{display:grid; grid-template-columns:220px 1fr; gap:32px; align-items:center; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow);}
@media (max-width:700px){.book-card{grid-template-columns:1fr; text-align:center;} .book-card img{margin:0 auto; max-width:180px;}}
.book-card img{border-radius:8px; box-shadow:0 8px 18px rgba(0,0,0,.18);}

.course-card{border:1px solid var(--line); background:var(--panel); border-radius:var(--radius); padding:24px; margin-top:1.6em;}
.course-meta{display:flex; flex-wrap:wrap; gap:18px; font-family:'JetBrains Mono', monospace; font-size:.8rem; color:var(--text-soft); margin:.8em 0 1.2em;}
.course-meta strong{color:var(--moss); display:block; font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; font-family:'JetBrains Mono', monospace;}

.testi-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:20px; margin-top:1.8em;}
.testi-card{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:20px; font-size:.9rem; color:var(--text-soft);}
.testi-card footer{margin-top:.9em; font-family:'JetBrains Mono', monospace; font-size:.75rem; color:var(--coral);}

.media-grid{display:flex; flex-wrap:wrap; gap:10px; margin-top:1.4em;}
.media-grid a{text-decoration:none; font-family:'JetBrains Mono', monospace; font-size:.8rem; padding:.55em 1em; border:1px solid var(--line); border-radius:999px; color:var(--text-soft); transition:border-color var(--speed) ease, color var(--speed) ease;}
.media-grid a:hover{border-color:var(--moss); color:var(--moss);}

.chip-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:1.2em;}

/* Contact */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr;}}
form.contact-form label{display:block; font-family:'JetBrains Mono', monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--moss); margin-bottom:.4em; margin-top:1.1em;}
form.contact-form input, form.contact-form textarea{width:100%; padding:.8em 1em; border:1px solid var(--line); border-radius:8px; font-family:'Inter', sans-serif; font-size:.95rem; background:var(--panel); color:var(--ink);}
form.contact-form textarea{min-height:120px; resize:vertical;}
form.contact-form button{margin-top:1.4em;}
.contact-details{font-size:.95rem; color:var(--text-soft);}
.contact-details h4{color:var(--ink); margin-bottom:.3em;}
.social-row{display:flex; gap:12px; margin-top:1.4em;}
.social-row a{width:38px; height:38px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--moss); text-decoration:none; transition:background var(--speed) ease, color var(--speed) ease;}
.social-row a:hover{background:var(--moss); color:var(--paper);}
.social-row svg{width:17px; height:17px;}

/* Footer */
footer.site-footer{background:var(--ink); color:rgba(245,243,236,.8); padding:44px 0 26px; font-size:.9rem;}
footer.site-footer a{color:var(--paper); text-decoration:none;}
footer.site-footer .foot-grid{display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; margin-bottom:24px;}
footer.site-footer .foot-bottom{border-top:1px solid rgba(245,243,236,.15); padding-top:18px; display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; font-family:'JetBrains Mono', monospace; font-size:.74rem; color:rgba(245,243,236,.55);}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}

/* Utility: esconder secções/páginas desativadas no painel de controlo */
[data-hidden="true"]{display:none !important;}
