@charset "utf-8";
header{
	background-color: #fff;
}
#wrap_main header .inner{
	transform: translate(0px);
}
#wrap_main header a{
	color: #111;
}

#nav_box span:before,
#nav_box span:after{
	background-color: #121212;
}
header .header_logo{
	width: 165px;
}
.page_ttl{
	text-align: center;
	padding: 160px 0;
}
.page_ttl h1{
	font-size: 7rem;
}
.page_ttl .page_h1_sub{
	font-size: 2rem;
}
.page_ttl h2{
	font-size: 4rem;
	margin-top: 60px;
}
.page_ttl.wh h1,.page_ttl.wh .page_h1_sub{
	color: #fff;
}
.gridbox.column2{
	display: grid;
	grid-template-columns: 1fr 1fr ;
	gap: 80px;
	align-items: center;
}
.page_ttl.bg_wh{
	background-color: #fff;/*
	padding: 100px 0;*/
}
.page_ttl .ttl_txt_sub{
	font-size: 2rem;
	margin-top: 80px;
	line-height: 1.8;
}
/****about***/
.about_bg01{
	background-image: linear-gradient(360deg, transparent, #0286a9 40% 100%);
	position: relative;
	z-index: 3;
}
.about_txt img{
width: 744px;
max-width: 94%;
margin: 0 auto 80px;
}
.about_txt p{
	color: #fff;
	font-size: 2rem;
	text-align: center;
	line-height: 1.8;
}
.about_txt p + p{
		margin-top: 40px;
}
.about_video_inner{
	position: relative;
}
.about_video_inner .video-wrap-about{
	position: absolute;
	z-index: 0;
	width: 100%;
	height: 150vh;
	bottom: 0;
	left: 0;
overflow: hidden;
}
.about_video_inner .video-wrap-about video{
	min-width: 100%;
	min-height: 100%;
}
.about_cont01_1{
	color: #fff;

}
.about_cont01_1 h2{
	text-align: left;
	line-height: 1.6;
	font-size: 7rem;
}
.about_cont01_1 .h2_sub ,.about_cont01_1 h3{
	font-size: 3rem;
}
.about_cont01_1 .h2_sub {
	margin-bottom: 24px;
}
.about_cont01_1 p{
	font-size: 1.8rem;
	margin-top: 16px;
	padding-bottom: 160px;
}
.about_video_inner .video-wrap-about:after{
	content: "";
	display: block;
	background-image: linear-gradient(180deg, transparent, #fff 100%, #ffffff);
	height: 200px;
	width: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
}
.about_cont01{
	background-color: #fff;
	margin-top: -1px;
}
.about_cont01 .inner{
	/*margin-top: -20px;*/
}
.about_cont01 .gridbox + .gridbox{
	margin-top: 40px;
}
.about_cont01 .point h3{
	font-size: 3.5rem;
	position: relative;
	width: fit-content;
	padding-bottom: 40px;
}
.about_cont01 .point h3:after{
	content: "";
	height: 1px;
	display: block;
	width: 100%;
	position: absolute;
	bottom: 24px;
	left: 0;
	background-color: #111;
}
.about_cont01 .point h4{
	font-size: 2.6rem;
	margin-bottom: 24px;
	line-height: 1.6;
}
.about_cont01 .point p{
	font-size: 1.6rem;
	line-height: 1.8;
}
.about_cont01 .point a{
	font-size: 1.6rem;
	margin-top: 16px;
	display: block;
}
.other_list li,.c_menu_card{
	background-color: #F4F4F4;
	border-radius: 10px;
	padding: 16px;

}
.other_list .slick-initialized .slick-slide{
		margin: 0 8px;
}
.other_list li h3{
	font-size: 2.3rem;
	height: 100px;
	padding-left: 40px;
}
.other_list li h3 span{
	font-size: 3rem;
	padding-right: 4px;
	    margin-left: -36px;
}
.other_list li p{
	font-size: 1.6rem;
	height: 180px;
}
.other_list li a,.other_list li a span.more_btn,a p.more_btn{
	font-size: 1.3rem;
	/*margin-bottom: 16px;*/
	display: block;
	font-weight: normal;
}
.other_list li a span.more_btn,a p.more_btn{
	margin-bottom: 16px;
}
.about_other .slick-dots{
	display: flex;
	width: fit-content;
	margin: 24px auto;
	gap: 16px;
}
.about_other .slick-dots li{
	background-color: #fff;
	width: 40px;
	height: 5px;
	border-radius: 2px;
	padding: 0;
}
.about_other .slick-dots li button{
	opacity: 0;
	width: 40px;
	height: 5px;
	padding: 0;
}
.about_other .slick-dots li.slick-active{
	background-color: #002D31;
}
.about_other{
	margin-top: -1px;
  background-image: linear-gradient(360deg, transparent, #ffffff 24% 100%);
  margin-bottom: 160px;
}
.about_other h2{
	text-align: left;
	font-size: 6rem;
	padding: 160px 0 40px;
}

/****about***/
/**business**/
.business_cont,.esg section{
	background-color: #fff;
}
.business_cont:last-child,.esg section.sdgs,.company_menu,.text_content section:last-child,
.sitemap section:last-child{
	margin-top: -1px;
	background-color: transparent;
  background-image: linear-gradient(360deg, transparent, #ffffff 14% 100%);
  margin-bottom: 160px;
  padding-bottom: 160px;
}
.media .business_cont:last-child{
background-image: linear-gradient(360deg, transparent, #ffffff 5% 100%);
}
.business_cont h2{
	font-size: 4rem;
	text-align: left;
	line-height: 1.8;
}
.business_cont h2.center{
	text-align: center;
}
.business_cont h3{
	font-size: 2.2rem;
	margin: 24px 0;
	line-height: 1.6;
}
.business_cont p,.business_cont a{
	margin-top: 24px;
	font-size: 1.6rem;
	display: block;
	line-height: 1.6;
	font-weight: normal;
}
.business_cont .gridbox.column2,
.business_cont .column1{
	padding: 80px 0;
}

.business_cont + .business_cont{
	padding-top: 160px;
	margin-top: -1px;
}
.business_cont .img_1_3{
	max-width: 646px;
	margin-left: 80px;
}
.business_cont .img_03_2{
	max-width: 591px;
	margin-left: auto;
}
.business_cont .column1 img{
	margin-top: 40px;
}
.page_ttl .page_h1_sub{
margin-top: 1em;
}
.business .gridbox.column2 .grid img{
	border-radius: 8px;
}
.business_cont.business_single_cont a{
	margin-top: 8px;
}
.business_cont.business_single_cont h4{
margin-top: 24px;
position: relative;
padding-bottom: 4px;
border-bottom: 1px solid #111;
width: fit-content;
}
.text_content .business_cont.business_single_cont h4,
.business .business_cont.business_single_cont h4{
    font-size: 2rem;
}
/**business**/
/**esg***/
.esg .page_ttl.bg_wh{
background-image: url(../img/pages/esg-sdgs/main_bg.jpg);
background-size: 100% auto;
background-position: center;
background-repeat: no-repeat;
position: relative;
}
.esg .page_ttl.bg_wh:before,
.company .page_ttl.bg_wh:before{
	content: "";
	height: 200px;
	width: 100%;
	background-image: linear-gradient(360deg, transparent, #ffffff 80% 100%);
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}
.esg .page_ttl.bg_wh:after,
.company .page_ttl.bg_wh:after{
	content: "";
	height: 200px;
	width: 100%;
	background-image: linear-gradient(180deg, transparent, #ffffff 80% 100%);
	display: block;
	position: absolute;
	bottom: -1px;
	left: 0;
}
.esg .page_ttl p.page_h1_sub{
	font-size: 2.6rem;
}
.esg .page_ttl p:not(.page_h1_sub) {
	font-size: 2rem;
	margin-top: 40px;
	line-height: 1.8;
}
.esg .page_ttl{
	padding-bottom: 230px;
}
.esg01{
	padding-bottom: 80px;
}
.esg01 h3{
	position: relative;
	font-size: 3.9rem;
	padding-bottom: 40px;
}
.esg01 h3:after{
	content: "";
	display: block;
	height: 1px;
	width: 120px;
	background-color: #111;
	position: absolute;
	    bottom: 24px;
	left: 0;
}
.esg .esg01 p{
		font-size: 2rem;
		line-height: 1.8;
}
.esg .esg01 img{
	margin: 60px auto;
	width: 913px;
}
.bg_gray{
	background-color: #F4F4F4;
	position: relative;
	padding: 100px 0;
}
.bg_gray section{
	background-color: #F4F4F4!important;
}
.bg_gray:before,
.bg_gray:after{
	content: "";
	height: 100px;
	width: 100%;
	display: block;
	position: absolute;
	left: 0;
}
.bg_gray:before{
	top:-100px;
	background-image: linear-gradient(180deg, transparent, #F4F4F4 80% 100%);
}
.bg_gray:after{
	bottom: -100px;
	background-image: linear-gradient(360deg, transparent, #F4F4F4 80% 100%);
}
.esg .esg02 h2{
	font-size: 6rem;
	margin:40px auto ;
}
.esg .esg02 h3{
	font-size: 3.4rem;
	text-align: center;
	margin-bottom: 80px;
	line-height: 1.4;
}
.esg .esg02 h4{
	font-size: 2rem;
	margin-bottom: 24px;
	line-height: 1.4;
}
.esg .esg02 .gridbox.column2,
.esg .esg02 .single_column{
	margin:60px auto;
}
.esg .esg02 .gridbox.column2 + .single_column,
.esg .esg02 .single_column + .gridbox.column2{
margin-top: 100px;
}
.esg .esg02 .gridbox.column2 + h3{
	margin-top: 140px;
}
.esg .esg02 .gridbox.column2 h3,
.esg .esg02 .single_column h3,
.text_content h3{
	font-size: 3rem;
	position: relative;
	text-align: left;
	padding-bottom: 16px;
	margin-bottom: 24px;
}
.esg .esg02 .gridbox.column2 h3:after,
.esg .esg02 .single_column h3:after,
.text_content h3:after{
content: "";
display: block;
width: 100%;
height: 1px;
background-color: #111;
position: absolute;
bottom: 0;
left: 0;
}
.esg .esg02 .gridbox.column2 p,
.esg .esg02 .single_column p{
	font-size: 1.6rem;
	line-height: 1.6;
}
.esg .esg02 .single_column .gridbox.column2{
	align-items: flex-start;
}
.esg .esg02 .single_column img + p,.esg .esg02 .single_column picture + p{
	margin-top: 16px;
}
.esg .esg02 ul{
	margin-top: 40px;
}
.esg .esg02 ul li{
background-color: #fff;
width: 100%;
padding: 4px 0 4px 40px;
font-size: 1.8rem;
margin-top: 8px;
}
.esg .esg02 + .esg02{
	margin-top: 240px;
}
.esg section.sdgs{
	padding-top: 160px;
}
.esg section.sdgs .big{
	font-size: 3.9rem;
	text-align: center;
	line-height: 1.6;
}
.esg section.sdgs p + p{
	margin-top: 160px;
	font-size: 2rem;
	text-align: center;
}
.esg section.sdgs img{
	width: 768px;
	margin: 40px auto;
	display: block;
}
p.small{
	font-size: .9em!important;
}
/**esg***/
table.new_table{
    width: fit-content;
    margin: 20px 0 80px;
    max-width: 100%;
    }
    .access table.new_table{
    		margin-bottom: 0;
    }
table.new_table tr{
	border-bottom: 1px solid #111;
}
table.new_table th{
font-weight: normal;
text-align: left;
min-width: 140px;
}
table.new_table th ,table.new_table td{
	text-align: left;
	padding: 8px 16px;
	vertical-align: top;
	font-size: 1.6rem;
}
table.new_table td .small_txt{
	font-size: 1.4rem;
}
table.new_table th{
	padding-left: 0;
}
table.new_table td{
	padding-right: 0;
}
/**company***/
.company .page_ttl.bg_wh:before{
	height: 40%;
	background-image: linear-gradient(360deg, transparent, #ffffff 40% 100%);
}
.company .page_ttl.bg_wh{
background-image: url(../img/pages/company/company_top_bg.jpg);
background-size: 100% auto;
background-position: center bottom;
background-repeat: no-repeat;
position: relative;
}
.company .company_logo{
	width: 744px;
	max-width: 90%;
	margin: 160px auto 0;
}
.company .sub_read{
	font-size: 2.4rem;
	margin: 80px auto 320px;
	line-height: 1.8;
}
.gridbox.column4{
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
gap: 16px;
}
.c_menu_card .menu_ttl{
font-size: 3.2rem;
    margin-bottom: 8px;
    margin-top: 8px;
}
.c_menu_card.mission_grid .menu_ttl{
font-size: 3rem;
    letter-spacing: -0.04em;
    line-height: 1.2;
    margin-top: 12px;
}
.company_menu.detail_page .c_menu_card .menu_ttl{
font-size: 2.9rem;
margin-top: 8px;
}
.company_menu.detail_page .c_menu_card.grid.mission_grid .menu_ttl{
	letter-spacing: -0.02em;
    line-height: 1.3;
    /*margin-top: 14px;*/
}
.company_menu.detail_page .c_menu_card.grid.mission_grid .more_btn{
	letter-spacing: -0.08em;
    font-size: 1.6rem;
}

.company_menu.detail_page .c_menu_card .more_btn{
	font-size: 1.7rem;
}
.c_menu_card img{
margin-top: 80px;
}
.c_menu_card.c_menu_card.mission_grid img{
	    margin-top: 50px;
}
.c_menu_card .more_btn{
	font-size: 1.6rem;
}
.c_menu_card.mission_grid .more_btn{
    letter-spacing: -0.07em;
}
.company_menu{
	padding-bottom: 0;
	margin-top: -80px;
	background-image: linear-gradient(360deg, transparent, #ffffff 30% 100%);
	position: relative;
	z-index: 3;
}
.company_top .company_menu{
	z-index: 3;
	background: transparent;
}
.company_top .company_menu:after{
	content: "";
	display: block;
	width: 100%;
	    height: 300px;
    background-image: linear-gradient(360deg, transparent, #fff 40% 100%);
    position: absolute;
    top: 80px;
    z-index: -1;
}
.company_menu.detail_page{
margin-top: -1px;
padding-top: 80px;
}
.company_menu a{
	font-weight: normal;
}
.company .page_ttl.bg_wh .inner{
	position: relative;
	z-index: 1;
}
.company_content{
	background-color: #fff;
}
.company_content + .company_content{
	margin-top: -1px;
	padding-top: 140px;
}
.company_content h2{
	font-size: 4rem;
	line-height: 1.8;
	margin-bottom: 24px;
	padding-top: 24px;
	    padding-bottom: 40px;
	    position: relative;
}
.text_content .company_content h2{
text-align: center;
}
.company_content h2:after{
	    content: "";
    display: block;
    height: 1px;
    width: 120px;
    background-color: #111;
    position: absolute;
    bottom: 24px;
    left: 0;
    right: 0;
    margin:auto;
}
.company_content p,
.company_content a{
font-size: 1.6rem;
    line-height: 1.6;
}
.company_content p .small_txt{
	font-size: 1.4rem;
}
.company_content .access_detail{
	    margin-top: 16px;
}
.company_content .company_detail{
	padding: 40px 0;
}
.company_content p + a{
	margin-top: 24px;
}
.gridbox.column3{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 24px;
}
.gridbox + .gridbox{
	margin-top: 24px;
}
.gallery .grid img{
	border-radius: 8px;
}
.gridbox.gap24{
	gap: 24px!important;
}
.company_content p + p{
	margin-top: 8px;
}
.company_menu.detail_page h3,
.vision_bottom h3{
font-size: 6rem!important;
text-align: left;
line-height: 1.2;
padding: 160px 0 40px;
}
ul.disc li{
	padding-left: 1em;
}
ul.disc li:before{
		content:"";
		display: inline-block;
		background-color: #0096AA;
		width: 8px;
		height: 8px;
		border-radius: 4px;
		margin-right: 8px;
		margin-left: -1em;
}
ol.number{
padding-left: 1em;
margin: 0!important;
}
ol.number li{
	    list-style: decimal;
}
.company_content .h2_sub{
	text-align: center;
	    font-size: 2.6rem;
	    display: block;
}
.history_box{
	padding: 40px 0 80px;
	
}
.history_box dl{
	display: grid;
	grid-template-columns: 10% auto;
	border-bottom: 1px solid #111;
	padding: 16px 0;
	align-items: baseline;
}
.history_box dl dt{
	    font-size: 3rem;
    color: #797979;
}
.history_box dl dd{
	    font-size: 1.6rem;
	    line-height: 1.8;
}
.history_box dl .month{
    font-size:2rem;
    display: inline-block;
    width: 3em;
    text-align: right;
    padding-right: 8px;
}
.scroll-hint-icon{
	top: 40px!important;
}
.message .company_content p {
	margin-top: 24px;
	line-height: 1.6;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
p.right_txt{
	text-align: right;
}
.message .company_content p.right_txt{
	margin-top: 40px;

	margin-bottom: 160px;
}
.message .company_content p.right_txt b{
	font-size:2rem;
}

/**company**/

/**vision**/
.vision #snap_area,.vision .company_content.vision_bottom{
	background-color: #fff;
}
.container {
  /*overflow: auto;
  scroll-snap-type: y mandatory;*/
  min-height: 100vh;
}
.area {
  /*scroll-snap-align: start;*/
  min-height: 100vh;
  background-size: cover;
  padding: 0;
  color: #fff;
}

.area1{
	background-attachment: fixed;
	background-image:url(../img/pages/company/vision01.jpg);
	padding-bottom: 80px;
}
.area2{
	background-image:url(../img/pages/company/vision02.jpg);
}
.area3{
	background-image:url(../img/pages/company/vision03.jpg);
}
.area1 img{
	width: 525px;
	margin: 40px auto;
}
.area1 .column2.gridbox{
	align-items: self-start;
	margin-top: 80px;
}
.area1 h1,.area h2{
font-size: 9.3rem;
}
.area h2{
	padding-top: 80px;
}
.area1 .h1_sub,.area .h2_sub{
	font-size: 3rem;
	    margin-top: 24px;
}
.area2 h2,.area2 .h2_sub{
	text-align: right;
}
.area3 h2,.area3 .h2_sub{
	text-align: left;
}
.area1 .h1_sub + p,.area .h2_sub + p{
	font-size: 3rem;
	margin-top: 40px;
}
.area1 p{
	font-size: 2rem;
	line-height: 1.6;

}
/*}
.scroll_over{
	overflow: scroll;
	max-height: 80vh;
	-ms-overflow-style: none;
    scrollbar-width: none;
}
.scroll_over.scrollbar::-webkit-scrollbar {
    display: none;
}*/
.area h3{
	font-size: 3.6rem;
	margin-top: 40px;
}
.area h3 span{
	font-size: 8.5rem;
}
.area .inner{
	position: relative;
	height: fit-content;
	top:0;
	bottom: 0;
	margin: auto;
	min-height: 110vh;
}
/*.area3 img{
position: absolute;
right: 0;
top: 0;
bottom: 0;
margin: auto;
max-width: 745px;
height: auto;
display: block;
max-height: 100%;
}*/
.vision_bottom .gridbox.column2{
	align-items: self-start;
}
.vision_bottom .gridbox.column2 h3{
	margin-top: -20px;
	padding-top: 0;
	font-size: 5rem;
	line-height: 1.4;
}
.vision_bottom .gridbox.column2 h4{
	font-size: 2.5rem;
	margin-top: 8px;
	margin-bottom: 32px;
	line-height: 1.6;
}
.vision_bottom .gridbox.column2 p +p{
	margin-top: 24px;
}
.vision .container{
	width: 100%!important;
	max-width: 100%!important;
}







.modal-open{
  cursor: pointer;
      background-color: transparent;
    border: none;
    position: absolute;
right: 0;
top: 0;
bottom: 0;
margin: auto;
max-width: 745px;
height: auto;
display: block;
max-height: 100%;
}


.js-section {
  min-height: 100vh;
  box-sizing: border-box;
}

.modal-open:hover{
	/*filter: brightness(0.8);*/
}

/* モーダルと背景の指定 */
.modal{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  /*background: rgba(0,0,0,50%);*/
  padding: 40px 20px;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: .3s;
  box-sizing: border-box;
}

/* モーダルの擬似要素の指定 */
.modal:before{
  content: "";
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  margin-left: -0.2em;
}

/* クラスが追加された時の指定 */
.modal.is-active{
  opacity: 999;
  visibility: visible;
  z-index: 999999;
   -ms-overflow-style: none;
    scrollbar-width: none;
}

/* モーダル内側の指定 */
.modal-container,.modal__content{
  position: relative;
  display: inline-block;
  vertical-align: middle;
      max-width: 90%;
    width: 1200px;
    height: 90vh;
        border-radius: 8px;
        -webkit-backdrop-filter: blur(30px) brightness(1.7);
backdrop-filter: blur(30px) brightness(1.7);
box-shadow: 0 0 2px rgba(0, 0, 0, 0.4);
}

/* モーダルを閉じるボタンの指定 */
.modal-close,.modal__close.js-modal-close2{
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: -20px;
  right: -20px;
  width: 40px;
  height: 40px;
  color: #fff;
  background: #000;
  border-radius: 50%;
  cursor: pointer;
}

/* モーダルのコンテンツ部分の指定 */
.modal-content,.modal__body{
  
  text-align: left;
  line-height: 1.8;
  padding: 20px;
      height: 100%;
      background-image: url(../img/pages/company/modal_bg.png);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: auto 100%;
}
.modal_inner_content{
	display: block;
    overflow-y: scroll;
    height: 100%;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.modal_inner_content .column2.modal_grid{
grid-template-columns: 200px auto;
gap: 16px;
}
.modal_inner_content .column2.modal_grid .big{
	font-size: 2.9rem;
	display: block;
	text-align: center;
}
.modal_inner_content .column2.modal_grid .big span{
	font-size: 7.1rem;
	display: block;
	    line-height: 7.4rem;
}
.modal_inner_content .column2.modal_grid .gridbox{
	grid-template-columns: 80px auto;
	gap: 16px;
}
.modal_inner_content .column2.modal_grid .gridbox .small{
	font-size: 1rem;
	text-align: center;
	display: block;
}
.modal_inner_content .column2.modal_grid .gridbox .li_inner_big{
	font-size: 4.6rem;
	text-align: center;
	display: block;
	line-height: 4rem;
}
.modal_inner_content .column2.modal_grid .gridbox{
	margin-bottom: 16px;
}
.modal_inner_content .column2.modal_grid .gridbox .modal_inner_ttl{
	font-size: 1.8rem;
	width: fit-content;
	border-bottom: 1px solid #111;
	margin-bottom: 8px;
	font-weight: bold;
}
.modal_inner_content .column2.modal_grid .gridbox .modal_inner_ttl span{
	font-size: 1.4rem;
}
.modal_inner_content .column2.modal_grid .gridbox p{
	font-size: 1.6rem;
	line-height: 1.4;
}

.modal-open.more_btn{
	    position: absolute;
	height: fit-content;
    bottom: 16vh;
    top: auto;
    font-size: 2rem;
    display: block;
    right: 2vw;
    left: auto;
    z-index: 99;
}
button.more_btn:after{
	background-image: url(../img/next_wh.png);
	top: 4px;

}
.modal__bg.js-modal-close2{
	position: fixed;
  inset: 0;
  background: rgba(0,150,170,.3);
  z-index: 10;
}
.modal__content{
	z-index: 11;
	    backdrop-filter: blur(30px) brightness(1.2);
	    background-color: rgba(255, 255, 255, .6);
}



/***vision**/

.container.js-scroll{
	height: fit-content!important;
	    width: 100%;
    margin: 0;
    max-width: 100%;
    min-height: 1px!important;
}
a.image_link{
	display: block;
	width: fit-content;
	position: relative;
	margin: 0 auto;
}
a.image_link img{
	display: block;
	width: 624px;
	max-width: 96%;
}
a.image_link > div{
	width: 80%;
	height: fit-content;
	color: #fff;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
}
a.image_link div span{
	display: block;
}
a.image_link div div span{
	display: inline-block;
}
a.image_link div span.big{
	font-size: 2.8rem;
}
a.image_link div span.small{
font-size: 1.8rem;
}
a.image_link div img{
	width: 70px;
	display: inline-block;
	padding-top: 7px;
	transition: .3s;
}
a.image_link:hover div img{
margin-left: 10px;
}
.history_box dl dd .history_txt{
	line-height: 1.2;
	display: inline-block;
}
.history_box dl dd div{
	display: grid;
	grid-template-columns: 60px auto;
	align-items:baseline;
}
.history_box dl dd div + div{
	margin-top: 8px;
}
.history_box dl dd .month{
	font-size:2rem;
}




















.vertical-scroll-hint {
  position: relative;
  overflow-y: auto;
  max-height: 100vh;
}

.vertical-scroll-hint.is-vertical-scrollable::before,
.vertical-scroll-hint >.gridbox::before,
.vertical-scroll-hint >.song_lyrics::before{
	    content: "";
    position: fixed;
    display: block;
    left: 0;
    right: 0;
    margin: auto;
    bottom: 16px;
    top: auto;
    background-color: rgba(2, 134, 169, .9);
    width: 80px;
    height: 40px;
    border-radius: 10px;
    transition: .3s;
}
.vertical-scroll-hint >.gridbox::before,
.vertical-scroll-hint >.song_lyrics::before{
bottom: auto;
top: 16px;
}

.vertical-scroll-hint.is-vertical-scrollable::after,
.vertical-scroll-hint.is-vertical-scrollable-top >.gridbox::after,
.vertical-scroll-hint.is-vertical-scrollable-top >.song_lyrics::after{
  content: "";
  position: sticky;
  display: block;
  left: 0;
    right: 0;
    margin: auto;
  bottom: 16px;
  width: 20px;
  height: 20px;
  margin: 0 auto;
  border-right: 4px solid #fff;
  border-bottom: 4px solid #fff;
  transform: rotate(45deg);
  animation: verticalScrollHint 3s infinite;
  pointer-events: none;
  transition: .3s;
}
.vertical-scroll-hint.is-vertical-scrollable-top >.gridbox::after,
.vertical-scroll-hint.is-vertical-scrollable-top >.song_lyrics::after{
	top: 32px;
    bottom: auto;
    position: fixed;
}
.vertical-scroll-hint >.gridbox::after,
.vertical-scroll-hint >.gridbox::before,
.vertical-scroll-hint >.song_lyrics::after,
.vertical-scroll-hint >.song_lyrics::before{
opacity: 0;
}
.vertical-scroll-hint.is-vertical-end::after,
.vertical-scroll-hint.is-vertical-end::before{
  opacity: 0!important;
}
.vertical-scroll-hint.is-vertical-scrollable-top>.gridbox:before,
.vertical-scroll-hint.is-vertical-scrollable-top>.song_lyrics:before{
opacity: 1!important;
}
.vertical-scroll-hint.is-vertical-scrollable-top>.gridbox:after,
.vertical-scroll-hint.is-vertical-scrollable-top>.song_lyrics:after{
animation: verticalScrollHint2 3s infinite;
}

@keyframes verticalScrollHint {
  0% {
    transform:rotate(45deg) translateX(0) translateY(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform:rotate(45deg) translateX(4px) translateY(4px);
    opacity: 0;
  }
}

@keyframes verticalScrollHint2 {
  0% {
    transform:rotate(-135deg) translateX(0) translateY(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform:rotate(-135deg) translateX(4px) translateY(4px);
    opacity: 0;
  }
}


h3.normal_h3{
	font-size: 2.2rem;
    margin: 24px 0;
    line-height: 1.6;
}
h3.normal_h3.border{
	position: relative;
	margin-bottom: 8px;
	padding-bottom: 24px;
	width: 100%;
	display: block;
}
h3.normal_h3.border:after{
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	background-color: #111;
	width: 100%;
	height: 1px;
	left: 0;
}
h4.normal_h4{
	    margin-top: 24px;
    position: relative;
    padding-bottom: 4px;
    border-bottom: 1px solid #111;
    width: fit-content;
}
.text_content p + h3{
	margin-top: 60px;
}
.text_content p + ul.disc,
.text_content ul.disc + p{
	margin-top: 24px;
}

.business .business_cont.business_single_cont a.return_btn:last-child{
margin-top: 64px;
}
audio{
	margin: 0 auto;
	    display: block;
    max-width: 100%;
}
 .company_content .audio_btn{
    width: fit-content;
    margin: 40px auto 0px;
    display: block;
    background-color: #0096aa;
    padding: 16px 0;
    text-align: center;
    color: #fff!important;
    max-width: 100%;
    width: 300px;
    border-radius: 30px;
    border: none;
}
.modal__body .song_ttl_sub,
.modal__body h3.song_ttl{
	text-align: center;
}
.modal__body h3.song_ttl{
	margin: 16px 0;
	font-size: 2.6rem;
}
.modal__body .song_ttl_sub{
	font-size: 2rem;
}
.modal__body .song_lyrics +.song_ttl_sub{
	font-size: 1.4rem;
	text-align: right;
}
.modal__body .song_lyrics{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 160px;
	margin: 60px auto;
    max-width: 580px;
}
.modal__body .song_lyrics{
	z-index: 2;
}
.modal__body.vertical-scroll-hint.is-vertical-scrollable:after, 
.modal__body.vertical-scroll-hint.is-vertical-scrollable-top>.gridbox:after{
	left: 49.7%;
}
.vision_bottom .gridbox.column2 + h3{
	margin-top: 80px;
}
.modal__close.js-modal-close2{
	z-index: 2;
}

@media screen and (min-width:1025px){
header .inner{
	/*align-items: flex-start;*/
	padding-bottom: 24px;
}

main{
	padding-top: 100px;
}
table.new_table{
	width: 100%;
	    border-collapse: collapse;
    border-spacing: 0;
}
table.new_table th{
	width: 30%;
}
.about_cont_bgmovie .about_cont01_1 p.h2_sub{
    padding-bottom: 0;
    margin-bottom: 32px;
}
section.about_txt{
	padding-bottom: 240px;
}
.area1{
	padding-top: 80px;
}
.area1 .column2 .grid:nth-child(1){
	position: sticky;
	top: 0;
}

.company_menu.detail_page h3{
	padding-bottom: 80px;
}
.area1 .column2.gridbox{
	grid-template-columns: auto 1fr;
}
.area1 .column2.gridbox p{
	padding-bottom: 40px;
}

.modal-open img:hover{
	filter: drop-shadow(2px 4px 6px black);
}

.js-scroll,.js-scroll *,.js-scroll:active {
    /*cursor: auto!important;*/
    user-select: auto!important;
}

.js-scroll.is-dragging {
    cursor: auto!important;
    scroll-behavior: none;
}
.sitemap nav{
	display: grid;
	grid-template-columns: 36% 32% 32%;
	gap: 40px;
}
.sitemap nav ul li.sp_small a{
	    font-size: 1.8rem;
    font-weight: normal;
}
.sitemap nav ul li.sp_small{
	margin-bottom: 10px;
}
.c_menu_card:hover a p.more_btn:after{
	right: -28px;
}
.scroll-hint-text{
	display: none;
}
.company_top .c_menu_card.c_menu_card.mission_grid img{
    margin-top: 52px;
}
.modal__body .song_lyrics+.song_ttl_sub{
	    width: 760px;
    margin: 0 auto;
}
}
@media screen and (max-width:1480px) and (min-width: 1025px){
	.company .page_ttl.bg_wh{
		background-size: cover;
	}
}

@media screen and (max-width:1024px){
	header .inner{
		padding-bottom: 8px;
	}
	header .header_logo{
		width: 100px;
	}
	.page_ttl h1{
			font-size: 4.5rem;
	}
	.page_ttl .page_h1_sub{
		font-size: 1.8rem;
	}
	.page_ttl h2{
	font-size: 2.4rem;
	line-height: 1.6;
}
.gridbox.column2{
	grid-template-columns: 1fr;
	gap: 32px;
}
.page_ttl.bg_wh{
	padding-top: 160px;
}
.page_ttl h1.h1_sp_small{
		        font-size: 3.8rem;
        letter-spacing: -0.06em;
	}
/****about***/
.about_txt p{
	font-size: 1.4rem;
}
.about_cont01_1 h2{
	font-size: 4.5rem;
}
.about_txt{
	margin-bottom: 160px;
}
.about_cont01{
	padding-top: 40px;
}
.about_video_inner .video-wrap-about{
	height: 200vh;
}
.about_video_inner .video-wrap-about video{
	width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.point .gridbox.column2 .grid:nth-child(1){
	order: 2;
}
.about_cont01 .point h3{
	font-size: 2.5rem;
}
.about_cont01 .point h4{
	font-size: 1.8rem;
}
.about_cont01 .point p{
	font-size: 1.4rem;
}
.about_cont01 .gridbox + .gridbox{
	margin-top: 80px;
}
.about_other{
	padding-top: 120px;
}
.about_other h2{
	font-size: 4.2rem;
	text-align: left;
	padding-bottom: 40px;
	padding-top: 0;
}
.about_other .slick-dots li,
.about_other .slick-dots li button{
	width: 25px;
}
.about_cont01_1 .h2_sub, .about_cont01_1 h3{
	font-size: 1.8rem;
}
.about_cont01_1 p{
	padding-bottom: 40px;
	margin-top: 0;
}
.about_cont01_1 p{
	font-size: 1.4rem;
}
.about_cont01_1 h3 + p{
	padding: 24px 0 160px;
}

/****about***/
/**business***/
.page_ttl .ttl_txt_sub{
	font-size: 1.8rem;
}
.business_cont h2{
	font-size: 2.5rem;
}
.business_cont h3{
	font-size: 1.8rem;
}
.business_cont p,.business_cont a{
	font-size: 1.4rem;
}
.business_cont .img_1_2{
	margin-top: -50px;
}
.business_cont .gridbox.column2, .business_cont .column1{
	padding: 40px 0;
}
.business_cont .img_03_2{
	max-width: 100%;
	margin-right: auto;
}
.business_cont + .business_cont{
	padding-top: 80px;
}
.business_cont .img05_2{
	max-width: 206px;
	margin-left: auto;
}
.business_cont.business02 .gridbox .grid:nth-child(1),
.business_cont.business06 .gridbox .grid:nth-child(1){
	order: 2;
}
.business_cont .img06_2{
	max-width: 282px;
}
.business_cont:last-child{
	padding-bottom: 160px;
}
.business .gridbox.column2 .grid img{
	border-radius: 16px;
}
/***business***/
/***sdgs**/
.esg .page_ttl.bg_wh{
	background-size: auto 90%;
	background-position: center center;
}
.esg .page_ttl.bg_wh:before{
	    height: 300px;
    background-image: linear-gradient(360deg, transparent, #ffffff 40% 100%);
}
.page_ttl h1{
	font-size: 4.5rem;
}
.esg .page_ttl p.page_h1_sub{
	font-size: 1.8rem;
	margin-bottom:80px;
}
.esg .page_ttl p{
	font-size: 1.6rem;
}
.esg01 h3{
 	font-size: 2.5rem;
 }
 .esg01 h3:after{
 	width: 80px;
 }
 .esg .esg01 p{
 	font-size: 1.4rem;
 }
 .esg01{
 	margin-bottom: -1px;
 }
 .esg .esg02 h2{
 	font-size: 4rem;
 	margin-bottom: 16px;
 }
 .esg .esg02 h2 + h3{
 	font-size: 2.5rem;
 }
 .esg .esg02 h4{
 	font-size: 1.6rem;
 }
 .esg .esg02.environment .gridbox.column2 .grid:nth-child(1),
  .esg .esg02 .single_column .gridbox.column2 .grid:nth-child(2),
  main .esg .esg02.environment .gridbox.column2 .grid.sp_order2,
  .esg .esg02.governance .gridbox.column2 .grid:nth-child(1){
 		order: 2;
 }
 .esg .esg02 .single_column .gridbox.column2 .grid:nth-child(1),
 main .esg .esg02.environment .gridbox.column2 .grid.sp_order1{
order: 1;
 }
 .esg .esg02 .gridbox.column2 p, .esg .esg02 .single_column p{
 	font-size: 1.4rem;
 }
 .esg .esg02 .gridbox.column2 h3, .esg .esg02 .single_column h3,
 .text_content h3{
 	font-size: 2.1rem;
 }
 .esg .esg02 .gridbox.column2 + .single_column, .esg .esg02 .single_column + .gridbox.column2{
 	margin-top: 40px;
 }
 .esg .esg02 .single_column .gridbox.column2{
 	margin-top: 24px;
 }
 .esg .esg02 ul li{
 	font-size: 1.4rem;
 	padding: 4px 0 4px 16px;
 }
.esg .esg02 + .esg02{
	margin-top: 100px;
}
.bg_gray{
	padding: 20px 0;
}
.bg_gray:after{
	height: 60px;
	bottom: -59px;
}
.esg section.sdgs .big{
	font-size: 2.6rem;
}
.esg section.sdgs{
	padding-top:80px ;
}
.esg section.sdgs p + p{
	font-size: 1.6rem;
	margin-top: 80px;
}
.esg .page_ttl.bg_wh:after{
	background-image: linear-gradient(180deg, transparent, #fff 60% 100%);
}
.esg .page_ttl.bg_wh{
	filter: brightness(1.1);
}
.other_list li p{
	height: 180px;
}
/***sdgs**/
.esg .page_ttl p:not(.page_h1_sub){
	font-size: 1.6rem;
}
/**company**/
.company .page_ttl.bg_wh{
    background-size: auto 130%;
    background-position: center top;
}
.company .company_logo{
	margin-top: 56px;
}
.company .company_logo_txt{
font-size: 1.8rem;
line-height: 1.8;
margin-top: 120px;
}
.company .sub_read{
font-size: 1.6rem;
line-height: 1.8;
margin-bottom: 80px;
}
.company .company_logo{
	max-width: 100%;
}
.company .page_ttl.bg_wh:before{
	    height: 340px;
    background-image: linear-gradient(360deg, transparent, #ffffff 30% 100%);
}
.company .page_ttl.bg_wh:after{
	display: normal;
}
.company_menu{
	position: relative;
	background-image: linear-gradient(transparent, #ffffff 10% 70%, transparent);
}
.c_menu_card{
	width: 232px;
}
.c_menu_card .menu_ttl{
font-size: 2.7rem;
}
.c_menu_card .more_btn{
	font-size: 1.4rem;
}
.company_content h2{
	font-size: 2.5rem;
}
.company_content + .company_content{
	padding-top: 100px;
}
.gridbox.column3{
	grid-template-columns: 1fr;
}
.company_menu.detail_page{
background-image: linear-gradient(#ffffff, #ffffff 70%, transparent);
}
.company_menu.detail_page h3{
font-size: 4.2rem!important;
padding: 40px 0;
}
.vision_bottom h3{
padding: 40px 0;
font-size: 4rem!important;
}
table.new_table th ,table.new_table td,table.new_table td a{
	font-size: 1.4rem;
}
table.new_table td .small_txt{
	font-size: 1.2rem;
}
.container.js-scroll table{
	min-width: 600px;
}
.company_content .h2_sub{
	        font-size: 1.8rem;
}
.history_box dl{
	grid-template-columns: 1fr;
}
.history_box dl dt{
	        font-size: 2.4rem;
}


.area1{
	background-image:url(../img/pages/company/vision01_sp.jpg);
	background-image: none;
	        padding-top: 100px;
	       position: relative;
	       background-size: auto 100%;
}
.now_show .area1:before{
	content: "";
    z-index: 1;
    position:fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 130%;
    background-image:url(../img/pages/company/vision01_sp.jpg);
    background-size: 160% auto;
    background-position: center top;
    background-repeat: no-repeat;
}
.area1 .inner,
.area2,.area3,.vision .company_content.vision_bottom{
	position: relative;
	z-index: 2;
}
.area2{
	background-image:url(../img/pages/company/vision02_sp.jpg);
}
.area3{
	background-image:url(../img/pages/company/vision03_sp.jpg);
}
.area1 h1, .area h2{
	font-size: 5.5rem;
}
.area1 .h1_sub, .area .h2_sub{
	font-size: 2rem;
	margin-top: 8px;
}
.area1 .h1_sub + p, .area .h2_sub + p{
	font-size: 2.4rem;
}
/*.scroll_over{
	max-height: 80vh;
}*/
.area .h2_sub + p{
	position: absolute;
    bottom: 15%;
    left: 0;
    right: 0;
    margin: auto;
}
.area h3{
	text-align: right;
	font-size: 2.3rem;
	margin-top: 30px;
}
.area h3 span{
	font-size: 5.5rem;
}
.area3 img{
	position: relative;
	max-width: 100%;
	width: fit-content;
	margin-top: 280px;
}
.vision_bottom .gridbox.column2 h3{
	margin-top: 0;
	font-size: 3rem;
	padding-bottom: 24px;
}
.vision_bottom .gridbox.column2 h4{
	font-size: 2.4rem;
	line-height: 1.6;
}
.area1 p{
	font-size: 1.4rem;
	padding-bottom: 40px;
}
.modal_inner_content .column2.modal_grid,
.modal_inner_content .column2.modal_grid .gridbox{
	grid-template-columns: 1fr;
}

.modal-container{
	        max-width: 99%;
}
.modal_inner_content .column2.modal_grid .big span{
	display: inline-block;
	font-size: 5.7rem;
}
.modal_inner_content .column2.modal_grid .big{
	font-size: 2.4rem;
}
.modal-container{
	top:0;
	bottom: 0;
	margin:auto;
}
.modal_inner_content .column2.modal_grid .gridbox p.sp{
	display: inline-block;
	width: 60px;
}
.modal_inner_content .column2.modal_grid .gridbox .small{
	font-size: .8rem;
}
.modal_inner_content .column2.modal_grid .gridbox .li_inner_big{
	font-size: 3.9rem;
}
.modal_inner_content .column2.modal_grid .gridbox .modal_inner_ttl{
	max-width: calc(100% - 60px);
	display: inline-block;
	font-size: 1.5rem;
	border-bottom: none;
	letter-spacing: -0.01em;
}
.modal_inner_content .column2.modal_grid .gridbox .modal_inner_ttl{
	
}
.modal_inner_content .column2.modal_grid .gridbox .modal_inner_ttl span{
	font-size: 1.4rem;
	
	display: block;
}
.modal_inner_content .column2.modal_grid .gridbox .grid:nth-child(2) p:last-child{
border-top: 1px solid #111;
padding-top: 16px;
}

.company_menu.detail_page .c_menu_card .menu_ttl{
font-size: 2.9rem;
}
.company_menu.detail_page .c_menu_card .more_btn{
	font-size: 1.6rem;
}
a.image_link>div{
	width: 90%;
}
a.image_link div span.big{
font-size: 1.8rem;
}
a.image_link div span.small{
	font-size: 1.4rem;
}
a.image_link div img{
	width: 24px;
    display: inline-block;
    margin-top: 10px;
}
.message .company_content p.right_txt{
	margin-bottom: 80px;
}
table.new_table th{
	min-width: 110px;
	width: 114px;
}
.modal-container{
	height: 85vh;
	margin-bottom: 5vh;
}
/*.scroll_over{
	-webkit-overflow-scrolling: touch;
}*/
/**company**/
.company_menu.detail_page .container.js-scroll.scroll-hint{
	min-height: fit-content;
}
.modal-open{
	    bottom: 60px;
}

.company_content p .small_txt{
	font-size: 1.2rem;
}
.modal-open.more_btn{
	    bottom: 15vh;
    right: 2%;
    font-size: 1.6rem;
    padding-right: 24px;
}
.modal-open.more_btn:after{
	right: 0;
	top: 6px;
}.modal-open.more_btn:hover:after{
	right: 0!important;
}
h3.normal_h3{
	font-size: 1.8rem;
}
.js-scroll {
  cursor: grab;
  user-select: none;
  overflow-x: auto;
  -webkit-overflow-scrolling: auto;
}

.js-scroll.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto;
}
.container.js-scroll.scroll-hint{
	height: auto;
    scroll-snap-type: block;
}
.text_content .company_content ul li{
font-size: 1.6rem;
}
.text_content .business_cont.business_single_cont h4,
.business .business_cont.business_single_cont h4{
    font-size: 1.8rem;
}
.sitemap nav ul li.sp_small a{
	    font-size: 1.6rem;
    font-weight: normal;
}
.sitemap nav ul li.sp_small{
	margin-bottom: 10px;
}
.modal__body .song_ttl_sub{
	font-size: 1.6rem;
}
.modal__body .song_lyrics + .song_ttl_sub{
	font-size: 1.2rem;
}
.modal__body .song_lyrics{
	grid-template-columns: 1fr;
	gap: 0;
}
.modal__body.vertical-scroll-hint.is-vertical-scrollable:after, 
.modal__body.vertical-scroll-hint.is-vertical-scrollable-top>.gridbox:after{
	left: 0;
}
.company.company_top .c_menu_card,
.company_menu.detail_page .c_menu_card{
width: 280px;
}
.c_menu_card.mission_grid .menu_ttl{
		font-size: 2.7rem;
	}
.modal2 .modal__content{
height: 80vh;
}
.c_menu_card.c_menu_card.mission_grid img{
	margin-top: 48px;
}
.company_top .c_menu_card.c_menu_card.mission_grid img{
	        margin-top: 51px;
}
}
@media screen and (max-width: 1024px) and (min-width: 798px) {
	.c_menu_card{
		width: auto;
	}
}
@media screen and (max-width: 1024px) and (min-width: 480px) {
	.other_list li h3{
		    font-size: 1.9rem;
	}

	.other_list li p{
		font-size: 1.5rem;
	}
	.modal__body .song_lyrics{
		grid-template-columns: 1fr 1fr;
		gap: 24px;
	}
	.modal__body .song_ttl_sub:nth-child(1){
		margin-top: 80px;
	}
	.c_menu_card .more_btn{
		font-size: 1.2rem;
	}
	
}
@media screen and (min-width:769px){
.other_slide .slick-list {
  padding-left: 5%;
  padding-right: 5%;
  box-sizing: border-box;
}
}

@media screen and (max-width: 1550px) and (min-width: 1025px) {

.inner{
	transform: scale(1);
}
}
@media screen and (max-width: 1205px) and (min-width: 1025px) {
	.c_menu_card .menu_ttl{
		font-size: 2.8rem;
	}
	.c_menu_card.mission_grid .menu_ttl{
		font-size: 2.4rem;
	}
	.c_menu_card .more_btn{
		font-size: 1.4rem;
	}
	.c_menu_card.c_menu_card.mission_grid img{
		        margin-top: 57px
	}
	.c_menu_card.mission_grid .more_btn{
		font-size: 1.3rem;
	}
	.company_menu.detail_page .c_menu_card .menu_ttl{
		    font-size: 2.6rem;
	}
	.company_menu.detail_page .c_menu_card .more_btn,
	.company_menu.detail_page .c_menu_card.grid.mission_grid .more_btn{
		font-size: 1.3rem;
	}
	.company_menu.detail_page .c_menu_card.grid.mission_grid .menu_ttl{
		    font-size: 2.4rem;
		    letter-spacing: -.04em;
	}
	.company_top .c_menu_card.c_menu_card.mission_grid img{
		        margin-top: 62px;
	}
}
@media screen and (max-width:415px){
.page_ttl .ttl_txt_sub{
	font-size: 1.6rem;
}
}

@media screen and (max-width:340px){
.company_menu.detail_page h3{
	font-size: 3.9rem;
}

.vision_bottom h3{
font-size: 3.7rem!important;
}
}