@page {
  size: A4 portrait;
  margin: 7mm;
}

* {
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.no-print,
.nav,
.social {
  display: none !important;
}

.fa,
.fa-solid,
.fa-brands {
  display: inline-block !important;
  color: inherit !important;
}

html,
body {
  width: auto;
  height: auto;
  overflow: visible;
  margin: 0;
  padding: 0;
  background: #fff;
  font-size: 12pt !important;
}

body {
  padding: 0 !important;
  color: #2b2b2b;
  font-family: 'Nunito', sans-serif;
  line-height: 1.02;
}

.page {
  width: 100%;
  max-width: none !important;
  margin: 0;
  padding: 0;
}

h1 {
  margin: 0 0 0.2rem;
  font-size: 18pt;
  text-align: left;
  color: #222;
  font-family: 'Sen', serif;
  letter-spacing: 0.03em;
}

.hero {
  margin-bottom: 0.25rem;
  -webkit-print-color-adjust:exact;
  -webkit-filter:opacity(1);
}

.left {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.35rem;
  align-items: flex-start;
  padding: 0.28rem 0.4rem;
  margin: 0;
  background: #fff;
  border: 1px solid #e7e7e7;
  border-radius: 0;
  box-shadow: none;
}

img {
  width: 84px;
  height: 84px;
  border-radius: 6px;
  object-fit: cover;
  page-break-inside: avoid;
  flex-shrink: 0;
}

.contact-list {
  min-width: 0;
  gap: 0.12rem;
  font-size: 10pt;
  margin: 0;
  padding: 0;
}

.contact-list li {
  gap: 0.18rem;
}

main {
  display: flex !important;
  width: 100% !important;
  gap: 8px;
  align-items: flex-start;
}

.left-side {
  display: flex !important;
  flex-direction: column !important;
  flex: 0 0 16% !important;
  width: 16% !important;
  max-width: 16% !important;
  min-width: 0 !important;
  padding-right: 8px;
  gap: 0.16rem;
}

.right {
  flex: 1 1 84% !important;
  width: auto !important;
  min-width: 0 !important;
}

.skills-resume {
  padding: 7px 6px 5px;
  border: 1px dashed #d8c8f0;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
  page-break-inside: avoid;
}

h1,
.title,
.parcours,
.skills-resume,
.skill-line {
  page-break-after: avoid;
  page-break-before: avoid;
}

.skills-resume .title {
  top: -7px;
  left: 8px;
  padding: 1px 5px;
  font-size: 0.6rem;
  font-weight: 700;
  color: #fff;
  background: #849cff;
  border-radius: 999px;
}

.skills-resume > div {
  padding: 0.12rem 0.24rem;
  margin-bottom: 0.12rem;
  font-size: 0.56rem;
  color: #fff;
  background: #849cff;
  border-radius: 999px;
  text-align: center;
  font-weight: 600;
}

.skills-resume.green .title,
.skills-resume.green > div {
  background: #737dff;
}

.skills-resume.red .title,
.skills-resume.red > div {
  background: #ff7373;
}

.parcours {
  padding: 0.16rem 0.34rem 0.06rem;
  border: 1px dashed #303030;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
  margin-bottom: 0.12rem;
  page-break-inside: avoid;
}

.parcours > .title {
  font-size: 0.68rem;
  padding: 0.12rem 0.3rem;
  margin-bottom: 0.14rem;
  background: #000;
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
}

.skill-line {
  gap: 0.2rem;
  padding: 0.06rem 0;
  page-break-inside: avoid;
}

.year {
  width: auto;
  min-width: 9rem;
  flex-shrink: 0;
  font-size: 0.56rem;
  font-weight: 700;
  color: #444;
  white-space: nowrap;
}

.skill p {
  margin-bottom: 0.08rem;
  font-size: 10pt;
  line-height: 1.02;
}

.skill > p:nth-child(1) {
  font-size: 11pt;
}

.skill > p:nth-child(2) {
  font-size: 10pt;
}

.projects-section > .title {
  margin-bottom: 0.14rem;
  font-size: 0.72rem;
}

.projects-section .project-row {
  display: grid;
  grid-template-columns: 9rem minmax(0, 1fr);
  align-items: start;
  gap: 0.2rem;
}

.projects-section .project-date {
  width: auto;
  min-width: 9rem;
}

.project-details h3 {
  margin: 0 0 0.08rem;
  font-size: 11pt;
  line-height: 1.02;
}

.project-details .project-link {
  display: inline-block;
  margin-bottom: 0.08rem;
  color: #555;
  font-size: 10pt;
  font-weight: 700;
  text-decoration: none;
}

.parcours,
skill-line,
skills-resume {
  break-inside: avoid;
}
