/*
*   [tag]
*/
body {
  font-size: 1.6rem;
  font-family: var(--font-gothic);
  font-weight: var(--gothic-regular);
}
main{
  background: var(--gray);
  padding: 7.7rem 0 0 0;
  overflow: auto;
  overflow-x: hidden;
}
@media screen and (max-width: 480px) {
  main{
    padding: 5.1rem 0 0 0;
    overflow: auto;
    overflow-x: hidden;
  }
}
a {
  text-decoration: none;
}
.link-animation a{
  display: block;
  color: var(--blue);
  position: relative;
}
.link-animation a::after {
  position: absolute;
  left: 0;
  content: '';
  width: 100%;
  height: 0.2rem;
  background: var(--blue);
  bottom: -0.1rem;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.3s;
}
.link-animation a:hover::after {
  transform: scale(1, 1);
}

/*
*   br.spbr
*/
br.spbr{
  display: none;
}
@media screen and (max-width: 480px) {
  br.spbr{
    display: inline;
  }
}
/*
*   header
*/
header{
  background: var(--header-white);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: fixed;
  top: 0;
  left: 0;
  padding: 0 2.5%;
  width: 100%;
  height: 7.7rem;
  z-index: 99999999;
}
header h1 {}
header h1 a{
  display: block;
  width: auto;
  height: 3.4rem;
}
header h1 a img{
  width: auto;
  height: 3.4rem;
}
header nav{
  display: flex;
  align-items: center;
  justify-content: center;
}
header nav ul{
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 1rem;
}
header nav ul li a{
  display: block;
  color: var(--blue);
  font-size: 1.8rem;
  padding: 1rem;
}
header nav .header-button{
  display: block;
  border: 0.2rem solid var(--gold); 
  background: var(--gold);
  color: var(--white);
  font-size: 1.8rem;
  padding: 1rem 2rem;
  transition: all .3s;
}
header nav a.header-button:hover{
  border: 0.2rem solid var(--gold); 
  background: var(--white);
  color: var(--gold);
}
@media screen and (max-width: 480px) {
  header {
    position: fixed;
    top: 0;
    left: 0;
    padding: 0 2rem;
    width: 100%;
    height: 5.1rem;
  }
  header h1{}
  header h1 a{
    height: 1.756rem;
  }
  header h1 a img{
    width: auto;
    height: 1.756rem;
  }
  header nav{
    width: 100%;
    display: none;
  }
}

/*
*   #fv
*/
#fv {
  width: 100%;
  height: 92.5rem;
}
#fv .fv-background {
  background: url(../img/fv-background.png) left center no-repeat;
  background-size: cover;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column-reverse;
  gap: 2rem;
  padding: 0 10rem;
  width: 100%;
  height: 92.5rem;
}
#fv h2 {
  color: var(--blue);
  font-size: 9.5rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-semibold);
  line-height: 140%;
}
#fv h3 {
  color: var(--blue);
  font-family: var(--font-mincho);
  font-weight: var(--mincho-semibold);
  font-size: 3.5rem;
}
#fv h3 span{
  background: var(--blue);
  color: var(--white);
  padding: 0.5rem 0.25rem 0.5rem 0.5rem;
}
@media screen and (max-width: 480px) {
  #fv {
    width: 100%;
    height: 69rem;
  }
  #fv .fv-background {
    background: url(../img/fv-background-sp.png) center top no-repeat;
    display: flex;
    align-items: baseline;
    justify-content: start;
    flex-direction: column-reverse;
    gap: 0;
    padding: 5.1rem 2rem 0 2rem;
    width: 100%;
    height: 69rem;
}
  #fv h2 {
    font-size: 3.5rem;
    line-height: 140%;
  }
  #fv h3 {
    font-size: 2rem;
    padding: 0;
  }
  #fv h3 span{
    display: inline-block;
    margin: 1rem 0;
  }
}

/*
*   .cta
*/
.cta {
  background: url(../img/cta-background.png) no-repeat;
  background-size: cover;
  width: 100%;
  height: 53.6rem;
}
.cta .cta-wrapper {
  background: url(../img/cta-left.png) 5rem bottom no-repeat;
  background-size: 30%;
  color: var(--white);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 100%;
  height: 53.6rem;
}
.cta h2 {
  font-size: 3.3rem;
  line-height: 180%;
}
.cta p {
  font-size: 1.6rem;
  line-height: 180%;
  margin: 2rem 0;
}
.text-underline {
  text-decoration: underline;
}
.cta-button-area{
  position: relative;
  margin: 0 auto;
  width: 38.6rem;
  height: 5.9rem;
}
.cta .cta-button-area .cta-button.base {
  background: var(--gold);
  border: 0.2rem solid var(--gold); 
  box-shadow: var(--box-whiteshadow);
  color: var(--white);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: space-between;
  opacity: 1;
  position: absolute;
  margin: 0 auto;
  padding: 3rem 0.75rem;
  width: 38.6rem;
  height: 5.9rem;
  transition: .3s all;
}
.cta .cta-button-area .cta-button.base span{
  display: block;
  font-size: 2.4rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-semibold);
  text-align: center;
  margin: 0 auto;
  width: 38.6rem;
}
.cta .cta-button-area .cta-button.base img {
  position: absolute;
  width: 3.9rem;
  height: auto;
  right: -1.7rem;
}
.cta .cta-button-area .cta-button.hover {
  box-shadow: var(--box-whiteshadow);
  border: 0.2rem solid var(--gold); 
  background: var(--white);
  color: var(--gold);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  margin: 0 auto;
  padding: 3rem 0.75rem;
  width: 38.6rem;
  height: 5.9rem;
  transition: .3s all;
}
.cta .cta-button-area .cta-button.hover span{
  display: block;
  font-size: 2.4rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-semibold);
  text-align: center;
  margin: 0 auto;
  width: 38.6rem;
}
.cta .cta-button-area .cta-button.hover img {
  position: absolute;
  width: 3.9rem;
  height: auto;
  right: -1.7rem;
}
.comment{
  color: var(--gold);
  font-size: 1.6rem;
  line-height: 180%;
  margin: 1rem 0;
}
.cta-sp-image{
  display: none;
}
@media screen and (max-width: 480px) {
  .cta {
    width: 100%;
    height: 67.9rem;
  }
  .cta .cta-wrapper {
    background: none;
    color: var(--white);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    padding: 8.5rem 0 0 0;
    width: 100%;
    height: 67.9rem;
  }
  .cta h2 {
    font-size: 1.8rem;
    font-weight: var(--gothic-regular);
    line-height: 180%;
  }
  .cta p {
    font-size: 1.4rem;
    font-weight: var(--gothic-regular);
    line-height: 180%;
    margin: 2rem 0;
  }
  .text-underline {
    text-decoration: underline;
  }
  .cta-button-area{
    position: relative;
    margin: 0 auto;
    width: 27.5rem;
    height: 4.2rem;
  }
  .cta .cta-button-area .cta-button.base {
    background: var(--gold);
    border: 0.2rem solid var(--gold); 
    box-shadow: var(--box-whiteshadow);
    color: var(--white);
    line-height: 4.2rem;
    padding: 0 0.75rem;
    width: 27.5rem;
    height: 4.2rem;
    transition: .3s all;
  }
  .cta .cta-button-area .cta-button.base span{
    display: block;
    font-size: 1.8rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    text-align: center;
    width: 27.5rem;
    height: 4.2rem;
  }
  .cta .cta-button-area .cta-button.base img {
    position: absolute;
    width: 3rem;
    height: auto;
    right: -1.4rem;
  }
  .cta .cta-button-area .cta-button.hover {
    box-shadow: var(--box-whiteshadow);
    border: 0.2rem solid var(--gold); 
    background: var(--white);
    color: var(--gold);
    opacity: 0;
    line-height: 4.2rem;
    margin: 0 auto;
    padding: 0rem 0.75rem;
    width: 27.5rem;
    height: 4.2rem;
    transition: .3s all;
  }
  .cta .cta-button-area .cta-button.hover span{
    display: block;
    font-size: 1.8rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-semibold);
    text-align: center;
    margin: 0 auto;
    width: 27.5rem;
  }
  .cta .cta-button-area .cta-button.hover img {
    position: absolute;
    width: 3rem;
    height: auto;
    right: -1.4rem;
  }
  .comment{
    color: var(--gold);
    font-size: 1.6rem;
    line-height: 180%;
    margin: 1rem 0;
  }
  .cta-sp-image{
    display: block;
    position: absolute;
    bottom: 0;
    margin: 0 auto;
    width: 29.5rem;
    height: 26.577rem;
  }
}

/*
*   #about
*/
#about{
  background: var(--blue) url(../img/blue-under-triangle.png) bottom center no-repeat;
  background-size: contain;
  color: var(--white);
  width: 100%;
  height: auto;
  padding: 0 0 12rem 0;
}
.title{
  background: url(../img/white-flow-line.png) bottom center no-repeat;
  background-size: 29.3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column-reverse;
  text-align: center;
  padding: 3rem 0 6rem 0;
}
.title h2{
  font-size: 5rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
}
.title h3{
  font-family: var(--font-gothic);
  font-weight: var(--gothic-regular);
  margin: 3rem 0;
}
.title-sub{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column-reverse;
  text-align: center;
  padding: 6rem 0 3rem 0;
}
.title-sub h4{
  font-size: 3rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-semibold);
  margin: 3rem 0;
}
#about ul {
  display: flex;
  align-items: center;
  justify-content: center;
}
#about ul li {
  border-right: 0.1rem solid var(--border-gray);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  padding: 0 3rem;
  width: 40rem;
  height: 36rem;
}
#about ul li:last-child{
  border: 0; 
}
#about ul li h5{
  font-size: 2.5rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-semibold);
  text-align: center;
  padding: 2.5rem 0;
}
#about ul li img{
  padding: 0 0 2rem 0;
  width: 100%;
  height: auto;
}
#about ul li p{
  line-height: 150%;
  padding: 2rem 0;
}
@media screen and (max-width: 480px) {
  #about{
    background: var(--blue) url(../img/blue-under-triangle.png) bottom center no-repeat;
    background-size: contain;
    color: var(--white);
    width: 100%;
    height: auto;
    padding: 0 0 12rem 0;
  }
  .title{
    background: url(../img/white-flow-line.png) bottom center no-repeat;
    background-size: 29.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column-reverse;
    text-align: center;
    padding: 3rem 0 5rem 0;
  }
  .title h2{
    font-size: 3rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
  }
  .title h3{
    font-size: 1.4rem;
    font-family: var(--font-gothic);
    font-weight: var(--gothic-regular);
    margin: 3rem 0;
  }
  .title-sub{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column-reverse;
    text-align: center;
    padding: 6rem 0 3rem 0;
  }
  .title-sub h4{
    font-size: 2.5rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    margin: 3rem 0;
  }
  #about ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
  }
  #about ul li {
    border-right: 0;
    border-bottom: 0.1rem solid var(--border-gray);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    margin: 0 auto;
    padding: 0;
    width: 32.7rem;
    height: auto;
  }
  #about ul li:last-child{
    border: 0; 
  }
  #about ul li h5{
    font-size: 2rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    text-align: center;
    padding: 2.5rem 0;
  }
  #about ul li img{
    padding: 0;
    width: 100%;
    height: auto;
  }
  #about ul li p{
    font-size: 1.6rem;
    line-height: 170%;
    padding: 2rem 0;
  }
}

/*
*   #map
*/
#map{
  background: var(--gray) url(../img/map-background-top.png) no-repeat center top;
  background-size: contain;
  width: 100%;
  height: auto;
}
#map .map-wrapper{
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 60rem 6% 0 8%;
  width: 100%;
  height: 130rem;
}
#map .map-wrapper h2{
  color: var(--blue);
  font-size: 3rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
}
#map .map-wrapper .history{}
#map .map-wrapper img {
  position: relative;
  top: -13.25rem;
  width: 70.535rem;
  height: auto;
}
#map .map-wrapper .history ol{
  background: url(../img/map-vertical-line.png) no-repeat 1.52rem 2rem;
  background-size: 0.175rem 35.25rem;
  margin: 2rem 0 0 0;
}
#map .map-wrapper .history ol li{
  margin: 0 0 2rem 0;
  position: relative;
}
#map .map-wrapper .history ol li:before{
  content: "・";
  color: var(--blue);
  font-size: 3.25rem;
  position: absolute;
  top: 0;
  left: 0;
}
#map .map-wrapper .history ol li h5{
  color: var(--blue);
  font-size: 1.8rem;
  padding: 1rem 0 0 5rem;
}
#map .map-wrapper .history ol li p{
  font-size: 1.6rem;
  line-height: 150%;
  margin: 0 0 0 3.2rem;
  padding: 1rem 0 0 5rem;
}
@media screen and (max-width: 480px) {
  #map{
    background: var(--gray) url(../img/map-background-sp.png) no-repeat center top;
    background-size: contain;
    width: 100%;
    height: auto;
  }
  #map .map-wrapper{
    box-sizing: border-box;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    padding: 25rem 2.5% 0 2%;
    width: 100%;
    height: auto;
  }
  #map .map-wrapper h2{
    color: var(--blue);
    font-size: 2.5rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
  }
  #map .map-wrapper .history{
    width: 100%;
    height: auto;
  }
  #map .map-wrapper img {
    position: static;
    display: block;
    margin: 0 auto;
    width: auto;
    height: 34.75rem;
  }
  #map .map-wrapper .history ol{
    background: url(../img/map-vertical-line.png) no-repeat 1.52rem 2rem;
    background-size: 0.175rem 50.75rem;
    margin: 2rem 0 0 0;
  }
  #map .map-wrapper .history ol li{
    margin: 0 0 2rem 0;
    position: relative;
  }
  #map .map-wrapper .history ol li:before{
    content: "・";
    color: var(--blue);
    font-size: 3.25rem;
    position: absolute;
    top: 0;
    left: 0;
  }
  #map .map-wrapper .history ol li h5{
    color: var(--blue);
    font-size: 1.8rem;
    padding: 0.75rem 0 0 3.5rem;
  }
  #map .map-wrapper .history ol li p{
    font-size: 1.6rem;
    line-height: 150%;
    margin: 0 4rem 0 1.5rem;
    padding: 1rem 0 0 3.5rem;
  }
}

/*
*   #gain
*/
#gain{
  background: var(--white) url(../img/white-under-triangle.png) center bottom no-repeat;
  background-size: contain;
  padding: 5rem 0;
  width: 100%;
  height: 80.8rem;
}
#gain h2{
  color: var(--blue);
  font-size: 3rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
  margin: 5rem 0;
  text-align: center;
}
#gain ul{
  display: flex;
  align-items: center;
  justify-content: center;
}
#gain ul li{
  background: var(--gray);
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  margin: 0 2rem;
  width: 50.5rem;
  height: 45.3rem;
}
#gain ul li img{
  display: block;
  width: 100%;
  height: 21.9rem;
}
#gain ul li h3{
  color: var(--blue);
  font-size: 2.2rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
  padding: 1rem 4rem;
}
#gain ul li p{
  line-height: 180%;
  padding: 2rem 4rem 4rem 4rem;
}
@media screen and (max-width: 480px) {
  #gain{
    background: var(--white) url(../img/white-under-triangle.png) center bottom no-repeat;
    background-size: contain;
    padding: 3rem 0 6rem 0;
    width: 100%;
    height: auto;
  }
  #gain h2{
    color: var(--blue);
    font-size: 2.5rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    line-height: 180%;
    margin: 5rem 0;
    text-align: center;
  }
  #gain ul{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2rem;
  }
  #gain ul li{
    background: var(--gray);
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    margin: 0 auto;
    width: 32.7rem;
    height: auto;
  }
  #gain ul li img{
    display: block;
    margin: 0 0 1rem 0;
    width: 100%;
    height: auto;
  }
  #gain ul li h3{
    color: var(--blue);
    font-size: 2rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    padding: 0 3rem 1rem 3rem;
  }
  #gain ul li p{
    line-height: 180%;
    padding: 1rem 3rem 4rem 3rem;
  }
}


/*
*   #feature
*/
#feature{
  background: var(--gray);
  padding: 5rem 0;
}
#feature .title {
  background: url(../img/blue-flow-line.png) bottom center no-repeat;
  background-size: 29.3rem;
  color: var(--blue);
}
#feature .about-sub {
  display: flex;
  align-items: flex-start;
  position: relative;
  margin: 6rem auto;
  width: 160rem;
}
#feature .about-title {
  position: sticky;
  top: 7.7rem;
  width: 40rem;
  padding: 0 4rem 0 0;
}
#feature .about-title h4:before {}
#feature .feature-01:before{
  content: "01";
  display: block;
  color: var(--blue);
  font-size: 1.4rem;
  font-family: var(--font-mincho);
  padding: 0 0 1rem 0;
}
#feature .feature-02:before {
  content: "02";
  display: block;
  color: var(--blue);
  font-size: 1.4rem;
  font-family: var(--font-mincho);
  padding: 0 0 1rem 0;
}
#feature .feature-03:before {
  content: "03";
  display: block;
  color: var(--blue);
  font-size: 1.4rem;
  font-family: var(--font-mincho);
  padding: 0 0 1rem 0;
}
#feature .about-title h4{
  color: var(--gold);
  font-size: 3rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
  padding: 0 0 2rem 0;
}
#feature .about-title p{
  line-height: 150%;
}
#feature .about-contents {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  width: 116rem;
}
#feature .about-contents > li {
  background: var(--white);
  border: 0.1rem solid var(--border-gray);
  box-shadow: var(--box-blackshadow);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 6rem 0;
  height: 40rem;
}
#feature .about-contents > li:last-child {
  margin: 0;
}
#feature .about-contents > li.about-column {
  justify-content: flex-start;
  flex-direction: column;
}
.contents-short{
  width: 40%;
}
.contents-middle{
  width: 50%;
}
.contents-long{
  width: 60%;
}
#feature .about-contents > li .about-left {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  padding: 3rem 3rem 3rem 6rem;
}
#feature .about-contents > li .about-left h5 {
  background: url(../img/gray-line.png) left 3.5rem no-repeat;
  background-size: 17rem;
  color: var(--blue);
  font-size: 2rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
  padding: 0 0 3rem 0;
}
#feature .about-contents > li .about-left p {
  line-height: 200%;
}
#feature .about-contents > li .about-right .about-list-circle {
  border-left: 0.1rem solid var(--border-gray);
  margin: 3rem 0;
  position: relative;
  width: 45rem;
  height: 35rem;
}
#feature .about-contents > li .about-right .about-list-circle li {
  background: var(--circle-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border-radius: 99rem;
  width: 18.8rem;
  height: 18.8rem;
}
#feature .about-contents > li .about-right .about-list-circle li h6 {
  color: var(--blue);
  font-size: 1.6rem;
  font-weight: var(--gothic-medium);
  text-align: center;
  padding: 0 0 1.5rem 0;
}
#feature .about-contents > li .about-right .about-list-circle li p {
  font-size: 1.4rem;
  font-weight: var(--gothic-medium);
  line-height: 150%;
  text-align: center;
}
#feature .about-contents > li .about-right .about-list-circle li:nth-child(1){
  position: absolute;
  top: 5%;
  left: 29%;
}
#feature .about-contents > li .about-right .about-list-circle li:nth-child(2){
  position: absolute;
  top: 43%;
  left: 13%;
}
#feature .about-contents > li .about-right .about-list-circle li:nth-child(3){
  position: absolute;
  top: 43%;
  left: 48%;
}
#feature .about-contents > li .about-right .about-list-icon {
  border-left: 0.1rem solid var(--border-gray);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin: 3rem 0;
  width: 45rem;
  height: 40rem;
}
#feature .about-contents > li .about-right .about-list-icon li {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0 2rem;
  padding: 1rem;
}
#feature .about-contents > li .about-right .about-list-icon li:last-child {
  border: 0;
}
#feature .about-contents > li .about-right .about-list-icon li img {
  display: block;
  width: 6rem;
  height: 6rem;
}
#feature .about-contents > li .about-right .about-list-icon li p {
  border-bottom: 0.1rem solid var(--border-gray);
  font-size: 1.4rem;
  line-height: 150%;
  padding: 1rem 0;
  width: 30rem;
}
#feature .about-contents > li .about-top {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
}
#feature .about-contents > li .about-top h5 {
  background: url(../img/gray-line.png) 6rem 6.5rem no-repeat;
  background-size: 17rem;
  color: var(--blue);
  font-size: 2rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
  margin: 0 5rem 0 0;
  padding: 3rem 0 3rem 5.75rem;
}
#feature .about-contents > li .about-top p {
  line-height: 200%;
  padding: 2rem 0;
}
#feature .about-contents > li .about-bottom .about-list-rectangle {
  counter-reset: number 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  padding: 0 5.75rem;
}
#feature .about-contents > li .about-bottom .about-list-rectangle li{
  background: var(--gray);
  margin: 0 0 1rem 0;
  padding: 2rem;
  width: 34rem;
  height: 23rem;
}
#feature .about-contents > li .about-bottom .about-list-rectangle li:last-child{
  margin-right: 0;
}
#feature .about-contents > li .about-bottom .about-list-rectangle li h6{
  color: var(--blue);
  margin: 0 0 1rem 0;
  font-size: 1.75rem;
  text-align: center;
}
#feature .about-contents > li .about-bottom .about-list-rectangle li h6:before{
  counter-increment: number;
  content: "Point" counter(number, decimal-leading-zero);
  display: block;
  color: var(--blue);
  font-size: 1.2rem;
  padding: 0 0 1rem 0;
}
#feature .about-contents > li .about-bottom .about-list-rectangle li img{
  display: block;
  margin: 0 auto;
  width: auto;
  height: 7.1rem;
}
#feature .about-contents > li .about-bottom .about-list-rectangle li p{
  line-height: 150%;
}
#feature .about-contents > li .about-bottom aside {
  display: flex;
  align-items: flex-start;
  margin: 1rem 0 3rem 0;
  padding: 0 6rem;
}
#feature .about-contents > li .about-bottom aside h6 {
  color: var(--blue);
  line-height: 150%;
}
#feature .about-contents > li .about-bottom aside p {
  line-height: 150%;
}
#feature .about-contents > li .about-right .about-list-vertical-rectangle li {
  background: var(--gray);
  margin: 2rem 3rem;
  padding: 2rem 3rem;
  width: 48rem;
}
#feature .about-contents > li .about-right .about-list-vertical-rectangle li h6{
  color: var(--blue);
  margin: 0 0 1rem 0;
  font-size: 1.8rem;
}
#feature .about-contents > li .about-right .about-list-vertical-rectangle li p{
  line-height: 150%;
}
#feature .about-contents > li .about-all {
  background-size: contain;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  width: 116rem;
  height: 40rem;
}
.about-all.feature-02-bg{
  background: url(../img/feature-02-background.png) right center no-repeat;
}
.about-all.feature-03-bg{
  background: url(../img/feature-03-background.png) right center no-repeat;
}
#feature .about-contents > li .about-all h5,
#feature .about-contents > li .about-all p{
  padding: 2rem 6rem;
  width: 50%;
}
#feature .about-contents > li .about-all h5{
  background: url(../img/gray-line.png) 6rem 5.5rem no-repeat;
  background-size: 17rem;
  color: var(--blue);
  font-size: 2rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
}
#feature .about-contents > li .about-all p{
  line-height: 200%;
}
#feature .about-contents > li .feature-03-title h5{
  padding: 3rem 6rem;
}
#feature .about-contents > li .feature-03-list .about-list-rectangle li{
  width: 25rem;
  height: 25.6rem;
}
#feature .about-contents > li.about-column .about-bottom .about-list-rectangle li p{
  margin: 1.5rem 0 0 0;
}
#feature .about-contents > li.about-column .about-bottom .about-list-rectangle.feature-last-list li{
  text-align: center;
}
#feature .about-contents > li.about-column .about-bottom .about-list-rectangle.feature-disabled-number li h6:before{
  content: "";
}
@media screen and (max-width: 480px) {
  #feature{
    background: var(--gray);
    padding: 5rem 0;
  }
  #feature .title {
    background: url(../img/blue-flow-line.png) bottom center no-repeat;
    background-size: 29.3rem;
    color: var(--blue);
  }
  #feature .about-sub {
    display: block;
    position: static;
    margin: 6rem auto;
    width: 100%;
  }
  #feature .about-title {
    position: static;
    margin: 0 auto 3rem auto;
    padding: 0;
    width: 95%;
  }
  #feature .about-title h4:before {}
  #feature .feature-01:before{
    content: "01";
    display: block;
    color: var(--blue);
    font-size: 1.4rem;
    font-family: var(--font-mincho);
    text-align: center;
    padding: 0 0 1rem 0;
  }
  #feature .feature-02:before {
    content: "02";
    display: block;
    color: var(--blue);
    font-size: 1.4rem;
    font-family: var(--font-mincho);
    text-align: center;
    padding: 0 0 1rem 0;
  }
  #feature .feature-03:before {
    content: "03";
    display: block;
    color: var(--blue);
    font-size: 1.4rem;
    font-family: var(--font-mincho);
    text-align: center;
    padding: 0 0 1rem 0;
  }
  #feature .about-title h4{
    color: var(--gold);
    font-size: 2.5rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    text-align: center;
    padding: 0 0 2rem 0;
  }
  #feature .about-title p{
    line-height: 150%;
    margin: 0 auto;
    padding: 0;
    width: 32.7rem;
    height: auto;
  }
  #feature .about-contents {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    margin: 0 auto;
    width: 32.7rem;
  }
  #feature .about-contents > li {
    background: var(--white);
    border: 0.1rem solid var(--border-gray);
    box-shadow: var(--box-blackshadow);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin: 0 auto 6rem auto;
    width: 32.7rem;
    height: auto;
  }
  #feature .about-contents > li:last-child {
    margin: 0;
  }
  #feature .about-contents > li.about-column {
    justify-content: flex-start;
    flex-direction: column;
  }
  .contents-short{
    width: 100%;
  }
  .contents-middle{
    width: 100%;
  }
  .contents-long{
    width: 100%;
  }
  #feature .about-contents > li .about-left {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    padding: 3rem;
    width: 32.7rem;
  }
  #feature .about-contents > li .about-left h5 {
    background: url(../img/gray-line.png) left 3.5rem no-repeat;
    background-size: 17rem;
    color: var(--blue);
    font-size: 2rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    padding: 0 0 3rem 0;
  }
  #feature .about-contents > li .about-left p {
    line-height: 200%;
  }
  #feature .about-contents > li .about-right {
    margin: 0 0 3rem 0;
    width: 32.7rem;
  }
  #feature .about-contents > li .about-right .about-list-circle {
    border-top: 0.1rem solid var(--border-gray);
    border-left: 0;
    margin: 3rem auto;
    position: relative;
    width: 28.7rem;
    height: 35rem;
  }
  #feature .about-contents > li .about-right .about-list-circle li {
    background: var(--circle-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-radius: 99rem;
    width: 15rem;
    height: 15rem;
  }
  #feature .about-contents > li .about-right .about-list-circle li h6 {
    color: var(--blue);
    font-size: 1.4rem;
    font-weight: var(--gothic-medium);
    text-align: center;
    padding: 0 0 1.5rem 0;
  }
  #feature .about-contents > li .about-right .about-list-circle li p {
    font-size: 1.2rem;
    font-weight: var(--gothic-medium);
    line-height: 150%;
    text-align: center;
  }
  #feature .about-contents > li .about-right .about-list-circle li:nth-child(1){
    position: absolute;
    top: 5%;
    left: 24%;
  }
  #feature .about-contents > li .about-right .about-list-circle li:nth-child(2){
    position: absolute;
    top: 36%;
    left: 1%;
  }
  #feature .about-contents > li .about-right .about-list-circle li:nth-child(3){
    position: absolute;
    top: 36%;
    left: 46%;
  }
  #feature .about-contents > li .about-right .about-list-icon {
    border: 0;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    margin: 0 auto;
    width: 28.7rem;
    height: auto;
  }
  #feature .about-contents > li .about-right .about-list-icon li {
    border-top: 0.1rem solid var(--border-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 2rem 0;
    gap: 2rem;
  }
  #feature .about-contents > li .about-right .about-list-icon li:last-child {
    border-top: 0.1rem solid var(--border-gray);
  }
  #feature .about-contents > li .about-right .about-list-icon li img {
    display: block;
    margin: 0;
    padding: 0;
    width: 5rem;
    height: 5rem;
  }
  #feature .about-contents > li .about-right .about-list-icon li p {
    border: 0;
    font-size: 1.4rem;
    line-height: 150%;
    margin: 0;
    padding: 0;
    width: auto;
  }
  #feature .about-contents > li .about-right .about-list-icon li p br{
    display: none;
  }
  #feature .about-contents > li .about-top {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    width: 27.9rem;
  }
  #feature .about-contents > li .about-top h5 {
    background: url(../img/gray-line.png) left bottom no-repeat;
    background-size: 17rem;
    color: var(--blue);
    font-size: 2rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    margin: 0;
    padding: 3rem 0 2rem 0;
  }
  #feature .about-contents > li .about-top p {
    line-height: 150%;
    padding: 2rem 0;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle {
    counter-reset: number 0;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: 0;
    margin: 0 auto;
    padding: 0 0 3rem 0;
    width: 27.9rem;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle li{
    background: var(--gray);
    margin: 0 0 1rem 0;
    padding: 2rem;
    width: 100%;
    height: auto;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle li:last-child{
    margin-right: 0;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle li h6{
    color: var(--blue);
    margin: 0 0 1rem 0;
    font-size: 1.6rem;
    font-weight: var(--gothic-medium);
    text-align: center;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle li h6:before{
    counter-increment: number;
    content: "Point" counter(number, decimal-leading-zero);
    display: block;
    color: var(--blue);
    font-size: 1.2rem;
    padding: 0 0 1rem 0;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle li img{
    display: block;
    margin: 0 auto;
    width: auto;
    height: 7.1rem;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle li p{
    font-size: 1.4rem;
    line-height: 150%;
  }
  #feature .about-contents > li .about-bottom .about-list-rectangle li p br{
    display: none;
  }
  #feature .about-contents > li .about-bottom aside {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    margin: 1rem 0 3rem 0;
    padding: 0 2rem;
  }
  #feature .about-contents > li .about-bottom aside h6 {
    color: var(--blue);
    font-weight: var(--gothic-medium);
    line-height: 150%;
    width: 100%;
  }
  #feature .about-contents > li .about-bottom aside p {
    line-height: 150%;
    width: 100%;
  }
  #feature .about-contents > li .about-right .about-list-vertical-rectangle li {
    background: var(--gray);
    margin: 0 auto 1rem auto;
    padding: 2rem;
    width: 27.9rem;
    height: auto;
  }
  #feature .about-contents > li .about-right .about-list-vertical-rectangle li h6{
    color: var(--blue);
    font-size: 1.6rem;
    font-weight: var(--gothic-medium);
    margin: 0 0 1rem 0;
    padding: 1rem 0;
    text-align: center;
  }
  #feature .about-contents > li .about-right .about-list-vertical-rectangle li p{
    line-height: 150%;
    font-size: 1.4rem;
  }
  #feature .about-contents > li .about-all {
    background-size: contain;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    padding: 0 0 28.45rem 0;
    width: 100%;
    height: auto;
  }
  .about-all.feature-02-bg{
    background: url(../img/feature-02-background-sp.png) center bottom no-repeat;
  }
  .about-all.feature-03-bg{
    background: url(../img/feature-03-background-sp.png) center bottom no-repeat;
  }
  #feature .about-contents > li .about-all h5,
  #feature .about-contents > li .about-all p{
    padding: 2rem;
  }
  #feature .about-contents > li .about-all h5{
    background: url(../img/gray-line.png) 2rem bottom no-repeat;
    background-size: 17rem;
    color: var(--blue);
    font-size: 2rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    margin: 2rem 0 0 0;
    width: 100%;
  }
  #feature .about-contents > li .about-all p{
    font-size: 1.6rem;
    line-height: 170%;
    width: 100%;
  }
  #feature .about-contents > li .feature-03-title h5{
    margin: 2rem 0;
    padding: 2rem 0;
  }
  #feature .about-contents > li .feature-03-list .about-list-rectangle li{
    width: 100%;
    height: auto;
  }
  #feature .about-contents > li.about-column .about-bottom .about-list-rectangle li p{
    margin: 1.5rem 0 0 0;
  }
  #feature .about-contents > li.about-column .about-bottom .about-list-rectangle.feature-last-list li{
    text-align: left;
  }
  #feature .about-contents > li.about-column .about-bottom .about-list-rectangle.feature-disabled-number li h6:before{
    content: "";
  }
}

/*
*   #flow
*/
#flow {
  background: var(--white) url(../img/white-under-triangle.png) center bottom no-repeat;
  background-size: contain;
  padding: 5rem 0;
  width: 100%;
  height: 100rem;
}
#flow .title{
  background: url(../img/blue-flow-line.png) bottom center no-repeat;
  background-size: 29.3rem;
  color: var(--blue);
}
#flow .title-sub {
  flex-direction: column;
}
#flow .title-sub h4{
  color: var(--blue);
}
#flow ol{
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 4rem 0 0 0;
  width: auto;
  height: 34.1rem;
}
#flow ol li {
  position: relative;
  width: 56.3rem;
  height: 34.1rem;
}
#flow ol li img {
  width: 56.3rem;
  height: 12.4rem;
}
#flow .step-box {
  background: var(--white);
  border: 0.1rem solid var(--border-gray);  
  box-shadow: var(--box-blackshadow);
  position: absolute;
  top: 8rem;
  margin: 0 0 0 8.1rem;
  padding: 3rem;
  width: 48.2rem;
  height: 26.2rem;
  z-index: 9999;
}
#flow ol li:nth-child(1){}
#flow ol li:nth-child(2){ margin: 0 0 0 -4rem; }
#flow ol li:nth-child(3){ margin: 0 0 0 -4rem; }
#flow ol li:nth-child(1):before {
  content: "STEP.1";
  display: block;
  color: var(--white);
  font-size: 2rem;
  font-family: var(--font-mincho); 
  font-weight: var(--mincho-bold);
  position: absolute;
  top: 4rem;
  left: 8rem;
  z-index: 4;
}
#flow ol li:nth-child(2):before {
  content:"STEP.2";
  position: absolute;
  display: block;
  color: var(--white);
  font-size: 2rem;
  font-family: var(--font-mincho); 
  font-weight: var(--mincho-bold);
  top: 4rem;
  left: 8rem;
  z-index: 4;
}
#flow ol li:nth-child(3):before {
  content:"STEP.3";
  position: absolute;
  display: block;
  color: var(--white);
  font-size: 2rem;
  font-family: var(--font-mincho); 
  font-weight: var(--mincho-bold);
  top: 4rem;
  left: 8rem;
  z-index: 4;
}
#flow ol li:nth-child(1) img{
  position: absolute;
  z-index: 3;
}
#flow ol li:nth-child(2) img{
  position: absolute;
  left: -5rem;
  width: auto;
  z-index: 2;
}
#flow ol li:nth-child(3) img{
  position: absolute;
  left: -7.5rem;
  width: auto;
  z-index: 1;
}
#flow .step-box h5{
  color: var(--blue);
  font-size: 2.5rem;
  font-family: var(--font-mincho); 
  font-weight: var(--mincho-bold);
  margin: 0 0 1.5rem 0;
}
#flow .step-box p{
  line-height: 200%;
}
#flow .sp-flow-swiper{
  display: none;
}
@media screen and (max-width: 480px) {
  #flow {
    background: var(--white) url(../img/white-under-triangle.png) center bottom no-repeat;
    background-size: contain;
    padding: 5rem 0;
    width: 100%;
    height: auto;
  }
  #flow .title{
    background: url(../img/blue-flow-line.png) bottom center no-repeat;
    background-size: 29.3rem;
    color: var(--blue);
  }
  #flow .title-sub {
    flex-direction: column;
  }
  #flow .title-sub h4{
    color: var(--blue);
  }
  #flow .title-sub p{
    text-align: left;
    margin: 0 auto;
    width: 32.7rem;
    line-height: 170%;
  }
  #flow ol{
    display: none;
  }
  #flow .sp-flow-swiper{
    display: block;
  }
  #flow .sp-flow-swiper .swiper-wrapper{
    position: relative;
  }
  #flow .sp-flow-swiper .inner{
    position: relative;
    margin: 0 3rem 0 0; 
    width: 100%;
    height: 37rem;
  }
  #flow .sp-flow-swiper .inner .step-box{
    margin: 1.5rem 0 0 3.1rem;
    top: 4rem;
    width: 31.7rem;
    height: 27rem;
  }
  #flow .sp-flow-swiper .inner .step-box h5{
    color: var(--blue);
    font-size: 2rem;
    font-family: var(--font-mincho); 
    font-weight: var(--mincho-bold);
    margin: 0 0 1.5rem 0;
  }
  #flow .sp-flow-swiper .inner .step-box p{
    line-height: 150%;
  }
  #flow .sp-flow-swiper .inner.swiper-box-1 { background: url(../img/flow-step-01.png) left top no-repeat; background-size: contain; }
  #flow .sp-flow-swiper .inner.swiper-box-2 { background: url(../img/flow-step-02.png) left top no-repeat; background-size: contain; }
  #flow .sp-flow-swiper .inner.swiper-box-3 { background: url(../img/flow-step-03.png) left top no-repeat; background-size: contain; }
  #flow .sp-flow-swiper .inner.swiper-box-1:before {
    content: "STEP.1";
    display: block;
    color: var(--white);
    font-size: 1.6rem;
    font-family: var(--font-mincho); 
    font-weight: var(--mincho-bold);
    position: absolute;
    top: 2.5rem;
    left: 3.25rem;
    z-index: 4;
  }
  #flow .sp-flow-swiper .inner.swiper-box-2:before {
    content:"STEP.2";
    position: absolute;
    display: block;
    color: var(--white);
    font-size: 1.6rem;
    font-family: var(--font-mincho); 
    font-weight: var(--mincho-bold);
    top: 2.5rem;
    left: 3.25rem;
    z-index: 4;
  }
  #flow .sp-flow-swiper .inner.swiper-box-3:before {
    content:"STEP.3";
    position: absolute;
    display: block;
    color: var(--white);
    font-size: 1.6rem;
    font-family: var(--font-mincho); 
    font-weight: var(--mincho-bold);
    top: 2.5rem;
    left: 3.25rem;
    z-index: 4;
  }
}

/*
*   #price
*/
#price{
  background: var(--gray);
  padding: 0 0 6rem 0;
}
#price .title {
  background: url(../img/blue-flow-line.png) bottom center no-repeat;
  background-size: 29.3rem;
}
#price .title h2{
  color: var(--blue);
}
#price .title h3{
  color: var(--blue);
}
#price .price-list{
  width: 100%;
  margin: 3rem 0;
}
#price .price-list dl{
  box-shadow: var(--box-blackshadow);
  display: flex;
  align-items: stretch;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 auto;
  width: 160rem;
}
#price .price-list dl dt{
  background: var(--blue) url(../img/price-line.png) bottom center no-repeat;
  background-size: 90%;
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  width: 25%;
  height: auto;
}
#price .price-list dl dt.price-dt-last-child{
  background: var(--blue) none;
}
#price .price-list dl dd{
  background: var(--white) url(../img/price-line-long.png) bottom center no-repeat;
  background-size: 95%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-size: 1.6rem;
  width: 75%;
}
#price .price-list dl dd.price-dd-last-child{
  background: var(--white) none;
}
#price .price-list dl dd div{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 3rem 0;
  width: 50%;
}
#price .price-list dl dd div ul,
#price .price-list dl dd div ul+p{
  width: 31.1rem;
}
#price .price-list dl dd div ul+p{
  margin: -1.5rem 0 0 0;
}
#price .price-list dl dd div ul li{
  text-align: left;
  padding: 0.5rem 0;
}
#price .price-list dl dd p{
  border-left: var(--border-darkgray) solid 0.1rem;
  margin: 2rem 0;
  padding: 2rem 2.5%;
  line-height: 150%;
  width: 45%;
}
#price .price-list dl dd ul+p{
  border: none;
}
#price .price-list-sub {
  background: var(--white);
  box-shadow: var(--box-blackshadow);
  padding: 3rem;
  margin: 6rem auto;
  width: 103rem;
}
#price .price-list-sub h3{
  color: var(--blue);
  font-size: 2.5rem;
  font-family: var(--font-mincho); 
  font-weight: var(--mincho-bold);
  margin: 0 0 3rem 0;
  text-align: center;
}
#price .price-list-sub dl{
  background: var(--white);
  border-top: 0.1rem solid var(--border-darkgray);
  margin: 1rem auto;
  display: flex;
  align-items: stretch;
  justify-content: center;
  flex-wrap: wrap;
  width: 86.8rem;
}
#price .price-list-sub dl dt{
  background: url(../img/price-sub-vertical-line.png) right center no-repeat;
  background-size: 0.1rem 5rem;
  border-bottom: 0.1rem solid var(--border-darkgray);
  color: var(--blue);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-size: 1.8rem;
  padding: 3rem;
  width: 30%;
  height: auto;
}
#price .price-list-sub dl dd{
  border-bottom: 0.1rem solid var(--border-darkgray);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 3rem;
  font-size: 1.6rem;
  width: 70%;
}
#price .price-list-sub p{
  font-size: 1.6rem;
  margin: 2rem auto 0.5rem auto;
  width: 86.8rem;
}
@media screen and (max-width: 480px) {
  #price{
    background: var(--gray);
    padding: 0 0 6rem 0;
  }
  #price .title {
    background: url(../img/blue-flow-line.png) bottom center no-repeat;
    background-size: 29.3rem;
  }
  #price .title h2{
    color: var(--blue);
  }
  #price .title h3{
    color: var(--blue);
  }
  #price .title-sub p{
    color: var(--black);
    line-height: 170%;
    text-align: left;
    margin: 0 auto;
    width: 32.7rem;
  }
  #price .price-list{
    margin: 3rem auto;
    width: 32.7rem;
  }
  #price .price-list dl{
    box-shadow: none;
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
    flex-wrap: wrap;
    margin: 0 auto;
    width: 100%;
  }
  #price .price-list dl dt{
    background: var(--blue);
    box-shadow: var(--box-blackshadow);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    font-size: 1.8rem;
    padding: 1.5rem 0;
    width: 100%;
    height: auto;
  }
  #price .price-list dl dt.price-dt-last-child{
    background: var(--blue);
  }
  #price .price-list dl dd{
    background: var(--white);
    box-shadow: var(--box-blackshadow);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    font-size: 1.6rem;
    margin: 0 0 2rem 0;
    width: 100%;
  }
  #price .price-list dl dd.price-dd-last-child{
    background: var(--white);
  }
  #price .price-list dl dd div{
    border-bottom: 0.1rem solid var(--border-darkgray);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin: 0 auto;
    padding: 5rem 0;
    width: 27.9rem;
  }
  #price .price-list dl dd div ul,
  #price .price-list dl dd div ul+p{
    width: 100%;
  }
  #price .price-list dl dd div ul+p{
    margin: -1.5rem 0 0 0;
  }
  #price .price-list dl dd div ul li{
    text-align: left;
    padding: 0.5rem 0;
  }
  #price .price-list dl dd p{
    border: 0;
    margin: 2rem auto;
    padding: 2rem 2.5%;
    line-height: 150%;
    width: 27.9rem;
  }
  #price .price-list dl dd ul+p{
    border: none;
  }
  #price .price-list-sub {
    background: var(--white);
    box-shadow: var(--box-blackshadow);
    padding: 3rem 0;
    margin: 6rem auto;
    width: 32.7rem;
  }
  #price .price-list-sub h3{
    color: var(--blue);
    font-size: 2.5rem;
    font-family: var(--font-mincho); 
    font-weight: var(--mincho-bold);
    margin: 0 0 3rem 0;
    text-align: center;
  }
  #price .price-list-sub dl{
    background: var(--white);
    border-top: 0.1rem solid var(--border-darkgray);
    margin: 1rem auto;
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
    flex-wrap: wrap;
    width: 27.9rem;
  }
  #price .price-list-sub dl dt{
    background: none;
    border-bottom: 0;
    color: var(--blue);
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    font-size: 1.8rem;
    font-weight: var(--gothic-medium);
    margin: 0;
    padding: 3rem 0 1rem 0;
    width: 100%;
    height: auto;
  }
  #price .price-list-sub dl dd{
    border-bottom: 0.1rem solid var(--border-darkgray);
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    text-wrap: nowrap;
    margin: 0;
    padding: 1rem 0 3rem 0;
    font-size: 1.5rem;
    width: 100%;
  }
  #price .price-list-sub p{
    font-size: 1.5rem;
    line-height: 170%;
    margin: 2rem auto 0.5rem auto;
    width: 27.9rem;
  }
}

/*
*   #step
*/
#step{
  background: var(--gray);
  padding: 0 0 6rem 0;
}
#step .title {
  background: url(../img/blue-flow-line.png) bottom center no-repeat;
  background-size: 29.3rem;
}
#step .title h2{
  color: var(--blue);
}
#step .title h3{
  color: var(--blue);
}
#step ol {
  counter-reset: number 0;
}
#step ol li{
  background: var(--white) url(../img/gray-under-triangle.png) 1rem center no-repeat;
  background-size: 3.6rem 1.8rem;
  box-shadow: var(--box-blackshadow);
  counter-increment: number;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  padding: 1rem 0;
  margin: 5rem auto;
  width: 160rem;
  height: 13.2rem;
}
#step ol li:before{
  content: "STEP." counter(number);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--blue);
  color: var(--white);
  width: 12.5rem;
  height: 13.2rem;
}
#step ol li:after{
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  transform: translate(-50%, 0);
  bottom: -3.5rem;
  background: url(../img/gray-under-triangle.png) no-repeat;
  background-size: 3.6rem;
  width: 3.6rem;
  height: 1.8rem;
}
#step ol li:last-child:after{
  content: "";
  background: none;
  width: 0;
  height: 0;
}
#step ol li .step-title {
  background: url(../img/price-sub-vertical-line.png) right center no-repeat;
  background-size: 0.1rem 9rem;
  color: var(--blue);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 1rem 0;
  width: 34.5rem;
}
#step ol li .step-title img {
  margin: 0rem 2rem;
  width: 3.25rem;
  height: auto;
}
#step ol li .step-title span {
  font-size: 2.2rem;
}
#step ol li .step-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3rem;
  width: 135.5rem;
}
#step ol li .step-content p{
  line-height: 150%;
}
#step ol li .step-content .badge-GS{
  background: var(--blue);
  color: var(--white);
  padding: 0.5rem 1rem;
}
#step ol li .step-content .badge-CL{
  background: var(--gold);
  color: var(--white);
  padding: 0.5rem 1rem;
}
@media screen and (max-width: 480px) {
  #step{
    background: var(--gray);
    padding: 0 0 6rem 0;
  }
  #step .title {
    background: url(../img/blue-flow-line.png) bottom center no-repeat;
    background-size: 29.3rem;
  }
  #step .title h2{
    color: var(--blue);
  }
  #step .title h3{
    color: var(--blue);
  }
  #step ol {
    counter-reset: number 0;
    margin: 0 auto;
    width: 32.7rem;
  }
  #step ol li{
    background: var(--white);
    box-shadow: var(--box-blackshadow);
    counter-increment: number;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    font-weight: 1.8rem;
    margin: 5rem auto;
    padding: 0;
    width: 100%;
    height: auto;
  }
  #step ol li:before{
    content: "STEP." counter(number);
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    background: var(--blue);
    color: var(--white);
    font-size: 1.2rem;
    font-weight: var(--gothic-medium);
    text-align: left;
    margin: 0;
    padding: 1rem 2rem;
    width: 100%;
    height: auto;
  }
  #step ol li:after{
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0);
    bottom: -3.5rem;
    background: url(../img/gray-under-triangle.png) no-repeat;
    background-size: 3.6rem;
    width: 3.6rem;
    height: 1.8rem;
  }
  #step ol li:last-child:after{
    content: "";
    background: none;
    width: 0;
    height: 0;
  }
  #step ol li .step-title {
    background: none;
    background-size: 0.1rem 9rem;
    border-bottom: 0.1rem solid var(--border-darkgray);
    color: var(--blue);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin: 0 auto;
    padding: 2rem 0;
    width: 29.1rem;
    height: auto;
  }
  #step ol li .step-title img {
    margin: 0;
    width: 3rem;
    height: auto;
  }
  #step ol li .step-title span {
    font-size: 1.8rem;
    margin: 0 0 0 1.5rem;
  }
  #step ol li .step-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
    padding: 2rem;
    position: relative;
    width: 100%;
    height: auto;
  }
  #step ol li .step-content p{
    font-size: 1.4rem;
    line-height: 170%;
    padding: 0 0 5rem 0;
  }
  #step ol li .step-content .badge-GS{
    background: var(--blue);
    color: var(--white);
    padding: 0.5rem 1rem;
    position: absolute;
    right: 2rem;
    bottom: 3rem;
  }
  #step ol li .step-content .badge-CL{
    background: var(--gold);
    color: var(--white);
    padding: 0.5rem 1rem;
    position: absolute;
    right: 2rem;
    bottom: 3rem;
  }
}

/*
*   #faq
*/
#faq{
  background: var(--blue-gradation);
  color: var(--white);
  padding: 0 0 6rem 0;
}
#faq .faq-wrapper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin: 0 auto;
  padding: 10rem;
  width: 160rem;
}
#faq .title {
  background: none;
  align-items: flex-start;
  margin: 0;
  padding: 0;
  width: 40rem;
  height: auto;
}
#faq .title h2{
  color: var(--white);
  font-size: 4rem;
  text-align: left;
}
#faq .title h3{
  color: var(--white);
  text-align: left;
  margin: 1rem 0;
  padding: 0;
}
#faq dl{
  width: 120rem;
}
#faq dt{
  border-top: 0.1rem solid var(--white);
  font-size: 2rem;
  padding: 2.5rem 0 1rem 0;
}
#faq dt:not(:nth-child(1)){
  border: 0;
}
#faq dt:before{
  content: "Q.";
  font-size: 2rem;
  margin: 0 1rem 0 0;
}
#faq dd{
  border-bottom: 0.1rem solid var(--white);
  font-size: 1.6rem;
  padding: 1rem 0 2.5rem 0;
}
#faq dd:before{
  content: "A.";
  font-size: 2.1rem;
  margin: 0 1rem 0 0.1rem;
}
#faq a{
  color: var(--white);
  text-decoration: underline;
}
@media screen and (max-width: 480px) {
  #faq{
    background: var(--blue-gradation);
    color: var(--white);
    padding: 0 0 6rem 0;
    width: 100%;
  }
  #faq .faq-wrapper {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    margin: 3rem auto;
    padding: 0;
    width: 32.7rem;
  }
  #faq .title {
    background: none;
    align-items: flex-start;
    margin: 6rem 0 3rem 0;
    padding: 0;
    width: 100%;
    height: auto;
  }
  #faq .title h2{
    color: var(--white);
    font-size: 3rem;
    font-weight: var(--mincho-bold);
    text-align: left;
  }
  #faq .title h3{
    color: var(--white);
    font-size: 1.6rem;
    font-family: var(--font-gothic);
    font-weight: var(--gothic-regular);
    text-align: left;
    margin: 1rem 0;
    padding: 0;
  }
  #faq dl{
    width: 100%;
  }
  #faq dt{
    border-top: 0.1rem solid var(--white);
    font-size: 1.8rem;
    line-height: 150%;
    position: relative;
    padding: 2rem 0 1rem 4rem;
  }
  #faq dt:not(:nth-child(1)){
    border: 0;
  }
  #faq dt:before{
    content: "Q.";
    font-size: 1.8rem;
    position: absolute;
    top: 2rem;
    left: 0;
    margin: 0 1rem 0 0;
  }
  #faq dd{
    border-bottom: 0.1rem solid var(--white);
    font-size: 1.4rem;
    font-weight: var(--gothic-regular);
    position: relative;
    line-height: 150%;
    padding: 1rem 0 2rem 4rem;
  }
  #faq dd:before{
    content: "A.";
    font-size: 1.8rem;
    position: absolute;
    top: 1rem;
    left: 0;
    margin: 0 1rem 0 0.1rem;
  }
  #faq a{
    color: var(--white);
    text-decoration: underline;
  }
}

/*
*   #mission
*/
#mission{
  background: var(--white) url(../img/white-under-triangle.png) center bottom no-repeat;
  background-size: contain;
  padding: 5rem 0;
  width: 100%;
  height: 95rem;
}
#mission .title {
  background: url(../img/blue-flow-line.png) bottom center no-repeat;
  background-size: 29.3rem;
}
#mission .title h2{
  color: var(--blue);
}
#mission .title h3{
  color: var(--blue);
}
#mission ul {
  display: flex;
  align-items: center;
  justify-content: center;
}
#mission ul li{
  background: url(../img/cross.png) right 32% no-repeat;
  background-size: 2.4rem;
  padding: 0 2.4rem 0 0;
  width: 44rem;
}
#mission ul li:last-child{
  background: none;
  padding: 0;
  width: 44rem;
}
#mission ul li img{
  border-radius: 99rem;
  display: block;
  margin: 0 auto;
  width: 25.4rem;
  height: 25.4rem;
}
#mission ul li h5{
  color: var(--blue);
  font-size: 2.5rem;
  font-family: var(--font-mincho);
  font-weight: var(--mincho-bold);
  text-align: center;
  padding: 3rem 0;
}
#mission ul li p{
  line-height: 170%;
  font-size: 1.6rem;
  text-align: center;
}
@media screen and (max-width: 480px) {
  #mission{
    background: var(--white) url(../img/white-under-triangle.png) center bottom no-repeat;
    background-size: contain;
    padding: 5rem 0;
    width: 100%;
    height: auto;
  }
  #mission .title {
    background: url(../img/blue-flow-line.png) bottom center no-repeat;
    background-size: 29.3rem;
  }
  #mission .title h2{
    color: var(--blue);
    margin: 0;
    padding: 0;
  }
  #mission .title h3{
    color: var(--blue);
    margin: 0;
    padding: 2rem 0;
  }
  #mission .title-sub{
    margin: 0 auto;
    width: 32.7rem;
  }
  #mission .title-sub p{
    line-height: 150%;
    text-align: left;
  }
  #mission ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 32.7rem;
    margin: 0 auto;
  }
  #mission ul li{
    background: url(../img/cross.png) center bottom no-repeat;
    background-size: 2.4rem;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 0 4rem 0;
    width: 32.7rem;
  }
  #mission ul li:last-child{
    background: none;
    padding: 0;
    width: 32.7rem;
  }
  #mission ul li img{
    border-radius: 99rem;
    display: block;
    margin: 0;
    width: 13.8rem;
    height: 13.8rem;
  }
  #mission ul li .sp{
    margin: 0 0 0 1.5rem;
    width: 17.4rem;
  }
  #mission ul li h5{
    color: var(--blue);
    font-size: 1.8rem;
    font-family: var(--font-mincho);
    font-weight: var(--mincho-bold);
    text-align: left;
    padding: 0 0 1rem 0;
  }
  #mission ul li p{
    line-height: 150%;
    font-size: 1.4rem;
    text-align: left;
    padding: 0;
  }
  #mission ul li p br{
    display: none;    
  }
}

/*
*   #product
*/
#product{
  background: var(--gray);
  padding: 6rem 0 10rem 0;
  width: 100%;
  height: auto;
}
#product .title {
  background: url(../img/blue-flow-line.png) bottom center no-repeat;
  background-size: 29.3rem;
}
#product .title h2{
  color: var(--blue);
}
#product .title h3{
  color: var(--blue);
}
#product ul {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin: 1rem auto;
  gap: 2.5rem;
  width: 160rem;
  height: auto;
}
#product ul li{
  width: 35rem;
  text-align: center;
}
#product ul li img{
  width: 35rem;
  height: 35rem;
}
#product ul li span{
  line-height: 200%;
}
@media screen and (max-width: 480px) {
  #product{
    background: var(--gray);
    padding: 6rem 0 10rem 0;
    width: 100%;
    height: auto;
  }
  #product .title {
    background: url(../img/blue-flow-line.png) bottom center no-repeat;
    background-size: 29.3rem;
  }
  #product .title h2{
    color: var(--blue);
  }
  #product .title h3{
    color: var(--blue);
  }
  #product .title-sub p{
    line-height: 170%;
    text-align: left;
    margin: 0 auto;
    padding: 0;
    width: 32.7rem;
  }
  #product ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0 auto;
    gap: 2%;
    width: 32.7rem;
    height: auto;
  }
  #product ul li{
    width: 48%;
    text-align: center;
    padding: 1rem 0;
  }
  #product ul li img{
    display: block;
    padding: 1rem 0;
    width: 100%;
    height: auto;
  }
  #product ul li span{
    font-size: 1.4rem;
    line-height: 200%;
  }
}

/*
*   footer
*/
footer{
  background: var(--blue);
  color: var(--white);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  height: auto;
}
footer .footer-left{
  padding: 10rem;
}
footer .footer-left a{
  color: var(--white);
  line-height: 200%;
}
footer .footer-left .link-animation a::after {
  background: var(--white);
}
footer .footer-instagram img{
  margin: 0 1rem;
  width: 1.2rem;
  height: auto;
}
footer .footer-left .footer-logo a img{
  width: 34.714rem;
  height: auto;
}
footer .footer-left small{
  display: block;
  margin: 15rem 0 0 0;
}
footer .footer-right{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 10rem 0 10rem 10rem;
}
footer .footer-right ol{
  width: 34rem;
  margin: 0 3rem 0 0; 
}
footer .footer-right ol li{
  margin: 2rem 0;
}
footer .footer-right ol li:last-child{
  margin: 0 0 2rem 0;
}
footer .footer-right ol li a{
  color: var(--white);
}
footer .footer-right ol.link-animation a:after {
  background: var(--white);
}
footer .footer-right small {
  display: none;
}
@media screen and (max-width: 480px) {
  footer{
    background: var(--blue);
    color: var(--white);
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    width: 100%;
    height: auto;
  }
  footer .footer-left{
    padding: 6rem 3rem 0 3rem;
    width: 100%;
  }
  footer .footer-left a{
    color: var(--white);
    line-height: 200%;
  }
  footer .footer-left .link-animation a::after {
    background: var(--white);
  }
  footer .footer-instagram img{
    margin: 0 1rem;
    width: 1.2rem;
    height: auto;
  }
  footer .footer-left .footer-logo a img{
    width: 23.571rem;
    height: auto;
  }
  footer .footer-left small{
    display: none;
  }
  footer .footer-right{
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    padding: 0 3rem 3rem 3rem;
    width: 100%;
  }
  footer .footer-right ol{
    margin: 3rem 0;
    width: 100%;
  }
  footer .footer-right ol li{
    margin: 1.5rem 0;
  }
  footer .footer-right ol li:last-child{
    margin: 0;
  }
  footer .footer-right ol li a{
    color: var(--white);
  }
  footer .footer-right ol.link-animation a:after {
    background: var(--white);
  }
  footer .footer-right small {
    display: block;
    padding: 3rem 0;
  }
}

/*
*   .hamburger-menu
*/
.hamburger-menu {
  display: none;
}
@media screen and (max-width: 480px) {
  .hamburger-menu {
      cursor: pointer;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 5px;
      position: fixed;
      top: 0;
      right: 0;
      background: transparent;
      width: 5.1rem;
      height: 5.1rem;
      z-index: 999999999999;
      transition: all 0.3s;
  }
  .hamburger-menu .hamburger-line {
      background: var(--border-darkgray);
      margin: 2px auto;
      width: 50%;
      height: 1px;
      transition: background-color 0.3s;
      z-index: 999999999999;
  }
  .active {
      z-index: 999999999999;
  }
  .active .hamburger-line:nth-child(1) {
      transform: translateY(5px) rotate(35deg);
  }
  .active .hamburger-line:nth-child(2) {
      transform: translateY(-5px) rotate(-35deg);
  }
}

/*
*   #sp-menu
*/
#sp-menu{
  display: none;
}
@media screen and (max-width: 480px) {
  #sp-menu{
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    background: var(--blue);
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    transform: translateX(100%);
    transition: all .1s linear;
    z-index: 99999999;
  }
  #sp-menu.active{
    transform: translateX(20%);
  }
  #sp-menu ul{
    margin: 0;
    padding: 5.1rem 3rem;
    width: 30rem;
  }
  #sp-menu ul li {
    margin: 2rem 0;
  }
  #sp-menu ul li:before{
    content: "・";
    color: var(--white);
  }
  #sp-menu ul li a{
    color: var(--white);
    padding: 1rem;
  }
  #sp-menu a.sp-menu-button{
    display: block;
    background: var(--gold);
    border: 0.1rem solid var(--gold);
    color: var(--white);
    text-align: center;
    margin: 0 3rem;
    padding: 1rem 0;
    width: 21.8rem;
  }
  #sp-menu a.sp-menu-button:hover{
    background: var(--white);
    border: 0.1rem solid var(--gold);
    color: var(--gold);
  }
  #sp-menu a.sp-menu-instagram{
    display: block;
    text-align: center;
    margin: 1rem 3rem;
    padding: 0;
  }
  #sp-menu a.sp-menu-instagram:hover{
    display: block;
    text-align: center;
    margin: 1rem 3rem;
    padding: 0;
  }
  #sp-menu small{
    display: block;
    color: var(--white);
    font-size: 1rem;
    margin: 1rem 3rem;
  }
}