@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;
}@container (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;
}@container (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;
}@container (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;
}@container (max-width: 768px) {
    .has--expand-full_area {
      margin-right: 20px;
      margin-left: -20px;
    }
  }.has--border-type-solid {
  border: 1px solid var(--theme_color_border);
}

.has--border-type-solid_top {
  border-top: 1px solid var(--theme_color_border);
}

.has--border-type-solid_bottom {
  border-bottom: 1px solid var(--theme_color_border);
}

.has--border-type-solid_top_bottom {
  border-top: 1px solid var(--theme_color_border);
  border-bottom: 1px solid var(--theme_color_border);
}

.has--border-type-dot {
  border: 1px dotted var(--theme_color_border);
}

.has--border-type-dot_top {
  border-top: 1px dotted var(--theme_color_border);
}

.has--border-type-dot_bottom {
  border-bottom: 1px dotted var(--theme_color_border);
}

.has--border-type-dot_top_bottom {
  border-top: 1px dotted var(--theme_color_border);
  border-bottom: 1px dotted var(--theme_color_border);
}

.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;
}

@container (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;
  }
}

@container (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;
  }
}

@container (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;
  }


.has--shadow-type-fill {
  box-shadow: 10px 10px var(--theme_color_sub);
}

.has--shadow-type-blur {
  box-shadow: 5px 5px 14px var(--theme_color_background);
}

.has--shadow-type-float {
  box-shadow: 0px 0px 7px var(--theme_color_background);
}



.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;
}@container (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;
}@container (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;
}@container (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;
}

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

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



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

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

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



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

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

@container (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;
}

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

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

@container (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;
}

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

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