/* Zepume — folha de estilos comum a todas as páginas */

:root{
  --bg:#1a1722;
  --bg-alt:#221e2c;
  --bg-nav:#2a2535;
  --light:#eeeaf2;
  --text:#e7e3ec;
  --muted:#948ea3;
  --dark-text:#1a1722;
  --accent:#5fb79a;
  --accent-deep:#2c6b58;
  --gold:#c0a44e;
  --gold-deep:#7a6420;
  --serif:Georgia,'Times New Roman',Times,serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --gap:28px;
  --pad-y:88px;
  --pad-x:52px;
}

*{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.65;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block;}

a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{text-decoration-thickness:2px;}

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

/* ---------- grelha ---------- */

.band{width:100%;}
.band>.inner{
  max-width:1320px;
  margin:0 auto;
  padding:var(--pad-y) var(--pad-x);
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:var(--gap);
}
.band>.inner>*{min-width:0;}

.tone-a{background:var(--bg);}
.tone-b{background:var(--bg-alt);}
.tone-light{background:var(--light);color:var(--dark-text);}

.col{grid-column:1 / span 6;}
.s1 .col{grid-column:2 / span 6;}
.s2 .col{grid-column:3 / span 6;}
.s3 .col{grid-column:4 / span 6;}

/* ---------- tipografia ---------- */

h1,h2,h3{font-family:var(--serif);font-weight:normal;}

h1{
  font-size:clamp(2.35rem,5.4vw,4.3rem);
  line-height:1.06;
  letter-spacing:-0.015em;
  margin:0;
}

h2{
  font-size:clamp(1.55rem,2.5vw,2.15rem);
  line-height:1.2;
  margin:0 0 .2em;
  letter-spacing:-0.01em;
}

h3{
  font-style:italic;
  font-size:1.2rem;
  line-height:1.35;
  margin:2.4rem 0 .4rem;
}

p{margin:1.45rem 0 0;max-width:38em;}
p:first-of-type{margin-top:1.1rem;}

.lead{font-size:1.14rem;line-height:1.6;}

.num{
  display:block;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--gold);
  margin-bottom:1.1rem;
}
.tone-light .num{color:var(--gold-deep);}

.note{color:var(--muted);font-size:.92rem;line-height:1.55;}
.tone-light .note{color:#544d62;}

/* ---------- listas ---------- */

ul.plain{list-style:none;margin:1.5rem 0 0;padding:0;max-width:38em;}
ul.plain li{position:relative;padding-left:1.6rem;margin-bottom:.75rem;}
ul.plain li::before{
  content:"—";
  position:absolute;
  left:0;
  color:var(--accent);
}
.tone-light ul.plain li::before{color:var(--accent-deep);}

ul.check{list-style:none;margin:1.5rem 0 0;padding:0;max-width:38em;}
ul.check li{position:relative;padding-left:1.6rem;margin-bottom:.8rem;}
ul.check li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:9px;
  height:9px;
  border:1px solid var(--gold);
}
.tone-light ul.check li::before{border-color:var(--gold-deep);}

/* ---------- hero em três camadas ---------- */

.hero{display:block;}
.layer{width:100%;}
.layer>.inner{
  max-width:1320px;
  margin:0 auto;
  padding:0 var(--pad-x);
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:var(--gap);
}
.layer>.inner>*{min-width:0;}

.layer-nav{background:var(--bg-nav);}
.layer-nav>.inner{padding-top:18px;padding-bottom:18px;}
.layer-nav .inner>div{grid-column:1 / span 12;}

.brand{
  font-family:var(--serif);
  font-size:1.05rem;
  letter-spacing:.02em;
  color:var(--text);
  text-decoration:none;
  margin-right:2.2rem;
}
.brand:hover{color:var(--accent);}

.site-nav{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.6rem 1.6rem;
}
.site-nav ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.5rem;
  margin:0;
  padding:0;
}
.site-nav a{
  font-family:var(--sans);
  font-size:12.5px;
  letter-spacing:.07em;
  color:var(--muted);
  text-decoration:none;
  padding-bottom:2px;
  border-bottom:1px solid transparent;
}
.site-nav a:hover{color:var(--text);border-bottom-color:var(--accent);}
.site-nav a[aria-current="page"]{color:var(--text);border-bottom-color:var(--gold);}

.layer-title{background:var(--bg-alt);}
.layer-title>.inner{
  padding-top:120px;
  padding-bottom:40px;
  min-height:44vh;
  align-items:end;
}
.layer-title h1{grid-column:1 / span 10;align-self:end;}

.layer-intro{background:var(--bg);}
.layer-intro>.inner{padding-top:54px;padding-bottom:64px;}
.layer-intro .intro-text{grid-column:1 / span 6;}
.layer-intro .intro-topics{grid-column:8 / span 5;}
.layer-intro .intro-topics ul{
  list-style:none;margin:1.1rem 0 0;padding:0;
  font-size:.98rem;
}
.layer-intro .intro-topics li{
  padding:.42rem 0;
  color:var(--text);
  border-bottom:1px solid rgba(148,142,163,.22);
}
.layer-intro .intro-topics li:last-child{border-bottom:none;}
.kicker{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--gold);
  margin:0;
}

/* ---------- imagem principal ---------- */

.figure-main{grid-column:4 / span 9;margin:0;}
.s1 .figure-main{grid-column:4 / span 9;}
figure{margin:0;}
figure img{width:100%;}
figcaption{
  font-family:var(--sans);
  font-size:12px;
  line-height:1.5;
  letter-spacing:.03em;
  color:var(--muted);
  margin-top:12px;
  max-width:34em;
}
.tone-light figcaption{color:#5b5468;}

.band.with-figure>.inner{row-gap:44px;}

/* ---------- secção contrastante com imagem de pormenor ---------- */

.detail-figure{grid-column:1 / span 4;}
.detail-text{grid-column:6 / span 6;}

/* ---------- contacto ---------- */

.contact-line{font-size:1.15rem;margin-top:1.2rem;}

/* ---------- rodapé ---------- */

.site-footer{background:var(--light);color:var(--dark-text);margin-top:0;}
.site-footer>.inner{
  max-width:1320px;
  margin:0 auto;
  padding:64px var(--pad-x) 56px;
}
.footer-name{
  font-family:var(--serif);
  font-size:clamp(3rem,13vw,10.5rem);
  line-height:.9;
  letter-spacing:-0.03em;
  margin:0 0 48px;
  color:var(--dark-text);
}
.footer-cols{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:36px var(--gap);
}
.footer-col h2,
.footer-col .col-title{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.12em;
  color:#544d62;
  margin:14px 0 10px;
  font-weight:normal;
}
.footer-col{border-top:2px solid var(--gold-deep);}
.footer-col ul{list-style:none;margin:0;padding:0;}
.footer-col li{margin-bottom:.4rem;}
.footer-col a{color:var(--accent-deep);}
.footer-col p{margin:0;font-size:.95rem;max-width:30em;}
.footer-col .sans-small{font-family:var(--sans);font-size:12.5px;line-height:1.6;color:#544d62;}

/* ---------- páginas internas ---------- */

.page-section h2{margin-top:0;}
.about-block .col{max-width:none;}

/* ---------- responsivo ---------- */

@media (max-width:1040px){
  :root{--pad-y:72px;--pad-x:36px;--gap:22px;}
  .figure-main{grid-column:3 / span 10;}
  .detail-figure{grid-column:1 / span 5;}
  .detail-text{grid-column:7 / span 6;}
  .layer-intro .intro-text{grid-column:1 / span 7;}
  .layer-intro .intro-topics{grid-column:9 / span 4;}
}

@media (max-width:860px){
  :root{--pad-y:52px;--pad-x:22px;}
  body{font-size:17px;}
  .band>.inner,
  .layer>.inner{grid-template-columns:1fr;}
  .col,
  .s1 .col,
  .s2 .col,
  .s3 .col,
  .figure-main,
  .detail-figure,
  .detail-text,
  .layer-title h1,
  .layer-intro .intro-text,
  .layer-intro .intro-topics,
  .layer-nav .inner>div{grid-column:1 / -1;}
  .band>.inner{row-gap:32px;}
  .layer-title>.inner{padding-top:64px;padding-bottom:28px;min-height:0;}
  .layer-intro>.inner{padding-top:36px;padding-bottom:44px;}
  .layer-intro .intro-topics{margin-top:28px;}
  .footer-cols{grid-template-columns:1fr;}
  .footer-name{margin-bottom:34px;}
  p{max-width:none;}
  ul.plain,ul.check{max-width:none;}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important;}
}
