@charset "UTF-8";

/* ---------------------------------------------------------------------------
  ★共通
--------------------------------------------------------------------------- */
:root{
  scroll-padding-top: 113px;
}
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: 48%;
}
.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;
}
section p:not(:last-child){
  margin-bottom: 1.5em;
}

/*タイトル
========================================== */
.h2Tit .en,
.h3Tit .en{
	font-size: min(3.2vw,1.6rem);
}
.h2Tit .ja,
.h3Tit .ja{
	font-size: min(3.5vw,4rem);
}
.h2Tit .lineGr{
	margin-top: 1.25em;
}
.h2Tit .lineGr::after{
	height: 10px;
	top: calc(50% + 0.15em);
}
.h3Tit {
 font-size: min(5.5vw,3rem);
	margin-bottom: 40px;
}
.h4Tit {
	font-size: min(4.8vw,2.4rem);
	margin-bottom: 20px;
}
.h5Tit {  
	font-size: min(4vw,2rem);
	margin-bottom: 20px;
}
.h6Tit{
	font-size: min(3.6vw,1.8rem);
	margin-bottom: 20px;
}

/*
　テキスト
========================================== */
.leadTxt{
  font-size: min(1.6vw, 2.2rem);
}
.note,
.note li{
  font-size: 1.5rem !important;
}
.pcCenter{
	text-align: center;
}
.column3,
.column4{
 display: flex;
 flex-flow: row wrap;
 gap:40px 40px;
}
.column3 >li{
 width: calc((100% - 40px*2)/3);
}
.column4 >li{
 width: calc((100% - 40px*3)/4);
}

/*
　ボタン,リンク
========================================== */
.btnWrap{
 margin-top: 40px;
}
.btn{
	font-size: min(3.2vw, 1.6rem);
	padding: 0 min(30.7%,78px) 19px 0;
	width: min(100%, 254px);
}
.btn2{
	font-size: min(1.7vw, 2rem);
	width: min(100%, 160px);
	height: 48px;
}

/*装飾
========================================== */
.line{
	display: inline;
  background: linear-gradient(transparent 76%, var(--blue) 76%);
}
.lineGr{
	font-size: min(2.1vw,2.4rem);
}

/* =======================================
  ページャー
========================================== */
/*-- 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: 112px;
}
header > div{
 position: relative;
 align-items: flex-start;
 padding: 0;
}
header #logo{
	margin-top: 10px;
}
#top header:not(.fixed) #logo{
	margin-top: 27px;
}
header #logo img{
	width: min(17.86vw,250px);
}
header #logo .logoTxt{
	font-size: 1.6rem;
	padding: 3px 6px;
}

/* =======================================
	gnavi
========================================== */
.gnavi{
	padding-top: 53px;
	padding-bottom: 11px;
	align-items: center;
	right: 0;
}
#gnaviList{
 flex: 1;
 justify-content: flex-end;
 align-items: center;
 gap: 0 min(2.19vw,25px);
}
#gnaviList li {
	font-size: min(1.2vw,1.5rem);
}
#gnaviList li a{
	color: var(--base) !important;
}
#gnaviList > li > a{
 display:flex;
 align-items: center;
 white-space: nowrap;
 min-height: 32px;
	text-shadow: 0px 0px 4px #fff;
}
#gnaviList li a:hover{
 opacity: .7;
}
.gnavi #headInsta{
	font-size: min(1.2vw,1.6rem);
	position: absolute;
	right: 0;
	top: 21px;
  display: flex;
  gap: 0 20px;
}
.gnavi #headInsta a{
	display: flex;
	align-items: center;
	gap:0 6px;
}
#headInsta a:hover{
 opacity: .7;
}
#gnaviList .entry{
	background: var(--wh);
	overflow: hidden;
	width: min(11.43vw,160px);
}

/* =======================================
	main
========================================== */
body:not(#top) main{
 margin-top: 113px;
}

/* =======================================
	footContact
========================================== */
#top #footContact{
 padding: 39px 3.25%;
 top: -207px;
 height: 458px;
}
#footContact a:hover{
	opacity: 1;
}
#footContact li,
#footContact p{
	font-size: 3.2rem;
	width: 50%;
}
#footContact li a{
	padding-top: 195px;
	padding-bottom: 104px;
}
#footContact li.contactBtn01{
	border-right: 1px dashed var(--base);
}
#footContact li.contactBtn01 a::before{
	width: 80px;
	height: 82px;
	top: 86px;
	left: calc(50% - 40px);
}
#footContact li.contactBtn02 a::before,
#footContact p a .btnInner::before{
	width: 88px;
	height: 74px;
	top: 94px;
	left: calc(50% - 44px);
}
#footContact li a::before{
	transition: all 0.3s;
}
#footContact li a:hover::before{
	transform: scale(1.1);
}
/*#footContact li a::after,
#footContact p a .btnInner::after{
	width: 51px;
	height: 51px;
	bottom: 53px;
	left: calc(50% - 25.5px);
}*/
#footContact .en{
	font-size: min(3.2vw,1.6rem);
}

/*-- pgs --*/
#footContact{
	padding: 0;
	height: 200px;
	top: -67px;
}
#footContact p a{
	padding: 39px 8.9% 39px 12.2%;
	width: 100%;
}
#footContact p a .btnInner{
	width: 412px;
}
#footContact p a .btnInner::before{
	top: 0;
	left: 0;
}
#footContact p a .btnInner::after{
	top: calc(50% - 25.5px);
	right: 0;
	bottom: auto;
	left: auto;
}

/* =======================================
	footer
========================================== */
#footBottom a:hover{
	opacity: .7;
}
#footBottom{
	padding-bottom: 20px;
}
.pgs #footBottom{
	margin-top: 130px;
}
#top #footBottom{
	margin-top: -136px;
}
.footerLeft{
	width: 400px;
}
#footerLogo img{
 margin-top: 15px;
 width: 298px;
}
#footerRight{
 width: min(calc(100% - 370px),580px);
}
#footerRight > p{
	text-align: right;
}
#footerRight .footInsta{
 margin: 0 0 23px auto;
 width: 355px;
}
#footerRight .footInsta figure{
	width: 62px;
	height: 62px;
}
#footerRight .footInsta figure img{
	width: 37px;
	height: 37px;
}
.footCatchtxt img{
	margin-top: 62px;
}

footer .copy{
	margin-top: 290px;
 position: relative;
}
footer .copy p{
 position: absolute;
 right: 0;
 bottom: 3px;
}
#pageTop{
	right: min(7.14vw,4vw);
	bottom: 73px;
}

/* =======================================
	linkList / contentsLink
========================================== */
.linkList{
	gap: 18px;
}
.linkList li{
	font-size: min(6.4vw,3.2rem);
	width: calc((100% - 36px) / 3);
	height: 158px;
	text-align: left;
}
.linkList li a{
	padding: 52px min(9vw,90px) 44px min(3.9vw,39px);
}
.linkList li a .en{
	font-size: min(1.35vw,1.6rem);
}
#contentsLink .linkList li{
	font-size: min(4.8vw,2.4rem);
}

/* =======================================
	pgs common
========================================== */
/*-- mainTitle --*/
.mainTitle{
	height: 185px;
	padding-top: 72px;
}
.mainTitle h2 .ja{
	font-size: min(4.8vw,4.8rem);
}
.mainTitle h2 .ja::after{
	width: 4em;
	bottom: 0.25em;
}
.mainTitle p{
	font-size: min(3vw,2rem);
}

/* =======================================
  breadcrumb
========================================== */
#breadcrumb{
	margin-top: -12px;
}
#breadcrumb + section{
	padding-top: 133px;
}

/*-- table --*/
.basicTable > dt,
.basicTable >div>dt{
	border-right: 1px dotted var(--base);
	padding: 15px 2.5%;
	width: 23%;
}
.basicTable > dd,
.basicTable >div>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: min(1.3vw,1.6rem);
}
table.basicTable th,
table.basicTable td{
	padding: 10px 2px; 
}

.basicTable.data tbody th,
.basicTable.data tbody td{
	font-size: min(1.3vw,1.4rem);
}

/*		anchorLink
-----------------------------*/
.anchorLink,
.anchorLink ul{
	padding: 30px 0;
	gap:15px 20px;
}
.anchorLink li{
	width: calc((100% - 20px * 3) / 4);
	height: 70px;
}
.anchorLink a .icArrow{
	width: 30px;
  height: 30px;
	top: calc(50% - 15px);
	right: 10%;
}
.pageLinks{
	padding: 35px 0 ;
	gap:15px 20px;
}
.pageLinks li{
	width: calc((100% - 20px * 3) / 4);
	height: 60px;
}
.anchorLink a,
.pageLinks li a{
	padding: 8px 30px 8px 10px;
}
.pageLinks li a span{
	font-size: 1.4rem;
}

.pageLinkArea{
	margin-bottom: 50px;
}

/*----*/

.bnrLink{
	padding: 20px;
}
.bnrLink .txts p.bold{
	margin-bottom: 20px;
}
.bnrLink .txts p .icArrow{
	padding-right: 30px;
}
.bnrLink .txts p .icArrow::after{
	top: calc(50% - 10px);
}

/*	btnEntry
========================================== */
.btnEntry{
	font-size: 3.2rem;
	height: 150px;
}
.btnEntry a{
	padding: 2.5% 8.9% 2.5% 12.2%;
}
.btnEntry a .btnInner{
	width: 412px;
}
.btnEntry a .btnInner::before{
	width: 88px;
	height: 74px;
	top: 0;
	left: 0;
}
.btnEntry a .btnInner::after{
	top: calc(50% - 25.5px);
	right: 0;
	bottom: auto;
	left: auto;
}
.btnEntry .en{
	font-size: min(3.2vw,1.6rem);
}
.btnEntry .icArrow{
 width: 51px;
 height: 51px;
 right: 0;
}

/* =======================================
	top
========================================== */
#top main section:not(#mv) p{
	font-size: min(1.6vw,2rem);
}

/*		#mv
-----------------------------*/
.mvImg{
	width: 100%;
	height: 100vh;
}
.mvImg img{
  object-position: top;
}
.mvTxts{
 left: max(2vw,calc((100vw - 1300px )/2));
	bottom: 43px;
	width: min(83.07vw,1163px);
 margin-left: -12px;
}
.mvBtn{
	bottom: min(30.7vw,55px);
	width: min(25vw,300px);
}
.mvBtn a{
	background-size: 146px auto;
	padding: 18px min(2vw,29px) 6px;
}
.mvBtn .bgOrange{
	font-size: min(1.2vw,1.3rem);
}
.mvBtn .obliqueLine{
	font-size: min(1.4vw,1.6rem);
}
.mvBtn .obliqueLine::before,
.mvBtn .obliqueLine::after{
	height: 18px;
}
.mvBtn h2{
	font-size: min(2.1vw,2.4rem);
	margin-bottom: 5px;
}
.mvBtn .btn{
	background-size: 17px;
	font-size: min(2.6vw,1.3rem);
	padding-right: 22px;
	width: min(100%, 168px);
}
.mvBtn .btn span:not(.icArrow){
	padding: 0 25px 6px;
}


/*		#topMessage
-----------------------------*/
#topMessage .leadMessage{
	background: url("../images/top_message_img01.png") no-repeat 7.14vw 92px / min(13.64vw,191px) auto,url("../images/top_message_img02.png") no-repeat 77.36vw 120px / min(15.64vw,220px) auto,url("../images/top_message_img03.png") no-repeat 3.43vw 774px / min(15.64vw,220px) auto,url("../images/top_message_img04.png") no-repeat 73.43vw 586px / min(19.4vw,272px) auto;
	padding: 150px 0 247px 0;
	/* width: calc(100% - 136px); */
}
#topMessage .h2Tit .ja{
	font-size: min(4.2vw,4.8rem);
	margin-top: 20px;
}
#topMessage .leadMessage p{
	line-height: 2.5;
	margin: 100px auto 0;
}
#topMessage .leadMessage h2 + p .lineGr{
	padding-inline: 0;
  font-size: min(1.6vw, 2rem);
}
#topMessage .leadMessage p::before{
	width: 9.5px;
	height: 48.3px;
	top: -88px;
	left: calc(50% - 4.75px);
}
#topMessage .leadMessage p::after{
	top: calc(100% + 60px);
}
#topMessage .leadMessage .balloonTxt{
	margin-top: max(-7.5em,-125px);
}
#topMessage .leadMessage .balloon{
	font-size: 1.6rem;
	width: 100px;
	height: 100px;
	top: min(3.1vw,45px);
	left: -75px;
}
#topMessage .leadMessage .bggrdgr2{
	font-size: min(3.43vw,4.8rem);
	margin-right: 15px;
}

.corporatedoctor{
	padding-bottom: 137px;
}
.corporatedoctor::before{
	height: 703px;
	top: -153px;
}
.corporatedoctor .inner1200 > p:first-of-type{
	margin-bottom: 18px;
	transform: translateY(-54px);
}
.corporatedoctor p:not(.btnWrap){
	font-size: 2rem;
	margin-bottom: 72px;
}
.corporatedoctor .lineOr{
	font-size: 3.2rem;
}
.corporatedoctor .obliqueLine{
	font-size: 2.94rem;
}
.corporatedoctor .obliqueLine::before,
.corporatedoctor .obliqueLine::after{
	height: 72px;
}
.corporatedoctor .obliqueLine::before{
	left: -1em;
}
.corporatedoctor .obliqueLine::after{
	right: -1em;
}
.corporatedoctor .obliqueLine span{
	font-size: min(4.48vw,6.27rem);
}
.corporatedoctor ul{
	gap: 0 min(2.14vw,30px);
	justify-content: center;
}
.corporatedoctor ul li{
	width: min(26.7%,320px);
}
.corporatedoctor ul li:nth-child(1){
	margin-top: 65px;
}
.corporatedoctor ul li:nth-child(3){
	margin-top: 41px;
}
.corporatedoctor ul li p{
	font-size: min(1.14vw,1.6rem) !important;
	bottom: 80px;
}
.corporatedoctor ul li:nth-child(1) p{
	bottom: calc(80px - 65px);
}
.corporatedoctor ul li:nth-child(3) p{
	bottom: calc(80px - 41px);
}
.corporatedoctor .btnWrap{
	margin-top: 51px;
}
.corporatedoctor .btn{
	width: min(100%, 318px);
}

/*		#topFuture
-----------------------------*/
#topFuture{
	padding-top: 190px;
  padding-bottom: 140px;
}
#topFuture::before{
	height: 156px;
	top: -78px;
}

#topFuture .futureLead .txts{
	width: min(62.5%,625px);
}
#topFuture .secLeadTxt{
	font-size: min(4vw,2.4rem) !important;
  margin-right: -1em;
	margin-bottom: 2em;
}
#topFuture .futureLead figure{
	margin-top: 20px;
	width: min(59%,590px);
}

#topFuture .futureDetail{
	align-items: center;
	justify-content: space-between;
	padding: 136px 0 132px;
}
#topFuture .futureDetail .txts{
	width: min(51%, 611px);
}
#topFuture .h2Tit{
	margin-bottom: 43px;
}
#topFuture .btnWrap{
	margin-top: 75px;
	width: 100%;
}
#topFuture .btnWrap .btn{
	margin-right: 0;
	margin-left: auto;
}
#topFuture .futureDetail figure{
	width: min(46.9%,562px);
}

/*		#topPeople
-----------------------------*/
#topPeople{
	padding-top: 125px;
}
#topPeople .inner{
	max-width: 1218px !important;
}
#topPeople .h2Tit{
	margin: 0 9px 25px;
}
#topPeople .h2Tit + p{
	margin: 0 9px 25px;
	position: relative;
	z-index: 1;
}
#topPeople ul:not(.txtTag){
	gap: 30px;
	margin-top: -3em;
}
#topPeople ul:not(.txtTag) > li{
	width: calc((100% - 60px) / 3);
}
#topPeople ul:not(.txtTag) > li:nth-child(1){
	margin-top: 107px;
}
#topPeople ul:not(.txtTag) > li:nth-child(2){
	margin-top: 50px;
}
#topPeople ul h3{
	font-size: 2.4rem;
	margin-top: 12px;
	margin-bottom: 14px;
}
#topPeople ul p{
	font-size: 1.6rem !important;
}
#topPeople ul p span{
	margin-right: 1.44em;
}
#topPeople ul.txtTag{
	gap: 8px;
	margin-top: 20px;
}
#topPeople ul.txtTag li{
	padding: 5px 18px;
}

/*		#topTalk
-----------------------------*/
#topTalk{
	padding: 0;
}
#topTalk .pcFlex{
	align-content: stretch;
}
#topTalk figure{
	border-radius: 0 15px 15px 0;
	width: 52.3%;
	height: auto;
}
#topTalk figure img{
	height: 100%;
	object-fit: cover;
}
#topTalk .txts{
	margin-left: -2.3%;
	padding: min(7.8vw,110px) min(7.1vw,100px) min(6.2vw,87px) min(7.3vw,102px);
	width: 50%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
}
#topTalk .h2Tit{
	margin-bottom: 37px;
}
#topTalk p{
	margin-bottom: 0;
}
#topTalk .btnWrap{
	margin-top: 33px;
	width: 100%;
}
#topTalk .btnWrap .btn{
	margin-right: 0;
	margin-left: auto;
}

/*		#topEnvironment
-----------------------------*/
#topEnvironment{
	padding-bottom: 303px;
}

.environmentDetail{
	gap: 0 19px;
	margin-top: 84px;
}
.environmentDetail li{
	padding: 43px 1.6% 29px 3.5%;
	width: min(calc((100% - 57px) / 4),285px);
}
.environmentDetail li:nth-child(1)::after{
	width: 76px;
	height: 75px;
	top: -37px;
	right: 31px;
}
.environmentDetail li:nth-child(2)::after{
width: 82px;
	height: 71px;
	top: -35px;
	right: 28px;
}
.environmentDetail li:nth-child(3)::after{
width: 55px;
	height: 87px;
	top: -43px;
	right: 21px;
}
.environmentDetail li:nth-child(4)::after{
width: 75px;
	height: 75px;
	top: -37px;
	right: 26px;
}
.environmentDetail li h3{
	font-size: min(1.875vw,2.4rem);
	margin-bottom: 15px;
}
.environmentDetail li p.grd{
	font-size: min(7.5vw,9.6rem) !important;
	margin-bottom: 20px;
}
.environmentDetail li p.grd span{
	font-size: 41.67%;
}
.environmentDetail li p:not(.grd){
	font-size: min(1.4vw,1.6rem) !important;
}
.environmentDetail li:nth-child(4){
	padding: 43px 1.6% 29px 2%;
}
.environmentDetail li:nth-child(4) p.grd{
	font-size: min(2.8vw,3.6rem) !important;
}
.environmentDetail li:nth-child(4) p.grd span{
	font-size: 66.67%;
}

#topEnvironment p.btnWrap{
	margin-top: 72px;
}


/* =======================================
  company
========================================== */
#companyLead{
	padding-bottom: 69px;
}
#companyLead > div::before{
	width: 389px;
	height: 380px;
	left: min(-7.28vw,-102px);
}
#companyLead .h3Tit{
	font-size: min(4.8vw,4.8rem);
}
#companyLead .h3Tit span{
	font-size: min(4.4vw,4.4rem);
}
#companyLead .companyHistory .balloon{
	width: 112px;
	height: 112px;
	padding: 25px 5px;
	right: 0;
	top: -58px;
}
#companyLead .companyHistory .balloon span{
	font-size: min(3.6vw,3.6rem);
}
#companyLead .companyHistory ul{
	padding-bottom: 90px;
}
#companyLead .companyHistory ul + ul{
	margin-top: -20px;
}
#companyLead .companyHistory li{
	margin-right: -18px;
	width: min(25.3vw,310px);
  transform: translateY(0px);
}
#companyLead .companyHistory li:nth-child(1){
	transform: translateY(90px);
}
#companyLead .companyHistory li:nth-child(2){
	transform: translateY(60px);
}
#companyLead .companyHistory li:nth-child(3){
	transform: translateY(30px);
}
#companyLead .companyHistory li h4{
	font-size: min(3.8vw,3.8rem);
	margin: 0 9px 6px;
}
#companyLead .companyHistory li p span{
	font-size: min(1.4rem,1.4rem);
}

#companyKeyword{
	padding: 61px 0 80px;
}
#companyKeyword .obliqueLine{
	font-size: 2.94rem;
}
#companyKeyword .obliqueLine::before,
#companyKeyword .obliqueLine::after{
	height: 72px;
}
#companyKeyword .obliqueLine::before{
	left: -1em;
}
#companyKeyword .obliqueLine::after{
	right: -1em;
}
#companyKeyword .obliqueLine span{
	font-size: min(4.48vw,6.27rem);
	margin: 0 13px;
}
#companyKeyword ul li{
	gap: 0 min(4.5%,54px);
	align-items: center;
}
#companyKeyword ul li + li{
	margin-top: 105px;
}
#companyKeyword figure{
	width: min(45.5%,546px);
}
#companyKeyword figure figcaption{
	font-size: min(10vw,100px);
}
#companyKeyword .txts{
	width: min(50%,600px);
}

#companyFuture{
	padding: 140px 0 124px;
}
#companyFuture .titleBox{	
	justify-content: space-between;
}
#companyFuture .titleBox figure{
	margin-top: calc(5px + 0.5em);
	width: min(54vw,678px);
}
#companyFuture .titleBox .txts{
	width: min(32.14vw,450px);
}
#companyFuture .titleBox .h3Tit{
	margin-bottom: 0;
}
#companyFuture .h3Tit .lineGr{
	font-size: min(2.625vw,3rem);
}
#companyFuture .h3Tit .lineGr span{
	font-size: 133.34%;
}
#companyFuture .h3Tit .ja{
	font-size: min(4.375vw,5rem);
}
#companyFuture .futureEnvision{
	gap:0 82px;
  margin-top: -45px;
	padding-top: 34px;
}
#companyFuture .futureEnvision dt{
	font-size: 7rem;
	width: 215px;
}
#companyFuture .futureEnvision dd{
	margin: 68px 0 60px;
	padding: 53px 44px 25px 22px;
	width: calc(100% - 215px - 82px);
}
#companyFuture .futureEnvision dd:nth-of-type(3){
	margin-top: 80px;
}
#companyFuture .futureEnvision dd h4 .ja{
	font-size: 3.2rem;
}
#companyFuture .futureEnvision dd h4 .num{
	font-size: 3.6rem;
	margin: -121px 0 0 -32px;
	width: 100px;
	height: 100px;
}
#companyFuture .futureEnvision dd h4 .num::before,
#companyFuture .futureEnvision dd h4 .balloon:before{
	width: 72px;
 right: 100%;
}
#companyFuture .futureEnvision dd h4 .num::after,
#companyFuture .futureEnvision dd h4 .balloon:after{
	width: 25px;
	height: 25px;
 right:calc(100% + 60px);
	top: calc(50% - 12.5px);
}
#companyFuture .futureEnvision dd h4 .balloon{
	font-size: 1.6rem;
	margin: -133px 0 0 -32px;
}
#companyFuture .futureEnvision dd h4 .balloon:after{
	top: calc(56px - 12.5px);
}
#companyFuture .futureEnvision dd h4 .balloon span{
	font-size: min(3.6vw,3.6rem);
}
#companyFuture .futureEnvision dd h4 .en{
	font-size: 1.6rem;
	margin-top: 21px;
}
#companyFuture .futureEnvision dd ul{
	margin: 20px 0 25px;
}
#companyFuture .futureEnvision dd ul li{
	padding-left: 21px;
}
#companyFuture .futureEnvision dd ul li::before{
	width: 18px;
	height: 18px;
	top: 3px;
}
#companyFuture .futureEnvision dd ul li + li{
	margin-top: 10px;
}
#companyFuture .futureEnvision dd p{
	line-height: 2.375;
}

#companyFuture .futureMessage{
	margin-top: 60px;
}
#companyFuture .futureMessage h4{
	font-size: min(2.4vw,2.4rem);
}
#companyFuture .futureMessage h4 .green{
	font-size: min(3.4vw,3.4rem);
}
#companyFuture .futureMessage h4 .lineGr{
	font-size: min(3.2vw,3.2rem);
}
#companyFuture .futureMessage p{
	font-size: min(2vw,2rem);
}

#companyMessage .pcFlex{
 align-items: center;
}
#companyMessage figure{
	border-radius: 0 15px 15px 0;
  width: 50%;
}
#companyMessage figure img{
	height: 100%;
	object-fit: cover;
}
#companyMessage .txts{
	margin-left: -2.5%;
	padding: 35px 7.1vw 30px 4.6vw;
	width: 52.5%;
}
#companyPerson{
	padding: 122px 0 217px;
}
#companyPerson .titleBox{
	gap: 0 min(1.8vw,179px);
	justify-content: space-between;
}
#companyPerson .titleBox .h3Tit{
	margin-bottom: 0;
}
#companyPerson .leadBox{
	align-items: flex-end;
}
#companyPerson .leadBox p{
	background: url("../images/company_person_balloon.svg") no-repeat left top / 100%;
	font-size: min(1.6vw,1.6rem);
	line-height: 2.375;
	margin: 0 min(-1vw,-4px) 42px 0;
	padding: min(3vw,30px) 1.9% min(3vw,30px) 4.5%;
	width: min(57.4vw,574px);
}
#companyPerson .leadBox figure{
	width: min(16vw,214px);
}
#companyPerson ul{
	padding: 25px min(3.84vw,50px) 52px min(9vw,117px);
}
#companyPerson ul li{
	align-items: center;
	padding-bottom: 40px;
	margin-bottom: 40px;
}
#companyPerson ul li h3{
	font-size: min(4vw,4rem);
	width: min(11.2vw,112px);
	height: min(11.2vw,112px);
	top: 0;
	left: min(-1.7vw,-17px);
}
#companyPerson ul li figure{
	width: min(47vw,533px);
}
#companyPerson ul li:nth-child(1) figure img{
	margin-top: 46px;
	width: min(17.5vw,175px);
}
#companyPerson ul li:nth-child(2) figure img{
	width: min(9.4vw,94px);
}
#companyPerson ul li:nth-child(3) figure img{
	margin-top: 54px;
	width: min(34.2vw,342px);
}
#companyPerson ul li dl{
	width: min(60vw,600px);
}
#companyPerson ul li dl dt{
	font-size: min(3vw,3rem);
	padding: 10px 15px;
}
#companyPerson ul li dl dd{
	padding-top: 20px;
}



/* =======================================
  works PC
========================================== */
.imagesWrap{
 gap:0 20px;
 padding: 30px 0 0;
}
.imagesWrap::before{
 content: "";
 display: block;
 background:var(--green);
 width:calc(((100% - 20px*5)/6)*4 + 20px*4) ;
 height: 2px;
 position: absolute;
 right: calc(((100% - 20px*5)/6)/2);
 top: 0;
}
.imagesWrap li{
 position: relative;
 width: calc((100% - 20px*5)/6);
}
.imagesWrap .iconWrap{
	 top: -15px;
}
.imagesWrap h4{
	padding: 10px;
}
.imagesWrap li + li h4{
 position: relative;
}
.imagesWrap li + li h4::before{
 content: "";
 display: block;
 width: calc(20px + 20px + 2px);
 height: 2px;
 background: var(--green);
 position: absolute;
 right: 100%;
 top: 50%;
}
.imagesWrap figure figcaption{
 font-size: min(1.3vw,16px);
 letter-spacing: -0.05em;
}
.imagesWrap li:nth-of-type(2) figure figcaption{
 letter-spacing: -0.07em;
}
.imagesWrap li p{
	font-size: min(1.1vw,1.6rem);
}
.imagesWrap li:nth-of-type(2)::before{
 content: "";
 display: block;
 background: var(--green);
	width:16px;
	height:12px;
clip-path: polygon(0 0, 50% 100%, 100% 0);
 position: absolute;
 bottom: 100%;
 left: 0;
 right: 0;
 margin: auto;
}
.imagesWrap li:nth-of-type(2)::after,
.imagesWrap li:last-of-type::after{
 content: "";
 display: block;
 width: 2px;
 height: 30px;
 background:var(--green);
 position: absolute;
 bottom: 100%;
 left: 0;
 right: 0;
 margin: auto;
}

.worksAnchor{
 justify-content: space-between;
 gap: 0 5%;
}
.worksAnchor li{
 width: min(30vw,330px);
}
.worksAnchor h4{
	font-size: min(3.5vw,3.8rem);
	aspect-ratio:1/1;
 top: 0;
}
.worksAnchor h4 .sub1{
 margin-bottom: 25px;
 font-size: 50%;
}
.worksAnchor h4 .sub2{
 margin-bottom: 10px;
 font-size: 55%;
}
.worksAnchor a.arrow{
	top: 75%;
}

.deepingBox{
	margin-top: 70px;
}
.deepingBox .deepingBoxInner{
	padding: 40px 3.65%;
}
.deepingBox h4{
 font-size: 34px;
}
.deepingBox h5 .lineGr{
	justify-content: flex-start;
}
.deepingBox .pcFlex .txts h5{
 font-size: 23px;
}
.deepingBox .pcFlex .txts p{
 font-size: 18px;
 line-height: 1.8;
}
.deepingBox .worksList{
 justify-content: space-between;
 padding: 0 0 25px;
 margin-top: 40px;
 margin-bottom: 50px;
}
.deepingBox .worksList li{
 width: 17%;
}
.deepingBox .worksList p{
	font-size: min(0.99vw,1.6rem);
}
.deepingBox .worksList figure{
 width: 90%;
 height: 90%;
}
.deepingBox .timeline li:not(:last-child)::after{
 background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 30 30" fill="none"><path d="M16.25 7.5L23.75 15L16.25 22.5M23.75 15L6.25 15" stroke="%232C8E60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat left top/100% auto;
 width: 40px;
 height: 40px;
 left: calc(100% - 10px);
 top: calc(50% - 20px);
}
.deepingBox .timeline li h6{
	font-size: 2rem;
}

.deepingBox .suited{
 justify-content: space-between;
 margin: 50px 0;
 padding-top: 50px;
}
.deepingBox .suited .checkList li{
	font-size: min(1.85vw,2ren);
}
.deepingBox .suited > div{
 width: 55%;
}
.deepingBox .suited .h5Tit .slash{
	font-size: min(2.1vw,2.4rem);
	justify-content: flex-start;
}
.deepingBox .suited dl{
 width: 40%;
}
.deepingBox .suited dt{
 font-size: 2rem;
}

/* =======================================
  environment PC
========================================== */
#environmentCareer h4,
#environmentBenefit h4{
	font-size: min(3vw,3rem);
  padding: 10px 15px;
}
.careerStep li + li::before{
 content: "";
	display: block;
 background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 30 30" fill="none"><path d="M16.25 7.5L23.75 15L16.25 22.5M23.75 15L6.25 15" stroke="%232C8E60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat left top/100% auto;
 width: 60px;
 height: 60px;
 position: absolute;
 right: 100%;
 top: calc(50% - 30px);
}

.environmentList + h4{
 margin-top: 80px;
}
.environmentList li{
	padding: 20px 2%;
}
.environmentVoice .h3Tit{
	text-align: left;
	width: 20%;
}
.environmentVoice .h3Tit .lineGr{
	font-size: min(2.625vw,3rem);
}
.environmentVoice ul{
 flex-flow: row wrap;
 justify-content: center;
 gap:30px 4%;
 width: 80%;
}
.environmentVoice ul li{
 width: calc((100% - 8%) / 3);
}

#environmentBenefit .others dt{
margin-top: -60px;
 margin-bottom: 30px;
}
#environmentBenefit .others dt span{
	font-size: min(2.6vw,2.6rem);
	padding: 10px 15px;
}
#environmentBenefit .others dd li{
 font-size: 18px;
 line-height: 1.8;
}

.prize{
	margin-block: 50px;
 padding: 40px 20px;
}
.prize ul li{
	width: 50%;
 padding: 20px 50px;
 font-size: 20px;
}
.prize ul li::before{
	width: 50px;
	height: 65px;
	left: 5%;
	top: 0;
}
.prize ul li + li{
	border-left: 1px dashed var(--base);
}
.prize ul li + li::before{
	left: 9%;
}
@media screen and (max-width: 1080px) {
 .prize ul li::before{
  left: 0;
 }
.prize ul li + li::before{
	left: 5%;
}
}/*-SP only-*/
.prize li .btn2{
 margin-top: 10px;
}

/* =======================================
  people PC
========================================== */
#peopleProfile{
justify-content: space-between;
align-items: flex-start;
}
#peopleProfile .txts{
width: 55%;
}
#peopleProfile figure{
width: 40%;
}
.peopleBox{
justify-content: space-between;
}
.peopleBox:nth-of-type(even){
 flex-flow: row-reverse;
}
.peopleBox .txts{
width: 100%;
}
.peopleBox .txts:has(+ figure){
width: 55%;
}
.peopleBox figure{
width: 40%;
margin-inline: auto;
}
.peopleBox .txts + figure{
margin-inline: 0;
}

/* =======================================
  talk PC
========================================== */

.talkBox ol li .txts{
 padding: 20px 0 0;
 /*font-size: 16px;*/
 
}
.talkBox ol li .txts p{
 line-height: 2
}

/* =======================================
  jobdescription PC
========================================== */
#recruitFlow ol::before{
	height:calc(100% - 120px) ;
 top: 50px;
 left: 87px;
}
#recruitFlow ol li{
 display: flex;
 justify-content: space-between;
 align-items: flex-start;
}
#recruitFlow ol li figure{
 width: 180px;
}
#recruitFlow ol figure figcaption{
	 font-size: 5.5rem;
	 right: -.9em;
top: 0;
}
#recruitFlow ol .txts{
	margin-left: -100px;
	margin-top: 50px;
	padding: 20px 40px 20px 60px;
 width: calc(100% - 220px);
}
#recruitFlow ol .txts::before{
	height: 4px;
	width: 155px;
	top: calc(20px + 1.25em - 4px);
	left: -135px;
}
#recruitFlow ol .txts::after{
	width: 18px;
  height: 18px;
  left: 18px;
  top: calc(20px + 1.25em - 11px);
}
#recruitFlow .txts h4{
	 margin-bottom: 15px;
 font-size: 2.4rem;
}
#recruitFlow .txts h4 span{
	margin-left: 0.75em;
}
#recruitFlow .txts p{
 font-size: min(1.82vw,1.8rem);
}

#jobdescription .bnrArea{
	padding-top: 50px;
	padding-bottom: 50px;
}

/* =======================================
  camp PC
========================================== */
#camp #breadcrumb{
	margin-top: 0 !important;
}
.aboutCorporatedoctor h4{
	font-size: min(1.65vw,2.4rem);
	margin-top: 50px;
	margin-bottom: 25px;
}
.aboutCorporatedoctor h4 .lineGr{
	font-size: min(2.2vw,3.2rem);
}
.aboutCorporatedoctor > div.pcFlex{
	align-items: center;
	justify-content: space-between;
	flex-direction: row-reverse;
	gap: 0 3%;
}
.aboutCorporatedoctor ul{
	width: 50%;
	justify-content: space-between;
}
.aboutCorporatedoctor ul li{
	width: calc((100% + 80px) / 3);
}
.aboutCorporatedoctor ul li:not(:first-child){
	margin-left: -2.72vw;
}
.aboutCorporatedoctor figure img{
	margin-bottom: 5px;
}
.aboutCorporatedoctor figcaption{
	margin: -65px auto 0;
	padding: 70px 10px 15px;
}
.aboutCorporatedoctor figcaption span{
	font-size: min(2vw,3rem);
}
.aboutCorporatedoctor .txts{
	width: 47%;
}
.aboutCorporatedoctor .balloonTxt{
	bottom: 6.5em;
	right: 1em;
}
.aboutCorporatedoctor .txts p:not(.balloonTxt){
	font-size: min(1.67vw,2rem);
}
.aboutCorporatedoctor .lineOr{
	font-size: min(2.2vw,3.2rem);
}
.aboutCorporatedoctor .obliqueLine{
	font-size: min(2vw,2.94rem);
}
.aboutCorporatedoctor .obliqueLine::before,
.aboutCorporatedoctor .obliqueLine::after{
	height: 72px;
}
.aboutCorporatedoctor .obliqueLine span{
	font-size: min(3.5vw,5.1rem);
}

#campCando ul{
	gap: 0 4%;
	justify-content: center;
}
#campCando ul li{
	width: min(calc((100% - 12%) / 4),260px);
}
#campCando ul li figure img{
	width: min(26vw,260px);
}
#campCando ul li figcaption{
	font-size: min(2vw,2rem);
	height: 3em;
}
#campCando ul:nth-of-type(1){
	padding-bottom: 30px;
}
#campCando ul:nth-of-type(1)::before{
	width: 50px;
	height: 30px;
	bottom: -30px;
	left: calc(50% - 25px);
}
#campCando ul:nth-of-type(1)::after{
	width: 70px;
	height: 30px;
	left: calc(50% - 35px);
	bottom: -60px;
}
#campCando ul:nth-of-type(1) li:nth-child(4) figcaption::after{
	top:calc(50% + 1em);
}
#campCando h4{
	margin: 100px auto 30px;
}
#campCando h4 .obliqueLine{
	font-size: 3rem;
}
#campCando h4 .obliqueLine::before,
#campCando h4 .obliqueLine::after{
	height: 1.5em;
}
#campCando h4 .obliqueLine::before{
	left: -1em;
}
#campCando h4 .obliqueLine::after{
	right: -1em;
}
.campCandoBalloon{
	margin: 60px auto 0;
}
.campCandoBalloon::before{
	width: 70px;
	height: 30px;
	top: -30px;
	right: calc(50% - 35px);
}
.campCandoBalloon div.pcFlex{
	gap: 0 4%;
	align-items: center;
	justify-content: center;
}
.campCandoBalloon div.pcFlex figure{
	width: min(20vw,200px);
}
.campCandoBalloon div.pcFlex h5{
	font-size: min(2.75vw,2.2rem);
}
.campCandoBalloon p{
	line-height: 2.375;
}


#campExampleBox ol li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 5%;
}
#campExampleBox ol li figure{
	width: 30%;
}
#campExampleBox ol li figcaption{
	font-size: min(2.8vw,2.8rem);
  padding: 5px 15px;
}
#campExampleBox ol li figcaption span{
	font-size: min(1.8vw,1.8rem);
}
#campExampleBox ol li .txts{
	width: 65%;
}
#campExampleBox ol li .txts h4{
	font-size: min(2.1vw,2.4rem);
	margin-bottom: 20px;
}
#campExampleImages {
	margin-top: 70px;
}
#campExampleImages figure{
	width: min(calc(91% / 4),250px);
}

/*	faq
========================================== */
/*-- faqList--*/
.faqList dt,
.faqList dd{
	padding: 2%;
}
.faqList dt span{
	padding-left: 60px;
	padding-right: 30px;
}
.faqList dd span{
	padding-left: 60px;
}
.faqList dt span::before,
.faqList dd span::before{
	width: 50px;
	height: 50px;
	top: -0.4em;
}




/* =======================================
	news PC
========================================== */
/*		一覧
-----------------------------
.newsBox .pcFlex{
 justify-content: space-between;
 align-items: flex-start;
}
.newsBox .imgs{
 width: 30%;
}
.newsBox .txts{
 width: 66%;
}
*/
/*		single
----------------------------
article{
 padding: 100px 0;
}-*/


/* =======================================
	entry PC
========================================== */
/*#contactLead .icTel{
	font-size: 5rem;
}*/
#contactLead{
	 padding: 100px 0;
}
#contactTelfax .telfaxBox > p{
  width: 100%;
}

/* =======================================
	form PC
========================================== */
.formArea .basicTable input[type=text],
.formArea .basicTable input[type=email],
.formArea .basicTable input[type=tel],
.formArea .basicTable select{
	padding: 8px;
	width:100%;
}
.formArea .basicTable textarea{
	padding: 8px;
	width: 100% !important;
}
.formArea .basicTable dt{
	width: 25%;
}
.formArea .basicTable dd{
	width: 75%;
}
/*.formArea #fRecruit[style^="display: block;"]{
 display: flex !important;
}
.formArea #fRecruit dt{
 flex-flow: column;
 align-items: flex-start;
}*/
.confirm {
		margin-top: 40px;
}
.formFoot{
 margin:40px 0 0;
}
