@charset "UTF-8";


                
.contents_inner {
    display: block;
    padding-top: 120px;
    margin-top: -120px;
}
.overimg:hover{opacity: 0.5;}
.spnone{display: block;}
.sponly{display: none;}
.f-left{float: left;}
.f-right{float: right;}
.img100{width: 100%;}
.normal{font-weight: normal;}
.justify{text-align: justify;}
.w48per{width: 48%;}
.w30per{width: 30%;}
.w48per img{width: 100%;}
.w66per{width: 66%;position: relative;}
.w80per{width: 80%;margin: 0 auto;}
.w90per{width: 90%;margin: 0 auto;}
.white{color:#ffffff;}


.tbonly{display: none;}
.center{text-align: center;}
.shadow{filter: drop-shadow(4px 4px 5px  rgba(0, 0, 0, 0.32));}
.center_left{text-align: center;}

.bnr_mtb img{margin: 0em; }
/* 全体英字タイトル：左右センター */
.ttlIconCenter{
  display: flex;
  flex-direction: column;
  align-items: flex-start;   /* ← 日本語も含めてセンター */
  gap: 5px;
  margin: 0 0 2em;
}

/* 英字 */
.ttlIconCenter__en{
  font-size: 3.4em;
  font-weight: normal;
  letter-spacing: 0.06em;
  line-height: 1;
  color: #4b4b4b;
  text-align: left;
	font-family: serif;
}

/* 日本語 */
.ttlIconCenter__jp{
  font-size: 1.2em;
  font-weight: normal;
  letter-spacing: 0.06em;
  line-height: 1.0;
  color: #4b4b4b;
  text-align: center;
}
@media (max-width: 640px) {
/* 全体英字タイトル：左右センター */
.ttlIconCenter{
  display: flex;
  flex-direction: column;
  align-items: flex-start;   /* ← 日本語も含めてセンター */
  margin: 0em 0 1em;
}

/* 英字 */
.ttlIconCenter__en{
  font-size: 2.8em;
  letter-spacing: 0.07em;}

/* 日本語 */
.ttlIconCenter__jp{
  font-size: 1.14em;}
}
/* section_01 */
.section_01{position: relative; z-index: 100;background-color: #e3e8e9;padding: 1em 0;}
/* news */
.news_wrap{margin-top: 1em;}
.news_ttl{position: relative; width:15%;float: left;}
.news_ttl h2{font-size: 2em;font-weight: normal;margin-top: 0.1em;padding-right: 1em; border-right: 1px solid #666666;display: inline-block;}
#news{width: 85%;float: right;height:auto;}
#news a {
    display:flex;
    padding-bottom: 1em;
    margin-bottom: 0.6em;
	margin-top: 0.6em;
	color: #000000;}
#news div:last-of-type {margin-bottom: 0;}

#news a div {
    position: relative;
    display: block;
    justify-content: flex-start;
    align-items: center;
    padding-left: 1em;
    padding-right: 1em;
	width: 100%;}
#news a div span{margin-right: 1em;}
@media (max-width: 640px) {
.news_ttl{position: relative; width:100%;float: none;margin-top: 0px;}
.news_ttl h2{margin-top: 0em;padding-right: 0em; border-right: none;}
#news{width: 100%;float: none;height:auto;}
#news a {
    display:flex;
    padding-bottom: 1em;
    margin-bottom: 1em;
	margin-top: 1em;
	border-bottom: solid 1px #000000;
	color: #000000;}
#news div:last-of-type {margin-bottom: 0;}
#news a div {
    position: relative;
    display: block;
    justify-content: flex-start;
    align-items: center;
    padding-left: 1em;
    padding-right: 1em;
	width: 100%;}
}
/* section_02 */

/* section_03 */
.section_03{background-color: #e3e8e9;}
.page_ttl{font-family: serif;font-size: 2.0em;font-weight: normal;line-height: 1.4em;color: #4b4b4b;margin: 0.6em 0;}
.page_lead{font-family: serif;font-size: 1.5em;font-weight: normal;line-height: 1.6em;color: #4b4b4b;margin: 0.6em 0;}
.page_sub_ttl{font-family: serif;font-size: 1.2em;color:#363b43;font-weight: normal;line-height: 1.6em;}
.page_p{line-height: 2em;margin: 1em 0;font-size: 1em;text-align: justify;}

.w56per{width: 56%;margin-top: 3em;}
.w42per{width: 40%;margin-top: 2em;}
@media (max-width: 640px) {
.w56per{width: 100%;margin-top: 0em;}
.w42per{width: 100%;margin-top: 0em;margin-bottom: 3em;}
.page_ttl{font-size: 1.5em;line-height: 1.2em;margin: 0.6em 0 0;}
.page_lead{font-size: 1.2em;line-height: 1.4em;margin: 0.6em 0;}
.page_sub_ttl{font-size: 1.0em;line-height: 1.4em;}
.page_p{line-height: 1.6em;margin: 0.8em 0;font-size: 0.84em;}
.reason_mt{margin-top: 0em;}
}
.w42per img{width: 100%;}
.more_btn{display: block;margin: 2em 0 0;}

.safety {
  width: 100%;
	margin: 2em 0;
}

.safety__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid #333;
  border-left: 1px solid #333;
}

.safety__item {
  min-height:60px;
  padding: 0 42px;
  display: flex;
  align-items: center;
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Times New Roman", serif;
  font-size: 1em;
  line-height: 1.2;
  color: #2f333b;
}

@media (max-width: 640px) {
  .safety__grid {
    grid-template-columns: 1fr;
  }

  .safety__item {
    min-height: 40px;
    padding: 0 15px;
    font-size: 0.84em;
    letter-spacing: 0.1em;
  }
}


/* section_04 */
.section_04{}
.top-link__btn {
  position: relative;
  display: block;
  max-width: 490px;
  padding: 16px 40px;
  border: 1px solid #555;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-sizing: border-box;
}
.top-link__btn span {
  display: block;
  font-size: 1.2em;
  letter-spacing: 0.22em;
  line-height: 1.2;
	font-family: serif;
}
.top-link__btn small {
  display: block;
  margin-top: 6px;
  font-size: 1em;
  letter-spacing: 0.18em;
	font-family: serif;
}
.top-link__btn::before {
  content: "";
  position: absolute;
  top: 35px;
  right: 56px;
  width: 180px;
  height: 1px;
  background: #555;
}
.top-link__btn::after {
  content: "";
  position: absolute;
  top: 27px;
  right: 60px;
  width: 15px;
  height: 15px;
  border-top: 1px solid #555;
  transform: rotate(45deg);
}
/* SP */
@media (max-width: 640px) {
  .top-link__btn {
    width: 84%;
    max-width: none;
    margin-left: auto;
    padding: 15px 15px;
  }
  .top-link__btn span {
	  padding-top: 0.2em;
    font-size: 0.84em;
  }
  .top-link__btn small {
    font-size: 0.84em;
  }
  .top-link__btn::before {
    top: 27px;
    right: 18px;
    width: 130px;
  }
  .top-link__btn::after {
    top: 20px;
    right: 20px;
  }
}

.flow-section {
  width: 100%;
  padding-top: 100px;
  color: #30343c;
}

.flow {
  position: relative;
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 66% 34%;
	background: #efefea;
	margin-right: 10%;
	margin-left: -8%;
}

.flow__body {
  position: relative;
  z-index: 1;
  padding: 38px 10% 74px 12%;
	margin-top: -8em;
}


.flow__text {
  margin: 0 0 38px;
  font-size: 1.14em;
  line-height: 1.85;
  letter-spacing: 0.08em;
}

.flow__img {
  position: relative;
  z-index: 2;
  margin: -5em -170px 0 -24px;
}

.flow__img img {
  display: block;
  width: 100%;
  height: 330px;
  object-fit: cover;
}


@media (max-width: 640px) {
  .pc-only {
    display: none;
  }

  .flow-section {
    padding-top: 50px;
  }

  .flow {
    display: flex;
    flex-direction: column-reverse;
	  margin-right: 0%;
	margin-left: 0%;
	  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
	  bottom:0;
	  margin-top: 120px;
  }

  .flow__img {
    width: 90%;
    margin: -150px 0 0 auto;
    z-index: 2;
  }

  .flow__img img {
    height: 230px;
  }

  .flow__body {
    margin-top: -92px;
    padding: 100px 6% 30px;
    z-index: 1;
  }


  .flow__text {
    margin-bottom: 15px;
    font-size: 0.84em;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

}


.reform-section {
  width: 100%;
  padding: 200px 0 0;
  color: #30343c;
}

.reform {
  position: relative;
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 36% 60%;
  align-items: start;
	background: #c5bb9a;
	margin-right: -8%;
}

.reform__img {
  position: relative;
  z-index: 2;
  margin: -90px 0 0 -160px;
}

.reform__img img {
  display: block;
  width: 100%;
  height: 350px;
  object-fit: cover;
}

.reform__body {
  position: relative;
  z-index: 1;
  margin-top: -9em;
  padding: 58px 0% 80px 8%;
  box-sizing: border-box;
}



.reform__text {
  margin: 0 0 46px;
  font-size: 1.14em;
  line-height: 1.85;
  letter-spacing: 0.08em;
}


@media (max-width: 640px) {
  .pc-only {
    display: none;
  }

  .reform-section {
    padding-top: 54px;
  }

  .reform {
    display: flex;
    flex-direction: column;
	  	  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
	  bottom:0;
	  margin-top: 150px;
  }

  .reform__img {
    width: 90%;
    margin: -150px 0 0 0;
    z-index: 2;
  }

  .reform__img img {
    height: 230px;
  }

  .reform__body {
    width: 100%;
    margin-top: -92px;
    margin-left: 0;
    padding: 110px 6% 48px;
    background: #c5bb9a;
  }

  .reform__text {
    margin-bottom: 15px;
    font-size: 0.84em;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

}
/* section_05 */
.works {
  position: relative;
  color: #30343c;
}

.works::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0px;
  height: 260px;
  background: #e8eeee;
  z-index: -1;
	width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 50px;
}

.works__inner {
  width: 100%;
  margin: 0 auto;
}


.works__lead {
  margin: 0 0 34px 0px;
  font-size: 1.2em;
  line-height: 1.7;
}

.works__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.works__item {
  margin: 0;
}

.works__item img {
  display: block;
  width: 100%;
  aspect-ratio: 460 / 320;
  object-fit: cover;
}

.works__item p {
  margin: 8px 0 0;
  font-size: 21px;
  letter-spacing: 0.04em;
}

.works__btn {
  position: relative;
  display: block;
  width: 480px;
  margin: 44px 0 0 auto;
  padding: 13px 44px;
  border: 1px solid #555;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-sizing: border-box;
}

.works__btn span {
  display: block;
  font-size: 1.14em;
  line-height: 1.2;
  letter-spacing: 0.22em;
	font-family: serif;
}

.works__btn small {
  display: block;
  margin-top: 6px;
  font-size: 1.14em;
  letter-spacing: 0.16em;
	font-family: serif;
}

.works__btn::before {
  content: "";
  position: absolute;
  top: 30px;
  right: 66px;
  width: 200px;
  height: 1px;
  background: #555;
}

.works__btn::after {
  content: "";
  position: absolute;
  top: 22px;
  right: 70px;
  width: 15px;
  height: 15px;
  border-top: 1px solid #555;
  transform: rotate(45deg);
}
@media (max-width: 640px) {

  .works {
    padding: 28px 0 20px;
    overflow: hidden;
	    width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  }

  .works::before {
    bottom: 10px;
    height: 35%;
  }

  .works__inner {
    width: 90%;
  }



  .works__lead {
    margin-bottom: 20px;
    font-size: 0.84em;
    line-height: 1.6;
    letter-spacing: 0.04em;
  }

  .works__list {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 0 20px;
    scrollbar-width: none;
  }

  .works__list::-webkit-scrollbar {
    display: none;
  }

  .works__item {
    flex: 0 0 100%;
    scroll-snap-align: center;
	  
  }

  .works__item img {
    aspect-ratio: 1044 / 660;
  }

  .works__item p {
    margin-top: 5px;
    font-size: 0.841em;
    letter-spacing: 0em;
  }

  .works__area {
    position: relative;
	  
  }

  .works__area::before,
  .works__area::after {
    content: "";
    position: absolute;
    top: 30%;
    width: 20px;
    height: 20px;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
    z-index: 3;
    pointer-events: none;
  }

  .works__area::before {
    left: 34px;
    transform: rotate(-45deg);
  }

  .works__area::after {
    right: 34px;
    transform: rotate(135deg);
  }

  .works__btn {
    width: 84%;
    margin: 20px 0px 0 auto;
    padding: 15px 15px;
  }

  .works__btn span {
    font-size: 0.84em;
  }

  .works__btn small {
    font-size: 0.84em;
  }

  .works__btn::before {
    top: 27px;
    right: 20px;
    width: 130px;
  }

  .works__btn::after {
    top: 20px;
    right: 22px;
  }
}
/* section_06 */
.blog {
  color: #30343c;
  font-family: serif;
}

.blog__inner {
  width: 100%;
  margin: 0 auto;
}

.blog__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px 30px;
}

.blog__item a {
  display: grid;
  grid-template-columns: 42% 58%;
  height: 180px;
  color: inherit;
  text-decoration: none;
}

.blog__img {
  margin: 0;
}

.blog__img img {
  display: block;
  width: 100%;
  height: 100%;
  height: 180px;
  object-fit: cover;
}

.blog__body {
  position: relative;
  padding: 10px 15px 10px;
  background: #efefea;
  box-sizing: border-box;
}

.blog__body h3 {
  margin: 0 0 16px;
  font-size: 1.14em;
  font-weight: normal;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.blog__body time {
  display: block;
  margin-bottom: 34px;
  font-size: 0.84em;
  line-height: 1;
  letter-spacing: 0.05em;
}

.blog__body p {
  position: absolute;
  margin: 0;
	bottom:10px;
  padding-right: 100px;
  font-family: serif;
  font-size:1em;
  line-height: 1;
  letter-spacing: 0.22em;
}

.blog__body p::before {
  content: "";
  position: absolute;
  top: 50%;
  right: -10px;
  width: 100px;
  height: 1px;
  background: #555;
}

.blog__body p::after {
  content: "";
  position: absolute;
  top: calc(50% - 7px);
  right: -7px;
  width: 14px;
  height: 14px;
  border-top: 1px solid #555;
  transform: rotate(45deg);
}
@media (max-width: 640px) {
  .blog {
    padding: 0;
  }
  .blog__list {
    display: block;
  }
  .blog__item {
    margin-bottom: 20px;
  }

  .blog__item a {
    grid-template-columns: 30% 70%;
    height: 130px;
  }

  .blog__img img {
    height: 130px;
  }

  .blog__body {
    padding: 8px 10px 8px;
  }

  .blog__body h3 {
    margin-bottom: 10px;
    font-size: 1.0em;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }

  .blog__body time {
    margin-bottom: 10px;
    font-size: 0.84em;
  }

  .blog__body p {
    padding-right: 75px;
    font-size: 1em;
    letter-spacing: 0.22em;
  }

  .blog__body p::before {
    right: -13px;
    width: 80px;
  }

  .blog__body p::after {
    right: -9px;
  }
}
/* section_07 */
.section_07{background-image: url("../img/company_back_pc.webp");
    background-repeat: no-repeat;
    background-position: center; /*右下に表示 したものを左上に反転*/
    background-size: cover; /*高さにあわせる*/
    height: auto;
    width: 100%;
	position: relative;margin-top: 3em;padding-bottom: 50px;}
.white{color: #ffffff;}
.mt50per{margin-top: 30%;}
@media screen and (max-width:640px) {
.section_07{padding-bottom: 30px;}
	.sp_mb3per{margin-bottom: 3%;}
	.mt50per{padding-top: 30%;}
}

/* section_10 */


/* section_insta */
.insta_ttl{text-align: center;}
.insta_ttl span{display: block;}
.insta_ttl img{height: 100px;}
/* section_contact */





/*
===================================================
 tb タブレット解像度
===================================================
*/
@media screen and (max-width:1000px) {
.spnone{display: block;}
.tbonly{display: block;}
.sponly{display: none;}
/* section_01 */



	}
/*
===================================================
 sp スマホ解像度
===================================================
*/
@media screen and (max-width:640px) {
.spnone{display: none;}
.sponly{display: block;}
.tbonly{display: none;}
.f-left{float: none;}
.f-right{float: none;}
.w90per{width: 100%;margin:0 auto;}
.w80per{width: 100%;margin:0 auto;}
.w48per{width: 100%;margin-bottom: 3%;}
.w66per{width: 100%;position: relative;}	
.center_left{text-align: left;}



	
.white{color: #ffffff;}

/* section_02 */
	
/* section_03 */

	
/* section_04 */


/* section_05 */

	
/* section_07 */

	
/* section_08 */

	
/* section_09 */

/* section_10 */

}
