/* CV em PDF (A4), gerado com html2pdf a partir de #cvPdfTemplate.
   html2canvas não suporta object-fit nem <use> externo: a foto é um background
   e o logótipo vai em SVG inline. */
.cv-a4 {
  width: 210mm;
  height: 296mm;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #ffffff;
  color: #16181d;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: 8pt;
  line-height: 1.34;
  box-sizing: border-box;
}
.cv-a4 *,
.cv-a4 *::before {
  box-sizing: border-box;
}
.cv-a4 p {
  margin: 0;
}

/* Cabeçalho: logótipo branco sobre Verde Pinto */
.cv-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10mm;
  padding: 8mm 14mm 7mm;
  background: #0b7a5c;
  color: #ffffff;
}
.cv-head__id {
  display: flex;
  flex-direction: column;
  gap: 2.4mm;
}
.cv-logo {
  display: block;
  width: 72mm;
  height: 18.4mm;
  margin-left: -1.2mm;
}
.cv-role {
  font-size: 10.5pt;
  font-weight: 500;
  color: #ffffff;
}
.cv-place {
  font-family: "IBM Plex Mono", monospace;
  font-size: 7.6pt;
  color: #dcefe8;
}
.cv-photo {
  flex-shrink: 0;
  width: 27mm;
  height: 27mm;
  border-radius: 50%;
  background-size: cover;
  background-position: center 30%;
  border: 1.2mm solid #ffffff;
}

/* Contactos */
.cv-contact {
  display: flex;
  justify-content: space-between;
  gap: 4mm;
  padding: 3mm 14mm;
  background: #16181d;
  color: #ffffff;
  font-size: 7.6pt;
  white-space: nowrap;
}
.cv-contact span {
  display: block;
  font-family: "IBM Plex Mono", monospace;
  font-size: 6.4pt;
  color: #9fd9c3;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Corpo */
.cv-body {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 62mm;
  min-height: 0;
}
.cv-main {
  padding: 6mm 8mm 5mm 14mm;
  display: flex;
  flex-direction: column;
  gap: 4mm;
}
.cv-side {
  padding: 6mm 12mm 5mm 7mm;
  background: #f4f4f1;
  display: flex;
  flex-direction: column;
  gap: 4mm;
}
.cv-h {
  margin: 0 0 2.4mm;
  padding-bottom: 1.4mm;
  border-bottom: 0.4mm solid #0b7a5c;
  font-family: "IBM Plex Mono", monospace;
  font-size: 7.6pt;
  font-weight: 500;
  color: #0b7a5c;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.cv-lead {
  font-size: 8.4pt;
  line-height: 1.42;
  color: #3a3d45;
}
.cv-title {
  font-size: 9pt;
  font-weight: 600;
  line-height: 1.25;
  color: #16181d;
}
.cv-org {
  font-size: 7.8pt;
  color: #5a5d66;
}
.cv-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2mm;
  margin-top: 1.1mm;
}
.cv-tags span {
  padding: 0.5mm 2mm;
  border-radius: 3mm;
  background: #dcefe8;
  color: #085c45;
  font-size: 6.8pt;
  line-height: 1.4;
  white-space: nowrap;
}

/* Linha temporal */
.cv-timeline {
  position: relative;
}
.cv-item {
  position: relative;
  display: grid;
  grid-template-columns: 22mm minmax(0, 1fr);
  gap: 4mm;
  padding-bottom: 2.4mm;
}
.cv-item::before {
  content: "";
  position: absolute;
  left: 24.2mm;
  top: 1.2mm;
  width: 1.8mm;
  height: 1.8mm;
  border-radius: 50%;
  background: #0b7a5c;
}
.cv-item::after {
  content: "";
  position: absolute;
  left: 25mm;
  top: 3.6mm;
  bottom: -0.6mm;
  width: 0.25mm;
  background: #cfe3db;
}
.cv-item:last-child::after {
  display: none;
}
.cv-when {
  font-family: "IBM Plex Mono", monospace;
  font-size: 7pt;
  line-height: 1.35;
  color: #085c45;
}
.cv-when em {
  display: block;
  margin-top: 0.8mm;
  font-style: normal;
  color: #5a5d66;
}
.cv-what {
  padding-left: 3mm;
}
.cv-what p,
.cv-project p {
  margin-top: 0.6mm;
  font-size: 7.5pt;
  color: #3a3d45;
}

/* Projetos */
.cv-projects {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3mm;
}
.cv-project {
  padding: 2.6mm 3mm 3mm;
  border: 0.25mm solid #e2e2dd;
  border-top: 0.8mm solid #0b7a5c;
  border-radius: 1.5mm;
}
.cv-link {
  display: block;
  font-family: "IBM Plex Mono", monospace;
  font-size: 6.6pt;
  font-weight: 400;
  color: #0b7a5c;
}

/* Lateral */
.cv-skill + .cv-skill {
  margin-top: 2.6mm;
}
.cv-skill-k {
  font-size: 7.8pt;
  font-weight: 600;
}
.cv-side .cv-tags span {
  background: #ffffff;
  border: 0.25mm solid #d6e8e1;
}
.cv-edu {
  padding-bottom: 2.4mm;
  margin-bottom: 2.4mm;
  border-bottom: 0.25mm solid #e2e2dd;
}
.cv-edu:last-child {
  border-bottom: 0;
  margin-bottom: 0;
}
.cv-edu .cv-title {
  font-size: 8.2pt;
}
.cv-edu .cv-when {
  margin-top: 0.6mm;
}
.cv-mark {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 2mm;
  padding-top: 4mm;
  border-top: 0.25mm solid #e2e2dd;
  font-size: 7.4pt;
  color: #3a3d45;
}
.cv-mark img {
  width: 9mm;
  height: 9mm;
}
.cv-mark strong {
  color: #16181d;
  font-weight: 600;
}
.cv-updated {
  font-family: "IBM Plex Mono", monospace;
  font-size: 6.6pt;
  color: #5a5d66;
}
