/*===========================================================================
unique
単一ページで使用するCSS
接頭辞【.u-】

【予測変換用 _base.css記述】
:root {
	--font-color-base: #000;
	--font-family-base: "Noto Sans JP", sans-serif;
	--back-color-base: #fff;
	--design-size-pc: 1400;
	--design-size-sp: 750;
}
===========================================================================*/
/* メインビジュアル
====================================*/
.u-mv + * {
  margin-top: 2.5rem;
}
.c-ctsWrap {
  margin-top: 2.6rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-mv + * {
    margin-top: 1.7rem;
  }
  .c-ctsWrap {
    margin-top: 1.8rem;
  }
}


/* 共通パーツ
====================================*/
.u-sec {
  margin-inline: var(--negative-margin);
  padding-inline: abs(var(--negative-margin));
}
.u-sec__inr {
  padding: 12rem 0;
}
.u-sec:has( + .c-recommend) .u-sec__inr {
  padding-bottom: 0;
}
.u-sec__ttl {
  color: var(--font-color-main);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
}
.u-sec__ttl + * {
  margin-top: 1.6rem;
}
.u-sec__lead {
  font-family: var(--font-family-serif);
  font-size: 4rem;
  line-height: 1.4;
}
.u-sec__txt {
  margin-top: 4rem;
}
.u-sec.--color-wt {
  color: #fff;
}
.u-sec.--color-wt .u-sec__ttl {
  color: inherit;
  text-shadow: 0 0.4rem 2.4rem rgba(0, 0, 0, 0.32);
}
.u-sec.--color-wt .u-sec__lead {
  text-shadow: 0 0.4rem 2.4rem rgba(0, 0, 0, 0.32);
}
.u-sec.--color-wt .u-sec__txt {
  text-shadow: 0 0 2.4rem rgba(0, 0, 0, 0.56);
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-sec__txtLine {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: 0 16rem;
  }
  .u-sec__txtLine:not(:has(.u-sec__txt)) {
    gap: 0;
  }
  .u-sec__txtLine.--gap-169-pc {
    gap: 0 16.9rem;
  }
  .u-sec__txtLine.--gap-240-pc {
    gap: 0 24rem;
  }
  .u-sec__txtLine > * {
    margin-top: 0;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-sec__inr {
    padding: 10rem 0;
  }
  .u-sec__lead {
    font-size: 3rem;
  }
  .u-sec__txt {
    margin-top: 1.6rem;
  }
}


/* 理念
====================================*/
.u-philosophy {
  position: relative;
  z-index: 0;
}
.u-philosophy::before,
.u-philosophy::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
}
.u-philosophy::before {
  background: url(../img/philosophy_bg.jpg) no-repeat center / cover;
}
.u-philosophy::after {
  background-color: rgba(63, 67, 93, 0.3);
}
.u-philosophy__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 41.8rem;
  gap: 0 8rem;
  margin-top: 4rem;
}
.u-philosophy__col {
  max-width: 67rem;
}
.u-philosophy__col > *:first-child {
  margin-top: 0;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-philosophy::before {
    background-image: url(../img/sp_philosophy_bg.jpg);
  }
  .u-philosophy__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4rem;
    margin-top: 1.6rem;
  }
  .u-philosophy__col {
    max-width: initial;
  }
}


/* 事業
====================================*/
.u-business__row {
  display: flex;
  flex-direction: row-reverse;
  gap: 0 8rem;
}
.u-business__col {
  flex: 1;
  margin-top: 4.8rem;
}
.u-business__imgWrap {
  position: relative;
  flex-basis: 56rem;
}
.u-business__img01 {
  width: 48rem;
}
.u-business__img02 {
  width: 24rem;
  margin-top: 4rem;
  margin-left: auto;
}
.u-business__img03 {
  width: 18rem;
  margin-top: -7.2rem;
  margin-left: 5.6rem;
}
.u-business__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.4rem;
  margin-top: 7.2rem;
}
.u-businessItem__inr {
  display: flex;
  height: 100%;
  padding: 3.2rem;
  background-color: #f4f7fb;
  text-decoration: none;
}
.u-businessItem__row {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1fr) 21.4rem;
  gap: 0 2rem;
}
.u-businessItem__col {
  display: flex;
  flex-direction: column;
}
.u-businessItem__ttl {
  color: var(--font-color-main);
  font-size: 1.4rem;
  line-height: 1.4;
}
.u-businessItem__lead {
  margin-top: 2.4rem;
  margin-bottom: 4rem;
  font-size: 2.4rem;
  line-height: 1.4;
  text-underline-offset: 3px;
}
.u-businessItem__btn {
  margin-top: auto;
}
@media (any-hover: hover) {
  .u-businessItem__inr:hover .u-businessItem__lead {
    text-decoration: underline;
  }
  .u-businessItem__inr:hover img {
    opacity: 1;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-business__inr {
    padding-top: 6.8rem;
  }
  .u-business__row {
    flex-direction: column-reverse;
    gap: 5.6rem;
  }
  .u-business__col {
    flex: initial;
    margin-top: 0;
  }
  .u-business__imgWrap {
    flex-basis: initial;
  }
  .u-business__img01 {
    width: 30rem;
  }
  .u-business__img02 {
    width: 14rem;
  }
  .u-business__img03 {
    width: 10.5rem;
    margin-top: -4.5rem;
    margin-left: 4rem;
  }
  .u-business__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.6rem;
    margin-top: 4rem;
  }
  .u-businessItem__inr {
    padding: 2.4rem;
  }
  .u-businessItem__row {
    align-items: center;
    grid-template-columns: minmax(0, 1fr) 9.1rem;
  }
  .u-businessItem__ttl {
    font-size: 1.2rem;
  }
  .u-businessItem__lead {
    margin-top: 0.8rem;
    margin-bottom: 1.2rem;
    font-size: 1.6rem;
  }
  .u-businessItem__btn > * {
    justify-content: start;
    min-width: 12.3rem;
    padding: 0.5rem 1.5rem;
    font-size: 1.2rem;
    text-align: left;
  }
  .u-businessItem__btn > *::after {
    right: 1.5rem;
    width: 1.5rem;
    height: 1.5rem;
  }
}


/* 強み
====================================*/
.u-strength {
  background-color: #f4f7fb;
}
.u-strength__row {
  display: grid;
  grid-template-columns: repeat(2, auto);
}
.u-strength__imgWrap {
  display: grid;
  justify-content: end;
  grid-template-columns: repeat(3, 17rem);
  gap: 0 2.5rem;
  margin-top: 4rem;
}
.u-strength__imgWrap > *:nth-child(even) {
  margin-top: 5.8rem;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-strength__inr {
    padding-bottom: 16rem;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-strength {
    background-color: #f4f7fb;
  }
  .u-strength__row {
    display: block;
  }
  .u-strength__imgWrap {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 1.6rem;
  }
  .u-strength__imgWrap > *:nth-child(even) {
    margin-top: 3.2rem;
  }
}

.u-strengthCards {
  --lead-height: 7.2rem;
  --lead-gap: 8.8rem;
  position: relative;
  margin-top: calc(12rem + var(--lead-height) + var(--lead-gap));
}
.u-strengthCards__item + .u-strengthCards__item {
  margin-top: 12rem;
}
.u-strengthCards__lead {
  margin-bottom: var(--lead-gap);
  font-family: var(--font-family-serif);
  font-size: 3.6rem;
  font-weight: 300;
  line-height: 1.8;
  text-align: right;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-strengthCards {
    --stage-height: 50rem;
    --stage-top: calc(50vh - (var(--stage-height) / 2));
  }
  .u-strengthCard {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 115.2rem;
    margin-inline: auto;
  }
  .u-strengthCards.is-pc-active .u-strengthCards__sticky {
    position: -webkit-sticky;
    position: sticky;
    top: var(--stage-top);
    height: var(--stage-height);
  }
  .u-strengthCards.is-pc-active .u-strengthCards__list {
    position: relative;
    height: 100%;
  }
  .u-strengthCards.is-pc-active .u-strengthCards__item {
    position: absolute;
    margin-top: 0;
    inset: 0;
  }
  .u-strengthCards.is-pc-active .u-strengthCards__lead {
    position: absolute;
    top: calc((var(--lead-gap) + var(--lead-height)) * -1);
    right: 0;
    left: 0;
    min-height: var(--lead-height);
    margin: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s ease;
    pointer-events: none;
  }
  .u-strengthCards.is-pc-active .u-strengthCards__item.is-current .u-strengthCards__lead {
    opacity: 1;
    transform: translateY(0);
  }
  .u-strengthCards.is-pc-active .u-strengthCard {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 100%;
    will-change: transform, opacity;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
}
@media screen and (min-width: 769px) and (max-height: 790px) {
  .u-strengthCards {
    --lead-height: 4.5rem;
  }
  .u-strengthCards__lead {
    font-size: 3rem;
    line-height: 1.5;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-strengthCards {
    margin-top: 10rem;
  }
  .u-strengthCards__item + .u-strengthCards__item {
    margin-top: 10rem;
  }
  .u-strengthCards__lead {
    margin-bottom: 3.4rem;
    font-size: 3rem;
    text-align: left;
  }
}

.u-strengthCard {
  --bg-rotate: 0;
  position: relative;
  padding: 6.4rem 5.6rem;
  border-radius: 0.8rem;
  color: #fff;
}
.u-strengthCard::before {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: inherit;
  transform: rotate(var(--bg-rotate));
  inset: 0;
}
.u-strengthCards__item:nth-child(odd) .u-strengthCard::before {
  background-color: var(--back-color-main);
}
.u-strengthCards__item:nth-child(even) .u-strengthCard::before {
  background: linear-gradient(74deg, #007ccc 0%, #54c3f2 96.01%);
}
.u-strengthCard__num {
  position: absolute;
  top: 5.6rem;
  right: 5.6rem;
  font-size: 2.4rem;
  line-height: 1.8;
}
.u-strengthCard__ttl {
  font-size: 2.4rem;
  line-height: 1.8;
  font-weight: 400;
}
.u-strengthCard__row {
  display: flex;
  align-items: center;
}
.u-strengthCard__img {
  margin: 0 auto;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-strengthCard__col {
    flex-basis: 64rem;
  }
  .u-strengthCards__item:nth-child(1) .u-strengthCard__img {
    width: 34.3rem;
  }
  .u-strengthCards__item:nth-child(2) .u-strengthCard__img {
    width: 27.9rem;
  }
  .u-strengthCards__item:nth-child(3) .u-strengthCard__img {
    width: 29rem;
  }
  .u-strengthCards__item:nth-child(4) .u-strengthCard__img {
    width: 32.4rem;
  }
  .u-strengthCards__item:nth-child(5) .u-strengthCard__img {
    width: 27.5rem;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-strengthCard {
    min-height: initial;
    padding: 4.8rem 3.2rem;
  }
  .u-strengthCard__num {
    top: 4.8rem;
    right: 3.5rem;
    font-size: 2.2rem;
  }
  .u-strengthCard__ttl {
    padding-right: 4.3rem;
    font-size: 2.2rem;
  }
  .u-strengthCard__row {
    display: block;
  }
  .u-strengthCard__img {
    margin: 2.4rem 0 0;
  }
}


/* サステナビリティ
====================================*/
.u-sustainability {
  position: relative;
  z-index: 0;
}
.u-sustainability::before,
.u-sustainability::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
}
.u-sustainability::before {
  background: url(../img/sustainability_bg.jpg) no-repeat center / cover;
}
.u-sustainability::after {
  background-color: rgba(63, 67, 93, 0.3);
}
.u-sustainability__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4rem 3.4rem;
  margin-top: 4.8rem;
}
.u-sustainabilityItem {
  display: flex;
  flex-direction: column;
  flex-basis: 34rem;
  justify-content: center;
  align-items: center;
  padding: 4rem 3rem;
  border-radius: 0.8rem;
  background-color: rgba(255, 255, 255, 0.4);
}
.u-sustainabilityItem__txt {
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
  text-shadow: 0 0 2.4rem rgba(0, 0, 0, 0.56);
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-sustainability::before {
    background-image: url(../img/sp_sustainability_bg.jpg);
  }
  .u-sustainability__list {
    gap: 0.8rem;
  }
  .u-sustainabilityItem {
    flex-basis: 100%;
    min-height: 10.4rem;
    padding: 2.4rem 1rem;
    border-radius: 0.4rem;
  }
}


/* 財務データ
====================================*/
.u-finance {
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.u-finance::before,
.u-finance::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
}
.u-finance::before {
  height: 100%;
  background: url(../img/finance_bg.jpg) no-repeat center / cover;
}
.u-finance::after {
  height: calc(100% + 10.2rem);
  background: linear-gradient(71deg, #007ccc 0%, #54c3f2 100%);
  mix-blend-mode: overlay;
}
.u-finance__chart {
  margin-top: 4.8rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-finance::before {
    background-image: url(../img/sp_finance_bg.jpg);
  }
  .u-finance::after {
    height: calc(100% + 6.5rem);
  }
  .u-finance__chart {
    margin-top: 4rem;
  }
  .u-finance__chart .m-spSlideTxt {
    border-color: #fff;
  }
}


.u-financeChart {
  --bh-text: #20304a;
  --bh-sub: #6c7a92;
  --bh-line: #d8e0ee;
  --bh-axis: #86a0c4;
  --bh-tab-border: #c4cedc;
  --bh-bar-mid-color: #0074bf;
  --bh-bar-end-color: #9fbff3;
  --bh-bar-forecast-color: #6fb9f9;
  --bh-line-color: #11519f;
  --bh-chart-width: 76rem;
  --bh-chart-height: 42rem;
  position: relative;
  padding: 4rem 8rem 4.9rem 4rem;
  border-radius: 0.8rem;
  background-color: var(--back-color-base);
}
.u-financeChart__tab {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -1.6rem 0.2rem;
}
.u-financeChart__tabBtn {
  position: relative;
  padding: 0 1.6rem;
  border: 0;
  background: transparent;
  color: var(--bh-sub);
  font: inherit;
  line-height: 1.5;
  transition: color 0.3s linear;
  appearance: none;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.u-financeChart__tabBtn:not(:first-child)::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 1.6rem;
  background-color: var(--bh-tab-border);
  transform: translateY(-50%);
}
.u-financeChart__tabBtn:focus-visible,
.u-financeChart__tabBtn.is-active {
  color: var(--font-color-main);
}
.u-financeChart__tabBtn.is-active {
  font-weight: 700;
}
.u-financeChart__head {
  display: block;
}
.u-financeChart__legend {
  position: absolute;
  top: 4rem;
  right: 8rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 2.4rem;
  max-width: 50%;
  min-height: 2.4rem;
}
.u-financeChart__legend:empty {
  display: none;
}
.u-financeChart__legendItem {
  display: inline-flex;
  align-items: center;
  gap: 1.6rem;
  color: var(--bh-text);
  font-size: 1.4rem;
  line-height: 1.4;
}
.u-financeChart__legendIcon {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
}
.u-financeChart__legendTxt {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.2;
}
.u-financeChart__legendIcon.--mid {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.4rem;
  background-color: var(--bh-bar-mid-color);
}
.u-financeChart__legendIcon.--mid + .u-financeChart__legendTxt {
  color: var(--bh-bar-mid-color);
}
.u-financeChart__legendIcon.--end {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.4rem;
  background-color: var(--bh-bar-end-color);
}
.u-financeChart__legendIcon.--end + .u-financeChart__legendTxt {
  color: var(--bh-bar-end-color);
}
.u-financeChart__legendIcon.--forecast {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.4rem;
  background-color: var(--bh-bar-forecast-color);
}
.u-financeChart__legendIcon.--forecast + .u-financeChart__legendTxt {
  color: var(--bh-bar-forecast-color);
}
.u-financeChart__legendIcon.--line {
  width: 2.4rem;
  height: 2.4rem;
}
.u-financeChart__legendIcon.--line + .u-financeChart__legendTxt {
  color: var(--bh-line-color);
}
.u-financeChart__legendIcon.--line::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  height: 2px;
  background-color: var(--bh-line-color);
  transform: translateY(-50%);
}
.u-financeChart__legendIcon.--line::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  background-color: var(--bh-line-color);
  transform: translate(-50%, -50%);
}
.u-financeChart__units {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.8rem 2rem;
  margin-left: auto;
  transform: translateY(5px);
}
.u-financeChart__unit {
  margin-left: auto;
  color: #86a0c4;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.u-financeChart__unit[data-js-bh-unit-left] {
  margin-right: auto;
  margin-left: 0;
  padding-left: 45px;
}
.u-financeChart__unit.is-hidden {
  display: none;
}
.u-financeChart__body {
  min-width: 0;
}
.u-financeChart__canvasWrap {
  position: relative;
  min-width: var(--bh-chart-width);
  height: var(--bh-chart-height);
}
.u-financeChart__canvas {
  display: block;
  width: 100%;
  height: 100%;
}
@media (any-hover: hover) {
  .u-financeChart__tabBtn:hover {
    color: var(--font-color-main);
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-financeChart {
    --bh-chart-width: 76rem;
    --bh-chart-height: 34rem;
    position: relative;
    width: 89rem !important;
    padding: 4rem;
    background-color: var(--back-color-base);
  }
  .u-financeChart__legend {
    right: 4rem;
  }
}


/* 中期経営計画
====================================*/
.u-plan__gallery {
  margin-top: 8rem;
  transform: rotate(-6deg);
}
.u-plan__gallery > *:not(:first-child) {
  margin-top: 2.5rem;
}
.u-plan__sld .slick-list {
  overflow: visible;
}
.u-plan__sldItem {
  padding: 0 1.2rem;
}
.u-plan__sldItemInr {
  width: 44rem;
}
.u-plan__block {
  margin-top: 3.2rem;
}
.u-plan__gallery + * {
  margin-top: 15.7rem;
}
.u-plan__subTtl {
  color: var(--font-color-main);
  font-size: 2.8rem;
  line-height: 1.8;
  font-weight: normal;
}
.u-plan__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.4rem;
}
.u-plan__img {
  overflow: hidden;
  margin-top: 2.4rem;
  border-radius: 0.8rem;
  box-shadow: 0.3rem 0.4rem 4.8rem 0 rgba(0, 0, 0, 0.08);
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-plan__gallery {
    margin-top: 6.7rem;
  }
  .u-plan__gallery > *:not(:first-child) {
    margin-top: 1.2rem;
  }
  .u-plan__sldItem {
    padding: 0 0.6rem;
  }
  .u-plan__sldItemInr {
    width: 22rem;
  }
  .u-plan__gallery + * {
    margin-top: 9.6rem;
  }
  .u-plan__subTtl {
    font-size: 2.4rem;
  }
  .u-plan__row {
    display: block;
  }
  .u-plan__row .u-planBgBox {
    min-height: initial;
    padding: 2.4rem 1rem;
    line-height: 1.8;
  }
  .u-plan__row .u-planBgBox__num {
    line-height: 1.48;
  }
  .u-plan__col:not(:first-child) {
    margin-top: 2.4rem;
  }
}

.u-planBox {
  display: flex;
  flex-direction: column;
  margin-top: 2.4rem;
  padding: 3.2rem;
  border-radius: 0.8rem;
  background-color: var(--back-color-base);
  box-shadow: 0.3rem 0.4rem 4.8rem 0 rgba(0, 0, 0, 0.08);
}
.u-planBox > *:first-child {
  margin-top: 0 !important;
}
.u-planBox__ttl {
  color: var(--font-color-main);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 2;
  text-align: center;
}
.u-planBox__img {
  margin-top: 1.6rem;
}
.u-planBox__note {
  margin-top: 1.6rem;
  font-size: 1.2rem;
  font-weight: normal;
  line-height: 2;
  letter-spacing: normal;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-planBox {
    display: block;
  }
  .u-planBox + .u-planBox {
    margin-top: 1.6rem;
  }
}

.u-planBgBox {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-top: 0.8rem;
  padding: 2.4rem 1rem;
  background-color: #f4f7fb;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
}
.u-planBgBox:first-of-type {
  margin-top: 1.6rem;
}
.u-planBgBox > * + * {
  margin-top: 1.6rem;
}
.u-planBgBox__num {
  color: var(--font-color-main);
  font-size: 4.8rem;
  font-weight: bold;
}
* + .u-planBgBox__num {
  margin-left: 0.8rem;
}
.u-planBgBox__unit {
  margin: 0 0.8rem 0 0.4rem;
  color: var(--font-color-main);
}
.u-planBgBox__txt {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: normal;
  text-align: center;
}
.u-planBgBox .u-planBox__note {
  margin-top: 0.4rem;
}
.u-planBgBox__row {
  display: grid;
  justify-content: center;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.u-planBgBox__col {
  position: relative;
  padding: 0 4.5rem;
}
.u-planBgBox__col .u-planBgBox__num {
  margin-left: 0;
}
.u-planBgBox__col .u-planBgBox__note {
  text-align: center;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-planBgBox__col:nth-child(even)::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 1px;
    height: 7.2rem;
    background-color: #c4cedc;
    transform: translateY(-50%);
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-planBgBox {
    display: block;
    text-align: center;
  }
  .u-planBgBox > * + p:has(.u-planBgBox__num) {
    margin-top: -0.1rem;
  }
  .u-planBgBox__unit {
    margin: 0 0.4rem;
  }
  .u-planBgBox__txt {
    margin-top: 0;
    font-size: 1.6rem;
  }
  .u-planBgBox__row {
    display: block;
  }
  .u-planBgBox__col {
    padding: 0;
  }
  .u-planBgBox__col:not(:first-child) {
    padding-top: 1.6rem;
  }
  .u-planBgBox__col:not(:last-child) {
    padding-bottom: 1.6rem;
  }
  .u-planBgBox__col:not(:first-child)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 16rem;
    height: 1px;
    background-color: #c4cedc;
    transform: translateX(-50%);
  }
}


/* 数字で見る
====================================*/
.u-data {
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.u-data::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background: url(../img/data_bg.jpg) no-repeat center / cover;
}
.u-data__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8rem;
  margin-top: 4.8rem;
}
.u-data__row {
  display: flex;
  gap: 0 3.2rem;
}
.u-data__row .u-dataPanel {
  flex-basis: 36.8rem;
}
.u-data__col {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1fr);
  gap: 3.2rem;
}
.u-data__num {
  margin-right: 0.8rem;
  font-family: var(--font-family-open-sans);
  font-size: 7.2rem;
  font-weight: normal;
  line-height: 1.36;
  letter-spacing: normal;
}
.u-data__num:not(:first-child) {
  margin-left: 1.6rem;
}
.some + .u-data__num {
  margin-left: 0.4rem;
}
.u-data__note {
  font-size: 1.4rem;
  line-height: 1.8;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-data::before {
    background-image: url(../img/sp_data_bg.jpg);
  }
  .u-data::after {
    height: 100%;
  }
  .u-data__list {
    gap: 4.8rem;
  }
  .u-data__row {
    flex-wrap: wrap;
    gap: 4.7rem;
  }
  .u-data__row .u-dataPanel {
    flex-basis: 100%;
  }
  .u-data__col {
    gap: 4.8rem;
  }
  .u-data__num {
    font-size: 5.6rem;
  }
  .u-data__num:not(:first-child) {
    margin-left: 1.6rem;
  }
  .some + .u-data__num {
    margin-left: 0.7rem;
  }
}

.u-dataPanel {
  position: relative;
  z-index: 0;
  overflow: hidden;
  padding: 4.8rem;
  border-radius: 0.8rem;
  background-color: #fff;
  color: var(--font-color-base);
}
.u-dataPanel__cts {
  margin-top: 0.8rem;
}
.u-dataPanel__ttl,
.u-dataPanel__lead {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.04em;
}
.u-dataPanel__lead {
  color: var(--font-color-main);
}
.u-dataPanel__note {
  font-size: 1.4rem;
  line-height: 1.4;
}
.u-dataPanel__img {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: 100%;
}
.u-dataPanel.--img-top {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 3.2rem;
}
.u-dataPanel.--img-top .u-dataPanel__img {
  top: 0;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-dataPanel {
    min-height: 36rem;
    padding: 3.2rem;
    border-radius: 0.4rem;
  }
  .u-dataPanel__note {
    margin-top: -0.2rem;
  }
}

.u-dataMedia {
  display: flex;
  gap: 0 4rem;
}
.u-dataMedia__col {
  flex: 1;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.u-dataMedia__ttl {
  padding-top: 4.2rem;
  border-top: 1px solid #fff;
}
* + .u-dataMedia__ttl {
  margin-top: 3.2rem;
}
.u-dataMedia__cts {
  margin-top: 0.9rem;
}
.u-dataMedia__img {
  overflow: hidden;
  width: 56rem;
  border-radius: 0.8rem;
  background-color: #fff;
}
.u-dataMedia__txtLine {
  display: flex;
  align-items: center;
  gap: 0 2.4rem;
}
.u-dataMedia__txtCol {
  padding-bottom: 0.4rem;
}
.u-dataMedia__txtCol > *:not(:first-child) {
  margin-top: -0.1rem;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-dataMedia.--col-reverse-pc {
    flex-direction: row-reverse;
  }
  .u-dataMedia:not(.--items-end-pc) {
    align-items: start;
  }
  .u-dataMedia:not(.--items-end-pc) .u-dataMedia__col {
    padding-top: 2.3rem;
  }
  .u-dataMedia:not(.--items-end-pc) .u-dataMedia__col.--pt-8-pc {
    padding-top: 0.7rem;
  }
  .u-data__col .u-dataMedia {
    gap: 0 3.2rem;
  }
  .u-data__col .u-dataMedia__ttl {
    padding-top: 1.6rem;
  }
  .u-data__col .u-dataMedia__img {
    width: 40rem;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-dataMedia {
    display: block;
  }
  .u-dataMedia__ttl {
    padding-top: 1.6rem;
  }
  * + .u-dataMedia__ttl {
    margin-top: 2.4rem;
  }
  .u-dataMedia__img {
    width: 100%;
    margin-top: 1.6rem;
    border-radius: 0.4rem;
  }
}


/* 歩み
====================================*/
.u-history__timeline {
  margin-top: 6.4rem;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-history .u-sec__txtLine {
    gap: 0;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-history__timeline {
    margin-top: 4rem;
  }
}


.u-timeline {
  --timeline-line-color: #86a0c4;
  --timeline-branch-size: 25rem;
  --timeline-gap: 2.8rem;
  --timeline-pad-left: 3.9rem;
  --timeline-first-width: 13.2rem;
  --timeline-item-width: 21.6rem;
  --timeline-body-width: 21.6rem;
  --timeline-viewport-height: 50rem;
  --timeline-progress-gap: 3.2rem;
  --timeline-progress-height: 0.4rem;
  --timeline-stage-height: calc(
    var(--timeline-viewport-height) +
    var(--timeline-progress-gap) +
    var(--timeline-progress-height)
  );
  position: relative;
}
.u-timeline__sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  overflow: visible;
}
.u-timeline__stage {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  height: var(--timeline-stage-height);
}
.u-timeline__viewport {
  position: relative;
  overflow: visible;
  width: calc(50vw + 50%);
  height: var(--timeline-viewport-height);
  margin-right: calc(50% - 50vw);
}
.u-timeline__progress {
  position: absolute;
  top: calc(var(--timeline-viewport-height) + var(--timeline-progress-gap));
  left: 0;
  overflow: hidden;
  width: 100%;
  height: var(--timeline-progress-height);
  border-radius: 9999px;
  background-color: #f4f7fb;
}
.u-timeline__progress::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 8rem;
  height: 100%;
  border-radius: 9999px;
  background-color: var(--back-color-main);
}
.u-timeline__progressBar {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 0.4rem;
  background-color: var(--back-color-main);
  transform: scaleX(0);
  transform-origin: left center;
}
.u-timeline__track {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: var(--timeline-gap);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  min-width: 100%;
  height: 100%;
  padding-right: 4rem;
}
.u-timeline__track::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  left: var(--timeline-pad-left);
  height: 1px;
  background-color: var(--timeline-line-color);
  transform: translateY(-50%);
}
.u-timeline__track::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 4rem;
  height: 1px;
  background: repeating-linear-gradient(
    to right,
    var(--timeline-line-color) 0 0.6rem,
    transparent 0.6rem 1.2rem
  );
  transform: translateX(100%);
}
.u-timeline__item {
  position: relative;
  display: grid;
  flex: 0 0 var(--timeline-item-width);
  grid-template-rows: repeat(2, 50%);
  min-height: 100%;
}
.u-timeline__item:first-child {
  flex-basis: auto;
  margin-right: 3.3rem;
}
.u-timeline__item::before,
.u-timeline__item::after {
  content: "";
  position: absolute;
}
.u-timeline__item:first-child::before,
.u-timeline__item:first-child::after {
  top: 50%;
  box-sizing: border-box;
  border-radius: 50%;
}
.u-timeline__item:first-child::before {
  left: var(--timeline-pad-left);
  width: 1.8rem;
  height: 1.8rem;
  border: 1px solid var(--back-color-main);
  background-color: var(--back-color-base);
  transform: translateY(-50%);
}
.u-timeline__item:first-child::after {
  left: calc(var(--timeline-pad-left) - 0.1rem);
  width: 1.2rem;
  height: 1.2rem;
  background-color: var(--back-color-main);
  transform: translate(calc(50% - 0.2rem), -50%);
}
.u-timeline__item:not(:first-child)::before {
  top: 50%;
  left: 0;
  z-index: 2;
  width: 1.1rem;
  height: 0.6rem;
  background-color: var(--back-color-main);
}
.u-timeline__item:nth-child(even)::before {
  border-radius: 50% 50% 0 0;
  transform: translate(-50%, -100%);
}
.u-timeline__item:nth-child(odd):not(:first-child)::before {
  border-radius: 0 0 50% 50%;
  transform: translateX(-50%);
}
.u-timeline__body {
  position: relative;
  z-index: 1;
}
.u-timeline__year {
  color: var(--font-color-main);
  font-weight: 500;
  letter-spacing: 0.04em;
}
.u-timeline__year .num {
  margin-right: 0.4rem;
  font-family: var(--font-family-open-sans);
  font-size: 3.2rem;
  font-weight: normal;
  letter-spacing: 0.04em;
}
.u-timeline__txt {
  margin-top: 1rem;
  font-size: 1.4rem;
  line-height: 1.4;
}
.u-timeline__img {
  width: 20rem;
  margin-top: 0.7rem;
}
.u-timeline__item:first-child .u-timeline__body {
  align-self: center;
  grid-row: 1 / 3;
  transform: translateY(-0.4rem);
}
.u-timeline__item:first-child .u-timeline__txt {
  margin-top: 3.4rem;
  text-align: center;
}
.u-timeline__item:not(:first-child) .u-timeline__body {
  justify-self: start;
  box-sizing: border-box;
  width: var(--timeline-body-width);
  padding-left: 1.5rem;
  border-left: 1px solid var(--timeline-line-color);
}
.u-timeline__item:nth-child(even) .u-timeline__body {
  align-self: end;
  grid-row: 1;
  padding-top: 0.6rem;
  padding-bottom: 2.4rem;
}
.u-timeline__item:nth-child(odd):not(:first-child) .u-timeline__body {
  align-self: start;
  grid-row: 2;
  padding-top: 3.1rem;
}
