/* C.V. page specific styles */

body.is-cv-page .cv-page {
  min-height: 100svh;
  color: var(--top-text);
}

body.is-cv-page .cv-page-section {
  position: relative;
  min-height: 100vh;
  padding: 120px 6vw;
}

body.is-cv-page .cv-page-head {
  max-width: none;
  margin-bottom: 34px;
}

body.is-cv-page .cv-page-head h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(34px, 6vw, 76px);
  font-weight: 500;
  line-height: 0.95;
  letter-spacing: 0;
}

body.is-cv-page .cv-page-introduction {
  max-width: 960px;
  margin: 0;
  color: var(--top-muted);
  font-family: var(--font-body-en);
  font-size: clamp(16px, 1.7vw, 21px);
  line-height: 1.8;
}

body.is-cv-page .cv-page-introduction p {
  margin: 0;
}

body.is-cv-page .cv-page-category {
  margin-top: 44px;
}

body.is-cv-page .cv-page-category-title {
  margin: 0 0 18px;
  color: #333333;
  font-family: var(--font-display);
  font-size: clamp(20px, 2.6vw, 32px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.04em;
}

body.is-cv-page .cv-page-timeline {
  display: block;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--top-line);
  border-radius: 0;
  background: transparent;
  list-style: none;
}

body.is-cv-page .cv-page-year-group {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid var(--top-line);
}

body.is-cv-page .cv-page-year {
  color: #333333;
  font-family: var(--font-display);
  font-weight: 400;
}

body.is-cv-page .cv-page-year-items {
  display: grid;
  gap: 0.25rem;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.is-cv-page .cv-page-year-item {
  min-width: 0;
  color: #333333;
  font-family: var(--font-body-en);
  font-size: clamp(1rem, 1.5vw, 1.12rem);
  font-weight: 400;
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  body.is-cv-page .cv-page-section {
    padding: 100px 20px;
  }
}

@media (max-width: 768px) {
  body.is-cv-page .site-main {
    padding-top: 0;
  }

  body.is-cv-page .cv-page-section {
    padding-top: 42px;
  }
}

@media (max-width: 620px) {
  body.is-cv-page .cv-page-year-group {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
  }
}
