@charset "UTF-8";
#container {
  margin-top: -8.75rem;
}
@media screen and (min-width: 769px) and (max-width: 1280px) {
  #container {
    margin-top: -6rem;
  }
}

/*=============================================================
kv
=============================================================*/
#kv .outer {
  width: 100%;
  height: 100vh;
  max-height: 56vw;
  min-height: 40rem;
  background-image: url(../images/kv.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  display: flex;
  justify-content: flex-end;
  position: relative;
}
@media screen and (max-width: 520px) {
  #kv .outer {
    height: 125vw;
    max-height: none;
    min-height: auto;
  }
}
#kv .outer::before {
  content: "";
  position: absolute;
  width: 50%;
  height: 100%;
  background-color: rgba(32, 50, 51, 0.85);
  top: 0;
  right: 0;
  -webkit-clip-path: polygon(20% 0%, 100% 0, 100% 100%, 0% 100%);
          clip-path: polygon(20% 0%, 100% 0, 100% 100%, 0% 100%);
}
@media screen and (max-width: 520px) {
  #kv .outer::before {
    -webkit-clip-path: none;
            clip-path: none;
    width: 100%;
    height: 45vw;
    top: auto;
    bottom: 0;
    background-color: transparent;
  }
}
#kv .wrap {
  width: 50%;
  box-sizing: border-box;
  padding: 8.75rem 5vw 0 0;
  position: relative;
}
@media screen and (min-width: 769px) and (max-width: 1280px) {
  #kv .wrap {
    padding: 6rem 5vw 0 0;
  }
}
@media screen and (max-width: 520px) {
  #kv .wrap {
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(32, 50, 51, 0.1) 0%, rgba(32, 50, 51, 0.1) 25%, rgba(32, 50, 51, 0.5) 100%);
  }
}
#kv .wrap .box {
  height: calc(100% - 5vw);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
}
@media screen and (max-width: 520px) {
  #kv .wrap .box {
    justify-content: flex-end;
    height: calc(100% - 20vw);
  }
}
#kv .wrap .box .fukidashi {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(0.938rem, 0.061rem + 1.82vw, 2.25rem);
  color: #cdcfd0;
  font-weight: 400;
  padding-bottom: 0.5em;
  background-image: url(../images/parts_underline.svg);
  background-repeat: no-repeat;
  background-position: bottom;
  background-size: contain;
}
@media screen and (max-width: 520px) {
  #kv .wrap .box .fukidashi {
    color: #fff;
    font-size: clamp(1rem, 0.016rem + 4.38vw, 1.438rem);
  }
}
#kv .wrap .box .catchphrase_sub {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(1.125rem, 0.039rem + 2.26vw, 2.75rem);
  color: #cdcfd0;
  font-weight: 600;
  margin-right: -0.2em;
}
@media screen and (max-width: 520px) {
  #kv .wrap .box .catchphrase_sub {
    color: #fff;
    font-size: clamp(1rem, 0.016rem + 4.38vw, 1.438rem);
  }
}
#kv .wrap .box .catchphrase_main {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(2.375rem, -0.047rem + 5.04vw, 6rem);
  color: #cdcfd0;
  font-weight: 600;
}
@media screen and (max-width: 520px) {
  #kv .wrap .box .catchphrase_main {
    color: #fff;
    font-size: clamp(2rem, 0.031rem + 8.75vw, 2.875rem);
  }
}
#kv .wrap .box .catchphrase_main span {
  background-color: #cdcfd0;
  color: #203233;
  display: inline-block;
  line-height: 1;
  padding: 0.1em 0.1em 0.15em;
  margin: 0 0.1em;
}
@media screen and (max-width: 520px) {
  #kv .wrap .box .catchphrase_main span {
    color: #203233;
    background-color: #fff;
  }
}
#kv .wrap .box .date {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(0.938rem, 0.061rem + 1.82vw, 2.25rem);
  color: #cdcfd0;
  font-weight: 700;
}
@media screen and (max-width: 520px) {
  #kv .wrap .box .date {
    color: #fff;
    font-size: clamp(0.875rem, 0.031rem + 3.75vw, 1.25rem);
  }
}
#kv .wrap .zoot {
  position: absolute;
  width: 13.5vw;
  right: 5vw;
  bottom: 4vw;
}
@media screen and (max-width: 520px) {
  #kv .wrap .zoot {
    width: 20vw;
  }
}

/*=============================================================
large_banner
=============================================================*/
#large_banner .outer {
  background-color: #cdcfd0;
  display: flex;
  justify-content: space-between;
}
#large_banner .num_wrap {
  background-color: #203233;
  box-sizing: border-box;
  padding: 3vw;
  position: relative;
}
@media screen and (max-width: 520px) {
  #large_banner .num_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}
#large_banner .num_wrap::after {
  content: "";
  position: absolute;
  width: 3.5vw;
  height: 100%;
  -webkit-clip-path: polygon(100% 50%, 0 0, 0 100%);
          clip-path: polygon(100% 50%, 0 0, 0 100%);
  background-color: #203233;
  top: 0;
  right: calc(-3.5vw + 1px);
}
@media screen and (max-width: 520px) {
  #large_banner .num_wrap::after {
    -webkit-clip-path: polygon(100% 55%, 0 0, 0 100%);
            clip-path: polygon(100% 55%, 0 0, 0 100%);
  }
}
#large_banner .num_wrap .text {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(0.813rem, 0.019rem + 1.65vw, 2rem);
  line-height: 1;
  color: #fff;
  font-weight: 600;
}
@media screen and (max-width: 520px) {
  #large_banner .num_wrap .text {
    font-size: clamp(0.625rem, 0.063rem + 2.5vw, 0.875rem);
  }
}
#large_banner .num_wrap .num {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(3.375rem, 0.034rem + 6.95vw, 8.375rem);
  line-height: 1.3;
  color: #fff;
  font-weight: 700;
  text-align: right;
}
@media screen and (max-width: 520px) {
  #large_banner .num_wrap .num {
    font-size: clamp(2rem, 0.031rem + 8.75vw, 2.875rem);
  }
}
#large_banner .text_wrap {
  width: 77%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
#large_banner .text_wrap .top {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(1.688rem, -0.025rem + 3.56vw, 4.25rem);
  font-weight: 600;
  line-height: 1.5;
  color: #203233;
  position: relative;
  box-sizing: border-box;
  padding-left: 0.5em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .top {
    font-size: clamp(1.188rem, 0.063rem + 5vw, 1.688rem);
    padding: 0.5em 0.5em 0.5em 1em;
    line-height: 1.2;
  }
}
#large_banner .text_wrap .top::before {
  content: "最大";
  font-size: clamp(1rem, -0.002rem + 2.09vw, 2.5rem);
  color: #c99234;
  writing-mode: vertical-rl;
  position: absolute;
  width: 1em;
  height: 100%;
  top: 1.3em;
  left: -0.2em;
  letter-spacing: 0.4em;
  font-weight: 700;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .top::before {
    left: 6vw;
    top: 1.5em;
    font-size: clamp(1rem, 0.859rem + 0.63vw, 1.063rem);
  }
}
#large_banner .text_wrap .top .yellow {
  color: #c99234;
  margin-right: 0.25em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .top .yellow {
    margin-left: 1em;
  }
}
#large_banner .text_wrap .top .yellow > span {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  letter-spacing: 0.025em;
  font-size: clamp(3.375rem, 0.034rem + 6.95vw, 8.375rem);
  position: relative;
}
#large_banner .text_wrap .top .yellow > span::before {
  content: "";
  position: absolute;
  width: 2.3vw;
  aspect-ratio: 1/1;
  background-image: url(../images/parts_tris.svg);
  background-size: contain;
  background-repeat: no-repeat;
  top: 0;
  right: -1.5vw;
}
#large_banner .text_wrap .bottom {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #203233;
}
#large_banner .text_wrap .bottom .text {
  display: flex;
  align-items: center;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(0.625rem, 0.04rem + 1.22vw, 1.5rem);
  color: #203233;
  font-weight: 700;
  padding: 1em 0;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-left: 5vw;
    font-size: clamp(0.625rem, 0.063rem + 2.5vw, 0.875rem);
  }
}
#large_banner .text_wrap .bottom .text span {
  font-size: clamp(1rem, -0.002rem + 2.09vw, 2.5rem);
  margin-right: 1em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .text span {
    font-size: clamp(0.813rem, -0.031rem + 3.75vw, 1.188rem);
  }
}
#large_banner .text_wrap .bottom .btn_contact a {
  display: flex;
  align-items: center;
  height: 100%;
  background-color: #203233;
  -webkit-clip-path: polygon(8% 0, 100% 0, 100% 100%, 0% 100%);
          clip-path: polygon(8% 0, 100% 0, 100% 100%, 0% 100%);
  font-size: clamp(0.625rem, 0.04rem + 1.22vw, 1.5rem);
  box-sizing: border-box;
  padding: 0 5em 0 4em;
  transition: 0.3s ease;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .btn_contact a {
    padding: 0 2em 0 3em;
    font-size: clamp(0.625rem, 0.063rem + 2.5vw, 0.875rem);
  }
}
#large_banner .text_wrap .bottom .btn_contact a span {
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: 1em;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  position: relative;
  padding-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .btn_contact a span {
    line-height: 1.5;
  }
}
#large_banner .text_wrap .bottom .btn_contact a span::before, #large_banner .text_wrap .bottom .btn_contact a span::after {
  content: "";
  position: absolute;
  transition: 0.2s ease;
  transition-delay: 0.1s;
}
#large_banner .text_wrap .bottom .btn_contact a span::before {
  width: 2em;
  border: 1px solid #fff;
  bottom: 0;
  right: -2.5em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .btn_contact a span::before {
    right: 0.6em;
    bottom: 0.1em;
  }
}
#large_banner .text_wrap .bottom .btn_contact a span::after {
  width: 0.5em;
  border: 1px solid #fff;
  transform: rotate(45deg);
  bottom: 0.2em;
  right: -2.6em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .btn_contact a span::after {
    right: 0.5em;
    bottom: 0.3em;
  }
}
#large_banner .text_wrap .bottom .btn_contact a:hover {
  opacity: 0.8;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .btn_contact a:hover {
    opacity: 1;
  }
}
#large_banner .text_wrap .bottom .btn_contact a:hover span::before {
  width: 2.5em;
  right: -3em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .btn_contact a:hover span::before {
    right: 0.6em;
    bottom: 0.1em;
  }
}
#large_banner .text_wrap .bottom .btn_contact a:hover span::after {
  right: -3.1em;
}
@media screen and (max-width: 520px) {
  #large_banner .text_wrap .bottom .btn_contact a:hover span::after {
    right: 0.5em;
    bottom: 0.3em;
  }
}

/*=============================================================
#concept
=============================================================*/
#concept .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  background-color: #fff;
}
@media screen and (max-width: 520px) {
  #concept .outer {
    padding: 4rem 0;
  }
}
#concept .inner .logo_cp {
  width: 21rem;
  text-align: center;
  margin: 0 auto;
}
@media screen and (max-width: 520px) {
  #concept .inner .logo_cp {
    width: 80%;
  }
}
#concept .inner h2 {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  -webkit-text-decoration-color: #333;
          text-decoration-color: #333;
  text-underline-offset: 0.75em;
  box-sizing: border-box;
  padding-bottom: 0.75em;
  margin-top: 4rem;
}
@media screen and (max-width: 520px) {
  #concept .inner h2 {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 520px) {
  #concept .inner h2 {
    margin-top: 3rem;
  }
}
#concept .inner > p {
  font-size: clamp(0.875rem, -0.017rem + 1.86vw, 1.375rem);
  line-height: 3;
  text-align: center;
}
@media screen and (max-width: 520px) {
  #concept .inner > p {
    font-size: 1rem;
    line-height: 2;
    text-align: left;
  }
}
#concept .inner h2 + p {
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #concept .inner h2 + p {
    margin-top: 2rem;
  }
}
#concept .inner .btn_zoot {
  width: 15rem;
  margin: 4rem auto 0;
  font-size: 1rem;
}
@media screen and (max-width: 520px) {
  #concept .inner .btn_zoot {
    width: 12rem;
    margin: 2rem auto 0;
  }
}
#concept .inner .btn_zoot a {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  background-color: #fff;
  padding: 3em 2.75em 2em;
  box-shadow: 0 0 1em rgba(205, 207, 208, 0.4);
  transition: 0.3s ease;
}
@media screen and (max-width: 520px) {
  #concept .inner .btn_zoot a {
    padding: 2em 2.5em 1.75em;
  }
}
#concept .inner .btn_zoot a span {
  display: inline-block;
  font-size: 1rem;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-weight: 400;
  color: #203233;
  line-height: 1;
  box-sizing: border-box;
  padding-right: 1em;
  margin-top: 1em;
  position: relative;
}
@media screen and (max-width: 520px) {
  #concept .inner .btn_zoot a span {
    font-size: 0.75rem;
  }
}
#concept .inner .btn_zoot a span::before {
  content: "";
  position: absolute;
  width: 0.5em;
  aspect-ratio: 1;
  background-color: #203233;
  -webkit-clip-path: polygon(0 0, 0 100%, 100% 50%);
          clip-path: polygon(0 0, 0 100%, 100% 50%);
  top: 0.3em;
  right: 0.1em;
  transition: 0.2s ease;
}
#concept .inner .btn_zoot a:hover {
  box-shadow: 0 0 1em rgba(205, 207, 208, 0);
  background-color: rgba(205, 207, 208, 0.25);
}
#concept .inner .btn_zoot a:hover span::before {
  right: -0.2em;
}

/*=============================================================
#upgrade
=============================================================*/
@media screen and (max-width: 520px) {
  #upgrade {
    display: block;
  }
}
#upgrade .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  background-color: #ffffd5;
}
@media screen and (max-width: 520px) {
  #upgrade .outer {
    padding: 4rem 0;
  }
}
@media screen and (max-width: 520px) {
  #upgrade .outer {
    padding: 3rem 0 4rem;
  }
}
#upgrade .inner h2 {
  font-weight: bold;
  color: #333;
  font-size: 1.5rem;
  text-align: center;
}
@media screen and (max-width: 520px) {
  #upgrade .inner h2 {
    font-size: 1.125rem;
    line-height: 1.8;
  }
}
#upgrade .inner h2 .yellow {
  display: inline-block;
  color: #c99234;
  padding: 0 0.25em 0.25em;
  position: relative;
}
@media screen and (max-width: 520px) {
  #upgrade .inner h2 .yellow {
    display: block;
    text-align: center;
    padding: 0 0.25em 0;
    line-height: 1;
    margin-top: 0.75em;
    margin-bottom: 0.75em;
  }
}
#upgrade .inner h2 .yellow::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #c99234;
  left: 0;
  bottom: 0;
}
@media screen and (max-width: 520px) {
  #upgrade .inner h2 .yellow::after {
    width: 10em;
    left: calc(50% - 5em);
  }
}
#upgrade .inner h2 .yellow > span {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  letter-spacing: 0.05em;
  font-size: 3.375rem;
  position: relative;
  margin: 0 0.1em;
}
@media screen and (max-width: 520px) {
  #upgrade .inner h2 .yellow > span {
    font-size: 2rem;
  }
}
#upgrade .inner h2 .yellow > span::before {
  content: "";
  position: absolute;
  width: 0.5em;
  aspect-ratio: 1/1;
  background-image: url(../images/parts_tris.svg);
  background-size: contain;
  background-repeat: no-repeat;
  top: -0.15em;
  right: -0.25em;
}
#upgrade .inner > p {
  font-size: clamp(0.875rem, -0.017rem + 1.86vw, 1.375rem);
  line-height: 3;
  text-align: center;
}
@media screen and (max-width: 520px) {
  #upgrade .inner > p {
    font-size: 1rem;
    line-height: 2;
    text-align: left;
  }
}
#upgrade .inner h2 + p {
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #upgrade .inner h2 + p {
    margin-top: 2rem;
  }
}
#upgrade .inner figure {
  margin-top: 4rem;
}
@media screen and (max-width: 520px) {
  #upgrade .inner figure {
    margin-top: 2rem;
  }
}

/*=============================================================
#requirements
=============================================================*/
@media screen and (max-width: 520px) {
  #requirements {
    display: block;
  }
}
#requirements .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  background-color: #fff;
}
@media screen and (max-width: 520px) {
  #requirements .outer {
    padding: 4rem 0;
  }
}
#requirements .inner h2 {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  -webkit-text-decoration-color: #333;
          text-decoration-color: #333;
  text-underline-offset: 0.75em;
  box-sizing: border-box;
  padding-bottom: 0.75em;
}
@media screen and (max-width: 520px) {
  #requirements .inner h2 {
    font-size: 1.125rem;
  }
}
#requirements .inner .box_wrap {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #requirements .inner .box_wrap {
    flex-direction: column;
  }
}
#requirements .inner .box_wrap .box {
  width: 47%;
  margin-top: 5rem;
}
@media screen and (max-width: 520px) {
  #requirements .inner .box_wrap .box {
    width: 100%;
    margin-top: 2rem;
  }
}
#requirements .inner .box_wrap .box .text_wrap {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  font-size: 1.125rem;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #requirements .inner .box_wrap .box .text_wrap {
    margin-top: 1rem;
  }
}
#requirements .inner .box_wrap .box .text_wrap .num {
  width: calc(4rem + 4px);
  aspect-ratio: 1/1;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 3;
}
@media screen and (max-width: 520px) {
  #requirements .inner .box_wrap .box .text_wrap .num {
    width: calc(3rem + 4px);
  }
}
#requirements .inner .box_wrap .box .text_wrap .num::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #a0afb6;
  border: 4px solid #fff;
  top: -4px;
  left: -4px;
  z-index: -1;
}
#requirements .inner .box_wrap .box .text_wrap .num::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #a0afb6;
  top: 8px;
  left: 8px;
  z-index: -2;
}
#requirements .inner .box_wrap .box .text_wrap .num span {
  font-size: 2.25rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 700;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #requirements .inner .box_wrap .box .text_wrap .num span {
    font-size: 1.75rem;
  }
}
#requirements .inner .box_wrap .box .text_wrap .text {
  width: calc(100% - (4rem + 8px + 1.5em));
  font-size: 1.125rem;
  margin-top: 0.25em;
}
@media screen and (min-width: 769px) and (max-width: 1280px) {
  #requirements .inner .box_wrap .box .text_wrap .text br {
    display: none;
  }
}
@media screen and (max-width: 520px) {
  #requirements .inner .box_wrap .box .text_wrap .text {
    width: calc(100% - (3rem + 8px + 1.5em));
    font-size: 1rem;
  }
  #requirements .inner .box_wrap .box .text_wrap .text br {
    display: none;
  }
}
#requirements .inner .box_wrap .box:nth-child(1) figure {
  background: linear-gradient(to bottom, transparent 63%, #cdcfd0 63%);
}
#requirements .inner .box_wrap .box:nth-child(2) figure {
  background-color: #cdcfd0;
}

/*=============================================================
#about
=============================================================*/
@media screen and (max-width: 520px) {
  #about {
    display: block;
  }
}
#about .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  background-color: #cdcfd0;
  position: relative;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #about .outer {
    padding: 4rem 0;
  }
}
@media screen and (max-width: 520px) {
  #about .outer {
    flex-direction: column;
  }
}
#about .outer::before {
  content: "";
  position: absolute;
  width: max(10vw, (100% - 1200px) / 2);
  height: 100%;
  background-color: #203233;
  top: 0;
  right: 0;
}
#about .text_content {
  width: 50%;
  box-sizing: border-box;
  padding: 0 0 0 max(5vw, (100% - 1200px) / 2);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media screen and (max-width: 520px) {
  #about .text_content {
    width: 100%;
    padding: 0 5vw 0 5vw;
  }
}
#about .text_content h2 {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  width: 22rem;
  margin: 0 auto;
  font-size: 1.5rem;
  padding: 0 0 0 3em;
}
@media screen and (min-width: 769px) and (max-width: 1280px) {
  #about .text_content h2 {
    width: 13rem;
  }
}
@media screen and (max-width: 520px) {
  #about .text_content h2 {
    font-size: 1.125rem;
    width: 70%;
    padding: 0 0 0 2em;
  }
}
#about .text_content h2 img {
  width: calc(70% - 3em);
}
#about .text_content h2 span {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  color: #203233;
  font-size: 1em;
  font-weight: 700;
  width: 3em;
}
#about .text_content .hd_sub {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 3rem;
}
#about .text_content .hd_sub span {
  font-size: 1.25rem;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  color: #203233;
  font-weight: 700;
}
@media screen and (min-width: 769px) and (max-width: 1280px) {
  #about .text_content .hd_sub span {
    font-size: 1rem;
  }
}
@media screen and (max-width: 520px) {
  #about .text_content .hd_sub span {
    font-size: 1rem;
  }
}
#about .text_content .hd_sub span:not(:first-child) {
  margin-top: 1em;
}
#about .text_content > p {
  margin-top: 3rem;
  font-size: 1.125rem;
}
@media screen and (min-width: 769px) and (max-width: 1280px) {
  #about .text_content > p {
    font-size: 1rem;
  }
}
@media screen and (max-width: 520px) {
  #about .text_content > p {
    font-size: 0.875rem;
    box-sizing: border-box;
    padding: 0 5vw 0 0;
  }
}
#about .text_content > p:not(:first-of-type) {
  margin-top: 1em;
}
#about figure {
  width: 47%;
  position: relative;
  box-sizing: border-box;
  padding: 0 max(5vw, (100% - 1200px) / 2 - 10vw) 0 0;
  display: flex;
  align-items: flex-end;
}
@media screen and (max-width: 520px) {
  #about figure {
    width: 100%;
    padding: 0 5vw;
  }
}

/*=============================================================
plans
=============================================================*/
section.plans .outer {
  box-sizing: border-box;
  padding: 6rem 0;
}
@media screen and (max-width: 520px) {
  section.plans .outer {
    padding: 4rem 0;
  }
}
section.plans .inner_narrow h2 {
  display: flex;
}
@media screen and (max-width: 520px) {
  section.plans .inner_narrow h2 {
    align-items: center;
  }
}
section.plans .inner_narrow h2 .num {
  width: 10rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: 1.125rem;
  font-weight: 700;
  color: #203233;
  box-sizing: border-box;
  padding-left: 1em;
  margin-bottom: -0.5em;
}
@media screen and (max-width: 520px) {
  section.plans .inner_narrow h2 .num {
    width: 6rem;
    font-size: 0.875rem;
    padding-left: 0;
  }
}
section.plans .inner_narrow h2 .num > span {
  font-size: 3rem;
  padding-left: 0.16em;
}
@media screen and (max-width: 520px) {
  section.plans .inner_narrow h2 .num > span {
    font-size: 1.75rem;
  }
}
section.plans .inner_narrow h2 .plan_name {
  width: calc(100% - 10rem);
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: 1.25rem;
  font-weight: 700;
  border-bottom: 1px solid #203233;
  box-sizing: border-box;
  padding: 0.5em 0;
  text-align: right;
}
@media screen and (max-width: 520px) {
  section.plans .inner_narrow h2 .plan_name {
    width: calc(100% - 6rem);
    font-size: 1rem;
  }
}

#plan01.plans .outer.outer_slider {
  background-color: #ffffd5;
}

#plan02.plans .outer.outer_slider {
  background-color: #a0afb6;
}

#plan03.plans .outer.outer_slider {
  background-color: #cdcfd0;
}

/*=============================================================
plans スライダー周り
=============================================================*/
section.plans .swiper,
section.plans .swiper2 {
  width: 100%;
  box-shadow: 0 0 1em rgba(205, 207, 208, 0.6);
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  section.plans .swiper,
section.plans .swiper2 {
    margin-top: 2rem;
  }
}
section.plans .swiper .swiper-slide,
section.plans .swiper2 .swiper-slide {
  width: 100%;
  aspect-ratio: 3/2;
  background-color: #cdcfd0;
  text-align: center;
}
section.plans .swiper .swiper-slide img,
section.plans .swiper2 .swiper-slide img {
  width: auto;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0 auto;
}
section.plans .swiper_thumbnail {
  width: 100%;
  overflow: hidden;
  margin-top: 2rem;
  position: relative;
  /* ページネーションの余白 */
  /* ページネーションのサイズと色 */
}
@media screen and (max-width: 520px) {
  section.plans .swiper_thumbnail {
    order: 2;
    margin-top: 1rem;
  }
}
section.plans .swiper_thumbnail .swiper-slide {
  width: 25%;
  aspect-ratio: 3/2;
  background-color: #cdcfd0;
  transition: opacity 0.3s ease;
  text-align: center;
  box-shadow: 0 0 1em rgba(205, 207, 208, 0.6);
  position: relative;
}
section.plans .swiper_thumbnail .swiper-slide img {
  width: auto;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0 auto;
}
section.plans .swiper_thumbnail .swiper-slide:hover {
  opacity: 0.8;
  cursor: pointer;
}
section.plans .swiper_thumbnail .swiper-button-next::after,
section.plans .swiper_thumbnail .swiper-button-prev::after {
  display: none;
}
section.plans .swiper_thumbnail .swiper-button-next i,
section.plans .swiper_thumbnail .swiper-button-prev i {
  font-size: 2.25rem;
  color: rgba(51, 51, 51, 0.6);
}
@media screen and (max-width: 520px) {
  section.plans .swiper_thumbnail .swiper-button-next i,
section.plans .swiper_thumbnail .swiper-button-prev i {
    font-size: 1.875rem;
  }
}
section.plans .swiper_thumbnail .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
section.plans .swiper_thumbnail .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 0.5rem 0.5rem;
}
@media screen and (max-width: 520px) {
  section.plans .swiper_thumbnail .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
section.plans .swiper_thumbnail .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 0.25rem 0.25rem;
  }
}
section.plans .swiper_thumbnail .swiper-pagination-bullet {
  background-color: #666;
  width: 1rem;
  height: 1rem;
}
@media screen and (max-width: 520px) {
  section.plans .swiper_thumbnail .swiper-pagination-bullet {
    width: 0.5rem;
    height: 0.5rem;
  }
}
section.plans .annotation {
  margin-top: 1rem;
  text-align: right;
}
@media screen and (max-width: 520px) {
  section.plans .annotation {
    text-align: left;
    font-size: 0.875rem;
  }
}

/*=============================================================
plans madori
=============================================================*/
section.plans .outer_madori {
  background-color: #fff;
}
section.plans .outer_madori .inner_narrow {
  display: flex;
}
@media screen and (max-width: 520px) {
  section.plans .outer_madori .inner_narrow {
    flex-direction: column-reverse;
  }
}
section.plans .outer_madori .inner_narrow .madori {
  width: 50%;
  box-sizing: border-box;
  padding: 0 10%;
}
@media screen and (max-width: 520px) {
  section.plans .outer_madori .inner_narrow .madori {
    width: 100%;
    margin-top: 2rem;
  }
}
section.plans .outer_madori .inner_narrow .madori a {
  width: 100%;
  text-align: center;
  display: block;
}
section.plans .outer_madori .inner_narrow .madori a span {
  display: inline-block;
  box-sizing: border-box;
  padding: 0 1.25em 0 0.75em;
  position: relative;
  font-size: 1rem;
  font-weight: bold;
  margin-top: 0.5em;
}
section.plans .outer_madori .inner_narrow .madori a span::after {
  font-family: "Font Awesome 5 Free";
  content: "\f002";
  position: absolute;
  top: 0;
  right: 0;
}
section.plans .outer_madori .inner_narrow .text_wrap {
  width: 50%;
}
@media screen and (max-width: 520px) {
  section.plans .outer_madori .inner_narrow .text_wrap {
    width: 100%;
  }
}
section.plans .outer_madori .inner_narrow .text_wrap h3 {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: 1.25rem;
  color: #203233;
  font-weight: 700;
  text-align: center;
}
section.plans .outer_madori .inner_narrow .text_wrap dl {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 3rem;
}
section.plans .outer_madori .inner_narrow .text_wrap dl dt {
  display: flex;
  align-items: center;
  width: 8em;
  font-weight: bold;
  color: #203233;
  box-sizing: border-box;
  padding: 1em;
  box-shadow: 0.125em 0.125em 0.25em rgba(205, 207, 208, 0.4);
}
@media screen and (max-width: 520px) {
  section.plans .outer_madori .inner_narrow .text_wrap dl dt {
    font-size: 0.875rem;
  }
}
section.plans .outer_madori .inner_narrow .text_wrap dl dt:not(:first-of-type) {
  margin-top: 0.25em;
}
section.plans .outer_madori .inner_narrow .text_wrap dl dd {
  width: calc(100% - 8.25em);
  background-color: #fff;
  box-sizing: border-box;
  padding: 1em;
  box-shadow: 0.125em 0.125em 0.25em rgba(205, 207, 208, 0.4);
}
@media screen and (max-width: 520px) {
  section.plans .outer_madori .inner_narrow .text_wrap dl dd {
    font-size: 0.875rem;
  }
}
section.plans .outer_madori .inner_narrow .text_wrap dl dd:not(:first-of-type) {
  margin-top: 0.25em;
}
section.plans .outer_madori .inner_narrow .text_wrap dl dd.price {
  /*font-weight: bold;*/
  color: #203233;
}
section.plans .outer_madori .inner_narrow .text_wrap dl dd.price span.num {
  font-size: 1.3rem;
  letter-spacing: 0.05em;
}
section.plans .outer_madori .inner_narrow .text_wrap dl dd.price span.yen {
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  margin-left: 0.5em;
}

#plan01.plans .inner_narrow .text_wrap dl dt {
  background-color: #ffffd5;
}

#plan02.plans .inner_narrow .text_wrap dl dt {
  background-color: #a0afb6;
}

#plan03.plans .inner_narrow .text_wrap dl dt {
  background-color: #cdcfd0;
}

/*=============================================================
#featuresA
=============================================================*/
#featuresA .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  padding: 6rem 0 3rem;
  background-color: #203233;
}
@media screen and (max-width: 520px) {
  #featuresA .outer {
    padding: 4rem 0;
  }
}
#featuresA .content01 {
  display: flex;
  width: calc(100% - max(5vw, (100% - 1200px) / 2));
  margin-left: max(5vw, (100% - 1200px) / 2);
}
@media screen and (max-width: 520px) {
  #featuresA .content01 {
    width: 100%;
    margin-left: 0;
  }
}
#featuresA .content01 .en_hd_wrap {
  width: 6.3%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .en_hd_wrap {
    width: 10vw;
  }
}
#featuresA .content01 .en_hd_wrap .en_hd {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  writing-mode: vertical-rl;
  font-size: clamp(1.25rem, -0.088rem + 2.78vw, 2rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1em;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .en_hd_wrap .en_hd {
    font-size: 4vw;
  }
}
#featuresA .content01 .en_hd_wrap .num {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .en_hd_wrap .num {
    font-size: 5vw;
  }
}
#featuresA .content01 .bg {
  display: flex;
  width: 93.7%;
  background-color: #cdcfd0;
  box-sizing: border-box;
  padding: 3rem 0;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .bg {
    width: 100%;
    padding: 0 0 2rem;
  }
}
#featuresA .content01 .wrap {
  width: calc(100% - 5vw);
  max-width: 1100px;
  box-sizing: border-box;
  padding: 0 2.5vw;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap {
    padding: 0 0 0 5vw;
  }
}
#featuresA .content01 .wrap .hd_wrap {
  display: flex;
  justify-content: space-between;
}
#featuresA .content01 .wrap .hd_wrap h2 {
  width: 45%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  color: #203233;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap .hd_wrap h2 {
    width: 100%;
    aspect-ratio: 8/5;
  }
}
#featuresA .content01 .wrap .hd_wrap .text {
  width: 50%;
  box-sizing: border-box;
  padding: 0 1rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap .hd_wrap .text {
    width: 100%;
    padding: 0 0;
  }
}
#featuresA .content01 .wrap .hd_wrap p {
  font-size: clamp(0.813rem, 0.032rem + 1.62vw, 1.25rem);
  color: #333;
  font-weight: 700;
  margin-top: 1em;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap .hd_wrap p {
    font-size: 0.875rem;
  }
}
#featuresA .content01 .wrap .hd_wrap .sub_hd {
  font-size: clamp(1.125rem, 0.01rem + 2.32vw, 1.75rem);
  color: #203233;
  font-weight: 700;
  margin-top: 0;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap .hd_wrap .sub_hd br {
    display: none;
  }
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap .hd_wrap {
    flex-direction: column;
  }
}
#featuresA .content01 .wrap h3 {
  display: flex;
  align-items: center;
  margin-top: 3rem;
}
#featuresA .content01 .wrap h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresA .content01 .wrap h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap h3 .hd {
    font-size: 1rem;
  }
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap h3 {
    margin-top: 2rem;
  }
}
#featuresA .content01 .wrap h3 + p {
  font-size: 1.125rem;
  margin-top: 1.5rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap h3 + p {
    font-size: 1rem;
  }
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap figure {
    margin: 1rem 0;
  }
}
#featuresA .content01 .wrap .text_wrap {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap .text_wrap {
    flex-direction: column;
  }
}
#featuresA .content01 .wrap .text_wrap p {
  width: 47.5%;
  text-align: justify;
}
@media screen and (max-width: 520px) {
  #featuresA .content01 .wrap .text_wrap p {
    width: 100%;
    font-size: 0.875rem;
  }
  #featuresA .content01 .wrap .text_wrap p:not(:first-of-type) {
    margin-top: 1em;
  }
}
#featuresA .content02 {
  display: flex;
  flex-direction: row-reverse;
  width: calc(100% - max(5vw, (100% - 1200px) / 2));
  margin-right: max(5vw, (100% - 1200px) / 2);
  margin-top: 6rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 {
    width: 100%;
    margin-right: 0;
    margin-top: 10vw;
  }
}
#featuresA .content02 .en_hd_wrap {
  width: 6.3%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .en_hd_wrap {
    width: 10vw;
  }
}
#featuresA .content02 .en_hd_wrap .en_hd {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  writing-mode: vertical-rl;
  font-size: clamp(1.25rem, -0.088rem + 2.78vw, 2rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1em;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .en_hd_wrap .en_hd {
    font-size: 4vw;
  }
}
#featuresA .content02 .en_hd_wrap .num {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .en_hd_wrap .num {
    font-size: 5vw;
  }
}
#featuresA .content02 .bg {
  display: flex;
  justify-content: flex-end;
  width: 93.7%;
  background-color: #cdcfd0;
  box-sizing: border-box;
  padding: 3rem 0;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .bg {
    width: calc(100% - 5vw);
    padding: 2rem 0;
  }
}
#featuresA .content02 .wrap {
  width: calc(100% - 5vw);
  max-width: 1100px;
  box-sizing: border-box;
  padding: 0 2.5vw;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap {
    padding: 0 5vw 0 0;
  }
}
#featuresA .content02 .wrap .hd_wrap {
  display: flex;
  justify-content: space-between;
}
#featuresA .content02 .wrap .hd_wrap h2 {
  width: 45%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  color: #203233;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .hd_wrap h2 {
    width: 100%;
    aspect-ratio: 8/5;
  }
}
#featuresA .content02 .wrap .hd_wrap .text {
  width: 50%;
  box-sizing: border-box;
  padding: 0 1rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .hd_wrap .text {
    width: 100%;
    padding: 0 0;
  }
}
#featuresA .content02 .wrap .hd_wrap p {
  font-size: clamp(0.813rem, 0.032rem + 1.62vw, 1.25rem);
  color: #333;
  font-weight: 700;
  margin-top: 1em;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .hd_wrap p {
    font-size: 0.875rem;
  }
}
#featuresA .content02 .wrap .hd_wrap .sub_hd {
  font-size: clamp(1.125rem, 0.01rem + 2.32vw, 1.75rem);
  color: #203233;
  font-weight: 700;
  margin-top: 0;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .hd_wrap .sub_hd br {
    display: none;
  }
}
#featuresA .content02 .wrap h3 {
  display: flex;
  align-items: center;
}
#featuresA .content02 .wrap h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresA .content02 .wrap h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap h3 .hd {
    font-size: 1rem;
  }
}
#featuresA .content02 .wrap .fig_wrap {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .fig_wrap {
    flex-direction: column;
    align-items: center;
  }
}
#featuresA .content02 .wrap .fig_wrap li {
  width: 31.5%;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .fig_wrap li {
    width: 80%;
    margin-top: 2rem;
  }
}
#featuresA .content02 .wrap .fig_wrap li p {
  color: #203233;
  font-weight: bold;
  margin-top: 1em;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .fig_wrap li p {
    font-size: 0.875rem;
  }
}
#featuresA .content02 .wrap .text_wrap {
  display: flex;
  justify-content: space-between;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .text_wrap {
    flex-direction: column;
  }
}
#featuresA .content02 .wrap .text_wrap p {
  width: 47.5%;
  text-align: justify;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .text_wrap p {
    width: 100%;
    font-size: 0.875rem;
  }
  #featuresA .content02 .wrap .text_wrap p:not(:first-of-type) {
    margin-top: 1em;
  }
}
#featuresA .content02 .wrap .text_wrap p span {
  display: inline-block;
  font-size: 0.875rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content02 .wrap .text_wrap p span {
    font-size: 0.75rem;
    margin-top: 1em;
  }
}
#featuresA .content03 {
  display: flex;
  width: calc(100% - max(5vw, (100% - 1200px) / 2));
  margin-left: max(5vw, (100% - 1200px) / 2);
  margin-top: 6rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 {
    width: 100%;
    margin-left: 0;
    margin-top: 10vw;
  }
}
#featuresA .content03 .en_hd_wrap {
  width: 6.3%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .en_hd_wrap {
    width: 10vw;
  }
}
#featuresA .content03 .en_hd_wrap .en_hd {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  writing-mode: vertical-rl;
  font-size: clamp(1.25rem, -0.088rem + 2.78vw, 2rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1em;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .en_hd_wrap .en_hd {
    font-size: 4vw;
  }
}
#featuresA .content03 .en_hd_wrap .num {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .en_hd_wrap .num {
    font-size: 5vw;
  }
}
#featuresA .content03 .bg {
  display: flex;
  width: 93.7%;
  background-color: #cdcfd0;
  box-sizing: border-box;
  padding: 3rem 0;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .bg {
    width: calc(100% - 5vw);
    padding: 2rem 0;
  }
}
#featuresA .content03 .wrap {
  width: calc(100% - 5vw);
  max-width: 1100px;
  box-sizing: border-box;
  padding: 0 2.5vw;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap {
    padding: 0 0 0 5vw;
  }
}
#featuresA .content03 .wrap .hd_wrap {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .hd_wrap {
    flex-direction: column-reverse;
  }
}
#featuresA .content03 .wrap .hd_wrap figure {
  width: 45%;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .hd_wrap figure {
    width: 100%;
    aspect-ratio: 3/2;
    margin-top: 2rem;
  }
  #featuresA .content03 .wrap .hd_wrap figure img {
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
#featuresA .content03 .wrap .hd_wrap .text {
  width: 50%;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .hd_wrap .text {
    width: 100%;
  }
}
#featuresA .content03 .wrap .hd_wrap .text h3 {
  display: flex;
  align-items: center;
}
#featuresA .content03 .wrap .hd_wrap .text h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .hd_wrap .text h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresA .content03 .wrap .hd_wrap .text h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .hd_wrap .text h3 .hd {
    font-size: 1rem;
  }
}
#featuresA .content03 .wrap .hd_wrap .text p {
  font-size: 1rem;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .hd_wrap .text p {
    font-size: 0.875rem;
  }
}
#featuresA .content03 .wrap .fig_wrap {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .fig_wrap {
    flex-direction: column;
    align-items: center;
  }
}
#featuresA .content03 .wrap .fig_wrap li {
  width: 31.5%;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresA .content03 .wrap .fig_wrap li {
    width: 80%;
    margin-top: 3rem;
  }
}

/*=============================================================
#featuresB
=============================================================*/
#featuresB .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  padding: 3rem 0 3rem;
  background-color: #cdcfd0;
}
@media screen and (max-width: 520px) {
  #featuresB .outer {
    padding: 4rem 0;
  }
}
#featuresB .content01 {
  display: flex;
  flex-direction: row-reverse;
  width: calc(100% - max(5vw, (100% - 1200px) / 2));
  margin-right: max(5vw, (100% - 1200px) / 2);
}
@media screen and (max-width: 520px) {
  #featuresB .content01 {
    width: 100%;
    margin-right: 0;
  }
}
#featuresB .content01 .en_hd_wrap {
  width: 6.3%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .en_hd_wrap {
    width: 10vw;
  }
}
#featuresB .content01 .en_hd_wrap .en_hd {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  writing-mode: vertical-rl;
  font-size: clamp(1.25rem, -0.088rem + 2.78vw, 2rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1em;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .en_hd_wrap .en_hd {
    font-size: 4vw;
  }
}
#featuresB .content01 .en_hd_wrap .num {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .en_hd_wrap .num {
    font-size: 5vw;
  }
}
#featuresB .content01 .bg {
  display: flex;
  justify-content: flex-end;
  width: 93.7%;
  background-color: #fff;
  box-sizing: border-box;
  padding: 3rem 0;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .bg {
    width: 100%;
    padding: 0 0 2rem;
  }
}
#featuresB .content01 .wrap {
  width: calc(100% - 5vw);
  max-width: 1100px;
  box-sizing: border-box;
  padding: 0 2.5vw;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap {
    padding: 0 5vw 0 0;
  }
}
#featuresB .content01 .wrap .hd_wrap {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}
#featuresB .content01 .wrap .hd_wrap h2 {
  width: 45%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  color: #203233;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap h2 {
    width: 100%;
    aspect-ratio: 8/5;
  }
}
#featuresB .content01 .wrap .hd_wrap .text {
  width: 50%;
  box-sizing: border-box;
  padding: 0 1rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap .text {
    width: 100%;
    padding: 0 0;
  }
}
#featuresB .content01 .wrap .hd_wrap p {
  font-size: clamp(0.813rem, 0.032rem + 1.62vw, 1.25rem);
  color: #333;
  font-weight: 700;
  margin-top: 1em;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap p {
    font-size: 0.875rem;
  }
}
#featuresB .content01 .wrap .hd_wrap .sub_hd {
  font-size: clamp(1.125rem, 0.01rem + 2.32vw, 1.75rem);
  color: #203233;
  font-weight: 700;
  margin-top: 0;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap .sub_hd br {
    display: none;
  }
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap {
    flex-direction: column;
  }
}
#featuresB .content01 .wrap .hd_wrap2 {
  display: flex;
  justify-content: space-between;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap2 {
    flex-direction: column-reverse;
    margin-top: 2rem;
  }
}
#featuresB .content01 .wrap .hd_wrap2 figure {
  width: 45%;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap2 figure {
    width: 100%;
    margin-top: 2rem;
  }
}
#featuresB .content01 .wrap .hd_wrap2 .text {
  width: 50%;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap2 .text {
    width: 100%;
  }
}
#featuresB .content01 .wrap .hd_wrap2 .text h3 {
  display: flex;
  align-items: center;
}
#featuresB .content01 .wrap .hd_wrap2 .text h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap2 .text h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresB .content01 .wrap .hd_wrap2 .text h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap2 .text h3 .hd {
    font-size: 1rem;
  }
}
#featuresB .content01 .wrap .hd_wrap2 .text p {
  font-size: 1rem;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content01 .wrap .hd_wrap2 .text p {
    font-size: 0.875rem;
  }
}
#featuresB .content02 {
  display: flex;
  width: calc(100% - max(5vw, (100% - 1200px) / 2));
  margin-left: max(5vw, (100% - 1200px) / 2);
  margin-top: 6rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 {
    width: 100%;
    margin-left: 0;
    margin-top: 10vw;
  }
}
#featuresB .content02 .en_hd_wrap {
  width: 6.3%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .en_hd_wrap {
    width: 10vw;
  }
}
#featuresB .content02 .en_hd_wrap .en_hd {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  writing-mode: vertical-rl;
  font-size: clamp(1.25rem, -0.088rem + 2.78vw, 2rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1em;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .en_hd_wrap .en_hd {
    font-size: 4vw;
  }
}
#featuresB .content02 .en_hd_wrap .num {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .en_hd_wrap .num {
    font-size: 5vw;
  }
}
#featuresB .content02 .bg {
  display: flex;
  width: 93.7%;
  background-color: #fff;
  box-sizing: border-box;
  padding: 3rem 0;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .bg {
    width: calc(100% - 5vw);
    padding: 2rem 0;
  }
}
#featuresB .content02 .wrap {
  width: calc(100% - 5vw);
  max-width: 1100px;
  box-sizing: border-box;
  padding: 0 2.5vw;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap {
    padding: 0 0 0 5vw;
  }
}
#featuresB .content02 .wrap .hd_wrap {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap {
    flex-direction: column-reverse;
    margin-top: 0;
  }
}
#featuresB .content02 .wrap .hd_wrap figure {
  width: 45%;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap figure {
    width: 100%;
    margin-top: 2rem;
  }
}
#featuresB .content02 .wrap .hd_wrap .text {
  width: 50%;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap .text {
    width: 100%;
  }
}
#featuresB .content02 .wrap .hd_wrap .text h3 {
  display: flex;
  align-items: center;
}
#featuresB .content02 .wrap .hd_wrap .text h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap .text h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresB .content02 .wrap .hd_wrap .text h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap .text h3 .hd {
    font-size: 1rem;
  }
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap .text h3 + p {
    margin-top: 2rem;
  }
}
#featuresB .content02 .wrap .hd_wrap .text h4 {
  font-size: 1.125rem;
  font-weight: bold;
  color: #203233;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap .text h4 {
    line-height: 1.5;
    margin-top: 2rem;
  }
}
#featuresB .content02 .wrap .hd_wrap .text p {
  font-size: 1rem;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .hd_wrap .text p {
    font-size: 0.875rem;
    margin-top: 1em;
  }
}
#featuresB .content02 .wrap .addition {
  background-color: #f8f8f8;
  box-sizing: border-box;
  padding: 2rem min(2.5vw, 30px);
  margin-top: 3rem;
  box-shadow: min(0.5vw, 6px) min(0.5vw, 6px) min(1vw, 12px) rgba(205, 207, 208, 0.4);
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .addition {
    margin-top: 2rem;
  }
}
#featuresB .content02 .wrap .addition h4 {
  font-size: 1.125rem;
  font-weight: bold;
  color: #203233;
}
#featuresB .content02 .wrap .addition .text_wrap {
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .addition .text_wrap {
    flex-direction: column;
    align-items: center;
  }
}
#featuresB .content02 .wrap .addition .text_wrap p {
  width: 53%;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .addition .text_wrap p {
    width: 100%;
  }
}
#featuresB .content02 .wrap .addition .text_wrap figure {
  width: 45%;
}
@media screen and (max-width: 520px) {
  #featuresB .content02 .wrap .addition .text_wrap figure {
    width: 80%;
    margin-top: 2rem;
  }
}

/*=============================================================
#featuresC
=============================================================*/
#featuresC .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  padding: 3rem 0 3rem;
  background-color: #203233;
}
@media screen and (max-width: 520px) {
  #featuresC .outer {
    padding: 4rem 0;
  }
}
#featuresC .content01 {
  display: flex;
  flex-direction: row-reverse;
  width: calc(100% - max(5vw, (100% - 1200px) / 2));
  margin-right: max(5vw, (100% - 1200px) / 2);
}
@media screen and (max-width: 520px) {
  #featuresC .content01 {
    width: 100%;
    margin-right: 0;
  }
}
#featuresC .content01 .en_hd_wrap {
  width: 6.3%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .en_hd_wrap {
    width: 10vw;
  }
}
#featuresC .content01 .en_hd_wrap .en_hd {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  writing-mode: vertical-rl;
  font-size: clamp(1.25rem, -0.088rem + 2.78vw, 2rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1em;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .en_hd_wrap .en_hd {
    font-size: 4vw;
  }
}
#featuresC .content01 .en_hd_wrap .num {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .en_hd_wrap .num {
    font-size: 5vw;
  }
}
#featuresC .content01 .bg {
  display: flex;
  justify-content: flex-end;
  width: 93.7%;
  background-color: #cdcfd0;
  box-sizing: border-box;
  padding: 3rem 0;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .bg {
    width: 100%;
    padding: 0 0 2rem;
  }
}
#featuresC .content01 .wrap {
  width: calc(100% - 5vw);
  max-width: 1100px;
  box-sizing: border-box;
  padding: 0 2.5vw;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap {
    padding: 0 5vw 0 0;
  }
}
#featuresC .content01 .wrap .hd_wrap {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}
#featuresC .content01 .wrap .hd_wrap h2 {
  width: 45%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  color: #203233;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap h2 {
    width: 100%;
    aspect-ratio: 8/5;
  }
}
#featuresC .content01 .wrap .hd_wrap .text {
  width: 50%;
  box-sizing: border-box;
  padding: 0 1rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap .text {
    width: 100%;
    padding: 0 0;
  }
}
#featuresC .content01 .wrap .hd_wrap p {
  font-size: clamp(0.813rem, 0.032rem + 1.62vw, 1.25rem);
  color: #333;
  font-weight: 700;
  margin-top: 1em;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap p {
    font-size: 0.875rem;
  }
}
#featuresC .content01 .wrap .hd_wrap .sub_hd {
  font-size: clamp(1.125rem, 0.01rem + 2.32vw, 1.75rem);
  color: #203233;
  font-weight: 700;
  margin-top: 0;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap .sub_hd br {
    display: none;
  }
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap {
    flex-direction: column;
  }
}
#featuresC .content01 .wrap .hd_wrap2 {
  display: flex;
  justify-content: space-between;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 {
    flex-direction: column;
    margin-top: 2rem;
  }
}
#featuresC .content01 .wrap .hd_wrap2 figure {
  width: 45%;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 figure {
    width: 100%;
  }
}
#featuresC .content01 .wrap .hd_wrap2 .text {
  width: 50%;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 .text {
    width: 100%;
  }
}
#featuresC .content01 .wrap .hd_wrap2 .text h3 {
  display: flex;
  align-items: center;
}
#featuresC .content01 .wrap .hd_wrap2 .text h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 .text h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresC .content01 .wrap .hd_wrap2 .text h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 .text h3 .hd {
    font-size: 1rem;
  }
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 .text h3 {
    margin-top: 2rem;
  }
}
#featuresC .content01 .wrap .hd_wrap2 .text p {
  font-size: 1rem;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 .text p {
    font-size: 0.875rem;
  }
}
#featuresC .content01 .wrap .hd_wrap2 .text p span {
  display: inline-block;
  font-size: 0.875rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .hd_wrap2 .text p span {
    font-size: 0.75rem;
    margin-top: 1em;
  }
}
#featuresC .content01 .wrap .text_wrap {
  max-width: 820px;
}
#featuresC .content01 .wrap .text_wrap h4 {
  font-size: 1.125rem;
  font-weight: bold;
  color: #203233;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .text_wrap h4 {
    margin-top: 2rem;
    line-height: 1.5;
  }
}
#featuresC .content01 .wrap .text_wrap p {
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .text_wrap p {
    margin-top: 1rem;
    font-size: 0.875rem;
  }
}
#featuresC .content01 .wrap .text_wrap p span {
  display: inline-block;
  font-size: 0.875rem;
  margin-top: 1em;
}
@media screen and (max-width: 520px) {
  #featuresC .content01 .wrap .text_wrap p span {
    font-size: 0.75rem;
  }
}
#featuresC .content02 {
  display: flex;
  width: calc(100% - max(5vw, (100% - 1200px) / 2));
  margin-left: max(5vw, (100% - 1200px) / 2);
  margin-top: 6rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 {
    width: 100%;
    margin-left: 0;
    margin-top: 10vw;
  }
}
#featuresC .content02 .en_hd_wrap {
  width: 6.3%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .en_hd_wrap {
    width: 10vw;
  }
}
#featuresC .content02 .en_hd_wrap .en_hd {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  writing-mode: vertical-rl;
  font-size: clamp(1.25rem, -0.088rem + 2.78vw, 2rem);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1em;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .en_hd_wrap .en_hd {
    font-size: 4vw;
  }
}
#featuresC .content02 .en_hd_wrap .num {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-size: clamp(1.938rem, 0.042rem + 3.94vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .en_hd_wrap .num {
    font-size: 5vw;
  }
}
#featuresC .content02 .bg {
  display: flex;
  width: 93.7%;
  background-color: #cdcfd0;
  box-sizing: border-box;
  padding: 3rem 0;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .bg {
    width: calc(100% - 5vw);
    padding: 2rem 0;
  }
}
#featuresC .content02 .wrap {
  width: calc(100% - 5vw);
  max-width: 1100px;
  box-sizing: border-box;
  padding: 0 2.5vw;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap {
    padding: 0 0 0 5vw;
  }
}
#featuresC .content02 .wrap .hd_wrap {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap {
    flex-direction: column-reverse;
  }
}
#featuresC .content02 .wrap .hd_wrap figure {
  width: 45%;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap figure {
    width: 100%;
    margin-top: 2rem;
  }
}
#featuresC .content02 .wrap .hd_wrap .text {
  width: 50%;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap .text {
    width: 100%;
  }
}
#featuresC .content02 .wrap .hd_wrap .text h3 {
  display: flex;
  align-items: center;
}
#featuresC .content02 .wrap .hd_wrap .text h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap .text h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresC .content02 .wrap .hd_wrap .text h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap .text h3 .hd {
    font-size: 1rem;
  }
}
#featuresC .content02 .wrap .hd_wrap .text h4 {
  font-size: 1.125rem;
  font-weight: bold;
  color: #203233;
  margin-top: 3rem;
}
#featuresC .content02 .wrap .hd_wrap .text p {
  font-size: 1rem;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap .text p {
    width: 100%;
    font-size: 0.875rem;
  }
}
#featuresC .content02 .wrap .hd_wrap2 {
  display: flex;
  justify-content: space-between;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap2 {
    flex-direction: column-reverse;
    margin-top: 2rem;
  }
}
#featuresC .content02 .wrap .hd_wrap2 .fig_wrap {
  width: 45%;
  background-color: #fff;
  box-sizing: border-box;
  padding: min(2.5vw, 30px);
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap2 .fig_wrap {
    width: 100%;
    margin-top: 2rem;
    padding: 5vw;
  }
}
#featuresC .content02 .wrap .hd_wrap2 .text {
  width: 50%;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap2 .text {
    width: 100%;
  }
}
#featuresC .content02 .wrap .hd_wrap2 .text h3 {
  display: flex;
  align-items: center;
}
#featuresC .content02 .wrap .hd_wrap2 .text h3 .num {
  display: inline-block;
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  font-weight: 200;
  box-sizing: border-box;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
  padding: 0.5em;
  margin-right: 0.5em;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap2 .text h3 .num {
    font-size: 1.125rem;
    line-height: 1.2;
    margin-right: 0.75em;
  }
}
#featuresC .content02 .wrap .hd_wrap2 .text h3 .hd {
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap2 .text h3 .hd {
    font-size: 1rem;
  }
}
#featuresC .content02 .wrap .hd_wrap2 .text h4 {
  font-size: 1.125rem;
  font-weight: bold;
  line-height: 1.5;
  color: #203233;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap2 .text h4 {
    margin-top: 0;
  }
  #featuresC .content02 .wrap .hd_wrap2 .text h4 br {
    display: block;
  }
}
#featuresC .content02 .wrap .hd_wrap2 .text h4 .red {
  color: #bf403a;
  font-weight: 700;
  margin: 0 0.25em;
}
#featuresC .content02 .wrap .hd_wrap2 .text h4 .red span {
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
}
#featuresC .content02 .wrap .hd_wrap2 .text p {
  font-size: 1rem;
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap2 .text p {
    font-size: 0.875rem;
    margin-top: 1rem;
  }
}
#featuresC .content02 .wrap .hd_wrap3 {
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap3 {
    margin-top: 2rem;
  }
}
#featuresC .content02 .wrap .hd_wrap3 h4 {
  font-size: 1.125rem;
  font-weight: bold;
  color: #203233;
}
#featuresC .content02 .wrap .hd_wrap3 p {
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap3 p {
    font-size: 0.875rem;
    margin-top: 1em;
  }
}
#featuresC .content02 .wrap .hd_wrap3 .fig_wrap {
  display: flex;
  flex-wrap: wrap;
}
#featuresC .content02 .wrap .hd_wrap3 .fig_wrap figure {
  width: 50%;
  margin-top: 3rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .hd_wrap3 .fig_wrap figure {
    width: 100%;
  }
}
#featuresC .content02 .wrap .addition {
  background-color: #fff;
  box-sizing: border-box;
  padding: 2rem min(2.5vw, 30px);
  margin-top: 3rem;
  box-shadow: min(0.5vw, 6px) min(0.5vw, 6px) min(1vw, 12px) rgba(205, 207, 208, 0.4);
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .addition {
    flex-direction: column;
    align-items: flex-end;
    margin-top: 2rem;
    padding: 5vw;
  }
}
#featuresC .content02 .wrap .addition .text_wrap {
  width: 75%;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .addition .text_wrap {
    width: 100%;
  }
}
#featuresC .content02 .wrap .addition .text_wrap h4 {
  font-size: 1.125rem;
  font-weight: bold;
  color: #203233;
}
#featuresC .content02 .wrap .addition .text_wrap p {
  margin-top: 2rem;
}
@media screen and (max-width: 520px) {
  #featuresC .content02 .wrap .addition .text_wrap p {
    font-size: 0.875rem;
    margin-top: 1rem;
  }
}
#featuresC .content02 .wrap .addition figure {
  width: 20%;
}

/*=============================================================
#guidelines
=============================================================*/
#guidelines .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  padding: 3rem 0 6rem;
  background-color: #fff;
}
@media screen and (max-width: 520px) {
  #guidelines .outer {
    padding: 4rem 0;
  }
}
@media screen and (max-width: 520px) {
  #guidelines .outer {
    padding: 2rem 0 4rem;
  }
}
#guidelines .inner_narrow h2 {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  background-color: #203233;
  box-sizing: border-box;
  padding: 1em;
  text-align: center;
  box-shadow: 0.125em 0.125em 0.25em rgba(205, 207, 208, 0.4);
}
@media screen and (max-width: 520px) {
  #guidelines .inner_narrow h2 {
    font-size: 1.125rem;
  }
}
#guidelines .inner_narrow dl {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: 1rem;
  margin-top: 4rem;
}
@media screen and (max-width: 520px) {
  #guidelines .inner_narrow dl {
    margin-top: 2rem;
  }
}
#guidelines .inner_narrow dl dt {
  display: flex;
  align-items: center;
  width: 15.5rem;
  font-size: 1em;
  font-weight: bold;
  background-color: #5a8080;
  color: #fff;
  box-sizing: border-box;
  padding: 1em;
  box-shadow: 0.125em 0.125em 0.25em rgba(205, 207, 208, 0.4);
}
@media screen and (max-width: 520px) {
  #guidelines .inner_narrow dl dt {
    width: 100%;
    font-size: 0.875rem;
  }
}
#guidelines .inner_narrow dl dt:not(:first-of-type) {
  margin-top: 4px;
}
#guidelines .inner_narrow dl dd {
  width: calc(100% - 15.5rem - 4px);
  font-size: 1em;
  background-color: #cdcfd0;
  color: #333;
  box-sizing: border-box;
  padding: 1em;
  box-shadow: 0.125em 0.125em 0.25em rgba(205, 207, 208, 0.4);
}
@media screen and (max-width: 520px) {
  #guidelines .inner_narrow dl dd {
    width: 100%;
    font-size: 0.875rem;
  }
}
#guidelines .inner_narrow dl dd:not(:first-of-type) {
  margin-top: 4px;
}
@media screen and (max-width: 520px) {
  #guidelines .inner_narrow dl dd:not(:first-of-type) {
    margin-top: 0;
  }
}
#guidelines .inner_narrow dl dd ul {
  list-style-type: disc;
  box-sizing: border-box;
  padding-left: 1em;
}

/*=============================================================
#contact
=============================================================*/
#contact .outer {
  box-sizing: border-box;
  padding: 6rem 0;
  background-color: #cdcfd0;
}
@media screen and (max-width: 520px) {
  #contact .outer {
    padding: 4rem 0;
  }
}
#contact .inner_narrow h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #203233;
  font-weight: 700;
}
#contact .inner_narrow h2 .en {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.075em;
  letter-spacing: 0.025em;
  font-size: clamp(3.125rem, -0.22rem + 6.96vw, 5rem);
}
#contact .inner_narrow h2 .jp {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  font-size: clamp(1rem, -0.004rem + 2.09vw, 1.563rem);
  margin-top: 0.5em;
}
#contact .inner_narrow .form_wrap {
  margin-top: 5rem;
}

/* 260212 */
#large_banner .text_wrap .top {
  padding-block: 0;
  line-height: 2.5;
}
#large_banner .text_wrap .top::before {
  content: none;
}
#large_banner .num_wrap .num {
  text-align: center;
}
.logo_cp {
  padding-bottom: 70px;
}
@media(max-width: 640px) {
  .logo_cp {
    padding-bottom: 7%;
  }
}

.br-pc {
  display: block;
}
@media(max-width: 640px) {
  .br-pc {
    display: none;
  }
}
.br-sp {
  display: none;
}
@media(max-width: 640px) {
  .br-sp {
    display: block;
  }
}