/* ------------------------------- 
 * Global/generic
 * ------------------------------- */
html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  font-family: Lexend;
  margin: 0;
}

a {
  text-decoration: none;
  color: #006298;
}

.link:hover {
  text-decoration: underline;
}

.default-button:hover {
  cursor: pointer;
  background: #fed03c;
}

.default-button {
  background-color: #f2dfa2;
  padding: 16px 32px;
  /* margin-bottom: 40px; */
  border-radius: 8px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  width: 100%;
  line-height: 17.5px;
  align-items: center;
  font-size: 14px;

  color: black;
}

@media (min-width: 544px) {
  .default-button {
    font-size: 20px;
  }
}

@media (min-width: 768px) {
  .custom {
    width: auto;
    max-width: 256px;
  }

  .default-button {
    padding: 16px 28px;
    letter-spacing: -1px;
  }

  .new-tab-logo {
    margin-right: 12px;
  }
}

.new-tab-logo {
  width: 24px;
  height: 24px;
  margin-right: 15px;
}

img {
  width: 100%;
}

/* ------------------------------- 
 * Header navigation list
 * ------------------------------- */

.nav-list {
  position: fixed;
  display: flex;

  width: 100%;
  height: 79px;
  margin: 0;
  padding: 16px 32px;
  gap: 8px;

  align-items: center;
  justify-content: space-between;

  list-style: none;
  background-color: #f2dfa2;
}

.nav-link {
  display: block;
  padding: 16px 4px;
  font-weight: 400;
  font-size: 12px;
  color: black;
}

.nav-item:hover {
  cursor: pointer;
  border-bottom: 4px solid #006298;
  margin-bottom: -4px;
}

.nav-item:focus {
  border: 4px solid #006298;
  border-radius: 8px;
}

.nav-item.active {
  border-bottom: 4px solid #006298;
  margin-bottom: -4px;
}

@media (min-width: 544px) and (max-width: 767px) {
  .nav-list {
    height: 87px;
  }

  .nav-link {
    font-size: 18px;
    padding: 16px;
  }
}

@media (min-width: 768px) {
  .nav-list {
    height: 89px;
    padding: 16px 80px;
  }

  .nav-link {
    font-size: 20px;
    padding: 16px 32px;
  }
}

/* ------------------------------- 
 * Home page list
 * ------------------------------- */

.home-page {
  background: url('../assets/landing-image.png');
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: auto;

  background-size: cover;

  height: 660px;
}

.title {
  font-weight: 900;
  font-size: 40px;
}

.text-below-title {
  text-align: center;
}

.home-page-contents {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  max-width: 288px;
  max-height: 162px;
}

@media (min-width: 544px) {
  .home-page {
    height: 1024px;
  }

  .home-page-contents {
    max-width: 512px;
    max-height: 182px;
  }

  .title {
    font-size: 48px;
  }

  .text-below-title {
    font-size: 24px;
  }
}

@media (min-width: 768px) {
  .home-page {
    height: 1024px;
  }

  .home-page-contents {
    max-width: 608px;
    max-height: 292px;
  }

  .title {
    font-size: 80px;
  }

  .text-below-title {
    font-size: 32px;
  }
}

@media (min-width: 1012px) {
  .home-page {
    height: 1024px;
  }

  .home-page-contents {
    max-width: 896px;
    max-height: 280px;
  }

  .title {
    font-size: 90px;
  }

  .text-below-title {
    font-size: 36px;
  }
}

@media (min-width: 1280px) {
  .home-page {
    height: 1024px;
  }

  .home-page-contents {
    max-width: 896px;
    max-height: 302px;
  }

  .title {
    font-size: 96px;
  }

  .text-below-title {
    font-size: 40px;
    line-height: 50px;
  }
}

/* ------------------------------- 
 * About page list
 * ------------------------------- */

.about-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 1029px;
  background: linear-gradient(180deg, #fff5d5 0%, rgba(255, 250, 236, 0) 100%);
}

.about-contents {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
  width: 288px;
  height: 709px;
}

.about-title {
  font-weight: 900;
  text-align: center;
  font-size: 28px;
}

.blue-box {
  background-color: #006298;
  width: 122px;
  height: 24px;
}

.text-below-about {
  font-size: 14px;
  text-align: center;
}

.filler {
  height: 40px;
}

@media (min-width: 544px) {
  .about-page {
    height: 1348px;
  }

  .about-contents {
    width: 480px;
    height: 900px;
    gap: 64px;
  }

  .about-title {
    font-size: 32px;
  }

  .text-below-about {
    font-size: 20px;
  }

  .about-button {
    width: 100%;
  }

  .filler {
    height: 40px;
  }
}

@media (min-width: 768px) {
  .about-page {
    height: 1396px;
  }

  .about-contents {
    width: 608px;
    height: 948px;
    gap: 80px;
  }

  .about-title {
    font-size: 48px;
  }

  .text-below-about {
    font-size: 24px;
    font-weight: 400;
  }

  .about-button {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 40px;
    width: 100%;
  }

  .filler {
    display: none;
  }
}

@media (min-width: 1012px) {
  .about-page {
    height: 1778px;
  }

  .about-contents {
    width: 869px;
    height: 1176px;
  }

  .about-title {
    font-size: 64px;
  }

  .text-below-about {
    font-size: 24px;
    font-weight: 400;
  }
}

@media (min-width: 1280px) {
  .about-page {
    height: 1848px;
  }

  .about-contents {
    width: 869px;
    height: 1176px;
  }

  .about-title {
    font-size: 72px;
  }

  .text-below-about {
    font-size: 28px;
  }
}

/* ------------------------------- 
 * Data Visualization page list
 * ------------------------------- */

.data-visualization-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 448px;

  height: 3222px;
}

.data-visualization-contents {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 160px;
  width: 288px;
  height: 2902px;
}

.data-visualization-title-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 48px;
}

.data-visualization-title {
  font-weight: 900;
  font-size: 32px;
}

.text-below-data-visualization-title {
  font-size: 14px;
  line-height: 28px;
}

.plot-card {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.last-card {
  margin-bottom: 0px;
}

.plot-title {
  font-weight: 900;
  font-size: 28px;
}

.plot-caption {
  font-family: Inter;
  font-weight: 400;
  font-size: 14px;
  line-height: 200%;
}

@media (min-width: 544px) {
  .data-visualization-page {
    height: 3697px;
  }

  .data-visualization-contents {
    width: 480px;
    height: 3377px;
    gap: 160px;
  }

  .text-below-data-visualization-title {
    font-size: 18px;
    line-height: 36px;
  }

  .last-card {
    margin-bottom: 0px;
  }

  .plot-caption {
    font-size: 16px;
  }
}

@media (min-width: 768px) {
  .data-visualization-page {
    height: 4608px;
  }

  .data-visualization-contents {
    width: 608px;
    height: 4160px;
    gap: 224px;
  }

  .data-visualization-title {
    font-size: 48px;
  }

  .text-below-data-visualization-title {
    font-size: 22px;
    line-height: 44px;
  }

  .last-card {
    margin-bottom: 0px;
  }

  .plot-title {
    font-size: 40px;
  }

  .plot-caption {
    font-size: 20px;
  }
}

@media (min-width: 1012px) {
  .data-visualization-page {
    height: 5480px;
  }

  .data-visualization-contents {
    width: 852px;
    height: 4808px;
  }

  .data-visualization-title {
    font-size: 64px;
  }

  .text-below-data-visualization-title {
    font-size: 22px;
    line-height: 44px;
  }
}

@media (min-width: 1280px) {
  .data-visualization-page {
    height: 5657px;
  }

  .data-visualization-contents {
    width: 896px;
    height: 4985px;
  }

  .data-visualization-title {
    font-size: 72px;
  }

  .text-below-data-visualization-title {
    font-size: 26px;
    line-height: 52px;
  }

  .plot-card {
    width: 100%;
  }

  .plot-title {
    font-size: 48px;
  }
}

/* ------------------------------- 
 * Partnership page list
 * ------------------------------- */

.xM-partnership-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 500px;
  font-family: Inter;
  background: linear-gradient(180deg, rgba(255, 250, 236, 0) 0%, #fff5d5 100%);

  height: 2574px;
}

.xM-partnership-page-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0px;
  gap: 224px;

  width: 288px;
  height: 2254px;
}

.xM-partnership-page-title {
  font-weight: 900;
  font-size: 28px;
  text-align: center;
  font-family: Lexend;
}

.partnership-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0px;
  /* gap: 16px; */
  gap: 8px;

  width: 288px;
  height: 242px;
}

.logo-image {
  /* width: auto; */
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 0px;
  gap: 8px;
  height: 126px;
}

.photo-caption {
  text-align: center;
}

@media (min-width: 544px) {
  .xM-partnership-page {
    height: 2678px;
    font-weight: 400;
    font-size: 20px;
  }

  .xM-partnership-page-content {
    width: 384px;
    height: 2358px;
  }

  .xM-partnership-page-title {
    font-size: 38px;
  }

  .partnership-card {
    width: 384px;
    height: 262px;
  }
}

@media (min-width: 768px) {
  .xM-partnership-page {
    height: 2738px;
    font-weight: 400;
    font-size: 20px;
  }

  .xM-partnership-page-content {
    width: 608px;
    height: 2290px;
  }

  .xM-partnership-page-title {
    font-size: 40px;
    font-weight: 900;
  }

  .partnership-card {
    width: 453px;
    height: 238px;
  }
}

@media (min-width: 1012px) {
  .xM-partnership-page {
    padding: 336px 58px;
  }

  .xM-partnership-page-title {
    font-size: 48px;
  }
}

@media (min-width: 1280px) {
  .xM-partnership-page {
    height: 2982px;
  }

  .xM-partnership-page-content {
    height: 2310px;
    gap: 224px;
  }

  .partnership-card {
    width: 453px;
    height: 238px;
  }

  .xM-partnership-page-title {
    font-size: 48px;
  }
}

/* ------------------------------- 
 * Footer
 * ------------------------------- */

footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 160px 32px;
  background: rgba(255, 250, 236, 0.92);
}

.footer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0px;
  gap: 32px;
  width: 256px;
  height: 223px;
}

.footer-caption {
  text-align: center;
}

.link {
  color: #006298;
}

@media (min-width: 544px) {
  .footer-content {
    width: 480px;
    height: 193px;
  }
}

@media (min-width: 768px) {
  .footer-content {
    width: 608px;
    height: 173px;
  }
}

@media (min-width: 1012px) {
  .footer-content {
    width: 852px;
    height: 173px;
  }
}

@media (min-width: 1280px) {
  .footer-content {
    width: 1280px;
    height: 153px;
  }
}
