/* 再利用可能なオブジェクトに関するスタイル */

.headlineComponent {
  text-align: center;
  margin-bottom: 4rem;
}
@media screen and (min-width: 960px) {
  .headlineComponent {
    margin-bottom: 8rem;
  }
}
#products .headlineComponent {
  margin-bottom: 8rem;
}
@media screen and (min-width: 960px) {
  #products .headlineComponent {
    margin-bottom: 16rem;
  }
}

.headlineComponent__icon {
  width: 5.12rem;
  margin-bottom: 0.8rem;
}
.headlineComponent__icon2 {
  width: 4.8rem;
  margin-bottom: 0.8rem;
}

.btnComponent {
  display: block;
  text-align: center;
  line-height: 4.8rem;
  width: 28.8rem;
  margin: 0 auto;
  border: 0.2rem solid #112453;
  border-radius: 4.8rem;
  background: none;
}

.btnComponent:hover {
  background: #112453;
  color: #fff;
  opacity: 1;
}

.btnComponent__guide {
  text-align: center;
  margin: 0 auto;
  margin-bottom: 1.6rem;
  position: relative;
  width: fit-content;
}
.btnComponent__guide::before,
.btnComponent__guide::after {
  content: "";
  display: inline-block;
  position: absolute;
  bottom: 0;
  width: 0.2rem;
  height: 2.4rem;
  background: #112453;
}
.btnComponent__guide::before {
  left: -0.8rem;
  transform: rotate(-45deg);
}
.btnComponent__guide::after {
  right: -0.8rem;
  transform: rotate(45deg);
}

.definitionListComponent {
  display: flex;
  flex-wrap: wrap;
}

.definitionListComponent__term {
  width: 30%;
}

.definitionListComponent__definition {
  margin-bottom: 2.4rem;
  width: 70%;
}
.definitionListComponent__definition:last-of-type {
  margin-bottom: 0;
}

.definitionListComponent__notice:first-of-type {
  margin-top: 4rem;
  width: 100%;
}
@media screen and (min-width: 960px) {
  .definitionListComponent__notice:first-of-type {
    width: 100%;
  }
}
.definitionListComponent__notice:last-of-type {
  margin-bottom: 4rem;
}


.productsComponent {
  margin-bottom: 8rem;
}
@media screen and (min-width: 960px) {
  .productsComponent {
    margin-bottom: 16rem;
  }
  .productsComponent::before,
  .productsComponent::after {
    content: "";
    display: table;
  }
  .productsComponent::after {
    clear: both;
  }
}

@media screen and (min-width: 960px) {
  .productsComponent__headlineContainer {
    width: 34.4rem;
    margin-right: 8.4rem;
    float: left;
  }
}

.productsComponent__headline {
  text-align: center;
  margin-bottom: 3.2rem;
}
.productsComponent__headline::before,
.productsComponent__headline::after {
  content: "";
  display: block;
  position: relative;
  width: 100%;
  height: 0.2rem;
  background: #112453;
}
.productsComponent__headline::before {
  top: -0.8rem;
}
.productsComponent__headline::after {
  bottom: -0.8rem;
}

.productsComponent__description {
  margin-bottom: 4rem;
}

.productsComponent__imageSlider {
  overflow: hidden;
  margin-right: -1.6rem;
}
.productsComponent__imageSlider .slick-list {
  padding: 0 36% 0 0;
}
@media screen and (min-width: 960px) {
  .productsComponent__imageSlider {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    top: -0.8rem;
  }
}

.productsComponent__imageContainer {
  width: 18.4rem;
  padding-right: 4rem;
}
@media screen and (min-width: 960px) {
  .productsComponent__imageContainer {
    width: 50%;
    padding: 0;
    margin-bottom: 8rem;
  }
  .productsComponent__imageContainer:nth-of-type(odd) {
    padding-right: 4.2rem;
  }
  .productsComponent__imageContainer:nth-of-type(even) {
    padding-left: 4.2rem;
  }
  .productsComponent__imageContainer:nth-of-type(-n+2) {
    margin-bottom: : 0;
  }
}

.productsComponent__image {
  width: 100%;
  margin-bottom: 1.6rem;
}


.privacy__title{
  text-align: center;
  padding-top: 15.2rem;
  padding-bottom: 2rem;
}
.privacy__items{
  margin: 0 auto;
  margin-top: 9rem;
  width: 100%;
  padding: 0 2.4rem;
}
.privacy__item{
  margin-top: 9.6rem;
}
.privacy__item__title{
  margin-bottom: 2.4rem;
}
.privacy__item__description{
  margin-left: 0.8rem;
}

@media screen and (min-width: 960px) {
  .privacy__title{
    text-align: center;
    padding-top: 15.2rem;
    padding-bottom: 2rem;
  }
  .privacy__title .scroll-arrow{
    position: static;
  }
  .privacy__items{
    margin: 0 auto;
    margin-top: 9rem;
    width: 72rem;
  }
  .privacy__item{
    margin-top: 12rem;
  }
  .privacy__item__title{
    margin-bottom: 3.2rem;
  }
  .privacy__item__description{
    margin-left: 1.6rem;
  }
}


.scl__title{
  text-align: center;
  padding-top: 15.2rem;
  padding-bottom: 2rem;
}
.scl__item{
  width: 100%;
  margin: 0 auto;
  margin-top: 9rem;
  padding: 0 2.4rem;
}
.scl__item__description-list{
  display: flex;
  flex-wrap: wrap;
  margin-top: 3rem;
  width: 100%;
  overflow: hidden;
}
.scl__item__description-term{
  width: 20rem;
  padding-top: 2rem;
  border-bottom: 2px solid #D7D7D5;
  font-weight: 400;
}
.scl__item__description{
  width: 100%;
  margin: 0;
  padding-top: 2rem;
  padding-left: 2.4rem;
  padding-bottom: 2rem;
}


@media screen and (min-width: 960px) {
  .scl__title{
    text-align: center;
    padding-top: 15.2rem;
    padding-bottom: 2rem;
  }
  .scl__title .scroll-arrow{
    position: static;
  }
  .scl__item{
    width: 72rem;
    margin: 0 auto;
    margin-top: 12rem;
  }
  .scl__item__description-list{
    display: flex;
    flex-wrap: wrap;
    margin-top: 3rem;
    width: 72rem;
    overflow: hidden;
  }
  .scl__item__description-term{
    width: 20rem;
    padding-top: 2rem;
    border-bottom: 2px solid #D7D7D5;
    font-weight: 400;
  }
  .scl__item__description{
    width: 52rem;
    margin: 0;
    padding-top: 2rem;
    padding-left: 6.4rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid #E9E9E9;
  }
}


.confirmation__title{
  text-align: center;
  padding-top: 15.2rem;
  padding-bottom: 2rem;
}
.confirmation__item{
  width: 100%;
  margin: 0 auto;
  margin-top: 9rem;
  padding: 0 2.4rem;
}

@media screen and (min-width: 960px) {
  .confirmation__title{
    text-align: center;
    padding-top: 15.2rem;
    padding-bottom: 2rem;
  }
  .confirmation__item{
    width: 72rem;
    margin: 0 auto;
    margin-top: 12rem;
  }
}



.waves {
  width: 100%;
  height: 4rem;
  position: absolute;
  top: -3.9rem;
  left: 0;
  overflow: hidden;
}
@media screen and (min-width: 960px) {
  .waves {
    height: 8rem;
    top: -8rem;
  }
}
.waves.bottom {
  top: auto;
  bottom: 0;
}
.wave > use {
  animation: infinity-wave 25s cubic-bezier(.55,.5,.45,.5) infinite;
}
.wave > use:nth-child(1) {
  animation-delay: -2s;
  animation-duration: 7s;
}
.wave > use:nth-child(2) {
  animation-delay: -3s;
  animation-duration: 10s;
}
.wave > use:nth-child(3) {
  animation-delay: -4s;
  animation-duration: 13s;
}
.wave > use:nth-child(4) {
  animation-delay: -5s;
  animation-duration: 20s;
}
@keyframes infinity-wave {
  0% {
   transform: translate3d(-90px,0,0);
  }
  100% {
    transform: translate3d(85px,0,0);
  }
}
