@charset "UTF-8";

/* ---------------------------------------------------------------------------
  ★共通
--------------------------------------------------------------------------- */
:root{
  scroll-padding-top: 171px;
}
html {font-size: 62.5%;scroll-behavior: smooth;}
body{  
  font-size: 1.6rem;
}
object {pointer-events: none;}
.sp {display: none !important;}
a[href^="tel:"] {pointer-events: none;}
a {
    text-decoration: none;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}
.pcFlex{display: flex;}
.pcFlex.half{
 justify-content: space-between;
}
.pcFlex.half >*{
 width: 47.6%;
}
.img_r {overflow: hidden;}
.img_r>img {float: right;
    width: 33%;
    margin-left: 15px;
    margin-bottom: 15px;
}
p,li,dt,dd,th,td,input{
  font-size: 1.6rem;
}
h1,h2,h3,h4,h5,h6 {
  font-size: 1.6rem;
}

section{
  padding: 100px 0;
}

/*
　テキスト
========================================== */
.note{
  font-size: 1.2rem;
}

/*
　ボタン,リンク
========================================== */
/*-- table --*/
.basicTable >dt{
	padding: 15px 2.5%;
	width: 23%;
}
.basicTable >dd{
	padding: 15px 2.5%;
	width: 77%;
}
.basicTable >dt:last-of-type{
	border-bottom: none;
}
 .basicTable >dd:last-of-type{
	border-bottom: none;
}

table.basicTable thead th{
	font-size: 1.8rem;
}

/* =======================================
  ページャー
========================================== */
/*-- pageNavi --*/
.pageNavi{
	gap:0 1.5%;
 margin-top: 80px;
}
.pageNavi .current,
.pageNavi .inactive,
.pageNavi a{
	font-size: 1.8rem;
	width: 40px;
	height: 40px;
}
/*-- pager --*/
.pager{
	margin-top: 50px;
}
.pager a{
font-size: 1.6rem;
  width: 200px;
}

/* =======================================
	header
========================================== */
header{
 height: 94px;
 padding-top: 10px;
	transition: .3s
}
header:not(.fixed){
 top: 70px;
}


/* =======================================
	gnavi
========================================== */

.gnavi{
 align-items: center;
 padding-top: 12px;
 flex: 1;
}

#gnaviList{
 flex: 1;
 justify-content: flex-end;
 align-items: center;
 gap: 0 20px;
}
#gnaviList li{
}
#gnaviList > li{
 position: relative;
 font-size: 1.5rem;
}
#gnaviList > li >a{
 display:flex;
 align-items: center;
 height: 48px;
 font-size: min(1.3vw,1.6rem);
 font-weight: 700;
 white-space: nowrap;
}

#gnaviList li.current a,
#gnaviList li a:hover{
 opacity: .7;
}

#gnaviList .hasSub > a{
 position: relative;
}
/*#gnaviList .hasSub > a::after{
 content: "";
 display: inline-block;
}*/

.gnavi .hasSub:hover .sub{
	display: block;
	visibility: visible;
}


#gnaviList .sub{
	display: none;
	visibility: hidden;
	position: absolute;
 top: calc(100% - 1px);
 left: 50%;
 transform: translate(-50%, 0);
	z-index: 2;
	transition: all 0.6s ease-in-out;
 background: rgba(255,255,255,.8);
 min-width:100px;
}
#gnaviList .hasSub:hover .sub{
	display: block;
	visibility: visible;
}
#gnaviList .sub li{
	font-size: min(1.0vw,1.4rem);
}
#gnaviList .sub li + li{
 border-top: 1px #ccc solid;
}
#gnaviList .sub li a{
	display: block;
 background: var(--yellow);
	padding: 8px 20px 10px;
 color: var(--base);
 font-weight: 600;
 text-align: center;
	white-space: nowrap;
}
#gnaviList .sub li a:hover{
 opacity: .7;
}

/* =======================================
	footer/#footContact
========================================== */


/* =======================================
	footer/#footBottom
========================================== */
#footBottom .inner1200.pcFlex{
  justify-content: space-between;
}

#footBottom .tel{
}

.footerRight{
  width: 50%;
  display: flex;
  justify-content: end;
  gap: 0 40px;
 line-height: 1.4;
}
.footerNavi >li >a{
 font-size: 18px;
 font-weight: 700;
}

.footerNavi >li + li{
  margin-top: 40px;
}
.footerNavi a{
  color: var(--LLblue);
}
.footerNavi ul{
 margin-top: 20px;
}
.footerNavi ul li + li{
 margin-top: 15px;
}
.footerNavi ul li a::before{
 content: "‐";
 display: inline-block;
 margin-right: 0.5em;
}
@media screen and (max-width: 1000px) {

#pageTop{
 right: 2vw;
 bottom: 30px;
 }

}/*-1000 only-*/
/* =======================================
	pgs common
========================================== */
/*		leadTxt
-----------------------------*/
 .pgs .leadWrap .leadTxt{
    text-align: center;
}

/*		anchorLink
-----------------------------*/
.anchorLink{
	padding: 50px 0;
	gap:0 1.8%;
	justify-content: center;
}
.anchorLink ul{
	padding: 35px 0;
	gap:15px 20px;
}
.pageLinks{
	gap:15px 30px;
	padding: 35px 0 ;
}
.pageLinks ul{
	gap:15px 20px;
}
.anchorLink li,
.pageLinks li{
	flex: 1;
	height: 50px;
}
.anchorLink a,
.pageLinks li a{
	padding: 8px 10px;
}
.anchorLink + section{
	padding-top: 65px;
}

main .pageLinks:last-of-type{
 margin-top: 50px;
 margin-bottom: 50px;
}
main .pageLinks:last-of-type li{
 height: 70px;
 font-size: 2rem;
 line-height: 1.3;
}

/* =======================================
	top PC
========================================== */

/*		#mv
-----------------------------*/

/*		#topNewsPickup PC
-----------------------------*/
#topNewsPickup {
 position: absolute;
 top:calc((100% - 195px)/2 + 195px);
}
#topNewsPickup dl{
}

/*		#topLead
-----------------------------*/
#topLead .txts{
 width: 64%;
}
#topLead .logos{
 width: 37.2%;
 margin-left: -1.2%;
}

/*		#topSustainability #topHumancapital
-----------------------------*/
#topSustainability,
#topHumancapital{
 align-items: flex-end;
}
#topSustainability .txts,
#topHumancapital .txts{
 width: 53.5%;
 margin-right: -23.5%;
 z-index: 1;
}
#topSustainability .txts p,
#topHumancapital .txts p{
 font-size: 18px;
}
#topSustainability .slider,
#topHumancapital .slider{
 width: 70%;
 max-width: 830px;
 margin-bottom: 45px;
}

/*		#topNews
-----------------------------*/
#topNews{
 padding: 80px 0;
}

/* =======================================
	greeting PC
========================================== */
#greetingMessage{
 padding-bottom: 120px;
}
#greetingMessage .definitionBox{
 margin-top: 95px;
}
#greetingMessage .definitionBox dd{
	font-size: 2.6rem;
}
#greetingMessage .txts .right {
	font-size: 2rem;
	margin-top: 1.5em;
}

#greetingMission .iconList{
	margin-top: 60px;
}
#greetingMission .iconList li span{
	font-size: 5rem;
}
#greetingMission .iconList li h4{
   margin-top: 20px;
   font-size: 2rem;
}

#greetingConduct ul.pcFlex{
	gap: 0 2%;
	margin-top: 65px;
}
#greetingConduct ul li{
	border: 40px solid var(--Lblue);
	width: min(30vw,340px);
	height: min(30vw,340px);
}
#greetingConduct ul li span{
	font-size: 3rem;
}
#greetingConduct ul li span span{
	font-size: 2rem;
}

.greetingGroupImage{
	margin-top:40px;
}
/*.greetingGroupImage dl:nth-of-type(1){
	margin: 0 min(calc((100% - 40vw)/2),calc((100% - 280px)/2)) -1vw;
}*/
.greetingGroupImage dl dt{
font-size: 2.8rem;
}
.greetingGroupImage dl dd{
font-size: 2rem;
padding: 30px 0 0.5em;
}

/* =======================================
	groupoverview
========================================== */
#groupoverviewGroup ul.pcFlex{
	gap: 0 5%;
}
@media screen and (max-width: 1200px) {
#groupoverviewGroup ul li{
 padding-left: 20px;
 padding-right: 20px;
 }
}/*- only-*/
/* =======================================
   sustainability PC
========================================== */
#sustainabilityLead div.bgLblue{
  padding: 42px 46px 30px;
}
#sustainabilityLead .h3Tit{
	margin-bottom: 30px;
}
#sustainabilityLead figure{
 justify-content: space-between;
 align-items: center;
 margin: 20px 0;
 padding: 20px;
}
#sustainabilityLead figure img:nth-of-type(1){
 width: 52.5%;
}
#sustainabilityLead figure img:nth-of-type(2){
 width: 36.1%;
}
#sustainabilityPolicy ul{
 justify-content: space-between;
}
#sustainabilityPolicy ul li{
 width: 31.5%;
}
#sustainabilityPolicy .definitionBox{
	padding: 40px 5%;
}

.initiativeBox .pcFlex{
	align-items: center;
}

.esgTtl{
 gap:0 24px;
 align-items: flex-end;
 margin-bottom: 30px;
}
.esgTtl h4{
 margin: 0;
 font-size: 2.4rem;
 width: 30%;
}
.esgTtl h4 .en{
 display: block;
}
.esgTtl.flexRowReverse h4{
 text-align: right;
}
.sdgsIcons{
 gap:10px 15px;
 }
.initiativeBox .btn{
 display: inline-flex;
 width: auto;
 padding-left: 50px;
 padding-right: 100px;
}

/* =======================================
   environment PC
========================================== */
#environmentLead{
	padding-top: 50px;
	padding-bottom: 50px;
}
#environment .initiativeBox.pcFlex{
	align-items: center;
}
#environment .initiativeBox h4{
	font-size: 2.42rem;
	margin-bottom: 10px;
}
.sdgsHead{
 align-items: center;
 justify-content: center !important;
}
.sdgsHead .subTit h3{
font-size: 4rem;
}
.icon4List {
 justify-content: center;
}
.icon4List li{
 width: 23%;
}
.icon4List li h4{
 font-size: min(1.8vw,20px);
}
.sdgsHead .subTit p{
	font-size: min(2.4vw,20px);
}

#environmentActivities .pcFlex li{
	position: relative;
	padding-bottom: 120px;
}


#environmentActivities .pcFlex li .btnWrap{
	margin-top: 0;
	position: absolute;
	bottom: 0;
	width: 100%
}
@media screen and (max-width: 1080px) {
#environmentActivities .definitionBox .btn{
 font-size:min(1.75vw,20px) ;
 }
}/*- only-*/
/* =======================================
   society
========================================== */
#societyLead{
	padding-top: 50px;
	padding-bottom: 50px;
}
#society .initiativeBox.pcFlex{
	align-items: center;
}
#society .initiativeBox h4{
	font-size: 2.42rem;
	margin-bottom: 10px;
}

/* =======================================
   governance
========================================== */
#governanceLead{
	padding-top: 50px;
	padding-bottom: 50px;
}
#governance .initiativeBox.pcFlex{
	align-items: center;
}
#governance .initiativeBox h4{
	font-size: 2.42rem;
	margin-bottom: 10px;
}
#governanceInitiatives .icon4List li:nth-of-type(1) figure img{
	height: 80px;
}
#governanceInitiatives .icon4List li:nth-of-type(2) figure img,
#governanceInitiatives .icon4List li:nth-of-type(3) figure img,
#governanceInitiatives .icon4List li:nth-of-type(4) figure img{
	height: 95px;
}

/* =======================================
   #humancapital
========================================== */
#humancapitalInitiatives .initiativeBox{
 align-items: center;
}
#humancapitalInitiatives .catch{
 font-size: 2.4rem;
}
#humancapitalFuture .initiativeBox h4,
#humancapitalInitiatives .initiativeBox h4{
	font-size: 2.42rem;
	margin-bottom: 10px;
}

/* =======================================
   education PC
========================================== */
#education main > section .pcFlex.half{
	align-items: center;
}
#educationInitiatives h4{
 font-size: 2.8rem;
 }
 #educationInitiatives ul li h5{
 font-size: 2rem;
 }
#educationInitiatives ul{
 justify-content: center;
 gap: 0 5%;
 margin: 40px auto 0;
}
#educationInitiatives ul li{
 width: 30%;
}

.initiativeBox dl.box{
	margin: 30px auto;
}

/* =======================================
   #workstyles PC
========================================== */
#workstyles main > section .pcFlex.half{
	align-items: center;
}
#workstylesInitiatives ul{
 justify-content: center;
 gap:0 10%;
}
#workstylesInitiatives ul li{
 width: 48%;
 max-width: 400px;
}
#workstylesInitiatives .initiativeBox h4{
	font-size: 2.42rem;
	margin-bottom: 10px;
}

/* =======================================
   numbers PC
========================================== */
#numbersDatas ul{
 flex-flow: row wrap;
 justify-content: space-between;
 gap: 40px 0;
}
#numbersDatas ul li{
 width: 30%;
}
#numbersDatas ul li p img{
	height: 120px;
}
#numbersDatas ul li:nth-child(2) p img,
#numbersDatas ul li:nth-child(6) p img{
	padding: 20px 0;
}
#numbersDatas ul li:nth-child(3) p img{
	padding: 5px 0;
}
#numbersDatas ul li:nth-child(4) p img{
	padding: 10px 0;
}
#numbersDatas ul li:nth-child(5) p img{
	padding: 15px 0;
}

/* =======================================
	news PC
========================================== */
/*		一覧
-----------------------------*/
.newsBox .pcFlex{
 justify-content: space-between;
}
.newsBox figure{
 width: 30%;
}
.newsBox .txts{
 width: 66%;
}

/*	詳細　single
-----------------------------*/
article{
 padding: 100px 0;
}
#newsDetail h3{
	font-size: 2.4rem;
}
.newsDetailCont:has(figure){
 display: flex;
		flex-direction: row-reverse;
	gap: 40px;
}
.newsDetailCont:has(figure) figure{
	width: 400px;
	text-align: center;
}
.newsDetailCont:has(figure) figure img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.newsDetailCont:has(figure) .txts{
	flex: 1;
}
.newsDetailCont p:not(:last-child) {
    margin-bottom: 15px;
}

/* =======================================
	form
========================================== */
#contactForm{
 padding-bottom: 150px;
}
.confirm {
		margin-top: 40px;
}


/* =======================================
	thanks
========================================== */

#thanks{
}

#thanks p{
  font-size: 1.8rem;
}

/* =======================================
	privacypolicy
========================================== */
#privacyPolicy{
	margin-top: 50px;
}
.policyBox{
	padding: 20px 2%;
}
.policyBox .h5Tit{
	margin-top: 40px;
}


