/*============================================================
フレックス関連(.l-grid)
============================================================*/
.--gap-0 {
  --grid-num: 0;
}
.--gap-row {
  gap: 0 var(--grid-num);
}
.--gap-col {
  gap: var(--grid-num) 0;
}

/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .--gap-0-pc {
    --grid-num: 0;
  }
  .--gap-row-pc {
    gap: 0 var(--grid-num);
  }
  .--gap-col-pc {
    gap: var(--grid-num) 0;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .--gap-0-sp {
    --grid-num: 0;
  }
  .--gap-row-sp {
    gap: 0 var(--grid-num);
  }
  .--gap-col-sp {
    gap: var(--grid-num) 0;
  }
}
/*====================================
配置（Flex関連）
====================================*/
.--content-center {
  justify-content: center;
}
.--content-between {
  justify-content: space-between;
}
.--content-start {
  justify-content: flex-start;
}
.--content-end {
  justify-content: flex-end;
}
.--items-center {
  align-items: center;
}
.--items-start {
  align-items: flex-start;
}
.--items-end {
  align-items: flex-end;
}
.--flex-column {
  flex-direction: column;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .--content-center-pc {
    justify-content: center;
  }
  .--content-between-pc {
    justify-content: space-between;
  }
  .--content-start-pc {
    justify-content: flex-start;
  }
  .--content-end-pc {
    justify-content: flex-end;
  }
  .--items-center-pc {
    align-items: center;
  }
  .--items-start-pc {
    align-items: flex-start;
  }
  .--items-end-pc {
    align-items: flex-end;
  }
  .--items-base-pc {
    align-items: baseline;
  }
  .--flex-column-pc {
    flex-direction: column;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .--content-center-sp {
    justify-content: center;
  }
  .--content-between-sp {
    justify-content: space-between;
  }
  .--content-start-sp {
    justify-content: flex-start;
  }
  .--content-end-sp {
    justify-content: flex-end;
  }
  .--items-center-sp {
    align-items: center;
  }
  .--items-start-sp {
    align-items: flex-start;
  }
  .--items-end-sp {
    align-items: flex-end;
  }
  .--flex-column-sp {
    flex-direction: column;
  }
}
/*====================================
並び順（Flex関連）
====================================*/
.--order-0 {
  order: 0 !important;
}
.--order-1 {
  order: 1 !important;
}
.--order-2 {
  order: 2 !important;
}
.--order-3 {
  order: 3 !important;
}
.--order-4 {
  order: 4 !important;
}
.--order-5 {
  order: 5 !important;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .--order-0-pc {
    order: 0 !important;
  }
  .--order-1-pc {
    order: 1 !important;
  }
  .--order-2-pc {
    order: 2 !important;
  }
  .--order-3-pc {
    order: 3 !important;
  }
  .--order-4-pc {
    order: 4 !important;
  }
  .--order-5-pc {
    order: 5 !important;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .--order-0-sp {
    order: 0 !important;
  }
  .--order-1-sp {
    order: 1 !important;
  }
  .--order-2-sp {
    order: 2 !important;
  }
  .--order-3-sp {
    order: 3 !important;
  }
  .--order-4-sp {
    order: 4 !important;
  }
  .--order-5-sp {
    order: 5 !important;
  }
}
/*====================================
Panel数制御（Flex関連）
====================================*/
.--panel-1 > * {
  width: 100%;
}
.--panel-2 > * {
  width: calc((100% / 2) - (var(--grid-num) / 2));
}
.--panel-3 > * {
  width: calc((100% / 3) - (var(--grid-num) * 2 / 3));
}
.--panel-4 > * {
  width: calc((100% / 4) - (var(--grid-num) * 3 / 4));
}
.--panel-5 > * {
  width: calc((100% / 5) - (var(--grid-num) * 4 / 5));
}
.--panel-6 > * {
  width: calc((100% / 6) - (var(--grid-num) * 5 / 6));
}
.--panel-7 > * {
  width: calc((100% / 7) - (var(--grid-num) * 6 / 7));
}
.--panel-8 > * {
  width: calc((100% / 8) - (var(--grid-num) * 7 / 8));
}
.--panel-9 > * {
  width: calc((100% / 9) - (var(--grid-num) * 8 / 9));
}
.--panel-10 > * {
  width: calc((100% / 10) - (var(--grid-num) * 9 / 10));
}
.--panel-11 > * {
  width: calc((100% / 11) - (var(--grid-num) * 10 / 11));
}
.--panel-12 > * {
  width: calc((100% / 12) - (var(--grid-num) * 11 / 12));
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .--panel-1-pc > * {
    width: calc((100% / 1.5) - (var(--grid-num) / 1.5));
  }
  .--panel-2-pc > * {
    width: calc((100% / 2) - (var(--grid-num) / 2));
  }
  .--panel-3-pc > * {
    width: calc((100% / 3) - (var(--grid-num) * 2 / 3));
  }
  .--panel-4-pc > * {
    width: calc((100% / 4) - (var(--grid-num) * 3 / 4));
  }
  .--panel-5-pc > * {
    width: calc((100% / 5) - (var(--grid-num) * 4 / 5));
  }
  .--panel-6-pc > * {
    width: calc((100% / 6) - (var(--grid-num) * 5 / 6));
  }
  .--panel-7-pc > * {
    width: calc((100% / 7) - (var(--grid-num) * 6 / 7));
  }
  .--panel-8-pc > * {
    width: calc((100% / 8) - (var(--grid-num) * 7 / 8));
  }
  .--panel-9-pc > * {
    width: calc((100% / 9) - (var(--grid-num) * 8 / 9));
  }
  .--panel-10-pc > * {
    width: calc((100% / 10) - (var(--grid-num) * 9 / 10));
  }
  .--panel-11-pc > * {
    width: calc((100% / 11) - (var(--grid-num) * 10 / 11));
  }
  .--panel-12-pc > * {
    width: calc((100% / 12) - (var(--grid-num) * 11 / 12));
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  /* PCのみ適用される場合の予防線 */
  .--panel-1-pc,
  .--panel-2-pc,
  .--panel-3-pc,
  .--panel-4-pc,
  .--panel-5-pc,
  .--panel-6-pc,
  .--panel-7-pc,
  .--panel-8-pc,
  .--panel-9-pc,
  .--panel-10-pc,
  .--panel-11-pc,
  .--panel-12-pc {
    flex-direction: column;
  }
  /* PCのみ適用される場合の予防線 */
  .--panel-1-pc > *,
  .--panel-2-pc > *,
  .--panel-3-pc > *,
  .--panel-4-pc > *,
  .--panel-5-pc > *,
  .--panel-6-pc > *,
  .--panel-7-pc > *,
  .--panel-8-pc > *,
  .--panel-9-pc > *,
  .--panel-10-pc > *,
  .--panel-11-pc > *,
  .--panel-12-pc > * {
    width: 100%;
  }
  .--panel-2-sp > * {
    width: calc((100% / 2) - (var(--grid-num) / 2));
  }
  .--panel-3-sp > * {
    width: calc((100% / 3) - (var(--grid-num) * 2 / 3));
  }
  .--panel-4-sp > * {
    width: calc((100% / 4) - (var(--grid-num) * 3 / 4));
  }
  .--panel-5-sp > * {
    width: calc((100% / 5) - (var(--grid-num) * 4 / 5));
  }
}




/*====================================
背景色
====================================*/
.--bgc-gy {
  background-color: #f7f7f7;
}
.--bgc-rd {
  background-color: #fff0f0;
}


/*====================================
文字色
====================================*/
.--text-color-main {
  color: var(--font-color-main) !important;
}
.--text-color-sub {
  color: var(--font-color-sub) !important;
}
.--text-color-alert {
  color: #d12118 !important;
}



/*====================================
文字関係
====================================*/
.--text-left {
  text-align: left !important;
}
.--text-right {
  text-align: right !important;
}
.--text-center {
  text-align: center !important;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .--text-left-pc {
    text-align: left !important;
  }
  .--text-right-pc {
    text-align: right !important;
  }
  .--text-center-pc {
    text-align: center !important;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .--text-left-sp {
    text-align: left !important;
  }
  .--text-right-sp {
    text-align: right !important;
  }
  .--text-center-sp {
    text-align: center !important;
  }
}


.--font-serif {
  font-family: var(--font-family-serif) !important;
}


.--font-bold {
  font-weight: 700 !important;
}
.--font-medium {
  font-weight: 500 !important;
}


.--letterSpacing-004 {
  letter-spacing: 0.04em;
}


/*====================================
margin
====================================*/
.--mt-8 {
  margin-top: 8rem !important;
}
.--mt-56 {
  margin-top: 56rem !important;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .--mt-40-pc {
    margin-top: 40rem !important;
  }
  .--mt-120-pc {
    margin-top: 120rem !important;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .--mt-64-sp {
    margin-top: 64rem !important;
  }
  .--mt-100-sp {
    margin-top: 100rem !important;
  }
}
