/*===========================================================================
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;
}
===========================================================================*/
/* サステナビリティTOP
====================================*/
.u-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24rem;
  margin-top: 24rem;
}
.u-card__inr {
  position: relative;
  display: block;
  text-decoration: none;
}
.u-card__col {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: end;
  min-height: 182rem;
  padding: 16rem;
  color: #fff;
}
.u-card__ttlWrap > * {
  font-weight: 500;
  text-shadow: 0 0 24rem rgba(0, 0, 0, 0.32);
}
.u-card__ttlWrap > .m-ttlLv2 {
  color: inherit;
}
.u-card__ttlEn {
  font-family: var(--font-family-red-hat-text);
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
}
.u-card__ttlJp {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 17rem;
  padding-top: 8rem;
  padding-right: 16rem;
  border-top: 1px solid #fff;
  font-size: 20rem;
  line-height: 1.8;
}
.u-card__ttlJp::after {
  content: "";
  position: relative;
  right: 0;
  display: block;
  flex-shrink: 0;
  width: 18rem;
  height: 18rem;
  background-color: #fff;
  mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
  transition: right 0.3s linear;
  -webkit-mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
}
.u-card__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.u-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u-card__img::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #3f435d;
  opacity: 0.3;
  transition: opacity 0.3s linear;
}
.u-card__list {
  margin-top: 24rem;
}
.u-card__list > li:not(:first-child) {
  margin-top: 16rem;
}
.u-card__list > li a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0 8rem;
  padding-left: 28rem;
  line-height: 1.5;
  text-decoration: none;
  transition: color 0.3s linear;
}
.u-card__list > li a::before,
.u-card__list > li a::after {
  content: "";
}
.u-card__list > li a::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 12rem;
  height: 12rem;
  border-radius: 1rem;
  background-color: var(--back-color-main);
  transform: translateY(-50%);
}
.u-card__list > li a::after {
  position: relative;
  right: 0;
  display: block;
  flex-shrink: 0;
  width: 18rem;
  height: 18rem;
  background-color: var(--back-color-main);
  mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
  transition: right 0.3s linear;
  -webkit-mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
}
.u-card.--full .u-card__col {
  padding: 61rem 64rem 62rem;
}
.u-card.--full .u-card__img::after {
  opacity: 0;
}
@media (any-hover: hover) {
  .u-card__inr:hover img {
    opacity: 1;
  }
  .u-card__inr:hover .u-card__img::after {
    opacity: 0.6;
  }
  .u-card__inr:hover .u-card__ttlJp::after {
    right: -8rem;
  }
  .u-card__list > li a:hover {
    color: var(--font-color-main);
  }
  .u-card__list > li a:hover::after {
    right: -6rem;
  }
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-card__btn {
    margin-top: 24rem;
  }
  .u-card.--full {
    grid-column: 1 / -1;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-cards {
    grid-template-columns: minmax(0, 1fr);
  }
  .u-cards.--gap-40-sp {
    gap: 40rem;
  }
  .u-card__col {
    min-height: 220rem;
    padding: 24rem 24rem 23rem;
  }
  .u-card__ttlEn {
    text-shadow: initial;
  }
  .u-card__ttlJp {
    margin-top: 29rem;
    padding-right: 0;
  }
  .u-card__txt {
    margin-top: 16rem;
  }
  .u-card.--full .u-card__col {
    padding: 56rem 24rem;
  }
  .u-card.--full .u-card__ttlJp {
    text-shadow: none;
  }
}


.u-linkList {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4rem 30rem;
  margin-top: calc((80 - 24) * 1rem);
}
.u-linkList__itemInr {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0 6rem;
  height: 100%;
  padding: 24rem 0 23rem;
  border-bottom: 1px solid #c4cedc;
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.45;
  text-decoration: none;
  transition: color 0.3s linear;
}
.u-linkList__itemInr::after {
  content: "";
  position: relative;
  right: 0;
  display: block;
  flex-shrink: 0;
  width: 18rem;
  height: 18rem;
  background-color: var(--back-color-main);
  mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
  transition: right 0.3s linear;
  -webkit-mask: url(/common/images/icn_line_arw_wt.svg) no-repeat center / contain;
}
@media (any-hover: hover) {
  .u-linkList__itemInr:hover {
    color: var(--font-color-main);
  }
  .u-linkList__itemInr:hover::after {
    right: -6rem;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-linkList {
    grid-template-columns: minmax(0, 1fr);
    gap: 7rem;
    margin-top: 55rem;
  }
  .u-linkList__itemInr {
    height: auto;
    padding: 23rem 5rem 20rem 0;
  }
}


/* 東邦ホールディングスのサステナビリティ
====================================*/
.u-about {
  margin-top: 24rem;
  padding: 40rem;
  background-color: #e3e9f4;
}
.u-about__ttlLine {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 12rem;
  text-align: center;
}
.u-about__ttlSub {
  color: var(--font-color-main);
  font-size: 12rem;
  font-weight: 500;
  line-height: 1.8;
}
.u-about__ttlMain {
  font-size: 24rem;
  font-weight: 500;
  line-height: 1.8;
}
.u-about__row {
  display: grid;
  grid-template-columns: 260rem minmax(0, 1fr);
  gap: 0 16rem;
  margin-top: 24rem;
}
.u-about__row + * {
  margin-top: 32rem;
}
.u-about__box {
  --height: 32rem;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40rem;
  background-color: var(--back-color-base);
}
.u-about__box:has(.u-about__icnList) {
  padding-top: 24rem;
}
.u-about__box::before {
  content: "";
  position: absolute;
  bottom: calc((var(--height) - 24rem) / 2 * -1);
  left: 50%;
  width: 15rem;
  height: 24rem;
  background: url(/sustainability/about/images/sustainability_about_icn_arw.svg) no-repeat center / contain;
  transform: translate(-50%, 100%);
}
.u-about__boxTtl {
  color: var(--font-color-main);
  font-size: 24rem;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
}
.u-about__note {
  margin-top: 4rem;
  font-size: 14rem;
  line-height: 1.8;
  text-align: center;
}
.u-about__icnList {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13rem;
  margin-top: 7rem;
}
.u-aboutIcnItem {
  padding: 23rem;
  border: 1px solid #c4cedc;
  border-radius: 8rem;
}
.u-aboutIcnItem__row {
  display: grid;
  align-items: center;
  grid-template-columns: 56rem minmax(0, 1fr);
  gap: 16rem;
}
.u-aboutIcnItem__icn {
  border-radius: 50%;
  background-color: var(--back-color-main);
}
.u-aboutIcnItem__col {
  text-align: center;
}
.u-aboutIcnItem__ttl {
  font-weight: 500;
  line-height: 1.8;
}
.u-aboutIcnItem__note {
  font-size: 14rem;
  line-height: 1.8;
}
.u-about__txt {
  margin-top: 16rem;
}
.u-about__txt em {
  color: var(--font-color-main);
  font-weight: 500;
}
.u-about__box .c-box {
  margin-top: 16rem;
}
.u-about__box:has( + .u-about__process) {
  --height: 48rem;
}
.u-about__process {
  margin-top: 16rem;
  padding-left: 120rem;
  color: var(--font-color-main);
  font-size: 18rem;
  font-weight: 500;
  text-align: center;
}
.u-about__summary {
  margin-top: 15rem;
  padding: 10rem 10rem 9rem;
  background-color: var(--back-color-main);
  color: #fff;
  font-size: 20rem;
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-about__box .c-box__item {
    padding: 23rem 27rem;
  }
}


/* 重要課題
====================================*/
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .u-sdgsImg {
    max-width: 700rem;
  }
}
