@charset "shift_jis";
/* CSS Document */
/***************************************
sustainability
   
Description: CSS for Additional add.css
Create: 2023.08.31
****************************************/
/* blanding */
.topBlockSX {
  background-color: #fff;
  padding-top: 20px;
}
@media screen and (max-width: 979px) {
  .topBlockSX {
    padding-top: 15px;
  }
}
.topBlockSX .inner {
  height: 35vh;
  margin-bottom: 0;
  padding-left: 20px;
}
@media screen and (max-width: 767px) {
  .topBlockSX .inner {
    background-color: transparent;
    margin-bottom: 30px;
    height: 50%;
    padding: 0px;
  }
}
.topSustainability .inner {
  background: url(../../../hst_images/jp/r1/sustainability/bg_mv.jpg)52% 50% / cover no-repeat #0e2510;
}
@media screen and (max-width: 767px) {
  .topSustainability .inner {
    background: url(../../../hst_images/jp/r1/sustainability/bg_mv.jpg)32% 50% / cover no-repeat #0e2510;
  }
}
@media screen and (max-width: 579px) {
  .topSustainability .inner {
    background: url(../../../hst_images/jp/r1/sustainability/bg_mv.jpg)55% 50% / cover no-repeat #0e2510;
  }
}
.topMateriality .inner {
  background: url("../../../hst_images/jp/r1/sustainability/materiality/bg_mv.jpg")50% 50% / cover no-repeat #0e2510;
}
@media screen and (max-width: 579px) {
  .topMateriality .inner {
    background: url("../../../hst_images/jp/r1/sustainability/materiality/bg_mv.jpg")27% 50% / cover no-repeat #0e2510;
  }
}
.topBlockSX .catch {
  margin-bottom: 0px;
  font-weight: bold;
  font-size: 175%;
  position: relative;
  top: 12vh;
  color: #fff;
  text-shadow: #181a18 1px 0 10px;
}
@media screen and (max-width: 767px) {
  .topBlockSX .catch {
    background-color: transparent;
    background-position: right center;
    -webkit-background-size: auto 100%;
    background-size: auto 100%;
    background-repeat: no-repeat;
    padding: 50px 20px;
    margin-bottom: 10px;
    font-size: 112%;
    top: 0;
  }
}
.topBlockSX .txt {
  position: relative;
  top: 11vh;
  font-weight: bold;
  color: #e6e6ad;
}
.topMateriality .txt {
  color: #344b1f;
  text-shadow: #e5f787 1px 0 6px;
}
@media screen and (max-width: 767px) {
  .topBlockSX .txt {
    font-size: 90%;
    top: -64px;
    padding-left: 20px;
  }
}
/*------------------ heder CatchButton ------------------*/
.CatchLink {
  position: relative;
  top: 15vh;
}
@media screen and (max-width: 767px) {
  .CatchLink {
    top: -5vh;
    left: 13px;
  }
}
a.CatchButton {
  position: relative;
  font-size: 0.8em;
  padding: 20px 36px 20px 25px;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  a.CatchButton {
    padding: 2vw 6vw 2vw 3vw;
  }
}
a.CatchButton:link, a.CatchButton:visited {
  color: #fff;
}
a.CatchButton:hover {
  text-decoration: underline;
  opacity: 0.8;
}
a.CatchButton::before {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 6px;
  height: 11px;
  content: "";
  background: url(../../../image/jp/r1/icon/icon_link_right_xl_hd.gif)center/cover no-repeat;
  transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  a.CatchButton::before {
    right: 15px;
  }
}
.topSustainability a.CatchButton {
  background-color: #333333cf;
}
@media screen and (max-width: 579px) {
  .topSustainability a.CatchButton {
    display: block;
    width: 67%;
    padding: 2vw 9.5vw 2vw 3vw;
  }
}
.topMateriality a.CatchButton {
  background-color: #b1000ee8;
}
@media screen and (max-width: 579px) {
  .topMateriality a.CatchButton {
    width: 67%;
    padding: 2vw 9.5vw 2vw 3vw;
  }
}
.topMateriality a.CatchButton::before {
  background: url(../../../image/jp/r1/icon/icon_link_right_l_white_hd.gif)center/cover no-repeat;
}

/*------------------ common ------------------*/
span.block {
    display: block;
}
@media screen and (max-width: 767px) {
  span.block  {
    display: inline;
  }
}

/* sustainability@top @Contents
-----------------------------------------------------------------------*/
/* Lead  */
.BlockLead {
  text-align: center;
  background: url(../../../hst_images/jp/r1/sustainability/bg_lead.jpg)bottom left / cover no-repeat;
  margin-bottom: -10px;
  padding: 80px 0 60px;
}
@media screen and (max-width: 767px) {
  .BlockLead {
    padding: 20px;
  }
}
.BlockLeadtitle {
  background-image: none;
  font-size: 175%;
  color: #2a5f5e;
  padding: 10px 0 4px;
  margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
  .JS h2.BlockLeadtitle {
    margin-bottom: 5px;
    line-height: 120%;
  }
  .BlockLead .txt {
    text-align: left;
  }
}
.BlockLead .image {
  margin-top: 30px;
}
/* contents  */
.BlockTopMessage {
  background: #edf5ef;
  padding: 100px 20px;
}
@media screen and (max-width: 767px) {
  .BlockTopMessage {
    padding: 60px 20px;
  }
}
.title {
  background-image: none;
  font-size: 175%;
  color: #2a5f5e;
  margin-bottom: 0;
  line-height: 105%;
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  .JS h2.title {
    margin: 0;
    line-height: 120%;
  }
}
.subtitle {
  margin-bottom: 36px;
  margin-left: 6px;
  color: #9dbda5;
  font-weight: bold;
  font-size: 120%;
}
.MessageWrap {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .MessageWrap {
    display: block;
  }
}
.MessageWrap .txt {
  margin-bottom: 2em;
}
@media screen and (max-width: 964px) {
  .MessageWrap .Messagetxt {
    width: 50%;
  }
}
@media screen and (max-width: 767px) {
  .MessageWrap .Messagetxt {
    width: 100%;
  }
}
.MessageWrap .photo {
  padding-left: 50px;
}
@media screen and (max-width: 767px) {
  .MessageWrap .photo {
    padding-left: 0;
    text-align: center;
  }
}
.BlockThumbMenu {
  padding: 100px 20px;
}
@media screen and (max-width: 767px) {
  .JS .BlockThumbMenu {
    padding: 60px 20px;
  }
}
.heading {
  background-image: none;
  font-size: 140%;
  margin-bottom: 20px;
  font-weight: normal;
  color: #262626;
}
.ThumbMenu {
  margin: 0 auto 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.ThumbMenu li {
  width: 48%;
  margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .ThumbMenu li {
    width: 100%;
    margin-bottom: 20px;
  }
}
.ThumbMenu li a {
  display: table;
  width: 100%;
  background: #fff;
  position: relative;
  text-decoration: none;
  border: solid #ccc 1px;
  box-sizing: border-box;
  color: #333;
}
.ThumbMenu li a:hover, .ThumbImgBox .heading a:hover {
  text-decoration: underline;
  color: #b1000e;
}
.ThumbMenu li a .ThumbMenuImg {
  display: table-cell;
  width: 160px;
}
@media screen and (max-width: 767px) {
  .ThumbMenu li a .ThumbMenuImg {
    display: table-cell;
    width: 104px;
  }
}
.ThumbMenuTxt {
  transition: color 0.3s ease-out;
  background: #fff;
  display: table-cell;
  vertical-align: middle;
  font-size: 90%;
  line-height: 1.3;
  padding-right: 13.52%;
  padding-left: 4.73%;
}
@media screen and (max-width: 767px) {
  .ThumbMenuTxt {
    font-size: 83%;
  }
}
.ThumbMenu li a::after {
  content: '';
  display: block;
  position: absolute;
  width: 10px;
  height: 100%;
  top: 0;
  left: 0;
}
.ThumbMenu li a i {
  transition: transform 0.15s 0s ease-out;
  display: block;
  position: absolute;
  top: 50%;
  right: 20px;
  margin-top: -7px;
  width: 15px;
  height: 14px;
  background: url(../../../image/jp/r1/icon/icon_link_right_xl_hd.gif) 0 0/100% auto no-repeat;
}
.ThumbMenu li a:hover i {
  transform: translateX(2px);
  transition: transform 0.15s 0s ease-out;
}
.ThumbImgBox {
  border: solid #ccc 1px;
  padding: 30px;
  display: flex;
  align-items: center;
  margin-top: 50px
}
@media screen and (max-width: 767px) {
  .ThumbImgBox {
    display: block;
  }
}
.ThumbImgBox .Img {
  padding-right: 34px;
}
@media screen and (max-width: 767px) {
  .ThumbImgBox .Img {
    padding-right: 0;
  }
}
.ThumbImgBox .heading {
  line-height: 140%;
}
@media screen and (max-width: 767px) {
  .ThumbImgBox .heading {
    margin: 1em 0 0;
    line-height: 120%;
  }
}
.ThumbImgBox .heading a {
  color: #333;
}
.ThumbImgBox span.block {
  display: block;
  padding: 0;
  font-size: 100%;
  font-weight: normal;
  color: #333;
  line-height: 140%;
  background: none;
}
@media screen and (max-width: 767px) {
  .ThumbImgBox span.block {
    line-height: 120%;
  }
}
.ThumbImgBox a:hover span.block {
  color: #b1000e;
}
.ThumbImgBox2 a:active span.block {
  color: #b1000e;
}
@media screen and (max-width: 767px) {
  .ThumbImgBox span.block {
    display: inline;
  }
}
/* BnrMateriality */
.BnrMaterialityWrap {
  padding: 100px 20px 50px;
}
@media screen and (max-width: 767px) {
  .BnrMaterialityWrap {
    padding: 60px 20px;
  }
}
a.BnrMateriality {
  display: block;
  text-decoration: none;
  color: #333;
}
a.BnrMateriality:hover dl dt {
  text-decoration: underline;
  color: #c02;
}
.BnrMateriality .inner {
  background: #f5f3ed;
  display: flex;
}
.BnrMateriality .inner dl {
  padding: 4vh;
}
.BnrMateriality .inner dl dt {
  color: #333;
  font-weight: bold;
  font-size: 140%;
}
.BnrMateriality .inner dl dd {
  font-size: 90%;
  padding-top: 12px;
}
.BnrMateriality .inner dl dt {
  color: #575757;
  text-decoration: none;
  background: url(../../../image/jp/r1/icon/icon_link_right_xl_hd.gif) no-repeat left 7em center / 16px 16px;
  padding: 0 20px 0 0;
}
@media screen and (max-width: 994px) {
  .JS #Contents .BnrMateriality .inner p img {
    width: 100vw;
    height: 100%;
    object-fit: cover;
    object-position: 50% 100%;
  }
}
@media screen and (max-width: 767px) {
  .JS #Contents .BnrMateriality .inner p img {
    height: 24vh;
  }
  .BnrMateriality .inner {
    flex-wrap: wrap;
  }
}
/* Materiality@Contents  
-----------------------------------------------------------------------*/
.BlockMateriality {
  padding: 100px 20px;
}
.BlockMateriality:nth-child(odd) {
  background-color: #f5f3ed;
}
.BlockMateriality:last-child {
  padding: 100px 20px 0px;
}
@media screen and (max-width: 767px) {
  .BlockMateriality {
    padding: 60px 20px;
  }
}
/* heading */
.BlockMateriality .title {
  margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .JS .BlockMateriality h2.title {
    margin-bottom: 36px;
  }
}
.BlockMateriality .txt {
  margin-bottom: 20px
}
.title_Materiality {
  color: #262626;
  font-size: 170%;
  font-weight: normal;
  margin-bottom: 24px;
}
.title_Materiality::before {
  content: "";
  display: inline-block;
  max-width: 40px;
  max-height: 24px;
  min-width: 40px;
  min-height: 24px;
  clip-path: polygon(60% 0, 100% 0%, 40% 100%, 0% 100%);
  background-color: #cc0022;
  margin-right: 9px;
  position: relative;
  top: 2px;
}
.JS h4.title_Materiality_l02 {
  font-size: 140%;
  margin-bottom: 20px;
  font-weight: normal;
  color: #494848;
}
.JS h3.title_Process {
  font-size: 140%;
  margin-bottom: 20px;
  font-weight: normal;
}
.MaterialityWrap {
  margin-bottom: 80px;
}
.MaterialityWrap:last-child {
  margin-bottom: 0px;
}
@media screen and (max-width: 767px) {
  .MaterialityItems {
    margin-left: 0;
  }
}
.MaterialityItems .item {
  margin-bottom: 30px;
  border-left: solid #411a051c 6px;
  padding-left: 10px;
}
.MaterialityItems .item .txt {
  margin-bottom: 4px;
  font-size: 140%;
  font-weight: bold;
}
.ImgAlignment {
  display: flex;
  justify-content: flex-start;
  gap: 1%;
  width: 80%;
}
@media screen and (max-width: 767px) {
  .ImgAlignment {
    width: 100%;
  }
}
.img_icon {
  width: 10%;
  height: auto;
}
.img_icon img {
  width: 100%;
  height: auto;
}
.StepDetail {
  border: solid #eee 6px;
  padding: 20px 10px 0;
  margin-bottom: 10px;
}
.ProcessWrapLast {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0 auto 60px;
}
.ProcessWrap {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0 auto 70px;
}
.ProcessWrap::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 35%;
  width: 30%;
  height: 35px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  background-color: #ecf6ee;
}
.ProcessWrap h4 {
  font-size: 100%;
}

