.flex {display: flex;}
.justify-start {justify-content: start;}
.justify-end {justify-content: end;}
.justify-center {justify-content: center;}
.justify-between {justify-content: space-between;}
.items-stretch {align-items: stretch;}
.items-start {align-items: start;}
.items-center {align-items: center;}
.items-end {align-items: end;}
.flex-col {flex-direction: column;}
.flex-wrap {flex-wrap: wrap;}
.sp {display: none;}

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

.merienda {
  font-family: "Merienda", cursive;
}
.josefin{
  font-family: "Josefin Sans", sans-serif;
}

.c-section{
  padding: 3.125rem 0 6.25rem;
}
.c-block-m{
  max-width: 62.5rem;
  width: 92.5%;
  margin: 0 auto;
}
.c-block-s{
  max-width: 58.75rem;
  width: 90%;
  margin: 0 auto;
}
.c-title{
  margin-bottom: 3.125rem;
  & .c-heading01{
    font-size: 4.375rem;
    margin-bottom: 0.625rem;
    line-height: 1;
    &.big{
      line-height: 1.4;
    }
  }
  & .c-text01{
    font-size: 1.5rem;
    padding-left: 1.875rem;
  }
}
.c-text-middle{
  font-size: 1.25rem;
}
.c-text-small{
  font-size: 1.125rem;
}
@media (max-width: 768px) {
  .c-section {
    padding: 3.84rem 0 10.24rem;
  }
  .c-block-m {
    max-width: 100%;
    width: 92.5%;
  }
  .c-block-s {
    max-width: 100%;
    width: 87.5%;
  }
  
  .c-title {
    margin-bottom: 3.84rem;
    & .c-heading01 {
      font-size: 4.864rem;
      margin-bottom: 0.96rem;
    }
    & .c-text01 {
      font-size: 2.304rem;
      padding-left: 0;
      width: 95.29%;
      margin: 0 auto;
    }
  }
  .c-text-middle {
    font-size: 2.048rem;
  }
  .c-text-small {
    font-size: 1.792rem;
  }
}


.header{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  transition: all 0.5s;
  &.active{
    background: rgba(255,255,255,0.75);
  }
  & .inner{
    padding: 1.5625rem 5rem;
  }
  & .list01{
    gap: 2.5rem;
  }
  & .link01{
    font-size: 1.25rem;
  }
}
@media (max-width: 768px) {
  .header{
    & .inner{
      position: relative;
      padding: 0 3.2rem;
      height: 6.656rem;
      display: flex;
      justify-content: end;
      align-items: center;
    }
    & .nav{
      width: 75%;
      margin: 0 auto;
    }
    & .wrap01 {
        position: absolute;
        background: #FBFBFB;
        width: 100%;
        right: -100%;
        height: 51rem;
        top: 0;
        gap: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        transition: .2s;
        z-index: 0;
    
        &.active {
          right: 0;
        }
      }
    & .list01 {
      flex-direction: column;
      gap: 2.56rem;
    }
    & .link01 {
      font-size: 2.56rem;
    }
  }
  .hamburger {
    position: relative;
    z-index: 10;
    cursor: pointer;
    width: 3.072rem;
    height: 2.56rem;
  }
  .hamburger span {
    display: inline-block;
    transition: all .3s;
    position: absolute;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    height: 0.307rem;
    border-radius: 1.28rem;
    background: var(--mainBlue);
    width: 100%;
  }
  .hamburger span:nth-of-type(1) {
    top: 0;
  }
  .hamburger span:nth-of-type(2) {
    top: 1.152rem;
  }
  .hamburger span:nth-of-type(3) {
    top: 2.304rem;
  }
  .hamburger.active span {
    background: var(--mainBlue);
  }
  .hamburger.active span:nth-of-type(1) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
    -webkit-transform: translate(-50%, -50%) rotate(-45deg);
    -ms-transform: translate(-50%, -50%) rotate(-45deg);
  }
  .hamburger.active span:nth-of-type(2) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    -webkit-transform: translate(-50%, -50%) rotate(45deg);
    -ms-transform: translate(-50%, -50%) rotate(45deg);
  }
  .hamburger.active span:nth-of-type(3) {
    display: none;
  }
}


.section01{
  & .inner{
    height: 46.875rem;
  }
  & .c-text-middle{
    line-height: 1.5;
    width: 26.5625rem;
    padding-left: 1.875rem;
  }
  & .wrap01{
    padding: 3.125rem 0 6.25rem;
  }
  & .wrap02{
    gap: 0.9375rem;
    display: flex;
  }
  & .text01{
    font-weight: 600;
  }
  & .swiper-slide{
    width: 14.0625rem !important;
    height: 11.25rem !important;
    overflow: hidden;
    border-radius: 0.625rem;
  }
  & .img01{
    max-width: 100%;
    height: auto;
    display: block;
  }
}
@media (max-width: 768px) {
  .section01 {
    & .inner{
      flex-direction: column;
      height: auto;
      padding-bottom: 10.24rem;
    }
    & .c-text-middle {
      width: 95.29%;
      margin: 0 auto;
      padding-left: 0;
    }
    & .wrap01 {
      padding: 3.84rem 0 5.12rem;
    }
    & .wrap02 {
      flex-direction: column;
      gap: 1.28rem;
    }
    & .swiper-slide {
      width: 20.736rem !important;
      height: 16.64rem !important;
      border-radius: 0.64rem;
    }
    & .swiper{
      width: 100vw;
      margin: 0 calc(50% - 50vw);
    }
  }
}
.swiper-wrapper {
  transition-timing-function: linear;
}


.section02{
  & .list01{
    gap: 2.5rem 1.5625rem;
    margin-bottom: 2.3125rem;
  }
  & .item01{
    width: calc((100% - 1.5625rem * 2) / 3);
  }
  .c-text-middle {
    font-size: 1.25rem;
    text-align: center;
  }
  & .text02{
    font-size: 1rem;
  }
  & .img01{
    width: 100%;
    border-radius: 0.625rem;
    overflow: hidden;
    margin-bottom: 0.9375rem;
  }
}
@media (max-width: 768px) {
  .section02 {
    & .list01 {
      gap: 3.2rem 1.536rem;
      margin-bottom: 3.84rem;
    }
    & .item01 {
      width: calc((100% - 1.536rem) / 2);
    }
    .c-text-middle {
      font-size: 1.792rem;
    }
    & .text02 {
      font-size: 1.536rem;
    }
    & .img01 {
      border-radius: 0.64rem;
      margin-bottom: 1.28rem;
    }
  }
}


.section03{
  & .list01{
    gap: 1.875rem;
  }
  & .item01{
    max-width: 27.5rem;
    gap: 1.25rem;
  }
  & .text01{
    font-size: 1.625rem;
    font-weight: 600;
    letter-spacing: 0;
    margin-bottom: 0.3125rem;
  }
  & .img01{
    width: 8.125rem;
  }
}
@media (max-width: 768px) {
  .section03 {
      & .list01 {
        gap: 3.84rem;
      }
  
    & .item01 {
      max-width: 100%;
      gap: 1.92rem;
    }
    & .text01 {
      font-size: 2.56rem;
        margin-bottom: 0.64rem;
    }
    & .img01{
      width: 12.8rem;
    }
  }
}


.section04{
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 3.125rem 0;
  & .wrap01{
    max-width: 52.875rem;
    width: 100%;
    margin: 0 auto;
    padding: 1.875rem;
  }
  & .link01{
    max-width: 18.75rem;
    width: 100%;
    margin: 1rem auto 0;
    padding: 0.9375rem 1.25rem;
    font-size: 1.25rem;
    letter-spacing: 0.12em;
    position: relative;
    &::after{
      position: absolute;
      content: "";
      clip-path: polygon(0 0, 100% 50%, 0 100%);
      right: 1.25rem;
      top: 50%;
      transform: translateY(-50%);
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      width: 0.625rem;
      height: 0.75rem;
    }
  }
  & .c-title{
    margin-bottom: 2.5rem;
  }
  & .c-text01{
    padding: 0;
    text-align: center;
  }
  & .c-text-middle{
    text-align: center;
  }
}
@media (max-width: 768px) {
  .section04 {
    padding: 6.4rem 0;
    & .wrap01 {
      max-width: 108.288rem;
      padding: 3.84rem ;
    }
    & .texts01{
      width: 100%;
    }
    & .link01 {
      max-width: 100%;
      margin: 1rem auto 0;
      padding: 1.92rem;
      font-size: 2.048rem;
      &::after {
        right: 1.92rem;
        width: 1.28rem;
        height: 1.536rem;
      }
    }
    & .c-title {
      margin-bottom: 2.56rem;
    }
  }
}


.footer{
  padding: 1.25rem 0;
  & .link01{
    font-size: 0.875rem;
    font-weight: 300;
    letter-spacing: 0;
    border-bottom: 1px solid;
    padding-bottom: 0.15625rem;
  }
}
@media (max-width: 768px) {
  .footer {
    padding: 1.92rem 0;
    & .link01 {
      font-size: 1.536rem;
      padding-bottom: 0.32rem;
    }
  }
}