@charset "utf-8";
/* --------------------------------------------------

  コアモジュールのスタイル

-------------------------------------------------- */

@charset "utf-8";
/* --------------------------------------------------

  コーディングを補助するためのマクロ

-------------------------------------------------- */



.has--layout-expand-full_window {
  margin-right: calc(((100vw - 100%) / 2) * -1);
  margin-left: calc(((100vw - 100%) / 2) * -1);
  padding-right: calc(((100vw - 100%) / 2));
  padding-left: calc(((100vw - 100%) / 2));
}

.has--layout-expand-left_window {
  margin-left: calc(((100vw - 100%) / 2) * -1);
  padding-left: calc(((100vw - 100%) / 2));
}

.has--layout-expand-right_window {
  margin-right: calc(((100vw - 100%) / 2) * -1);
  padding-right: calc(((100vw - 100%) / 2));
}

.has--layout-expand-full_area {
  margin-right: -50px;
  margin-left: -50px;
  padding-right: 50px;
  padding-left: 50px;
}@media screen and (max-width: 768px) {
    .has--layout-expand-full_area {
      margin-right: -20px;
      margin-left: -20px;
      padding-right: 20px;
      padding-left: 20px;
    }
  }.has--layout-expand-left_area {
  margin-left: -50px;
  padding-left: 50px;
}@media screen and (max-width: 768px) {
    .has--layout-expand-left_area {
      margin-left: -20px;
      padding-left: 20px;
    }
  }.has--layout-expand-right_area {
  margin-right: -50px;
  padding-right: 50px;
}@media screen and (max-width: 768px) {
    .has--layout-expand-right_area {
      margin-right: -20px;
      padding-right: 20px;
    }
  }.has--expand-full_window {
  margin-right: calc(((100vw - 100%) / 2) * -1);
  margin-left: calc(((100vw - 100%) / 2) * -1);
}

.has--expand-full_area {
  margin-right: 50px;
  margin-left: -50px;
}@media screen and (max-width: 768px) {
    .has--expand-full_area {
      margin-right: 20px;
      margin-left: -20px;
    }
  }.has--border-type-solid {
  border: 1px solid #c2c3c6;
}

.has--border-type-solid_top {
  border-top: 1px solid #c2c3c6;
}

.has--border-type-solid_bottom {
  border-bottom: 1px solid #c2c3c6;
}

.has--border-type-solid_top_bottom {
  border-top: 1px solid #c2c3c6;
  border-bottom: 1px solid #c2c3c6;
}

.has--border-type-dot {
  border: 1px dotted #c2c3c6;
}

.has--border-type-dot_top {
  border-top: 1px dotted #c2c3c6;
}

.has--border-type-dot_bottom {
  border-bottom: 1px dotted #c2c3c6;
}

.has--border-type-dot_top_bottom {
  border-top: 1px dotted #c2c3c6;
  border-bottom: 1px dotted #c2c3c6;
}

.has--border-radius {
    border-radius: 4px;
  }



.has--grid-column-1-fr-same {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 45px;
  column-gap: 45px;
}

.has--grid-column-2-fr-same {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: 40px;
  column-gap: 40px;
}

.has--grid-column-3-fr-same {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  row-gap: 35px;
  column-gap: 35px;
}

.has--grid-column-4-fr-same {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  row-gap: 30px;
  column-gap: 30px;
}

.has--grid-column-5-fr-same {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  row-gap: 20px;
  column-gap: 20px;
}

.has--grid-column-6-fr-same {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  row-gap: 15px;
  column-gap: 15px;
}

.has--grid-column-7-fr-same {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  row-gap: 15px;
  column-gap: 15px;
}

.has--grid-column-8-fr-same {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  row-gap: 15px;
  column-gap: 15px;
}

@media screen and (max-width:1050px) {
  .has--grid-column-1-fr-same {
    grid-template-columns: 1fr;
    row-gap: 45px;
    column-gap: 45px;
  }

  .has--grid-column-2-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 40px;
    column-gap: 40px;
  }

  .has--grid-column-3-fr-same {
    grid-template-columns: 1fr 1fr 1fr;
    row-gap: 35px;
    column-gap: 35px;
  }

  .has--grid-column-4-fr-same {
    grid-template-columns: 1fr 1fr 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-5-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    row-gap: 20px;
    column-gap: 20px;
  }

  .has--grid-column-6-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }

  .has--grid-column-7-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }

  .has--grid-column-8-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }
}

@media screen and (max-width:768px) {
  .has--grid-column-1-fr-same {
    grid-template-columns: 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-2-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-3-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-4-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-5-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 20px;
    column-gap: 20px;
  }

  .has--grid-column-6-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }

  .has--grid-column-7-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }

  .has--grid-column-8-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }
}

@media screen and (max-width:425px) {
  .has--grid-column-1-fr-same {
    grid-template-columns: 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-2-fr-same {
    grid-template-columns: 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-3-fr-same {
    grid-template-columns: 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-4-fr-same {
    grid-template-columns: 1fr;
    row-gap: 30px;
    column-gap: 30px;
  }

  .has--grid-column-5-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 20px;
    column-gap: 20px;
  }

  .has--grid-column-6-fr-same {
    grid-template-columns: 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }

  .has--grid-column-7-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }

  .has--grid-column-8-fr-same {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    row-gap: 15px;
    column-gap: 15px;
  }
}


  .has--margin-top-none {
    margin-top: 0px !important;
  }

  .has--margin-bottom-none {
    margin-bottom: 0px !important;
  }

  .has--padding-top {
    padding-top: 80px !important;
  }

  .has--padding-bottom {
    padding-bottom: 80px !important;
  }.has--flex-column-variable {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .has--flex-column-variable.has--flex-position-left {
    justify-content: start;
  }

  .has--flex-column-variable.has--flex-position-center {
    justify-content: center;
  }

  .has--flex-column-variable.has--flex-position-right {
    justify-content: end;
  }



.main_title.has--font-size-h1,
.main_title.has--font-size-h2,
.main_title.has--font-size-h3,
.main_title.has--font-size-h4,
.main_title.has--font-size-h5,
.main_title.has--font-size-h6 {
  font-weight: 700;
  font-family: "Noto Sans JP", sans-serif;
}

.main_title.has--font-size-h1 {
    font-size: 40px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }@media screen and (max-width: 425px) {
    .main_title.has--font-size-h1 {font-size: 28px;}
  }
.main_title.has--font-size-h2 {
    font-size: 32px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }@media screen and (max-width: 425px) {
    .main_title.has--font-size-h2 {font-size: 22px;}
  }
.main_title.has--font-size-h3 {
    font-size: 24px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }@media screen and (max-width: 425px) {
    .main_title.has--font-size-h3 {font-size: 20px;}
  }
.main_title.has--font-size-h4 {
    font-size: 20px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }@media screen and (max-width: 425px) {
    .main_title.has--font-size-h4 {font-size: 18px;}
  }
.main_title.has--font-size-h5 {
    font-size: 18px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }@media screen and (max-width: 425px) {
    .main_title.has--font-size-h5 {font-size: 16px;}
  }

.main_title.has--font-size-p {
  font-weight: 400;
}

.main_title.has--font-size-p {
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }@media screen and (max-width: 425px) {
    .main_title.has--font-size-p {font-size: 14px;}
  }

.module--title..has--font-size-deco {
  font-weight: 400;
}

.main_title.has--font-size-deco {
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }@media screen and (max-width: 425px) {
    .main_title.has--font-size-deco {font-size: 12px;}
  }


.has--shadow-type-fill {
  box-shadow: 10px 10px #f5f5f5;
}

.has--shadow-type-blur {
  box-shadow: 5px 5px 7px #ff5c35;
}

.has--shadow-type-float {
  box-shadow: 0px 0px 7px #c2c3c6;
}



.has--aspect-1_1 {
  aspect-ratio: 1;
  object-fit: cover;
}

.has--aspect-3_2 {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.has--aspect-4_3 {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.has--aspect-16_9 {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}


.has--layout-expand-full_window {
  margin-right: calc(((100vw - 100%) / 2) * -1);
  margin-left: calc(((100vw - 100%) / 2) * -1);
  padding-right: calc(((100vw - 100%) / 2));
  padding-left: calc(((100vw - 100%) / 2));
}

.has--layout-expand-left_window {
  margin-left: calc(((100vw - 100%) / 2) * -1);
  padding-left: calc(((100vw - 100%) / 2));
}

.has--layout-expand-right_window {
  margin-right: calc(((100vw - 100%) / 2) * -1);
  padding-right: calc(((100vw - 100%) / 2));
}

.has--layout-expand-full_area {
  margin-right: -50px;
  margin-left: -50px;
  padding-right: 50px;
  padding-left: 50px;
}@media screen and (max-width: 768px) {
    .has--layout-expand-full_area {
      margin-right: -20px;
      margin-left: -20px;
      padding-right: 20px;
      padding-left: 20px;
    }
  }.has--layout-expand-left_area {
  margin-left: -50px;
  padding-left: 50px;
}@media screen and (max-width: 768px) {
    .has--layout-expand-left_area {
      margin-left: -20px;
      padding-left: 20px;
    }
  }.has--layout-expand-right_area {
  margin-right: -50px;
  padding-right: 50px;
}@media screen and (max-width: 768px) {
    .has--layout-expand-right_area {
      margin-right: -20px;
      padding-right: 20px;
    }
  }.has--align-center {
  text-align: center;
}





.module--body.has--background {
  padding: 30px;
}

@media screen and (max-width:1050px) {
  .module--body.has--background {
    padding: 25px;
  }
}

@media screen and (max-width:425px) {
  .module--body.has--background {
    padding: 20px;
  }
}



.module--body.has--border {
  padding: 30px;
}

@media screen and (max-width:1050px) {
  .module--body.has--border {
    padding: 20px;
  }
}

@media screen and (max-width:425px) {
  .module--body.has--border {
    padding: 10px;
  }
}



.module--body.has--shadow {
  padding: 30px;
}

@media screen and (max-width:1050px) {
  .module--body.has--shadow {
    padding: 25px;
  }
}

@media screen and (max-width:425px) {
  .module--body.has--shadow {
    padding: 20px;
  }
}



.module--container.has--connect-upper {
  margin-bottom: 0px !important;
}

.module--container.has--connect-upper .module--body.has--border {
  padding-bottom: 0px !important;
  border-bottom: none;
}

.module--container.has--connect-middle {
  margin-top: 0px !important;
  margin-bottom: 0px !important;
  padding-top: 0px;
}

.module--container.has--connect-middle .module--body.has--border {
  padding-bottom: 0px !important;
  border-top: none;
  border-bottom: none;
}

.module--container.has--connect-lower {
  margin-top: 0px !important;
  padding-top: 0px;
}

.module--container.has--connect-lower .module--body.has--border {
  border-top: none;
}

@media screen and (max-width:1050px) {
  .module--container.has--connect-upper {
    padding-top: 40px;
  }

  .module--container.has--connect-lower {
    padding-bottom: 40px;
  }
}

@media screen and (max-width:425px) {
  .module--container.has--connect-upper {
    padding-top: 30px;
  }
  .module--container.has--connect-lower {
    padding-bottom: 30px;
  }
}



.module--container.has--background .module--content {
  padding: 40px;
}

@media screen and (max-width:1050px) {
  .module--container.has--background .module--content {
    padding: 30px;
  }
}

@media screen and (max-width:425px) {
  .module--container.has--background .module--content {
    padding: 20px;
  }
}
}