: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/en094.png);
  background-size: cover;
  background-color: no-repeat;
  background-position: center left 40%;

  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;
  margin-top: -20.0rem;
}


#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: 2.0rem auto;
  padding: 2.0rem 1.0rem;
  background-color: #eee;
}

#main .contents div>p {
  margin-top: 1.0rem;
}

#main .contents>div>span {
  display: block;
  margin-top: 1.0rem;
  border: solid #ccc 1px;
  border-radius: 0.5rem;
  padding: 1.0rem;
}

#main .contents>div:nth-of-type(2) {
  background: #fff;
  margin-top: 2.0rem;
  border: solid #ccc 1px;
  border-radius: 0.5rem;
  padding: 2.0rem;
}

#main .contents>div table {
  border-collapse: collapse;
  border: none;
}

#main .contents>div table td {
  vertical-align: top;
  text-align: left;
  width: 50%;
  padding: 1.0rem;
}

#main .contents>div table td strong {
  display: block;
  margin-top: 1.5rem;
}

#main .contents>div table td strong span {
  color: red;
}

#main .contents>div table td input,
#main .contents>div table td select,
#main .contents>div table td textarea {
  display: block;
  margin-top: 0.5rem;
  border: solid 1px #ccc;
  padding: 0.3rem 0.5rem;
  border-radius: 0.5rem;
  font-family: var(--font-primary);
  width: 100%;
  font-size: var(--font-size-step-0);
}

#main .contents input[type="submit"] {
  display: block;
  background: #00862e;
  margin: 2.0rem auto;
  width: 90%;
  border: solid 2px #00862e;
  color: #fff;
  text-align: center;
  font-size: var(--font-size-step-0);
  font-family: var(--font-primary);
  font-weight: bold;
  padding: 0.5rem;
  border-radius: 0.5rem;
}


@media screen and (min-width:768px) {
  #main .contents {
    display: flex;
    justify-content: space-around;
  }

  #main .contents>div:nth-of-type(1) {
    width: 40%;
  }

  #main .contents>div:nth-of-type(2) {
    width: 55%;
  }

}