: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/en001.jpg);
  background-size: cover;
  background-color: no-repeat;
  background-position: center right 20%;

  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 h2 {
  text-align: center;
  font-size: var(--font-size-step-1);
  font-weight: bold;
  margin: 5.0rem auto 0;
  width: 80%;
  position: relative;
  padding: 2.0rem 0;
}

#main .contents h2::after {
  content: "";
  display: block;
  width: 10%;
  height: 0.2rem;
  background: #00862e;
  position: absolute;
  bottom: 0;
  left: 45%;
}

#main .contents p {
  text-align: center;
  margin: 2.0rem auto 0;
  width: 80%;
}

#main .point {
  margin: 5.0rem 0 0;
  background: #F6F6F6;
}


#main .point ul {
  margin: 0 auto;
  width: 90%;
  max-width: 1600px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  padding-bottom: 4.0rem;
}

#main .point ul li {
  margin-top: 4.0rem;
  width: 80%;
}

#main .point ul li a {
  display: block;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  transition: var(--transition-normal);
  color: #3c3c3c;
  text-decoration: none;
  height: 100%;
}

#main .point ul li a:hover {
  opacity: 0.6;
}

#main .point ul li a h3 {
  margin: 2.0rem auto 0;
  width: 85%;
}

#main .point ul li a p {
  margin: 1.0rem auto 0;
  width: 85%;
}

#main .point ul li a span {
  display: block;
  margin: 1.0rem auto 2.0rem;
  width: 85%;
  color: #00862e;
  font-weight: bold;
}

#main .point ul li a span::after {
  content: "　→";
  font-weight: bold;
}

@media screen and (min-width:768px) {
  #main .point ul li {
    width: 30%;
  }

}