: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 a {
  transition: var(--transition-normal);
}

#main a:hover {
  opacity: 0.6;
}

#main .title {
  background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url(images/en005.png);
  background-size: cover;
  background-color: no-repeat;
  background-position: center left 40%;

  height: 60vh;

  color: #fff;
  display: flex;
  flex-flow: column;
  align-items: center;
}

#main .title div {
  display: block;
  width: 100%;
  max-width: 1600px;
  margin-top: 5.0rem;
}


#main .title p {
  width: 90%;
  margin: 0 auto;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: var(--font-size-step-0);
}

#main .title h1 {
  width: 90%;
  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: 90%;
  margin: 0 auto;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: var(--font-size-step-0);
  font-weight: normal;
}

#main .subtitle {
  width: 100%;
  max-width: 1600px;
  margin: 5.0rem auto 5.0rem;
}

#main .subtitle h2 {
  text-align: center;
  color: #00862e;
}

#main .subtitle p {
  margin: 2.0rem auto 0;
  width: 90%;
  max-width: 800px;
}

#main .product {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto 5.0rem;
}

#main .product>h2 {
  background: #eee;
  text-align: center;
  padding: 1.0rem;
  font-size: var(--font-size-step-1);
  font-weight: bold;
}

#main .product .panel01 {
  margin: 5.0rem 0 0;
  padding: 0 3%;
}

#main .product .panel01>div {
  margin-top: 2.0rem;
}

#main .product .panel01>div h4 {
  font-size: var(--font-size-step-0);
  color: #00862e;
  font-weight: bold;
}

#main .product .panel01>div h3 {
  font-size: var(--font-size-step-2);
  font-weight: bold;
}

#main .product .panel01>div p {
  margin-top: 1.0rem;
}

#main .product .panel01>div>div {
  display: flex;
  justify-content: space-between;
  margin-top: 1.5rem;
}

#main .product .panel01>div>div span {
  display: block;
  width: 25%;
}

#main .product .panel01>div>div div {
  display: block;
  width: 70%;
}

#main .product .panel01>div>div div h5 {
  font-size: var(--font-size-step-1);
  font-weight: bold;
}

@media screen and (min-width:768px) {
  #main .product .panel01 {
    display: flex;
    justify-content: space-between;
  }

  #main .product .panel01>a {
    width: 50%;
    margin-top: 2.0rem;
  }

  #main .product .panel01>div {
    width: 45%;
  }
}

#main .product .panel02 {
  margin: 3.0rem 0 0;
  padding: 1px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

#main .product .panel02 a {
  display: block;
  width: 45%;
  text-decoration: none;
  color: #3c3c3c;
  border-radius: 16px;
  overflow: hidden;
  margin-top: 2.0rem;
}

#main .product .panel02 a:hover {
  opacity: 0.6;
}

#main .product .panel02 h5 {
  margin: 2.0rem 2.0rem 0;
  font-size: var(--font-size-step-1);
  font-weight: bold;
}

#main .product .panel02 p {
  margin: 1.0rem 2.0rem 2.0rem;
}

@media screen and (min-width:768px) {
  #main .product .panel02 a {
    width: 23%;
  }
}


#main .product>h3 {
  margin: 5.0rem 0.5rem 0;
  text-align: center;
  font-size: var(--font-size-step-1);
}

#main .product .panel03 {
  padding-bottom: 2.0rem;
}

#main .product .panel03 div {
  margin: 2.0rem auto 0;
  width: 95%;
}

#main .product .panel03 h3 {
  font-size: var(--font-size-step-1);
  margin-bottom: 2.0rem;
  font-weight: bold;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

#main .product .panel03 h4 {
  font-weight: bold;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

#main .product .panel03 p {
  margin: 2.0rem 1.0rem 0;
}

#main .product .panel03 div:nth-of-type(2) {
  display: flex;
  justify-content: space-between;
}

#main .product .panel03 div:nth-of-type(2) a {
  display: block;
  width: 48%;
}

@media screen and (min-width:768px) {
  #main .product .panel03 {
    display: flex;
    justify-content: space-around;
  }

  #main .product .panel03 div {
    width: 48%;
  }
}

#main .product .panel04 {
  background: #eee;
  padding: 1px 0 2.0rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

#main .product .panel04 a {
  display: block;
  width: 48%;
  margin-top: 2.0rem;
  background: #fff;
  overflow: hidden;
  border-radius: 0.7rem;
  text-decoration: none;
  color: #3c3c3c;
}

#main .product .panel04 span {
  display: block;
  width: 48%;
}

#main .product .panel04 a h5 {
  margin: 2.0rem auto 0;
  width: 90%;
  font-weight: bold;
  font-size: var(--font-size-step-1);
}

#main .product .panel04 a p {
  margin: 2.0rem auto;
  width: 90%;
}

@media screen and (min-width:768px) {
  #main .product .panel04 a {
    width: 32%;
  }

  #main .product .panel04 span {
    width: 32%;
  }

}