@charset "UTF-8";
@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap);
:root {
  --ff-noto-sans: "Noto Sans JP", Meiryo, sans-serif;
  --c-white: #ffffff;
  --c-black: #000000;
  --c-gray-light: #eeeeee;
  --c-green-primary: #23ac48;
  --c-green-dark: #009943;
  --c-green-light: #7bcd91;
  --c-text-main: #333333;
  --c-red-accent: #b34040;
}

/* ==========================================================================//
//
//　calc関数、エディターコンパイル用
//（calc関数をそのままscssに入れてコンパイルすると、自動で計算後のvwに変換されるため用意しています。）
//
//
// ========================================================================== */
/** -------------------------------- **
	PC用
*** ----------------------------------------------------------------- ***/
/*-- 基本ヘッダーフッター用、またはコンテンツ幅を超えてアートボードいっぱいにデザインされているもの --*/
/*-- mainタグ内（デザインのコンテンツ幅1280pxと両サイドのpadding40pxを足して1320） --*/
/** -------------------------------- **
	タブレット用
*** ----------------------------------------------------------------- ***/
/** -------------------------------- **
	SP用
*** ----------------------------------------------------------------- ***/
html,
body {
  font-family: var(--ff-noto-sans);
  font-weight: 400;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  -webkit-text-size-adjust: 100%;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}
@media (min-width: 768px) {
  html {
    scroll-padding-top: 76px;
  }
}

body.no-scroll {
  overflow: hidden;
}

@media (max-width: 767px) {
  .pc-item {
    display: none;
  }
}
@media (min-width: 768px) {
  .pc-item {
    display: block;
  }
}

@media (max-width: 767px) {
  .sp-item {
    display: block;
  }
}
@media (min-width: 768px) {
  .sp-item {
    display: none;
  }
}

/* ==================================================
margin
================================================== */
.m00 {
  margin: 0 !important;
}

.mAuto {
  margin-inline: auto !important;
}

.mtAuto {
  margin-top: auto !important;
}

.mbAuto {
  margin-bottom: auto !important;
}

.mlAuto {
  margin-left: auto !important;
}

.mrAuto {
  margin-right: auto !important;
}

/* ==================================================
padding
================================================== */
.p00 {
  padding: 0 !important;
}

#header-inc {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  background-color: var(--c-white);
  box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.2);
}

.header {
  position: relative;
}
.header__inner {
  display: flex;
  justify-content: space-between;
}

.site-logo {
  display: block;
  width: 69px;
  height: auto;
  margin-block: 19px;
  margin-inline-start: min(calc(40 / 1320 * 100vw), 40px);
}
@media (max-width: 767px) {
  .site-logo {
    margin-block: calc( 15/375 * 100vw) calc( 19/375 * 100vw);
    margin-inline-start: calc( 20/375 * 100vw);
  }
}
.site-logo a {
  display: block;
  width: 100%;
  height: auto;
}
.site-logo a img {
  width: 100%;
  height: auto;
  display: block;
}

.hamburger {
  display: none;
  width: 76px;
  height: 76px;
  position: relative;
  background-color: var(--c-green-primary);
  cursor: pointer;
}
@media (max-width: 767px) {
  .hamburger {
    display: block;
  }
}
.hamburger__line {
  position: absolute;
  left: 50%;
  width: 36px;
  height: 1px;
  background-color: #fff;
  transform: translateX(-50%);
  transition: transform 0.4s ease, opacity 0.3s ease;
}
.hamburger {
  /* 3本を中央基準で配置（合計23px） */
}
.hamburger__line:nth-child(1) {
  top: calc(50% - 11px);
}
.hamburger__line:nth-child(2) {
  top: 50%;
}
.hamburger__line:nth-child(3) {
  top: calc(50% + 11px);
}
.hamburger {
  /* OPEN */
}
.hamburger.is-open .hamburger__line:nth-child(1) {
  transform: translate(-50%, 11px) rotate(45deg);
}
.hamburger.is-open .hamburger__line:nth-child(2) {
  opacity: 0;
}
.hamburger.is-open .hamburger__line:nth-child(3) {
  transform: translate(-50%, -11px) rotate(-45deg);
}

.global-Hnav {
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .global-Hnav {
    display: none;
    overflow-y: scroll;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10;
    width: 100%;
    height: calc(100vh - 76px);
    background: #eee;
    box-shadow: inset 0 20px 20px -20px rgba(0, 0, 0, 0.2);
  }
}
.global-Hnav.is-open {
  display: block;
}
.global-Hnav ul {
  display: flex;
  margin: 0;
  padding-block: 15px;
  list-style: none;
}
@media (max-width: 767px) {
  .global-Hnav ul {
    flex-direction: column;
    padding: 0;
  }
}
.global-Hnav ul li {
  border-left: 1px solid #eee;
}
@media (max-width: 767px) {
  .global-Hnav ul li {
    border-left: none;
    border-bottom: 1px solid #ccc;
  }
}
.global-Hnav ul li a {
  display: block;
  padding-block: 15px;
  padding-inline: min(calc(30 / 1320 * 100vw), 30px);
  text-decoration: none;
  color: var(--c-black);
  font-size: 14px;
  font-weight: 600;
  transition: color 0.3s ease;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .global-Hnav ul li a {
    padding-inline: min(calc( 14/900 * 100vw), 20px);
  }
}
.global-Hnav ul li a span::after {
  content: "";
  position: absolute;
  top: calc(100% + 13px);
  left: 0;
  display: inline-block;
  width: 100%;
  height: 2px;
  background-color: var(--c-green-primary);
  opacity: 0;
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .global-Hnav ul li a:hover {
    color: var(--c-green-primary);
  }
  .global-Hnav ul li a:hover span::after {
    opacity: 1;
  }
}
@media (max-width: 767px) {
  .global-Hnav ul li a {
    position: relative;
    padding: calc( 28/375 * 100vw) calc( 20/375 * 100vw) calc( 29/375 * 100vw);
    font-size: calc( 16/375 * 100vw);
    font-weight: 600;
  }
  .global-Hnav ul li a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc( 29/375 * 100vw);
    display: inline-block;
    width: calc( 14/375 * 100vw);
    height: calc( 14/375 * 100vw);
    border-top: 2px solid var(--c-green-primary);
    border-right: 2px solid var(--c-green-primary);
    transform: rotate(45deg) translateY(-70%);
  }
  .global-Hnav ul li a.non-arr::after {
    display: none;
  }
}
.global-Hnav ul li a.is-current {
  color: var(--c-green-primary);
}
.global-Hnav ul li a.is-current span::after {
  opacity: 1;
}
.global-Hnav ul li span {
  position: relative;
  display: inline-block;
}
@media (max-width: 767px) {
  .global-Hnav .contact-btn {
    padding-block: calc( 40/375 * 100vw);
  }
}
.global-Hnav .contact-btn > a {
  display: block;
  text-decoration: none;
  font-size: 14px;
  padding: 32px min(calc(30 / 1320 * 100vw), 30px);
  transition: opacity 0.3s ease;
  font-weight: 600;
}
@media (any-hover: hover) {
  .global-Hnav .contact-btn > a:hover {
    opacity: 0.7;
  }
}
@media (max-width: 767px) {
  .global-Hnav .contact-btn > a {
    width: 73%;
    margin-inline: auto;
    padding: calc( 16/375 * 100vw) calc( 30/375 * 100vw);
    border-radius: calc( 80/375 * 100vw);
    border: 1px solid var(--c-black);
    text-align: center;
    font-size: calc( 16/375 * 100vw);
    font-weight: 600;
  }
}
@media (min-width: 768px) {
  .global-Hnav .contact-btn > a {
    background-color: var(--c-green-primary);
    color: var(--c-white);
  }
}

@media (max-width: 767px) {
  ul.global-Hnav-sub {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc( 10/375 * 100vw) calc( 20/375 * 100vw);
    margin-top: calc( -10/375 * 100vw);
    padding: 0 calc( 50/375 * 100vw) calc( 20/375 * 100vw);
  }
  ul.global-Hnav-sub li {
    border-bottom: none;
  }
  ul.global-Hnav-sub li a {
    padding: calc( 10/375 * 100vw) calc( 20/375 * 100vw) 0 0;
    font-size: calc( 16/375 * 100vw);
    font-weight: 400;
  }
  ul.global-Hnav-sub li a::after {
    display: none;
  }
  ul.global-Hnav-sub li span {
    white-space: nowrap;
  }
  ul.global-Hnav-sub li span::before {
    content: "●";
    display: inline-block;
    color: var(--c-green-light);
    margin-right: calc( 8/375 * 100vw);
    font-size: calc( 8/375 * 100vw);
    vertical-align: calc( 2/375 * 100vw);
  }
}
@media (min-width: 768px) {
  ul.global-Hnav-sub {
    display: none;
  }
}

@media (max-width: 767px) {
  ul.legal-list {
    width: 73%;
    margin-block-end: calc( 30/375 * 100vw);
    margin-inline: auto;
    padding: 0 calc( 20/375 * 100vw);
  }
  ul.legal-list li {
    position: relative;
    display: flex;
    align-items: center;
    border-bottom: none;
  }
  ul.legal-list li a {
    padding: 0;
    color: var(--c-black);
    text-decoration: none;
    font-size: calc( 14/375 * 100vw);
    font-weight: 400;
  }
  ul.legal-list li a::before {
    content: "";
    display: inline-block;
    width: calc( 8/375 * 100vw);
    height: calc( 8/375 * 100vw);
    border-right: 1px solid var(--c-text-main);
    border-bottom: 1px solid var(--c-text-main);
    transform: rotate(315deg);
    margin-inline-end: calc( 15/375 * 100vw);
    vertical-align: calc( 2/375 * 100vw);
  }
  ul.legal-list li a::after {
    display: none;
  }
  ul.legal-list li + li {
    margin-top: calc( 28/375 * 100vw);
  }
}
@media (min-width: 768px) {
  ul.legal-list {
    display: none;
  }
}

.footer {
  position: relative;
  background-color: #f3f3f3;
  color: var(--c-black);
  padding: min(calc(60 / 1320 * 100vw), 60px) 0 min(calc(40 / 1320 * 100vw), 40px);
  font-size: min(calc(14 / 1320 * 100vw), 14px);
}
@media (max-width: 767px) {
  .footer {
    padding: calc( 35/375 * 100vw) 0 0;
  }
}
.footer .site-logo {
  width: 113px;
  margin-inline-start: 0;
}
@media (max-width: 767px) {
  .footer .site-logo {
    width: 97px;
  }
}
.footer .site-logo img {
  width: 100%;
  height: auto;
  display: block;
}
.footer__primary {
  border-bottom: 1px solid #ddd;
  padding-bottom: min(calc(43 / 1320 * 100vw), 43px);
  margin-bottom: min(calc(20 / 1320 * 100vw), 20px);
}
@media (max-width: 767px) {
  .footer__primary {
    padding-bottom: calc( 50/375 * 100vw);
    margin-bottom: calc( 0/375 * 100vw);
  }
}
@media (max-width: 767px) {
  .footer__primary .footer__inner {
    flex-direction: column;
    align-items: center;
    gap: calc( 30/375 * 100vw);
  }
}
.footer__primary nav {
  display: flex;
  align-items: center;
  gap: min(calc(40 / 1320 * 100vw), 40px);
  margin-inline-start: auto;
}
@media (max-width: 767px) {
  .footer__primary nav {
    flex-direction: column;
    gap: calc( 50/375 * 100vw);
    margin-inline-start: 0;
  }
}
.footer__primary nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: min(calc(50 / 1320 * 100vw), 50px);
  padding: 0;
  margin: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .footer__primary nav ul {
    gap: calc( 47/375 * 100vw) calc( 10/375 * 100vw);
  }
}
@media (max-width: 767px) {
  .footer__primary nav ul li {
    width: calc((100% - 2.6666666667vw) / 2);
    text-align: center;
  }
}
.footer__primary nav ul li a {
  color: var(--c-black);
  text-decoration: none;
  font-size: min(calc(16 / 1320 * 100vw), 16px);
}
@media (any-hover: hover) {
  .footer__primary nav ul li a:hover {
    text-decoration: underline;
  }
}
@media (max-width: 767px) {
  .footer__primary nav ul li a {
    font-size: calc( 16/375 * 100vw);
  }
}
.footer__primary nav .contact-btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(calc(150 / 1320 * 100vw), 150px);
  height: min(calc(50 / 1320 * 100vw), 50px);
  padding: min(calc(16 / 1320 * 100vw), 16px) min(calc(20 / 1320 * 100vw), 20px);
  background-color: transparent;
  border-radius: min(calc(50 / 1320 * 100vw), 50px);
  background-color: var(--c-green-primary);
  border-color: var(--c-green-primary);
  color: var(--c-white);
  text-decoration: none;
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s;
  font-weight: 600;
  font-size: min(calc(16 / 1320 * 100vw), 16px);
}
@media (any-hover: hover) {
  .footer__primary nav .contact-btn a:hover {
    opacity: 0.7;
  }
}
@media (max-width: 767px) {
  .footer__primary nav .contact-btn a {
    width: calc( 275/375 * 100vw);
    height: calc( 50/375 * 100vw);
    padding: calc( 16/375 * 100vw) calc( 20/375 * 100vw);
    border-radius: calc( 50/375 * 100vw);
    font-size: calc( 16/375 * 100vw);
  }
}
.footer__secondary .footer__inner {
  padding-block: min(calc(43 / 1320 * 100vw), 43px);
}
@media (max-width: 767px) {
  .footer__secondary .footer__inner {
    flex-direction: column;
    gap: calc( 20/375 * 100vw);
    padding-block: calc( 45/375 * 100vw) calc( 40/375 * 100vw);
    text-align: center;
  }
}
.footer__secondary ul {
  display: flex;
  gap: min(calc(20 / 1320 * 100vw), 20px);
  padding: 0;
  margin: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .footer__secondary ul {
    gap: 0;
    justify-content: center;
    width: 100%;
  }
}
@media (max-width: 767px) {
  .footer__secondary ul li {
    width: calc((100% - 2.6666666667vw) / 2);
    text-align: center;
  }
}
.footer__secondary ul li a {
  color: var(--c-black);
  text-decoration: none;
  font-size: min(calc(14 / 1320 * 100vw), 14px);
}
@media (any-hover: hover) {
  .footer__secondary ul li a:hover {
    text-decoration: underline;
  }
}
@media (max-width: 767px) {
  .footer__secondary ul li a {
    font-size: calc( 14/375 * 100vw);
  }
}
.footer__secondary p {
  margin-inline-start: auto;
}
@media (max-width: 767px) {
  .footer__secondary p {
    margin-top: calc( 75/375 * 100vw);
    margin-inline-start: 0;
    font-size: calc( 14/375 * 100vw);
  }
}
.footer__inner {
  display: flex;
  align-items: center;
  max-width: 1320px;
  margin-inline: auto;
  padding-inline: min(calc(20 / 1320 * 100vw), 20px);
}
@media (max-width: 767px) {
  .footer__inner {
    padding-inline: calc( 20/375 * 100vw);
  }
}

.pagetop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 10;
  opacity: 0;
  transition: 0.3s;
}
@media (max-width: 767px) {
  .pagetop {
    right: calc( 5/375 * 100vw);
    bottom: calc( 20/375 * 100vw);
  }
}
.pagetop.is-visible {
  opacity: 1;
}
.pagetop.is-fixed {
  position: absolute;
  top: -25px;
  bottom: auto;
}
@media (max-width: 767px) {
  .pagetop.is-fixed {
    top: calc( -25/375 * 100vw);
  }
}
@media (max-width: 767px) {
  .pagetop img {
    width: calc( 50/375 * 100vw);
    height: calc( 50/375 * 100vw);
  }
}
@media (any-hover: hover) {
  .pagetop {
    transition: opacity 0.3s ease;
  }
  .pagetop:hover {
    opacity: 0.7;
  }
}

.main-content {
  padding-top: 80px;
}
@media (max-width: 767px) {
  .main-content {
    padding-top: 76px;
  }
}

.lower-page .mv {
  position: relative;
  height: min(calc(330 / 1320 * 100vw), 330px);
  overflow: hidden;
}
@media (max-width: 767px) {
  .lower-page .mv {
    height: calc( 240/375 * 100vw);
  }
}
.lower-page .mv::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  transform: translateX(-50%);
  height: 20px;
  width: 40px;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  z-index: 0;
  background-color: var(--c-white);
}
.lower-page .mv .mv__title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  padding-inline: min(calc(20 / 1320 * 100vw), 20px);
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  text-align: center;
  color: var(--c-white);
  letter-spacing: 0.025em;
}
.lower-page .mv .mv__title .mv__title-en {
  margin-block-end: min(calc(20 / 1320 * 100vw), 20px);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 400;
  font-size: min(calc(27 / 1320 * 100vw), 27px);
}
@media (max-width: 767px) {
  .lower-page .mv .mv__title .mv__title-en {
    font-size: calc( 11/375 * 100vw);
  }
}
.lower-page .mv .mv__title .mv__title-jp {
  text-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  font-weight: 400;
  font-size: min(calc(54 / 1320 * 100vw), 54px);
}
@media (max-width: 767px) {
  .lower-page .mv .mv__title .mv__title-jp {
    font-size: calc( 32/375 * 100vw);
  }
}
.lower-page .mv.no_img {
  height: 200px;
  background-color: var(--c-green-light);
}
.lower-page .mv.no_img .mv__title .mv__title-en {
  margin-block-end: min(calc(12 / 1320 * 100vw), 12px);
  font-size: min(calc(20 / 1320 * 100vw), 20px);
  font-weight: 400;
}
@media (max-width: 767px) {
  .lower-page .mv.no_img .mv__title .mv__title-en {
    margin-block-end: calc( 12/375 * 100vw);
    font-size: calc( 12/375 * 100vw);
  }
}
.lower-page .mv.no_img .mv__title .mv__title-jp {
  font-size: min(calc(40 / 1320 * 100vw), 40px);
  font-weight: 300;
}
@media (max-width: 767px) {
  .lower-page .mv.no_img .mv__title .mv__title-jp {
    font-size: calc( 32/375 * 100vw);
  }
}
.lower-page .mv__image {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.lower-page .mv__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
@media (min-width: 1441px) {
  .lower-page .mv__image img {
    height: auto;
    min-height: 100%;
  }
}
@media (max-width: 1440px) {
  .lower-page .mv__image img {
    width: auto;
    min-width: 100%;
    height: 100%;
  }
}
@media (max-width: 767px) {
  .lower-page .mv__image img {
    width: auto;
    min-width: 100%;
    height: 100%;
  }
}

.breadcrumb {
  width: 100%;
  margin-block: min(calc(15 / 1320 * 100vw), 15px);
  background-color: var(--c-white);
}
@media (max-width: 767px) {
  .breadcrumb {
    margin-block: calc( 14/375 * 100vw) calc( 10/375 * 100vw);
  }
}
.breadcrumb__inner {
  max-width: 1320px;
  margin-inline: auto;
  padding-inline: min(calc(20 / 1320 * 100vw), 20px);
}
@media (max-width: 767px) {
  .breadcrumb__inner {
    padding-inline: calc( 20/375 * 100vw);
  }
}
.breadcrumb__list {
  display: flex;
}
.breadcrumb__item {
  margin-block: min(calc(6 / 1320 * 100vw), 6px);
  font-size: min(calc(13 / 1320 * 100vw), 13px);
  color: var(--c-black);
  letter-spacing: 0.025em;
}
@media (max-width: 767px) {
  .breadcrumb__item {
    margin-block: calc( 4/375 * 100vw);
    font-size: calc( 13/375 * 100vw);
  }
}
.breadcrumb__item + .breadcrumb__item::before {
  content: ">";
  margin: 0 min(calc(13 / 1320 * 100vw), 13px);
  color: #ccc;
  font-size: min(calc(20 / 1320 * 100vw), 20px);
  line-height: 0;
  vertical-align: min(calc(-3 / 1320 * 100vw), -3px);
}
@media (max-width: 767px) {
  .breadcrumb__item + .breadcrumb__item::before {
    margin: 0 calc( 14/375 * 100vw);
    font-size: calc( 16/375 * 100vw);
  }
}
.breadcrumb__link {
  text-decoration: none;
  font-size: min(calc(13 / 1320 * 100vw), 13px);
  color: var(--c-green-light);
}
@media (any-hover: hover) {
  .breadcrumb__link:hover {
    text-decoration: underline;
  }
}
@media (max-width: 767px) {
  .breadcrumb__link {
    font-size: calc( 13/375 * 100vw);
  }
}

.cta {
  padding-inline: min(1.5151515152vw, 20px);
}
.lower-page .cta {
  border-top: 1px solid #ddd;
  margin-top: 130px;
}
@media (max-width: 767px) {
  .lower-page .cta {
    margin-top: calc( 120/375 * 100vw);
  }
}
@media (max-width: 767px) {
  .cta {
    padding-inline: calc( 20/375 * 100vw);
  }
}
.cta__inner {
  max-width: 1280px;
  margin-inline: auto;
  padding-block: min(calc(80 / 1320 * 100vw), 80px);
}
@media (max-width: 767px) {
  .cta__inner {
    padding-block: calc( 80/375 * 100vw);
  }
}
.cta-bnr {
  display: grid;
  gap: min(calc(20 / 1320 * 100vw), 20px);
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 767px) {
  .cta-bnr {
    grid-template-columns: 1fr;
    gap: calc( 20/375 * 100vw);
  }
}
.cta-bnr__item {
  display: block;
  overflow: hidden;
}
.cta-bnr__item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.3s ease;
}
@media (any-hover: hover) {
  .cta-bnr__item:hover img {
    opacity: 0.7;
  }
}

@media (max-width: 767px) {
  .section {
    padding-block: calc( 40/375 * 100vw) 0;
  }
}
.section.icon-arT.bg-grade {
  padding-block: min(calc(115 / 1320 * 100vw), 115px) 0;
}
@media (max-width: 767px) {
  .section.icon-arT.bg-grade {
    padding-block: calc( 113/375 * 100vw) 0;
  }
}
.section__inner {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: min(calc(60 / 1320 * 100vw), 60px);
}
@media (max-width: 767px) {
  .section__inner {
    padding-inline: calc( 20/375 * 100vw);
  }
}
.section__content {
  margin-inline: auto;
}
.section .section-title, .section__title {
  margin-block-end: min(calc(55 / 1320 * 100vw), 55px);
  text-align: center;
  font-size: min(calc(40 / 1320 * 100vw), 40px);
  line-height: 1.5;
  font-weight: 350;
  letter-spacing: 0.025em;
}
@media (max-width: 767px) {
  .section .section-title, .section__title {
    margin-block-end: calc( 40/375 * 100vw);
    font-size: calc( 26/375 * 100vw);
  }
}
.section .section-title-accent, .section__title-accent {
  font-size: min(calc(34 / 1320 * 100vw), 34px);
}
@media (max-width: 767px) {
  .section .section-title-accent, .section__title-accent {
    font-size: calc( 20/375 * 100vw);
  }
}
.section__text {
  margin-block-end: min(calc(40 / 1320 * 100vw), 40px);
  font-size: min(calc(16 / 1320 * 100vw), 16px);
  line-height: 2;
  letter-spacing: 0.025em;
}
@media (max-width: 767px) {
  .section__text {
    margin-block-end: calc( 30/375 * 100vw);
    font-size: calc( 14/375 * 100vw);
  }
}
.section__text-lead {
  margin-block-end: min(calc(80 / 1320 * 100vw), 80px);
  text-align: center;
  font-size: min(calc(20 / 1320 * 100vw), 20px);
  line-height: 2;
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  .section__text-lead {
    margin-block-end: calc( 70/375 * 100vw);
    font-size: calc( 18/375 * 100vw);
  }
}

.intro_area .section__text-lead {
  letter-spacing: 0.1em;
}

.btn {
  display: block;
  margin-inline: auto;
  font-weight: 600;
}
.btn a, .btn button {
  display: flex;
  align-items: center;
  padding-inline: min(calc(40 / 1320 * 100vw), 40px) min(calc(20 / 1320 * 100vw), 20px);
  height: min(calc(80 / 1320 * 100vw), 80px);
  border-radius: 80px;
  background: linear-gradient(90deg, #23ac48, #2daf4f, #36b256, #3eb55c, #45b863, #4cbb69, #53be70, #5ac176);
  color: var(--c-white);
  text-decoration: none;
  font-size: min(calc(20 / 1320 * 100vw), 20px);
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .btn a:hover, .btn button:hover {
    opacity: 0.7;
  }
}
@media (max-width: 767px) {
  .btn a, .btn button {
    height: calc( 60/375 * 100vw);
    padding-inline: calc( 31/375 * 100vw) calc( 20/375 * 100vw);
    font-size: calc( 16/375 * 100vw);
  }
}
.btn span {
  display: inline-block;
  letter-spacing: 0.025em;
}
.btn.circle-chevron-right {
  transition: opacity 0.3s ease;
}
.btn .icon-circle-chevron-right {
  margin-left: auto;
}
.btn--back a {
  position: relative;
  justify-content: center;
  padding-inline: min(calc(40 / 1320 * 100vw), 40px);
  height: min(calc(60 / 1320 * 100vw), 60px);
}
.btn--back a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: min(calc(22 / 1320 * 100vw), 22px);
  margin: auto;
  display: block;
  width: min(calc(16 / 1320 * 100vw), 16px);
  height: min(calc(16 / 1320 * 100vw), 16px);
  border-bottom: 2px solid var(--c-white);
  border-left: 2px solid var(--c-white);
  transform: rotate(45deg);
}
@media (max-width: 767px) {
  .btn--back a {
    height: calc( 60/375 * 100vw);
    padding-inline: calc( 20/375 * 100vw);
    font-size: calc( 16/375 * 100vw);
  }
  .btn--back a::before {
    left: calc( 32/375 * 100vw);
    width: calc( 14/375 * 100vw);
    height: calc( 14/375 * 100vw);
  }
}

.icon-chevron-right {
  position: relative;
  display: block;
  width: min(calc(20 / 1320 * 100vw), 20px);
  height: min(calc(40 / 1320 * 100vw), 40px);
}
@media (max-width: 767px) {
  .icon-chevron-right {
    width: calc( 24/375 * 100vw);
    height: calc( 24/375 * 100vw);
  }
}
.icon-chevron-right::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: min(calc(16 / 1320 * 100vw), 16px);
  height: min(calc(16 / 1320 * 100vw), 16px);
  border-top: 2px solid var(--c-white);
  border-right: 2px solid var(--c-white);
  transform: translate(-65%, -50%) rotate(45deg);
}
@media (max-width: 767px) {
  .icon-chevron-right::before {
    width: calc( 8/375 * 100vw);
    height: calc( 8/375 * 100vw);
  }
}

.icon-circle-chevron-right, .icon-circle-chevron-left {
  position: relative;
  display: block;
  width: min(calc(40 / 1320 * 100vw), 40px);
  height: min(calc(40 / 1320 * 100vw), 40px);
  border: 2px solid var(--c-white);
  background-color: var(--c-white);
  border-radius: 50%;
}
@media (max-width: 767px) {
  .icon-circle-chevron-right, .icon-circle-chevron-left {
    width: calc( 24/375 * 100vw);
    height: calc( 24/375 * 100vw);
  }
}
.icon-circle-chevron-right::before, .icon-circle-chevron-left::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: min(calc(16 / 1320 * 100vw), 16px);
  height: min(calc(16 / 1320 * 100vw), 16px);
  border-top: 2px solid var(--c-green-primary);
  border-right: 2px solid var(--c-green-primary);
  transform: translate(-65%, -50%) rotate(45deg);
}
@media (max-width: 767px) {
  .icon-circle-chevron-right::before, .icon-circle-chevron-left::before {
    width: calc( 8/375 * 100vw);
    height: calc( 8/375 * 100vw);
  }
}

.circle-chevron-left .icon-circle-chevron-left {
  transform: rotate(180deg);
}

.bg-grade {
  position: relative;
}
.bg-grade::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: min(calc(100 / 1320 * 100vw), 100px);
  background-image: -moz-linear-gradient(0deg, rgb(255, 255, 255) 0%, rgb(243, 243, 243) 100%);
  background-image: -webkit-linear-gradient(0deg, rgb(255, 255, 255) 0%, rgb(243, 243, 243) 100%);
  background-image: -ms-linear-gradient(0deg, rgb(255, 255, 255) 0%, rgb(243, 243, 243) 100%);
  background-image: linear-gradient(0deg, rgb(255, 255, 255) 0%, rgb(243, 243, 243) 100%);
  pointer-events: none;
  z-index: -1;
}
@media (max-width: 767px) {
  .bg-grade::after {
    height: calc( 100/375 * 100vw);
  }
}

.icon-arT {
  position: relative;
}
.icon-arT::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: min(calc(80 / 1320 * 100vw), 80px);
  background: linear-gradient(180deg, #23ac48, #46b65e, #60c074, #78c989, #8fd39e, #a6dcb2, #bce5c6, #d3eeda);
}
@media (max-width: 767px) {
  .icon-arT::before {
    height: calc( 80/375 * 100vw);
  }
}

.link-text {
  text-decoration: underline;
  color: var(--c-green-primary);
  font-size: min(calc(16 / 1320 * 100vw), 16px);
  line-height: 2;
  letter-spacing: 0.025em;
  transition: text-decoration 0.3s ease;
}
@media (any-hover: hover) {
  .link-text:hover {
    text-decoration: none;
  }
}
@media (max-width: 767px) {
  .link-text {
    font-size: calc( 16/375 * 100vw);
  }
}
.link-text--external {
  display: inline-block;
  padding-right: min(calc(20 / 1320 * 100vw), 20px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%2323ac48' d='M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z'/%3E%3C/svg%3E") no-repeat right center;
  background-size: min(calc(16 / 1320 * 100vw), 16px) min(calc(16 / 1320 * 100vw), 16px);
  color: var(--c-green-primary);
}
@media (max-width: 767px) {
  .link-text--external {
    padding-right: calc( 18/375 * 100vw);
    background-size: calc( 14/375 * 100vw) calc( 14/375 * 100vw);
  }
}

.link-arrow {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: min(calc(10 / 1320 * 100vw), 10px);
  margin-top: min(calc(10 / 1320 * 100vw), 10px);
  text-decoration: underline;
  color: var(--c-green-primary);
  font-size: min(calc(16 / 1320 * 100vw), 16px);
  letter-spacing: 0.025em;
  transition: text-decoration 0.3s ease;
}
@media (any-hover: hover) {
  .link-arrow:hover {
    text-decoration: none;
  }
}
@media (max-width: 767px) {
  .link-arrow {
    gap: calc( 8/375 * 100vw);
    font-size: calc( 16/375 * 100vw);
  }
}
.link-arrow::before {
  content: "";
  display: block;
  width: min(calc(8 / 1320 * 100vw), 8px);
  height: min(calc(8 / 1320 * 100vw), 8px);
  border-top: 2px solid var(--c-green-primary);
  border-right: 2px solid var(--c-green-primary);
  transform: rotate(45deg);
}
@media (max-width: 767px) {
  .link-arrow::before {
    width: calc( 8/375 * 100vw);
    height: calc( 8/375 * 100vw);
  }
}

.text-right {
  text-align: right;
}

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

.text-left {
  text-align: left;
}