:root {
  /* Google Font の適用 */
  --font-primary: 'Inter', system-ui, -apple-system, sans-serif;

  /* step-0: 本文用 (スマホ 16px 〜 PC 18px) */
  --font-size-step-0: clamp(1rem, 0.95vw + 0.8rem, 1.125rem);

  /* step-1: 小見出し・h3用 (スマホ 20px 〜 PC 24px) */
  --font-size-step-1: clamp(1.25rem, 1.2vw + 1rem, 1.5rem);

  /* step-2: 中見出し・h2用 (スマホ 28px 〜 PC 40px) */
  --font-size-step-2: clamp(1.75rem, 2.5vw + 1.2rem, 2.5rem);

  /* step-3: 大見出し・h1用 (スマホ 32px 〜 PC 56px) */
  --font-size-step-3: clamp(2rem, 5vw + 1rem, 3.5rem);

  /* step-4: header (スマホ 16px 〜 PC 18px) */
  --font-size-step-4: clamp(1.0rem, 1.7vw, 1.125rem);

  /* トランジション（アニメーション設定） */
  --transition-fast: all 0.2s ease;
  --transition-normal: all 0.3s ease;
}


#main {
  margin: 0;
  padding: 0;
  font-family: var(--font-primary);
  font-size: var(--font-size-step-0);
}

#main .title {
  background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url(images/en058.png);
  background-size: cover;
  background-color: no-repeat;
  background-position: center left 30%;

  height: 60vh;

  color: #fff;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
}

#main .title div {
  display: block;
  width: 100%;
  max-width: 1600px;
}


#main .title p {
  width: 80%;
  margin: 0 auto;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: var(--font-size-step-0);
}

#main .title h1 {
  width: 80%;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: var(--font-size-step-3);
  line-height: 1.2;
  margin: 1.0rem auto;
}

#main .title h2 {
  width: 80%;
  margin: 0 auto;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: var(--font-size-step-0);
  font-weight: normal;
}

#main .contents {
  max-width: 1600px;
  margin: 0 auto;
}

#main .contents .sprit h3 {
  margin: 0.5rem 2.0rem 0;
  font-size: var(--font-size-step-1);
  font-weight: bold;
}

#main .contents .sprit h4 {
  margin: 2.0rem 2.0rem 0;
  font-size: var(--font-size-step-4);
  font-weight: bold;
  color: #00862e;
}

#main .contents .sprit p {
  margin: 1.0rem 2.0rem 2.0rem;
}

#main .contents .sprit div {
  margin: 0 1.0rem;
}

@media screen and (min-width:768px) {
  #main .contents .sprit {
    display: flex;
    justify-content: space-around;
    align-items: center;
  }

  #main .contents .sprit div {
    width: 48%;
    margin-top: 2.0rem;
  }
}


#main .contents .sdgs {
  max-width: 1600px;
  margin: 5.0rem auto;
  padding: 3.0rem 2.0rem;
  background: #eee;

}

#main .contents .sdgs>h2 {
  font-size: var(--font-size-step-1);
  font-weight: bold;
  text-align: center;
  margin: 0;
}

#main .contents .sdgs>h3 {
  font-size: var(--font-size-step-0);
  font-weight: normal;
  text-align: center;
  margin: 0;
}

#main .contents .sdgs>div {
  margin: 2.0rem 0 0;
  background-color: #fff;
  border-radius: 0.5rem;
  overflow: hidden;
}

#main .contents .sdgs>div>div:nth-of-type(2) {
  padding: 2.0rem;
}

#main .contents .sdgs>div>div h3 {
  color: #00862e;
}

#main .contents .sdgs>div>div p {
  margin-top: 1.0rem;
}

#main .contents .sdgs>div>div div {
  margin-top: 1.0rem;
  display: flex;
  flex-wrap: wrap;
}

#main .contents .sdgs>div>div div span {
  display: block;
  width: 20%;
  min-width: 5rem;
  max-width: 5rem;
  margin: 1.0rem 0.5rem 0 0;
}

@media screen and (min-width:768px) {
  #main .contents .sdgs>div {
    display: flex;
  }

  #main .contents .sdgs>div>div:nth-of-type(1) {
    width: 50%;
  }

  #main .contents .sdgs>div>div:nth-of-type(2) {
    width: 50%;
  }


}