@charset "UTF-8";

/* ---------------------------------------------------------------------------
  ★共通
--------------------------------------------------------------------------- */
:root{
  scroll-padding-top: 130px;
}
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{
 font-size: 3.6rem;
}
.h2TitEn{
	font-size: 3.6rem;
	margin-top: -0.75em;
}
.h2TitEn .en{
	font-size: 1.8rem;
	padding-left: 25px;
}
.h2TitEn .en::before{
	width: 16px;
	height: 17px;
	top: calc(50% - 10px);
}
.h2TitEn.white .en::before{
	width: 14px;
	height: 14px;
	top: calc(50% - 7px);
}

.h3Tit {
  font-size: 2.8rem;
	margin-bottom: 55px;
}
.h3Tit::after{
	width: 1em;
	height: 4px;
	border-radius: 2px;
	left: calc(50% - 0.5em);
	bottom: -0.5em;
}
.h4Tit {
	font-size: 2.2rem;
	margin-bottom: 20px;
}
.h5Tit {  
	font-size: 2rem;
	margin-bottom: 20px;
}
.h6Tit{
	font-size: 1.8em;
	margin-bottom: 20px;
}

/*
　テキスト
========================================== */
.leadTxt{
  font-size: min(1.85vw,1.8rem);
	line-height: 2;
  text-align: center;
}
.note{
  font-size: 1.2rem;
}
.cat{
	font-size: 1.5rem;
	padding: 2px 13px 3px;
}

/*
　ボタン,リンク
========================================== */
.btn{
	border-radius: 25px;
	font-size: 1.8rem;
  width: 191px;
	height: 50px;
}

/* =======================================
  ページャー
========================================== */
/*-- 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
========================================== */
#top header:not(.fixed){
 background: transparent;
}
header{
	left: 0;
	width: 100%;
	height: 130px;
	padding-top: 15px;
}
header > .flex{
 position: relative;
 margin: 0 auto;
 
 align-items: flex-start;
}
header #logo{
 position: relative;
}
header #logo img{
 max-width: 161px;
}

.headerLinks{
	gap: 0 13px;
	margin: 0 0 0 auto;
	display: flex;
  place-content: center;
  align-items: center;
  position: absolute;
  right: calc((100vw - min(95.5vw,1200px)) / 2);
	left: auto;
  top: 15px;
}
.headerTel{
	text-align: right;
}
.headerTel a{
	font-size: 3.2rem;
}
.headerTel .time{
	font-size: 1.5rem;
}
.headerBtn a{
	width: 11vw;
	max-width: 191px;
	font-size: min(1.15vw,1.6rem);
}

/*-- hover --*/
.headerLinks .headerBtn a:hover,
.headerLinks .headerInsta a:hover{
 opacity: .7;
}

/* =======================================
	gnavi
========================================== */
.gnavi{
	max-width: 1148px;
  margin: auto;
}
#gnaviList.pcFlex{
	justify-content: space-between;
	padding: 20px min(1.4vw,20px) 25px;
	position: relative;
}
#gnaviList > li{
	font-size: min(1.2vw,1.6rem);
	position: relative;
}
#gnaviList > li > a{
 display:flex;
 align-items: center;
 justify-content: center;
 height: 23px;
 color: var(--base);
 font-size: min(1.6vw,1.6rem);
 font-weight: 500;
 padding: 0 min(1.2vw,20px);
 white-space: nowrap;
}
#gnaviList .hasSub > a{
	padding-right: min(2.4vw,32px);
 position: relative;
}
#gnaviList .hasSub > span{
 display: flex;
 align-items: center;
 justify-content: center;
 height: 23px;
 padding: 0 min(1.2vw,20px);
 font-size: min(1.6vw,1.6rem);
 font-weight: 500;
 white-space: nowrap;
 
}
#gnaviList .hasSub > a::after{
	content: "";
	background: url("../images/arrow_gnavi.svg") no-repeat left top / cover;
	display: inline-block;
	width: 10px;
	height: 6px;
	position: absolute;
	top: calc(50% - 2px);
	right: min(1vw,19px);
}
#gnaviList .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;
	min-width:100px;
}
#gnaviList .sub li{
	font-size: min(1.6vw,1.6rem);
}
#gnaviList .sub li a{
	display: block;
	background: var(--green);
	padding: 10px 20px 12px;
	color: var(--wh);
	font-weight: 500;
	text-align: center;
	white-space: nowrap;
}
#gnaviList .sub li + li{
 border-top: 1px #fff solid;
}

/*-- hover --*/
#gnaviList li a:hover{
 opacity: .7;
}

/* =======================================
	main
========================================== */

/* =======================================
	footContact
========================================== */
#footContact{
	padding: 83px 0 90px;
}
#footContact h2 + p{
	font-size: 2rem;
}
#footContact ul{
	gap: 0 24px;
	margin-top: 54px;
}
#footContact ul li h3{
	font-size: 1.6rem;
}
#footContact ul li.tel a{
	font-size: 4rem;
	padding-left: 34px;
}
#footContact ul li.tel a::before {
	width: 29px;
	height: 29px;
}
#footContact ul li .time{
	font-size: 1.4rem;
}
.footBtn{
	width: 377px;
	height: 109px;
}
.footBtn p{
	font-size: 2.2rem;
}

/* =======================================
	footer
========================================== */
footer a:hover{
	opacity: .7;
}
.footerLogo{
	max-width: 161px;
}
.footerBox{
	padding: 89px 0 84px;
}
.footerBox .footerLeft{
	width: min(25%, 300px);
}
.footerBox .footerLeft .footerLogo,
.footerBox .footerLeft .address{
	margin-bottom: 27px;
}
.copyright{
 font-size: 1.5rem;
 margin-top: 77px;
}
.footerBox .footerRight{
	position: relative;
	justify-content: space-between;
	align-items: flex-start;
	flex-flow: row wrap;
	gap: 0 42px;
	margin-top: 3px;
}
.footerNavi > li{
 margin-bottom: 10px;
}
#pageTop{
	width: 79px;
	height: 79px;
	right: max(7.14vw,100px);
	bottom: 84px !important;
}

/* =======================================
  ボタンナビ
========================================== */
.btnNavi{
	top: 204px;
}
.btnNavi li{
	width: 100px;
	height: 100px;
}
.btnNavi a{
	font-size: 1.5rem;
	padding: 23px 5px 10px;	
}
.btnNavi .btn02 a{
	padding-top: 30px;	
}
.btnNavi .btn03 a{
	padding-top: 27px;	
}
.btnNavi img{
	margin: 0 auto 6px;
}
.btnNavi .btn01 img,
.btnNavi .btn03 img{
	width: 39px;
}
.btnNavi .btn02 img{
	margin: 0 auto 12px;
	width: 33px;
}
.btnNavi a:hover{
	opacity: 0.7;
}

/* =======================================
	pgs common
========================================== */
.pgs main{
	margin-top: 130px;
}

/*-- mainTitle --*/
.mainTitle{
	height: 230px;
}
.mainTitle h2{
	font-size: 3.6rem;
}

/*-- table --*/
.basicTable >dt{
	border-right: 1px dotted var(--blue);
	padding: 10px 2.5%;
	width: 23%;
}
.basicTable >dd{
	padding: 10px 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;
}

/*		anchorLink
-----------------------------*/
.anchorLink ul{
	padding: 35px 0;
	gap:15px 20px;
}
.pageLinks{
	padding: 35px 0 ;
}
.pageLinks ul{
	gap:15px 20px;
}
.anchorLink li,
.pageLinks li{
	flex: 1;
	height: 56px;
}
.anchorLink a,
.pageLinks li a{
	padding: 8px 10px;
}
.anchorLink + section{
	padding-top: 65px;
}

/* =======================================
	top
========================================== */
/*		#mv
-----------------------------*/
#mv{
	height: 650px;
}
#mv .mvTxt img{
	width: 100%;
  max-width: 376px;
}
#mv .mvTxt{
	position: absolute;
	top: 266px;
	left: calc((100% - min(100%,1200px)) / 2);
	right: calc((100% - min(100%,1200px)) / 2);
}

/*-- .topTopics --*/
.topTopics{
	border-radius: 7px;
	padding: 28px 63px;
	bottom: 13px;
	left: calc((100% - min(100%,1000px)) / 2);
	right: calc((100% - min(100%,1000px)) / 2);
}
.topTopics dt{
	font-size: 1.6rem;
	padding-right: 15px;
}
.topTopics dd{
	border-left: 1px solid var(--base);
	font-size: 1.6rem;
	padding-left: 15px;
}
.topTopics dd .cat{
	margin: 0 25px 0 33px;
}
.topTopics dd a::after{
	width: 20px;
	height: 20px;
}

/*		#topAbout
-----------------------------*/
#topAbout{
	background-position: left -162px top -130px;
	background-size: auto 886px;
}
#topAbout .flex{
	gap: 0 50px;
}
#topAbout figure{
	width: min(39.5%,474px);
}
#topAbout .txts{
	margin-top: -30px;
	width: min(57.5%,690px);
}
#topAbout .txts p{
	font-size: min(1.8vw,2rem);
	line-height: 2.15;
	max-width: 647px;
}
#topAbout .h2TitEn{
	font-size: min(2.95vw,4rem);
	margin-bottom: 51px;
}
#topAbout .h2TitEn .en{
	margin-bottom: 42px;
}

/*		#topServices
-----------------------------*/
#topServices {
	margin-top: -20px;
}
#topServices .h2TitEn{
	margin-bottom: 84px;
}
#topServices ol li{
	gap: 0 min(11%,132px);
}
#topServices ol li:not(:last-child){
	margin-bottom: 79px;
}
#topServices ol li .txts{
	width: 58.7%;
	max-width: 704px;
}
#topServices ol li h3{
	margin-bottom: 14px;
	padding-bottom: 5px;
	font-size: min(2.75vw,3.2rem);
}
#topServices ol li h3 a{
	padding-right: 51px;
}
#topServices ol li .subTitle{
	font-size: 2.4rem;
	margin-bottom: 12px;
}
#topServices ol li .num{
	border-radius: 20px;
	font-size: 2rem;
	width: 39px;
	height: 39px;
	margin-right: 15px;
}
#topServices ol li a::after{
	width: 51px;
	height: 51px;
	top: calc(50% - 25.5px);
}

/*		#topAchievements
-----------------------------*/
#topAchievements {
	padding-top: 60px;
	padding-bottom: 72px;
}
#topAchievements .h2TitEn{
	margin-bottom: 70px;
}

#topAchievements ul{
	margin: 0 min(6.875%,82.5px);
}
#topAchievements ul li{}
#topAchievements ul li .cat{
	padding: 2px 13px 3px;
}
#topAchievements ul li p{
	font-size: 2.4rem;
	padding: 10px 35px 26px;
}
#topAchievements .btn{
	margin-top: 62px;
}

/*		#topStaff
-----------------------------*/
#topStaff{
	background-position: left -66px top -104px;
	background-size: auto 460px;
}
#topStaff .pcFlex{
	gap: 0 56px;
}
#topStaff .txts{
	max-width: 465px;
}
#topStaff .txts .h2TitEn{
	margin-bottom: 57px;
}
#topStaff .txts p{
	font-size: 2.4rem;
}
#topStaff figure{
	max-width: 515px;
}

/*		#topLink
-----------------------------*/
#topLink li{
	padding: 196px min(7.55%,105px) 186px;
}
#topLink li .h2TitEn{
	margin-bottom: 50px;
}
#topLink li .h2TitEn .en::before{
	width: 16px;
  height: 17px;
  top: calc(50% - 10px);
}
#topLink li .btn{
	margin-top: 30px;
}

/*		#topNews
-----------------------------*/
#topNews ul li{
	padding: 35px 0 30px;
}
#topNews ul li dt{
	padding-bottom: 5px;
}
#topNews ul li dt .cat{
	margin-left: 28px;
}
#topNews ul li dd{
	font-size: 2rem;
}
#topNews .btn{
	margin-top: 48px;
}


/* =======================================
	company
========================================== */
#serviceArea ul{
	gap: 30px;
}
#serviceArea ul li{
	border-radius: 100px;
	font-size: 2.4rem;
	padding: 20px;
	width: 200px;
	height: 200px;
}

#companyAccess .map iframe{
	height: 400px;
}

/* =======================================
	efforts
========================================== */
#efforts section .flexWrap p{
	font-size: 1.8rem;
}
#effortsBest .flexWrap{
	flex-direction: row-reverse;
}

/* =======================================
	management
========================================== */
#managementStrength .h3Tit{
	margin-bottom: 70px;
}
.serviceBox li{
	justify-content: space-between;
	gap: 0 5%;
	padding: 4.15%;
}
.serviceBox li:not(:last-child){
	margin-bottom: 30px;
}
.serviceBox li figure{
	width: 35%;
}
.serviceBox li .txts{
	padding-top: 10px;
	width: 60%;
}
.serviceBox li h4{
	font-size: min(2.75vw,2.6rem);
}

.strengthBox li{
	align-items: center;
	gap: 5%;
	margin-bottom: 70px;
}
.strengthBox li:nth-of-type(2n){
	flex-direction: row-reverse;
}
.strengthBox li figure{
	width: 49%;
}
.strengthBox li .txts{
	width: 46%;
}
.strengthBox li h4{
	font-size: min(2.75vw,3.2rem);
	margin-bottom: 30px;
  padding-bottom: 10px;
}

.caseBox{
	gap: 20px 5%;
  margin-bottom: 20px
}
.caseBox > div{
	padding: 10px;
	width: 47.5%;
}
.caseBox .cat{
	margin-bottom: 5px;
}
.caseBox h4{
	font-size: 1.8rem;
}
.caseBox ul{
	gap: 0 40px;
	margin-top: 10px;
}
.caseBox ul li{
	width: calc((100% - 40px) / 2);
}
.caseBox ul li:nth-child(1)::after{
	width: 14px;
	height: 16px;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	top: calc(50% - 8px);
	right: -27px;
}
.caseBox + .btnWrap{
	margin-top: 30px;
}

.flowBox li{
	display: flex;
	align-items: stretch;
	margin-top: 70px;
}
.flowBox li:not(:last-child)::after{
	width: 24px;
	height: 20px;
	bottom: -45px;
	left: calc(50% - 12px);
}
.flowBox li h4{
	font-size: min(2vw,2.2rem);
	padding: 4px;
	width: 30%;
}
.flowBox li h4 span{
	flex-direction: column;
	justify-content: center;
	font-size: min(2vw,1.8rem);
	width: 85px;
	margin-right: 15px;
	padding: 10px 0 15px;
}
.flowBox li h4 em{
	font-size: 4rem;
}
.flowBox li p{
	padding: 0.5em 1.5em;
	width: 70%;
}


.faqBox{
	padding: 4.15% 8.3%;
}
.faqBox dt::before,
.faqBox dd::before{
	width: 39px;
	height: 39px;
	border-radius: 20px;
	font-size: 1.8rem;
}
.faqBox dt{
	padding: 10px 0 12px 50px;
}
.faqBox dd{
	padding: 15px 0 10px 50px;
}
.faqBox dd:not(:last-of-type){
	padding-bottom: 2em;
}
.faqBox dt::before{
	top: 0.3em;
}
.faqBox dd::before{
	top: 0.6em;
}



/* =======================================
#case
========================================== */
#caseMain .pcFlex.inner1200{
 gap:50px 0px;
 justify-content: space-between;
 flex-flow: row wrap;
}
#caseMain .pcFlex article{
 width: 45%;
}


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

/* =======================================
	contact
========================================== */
#contactLead{
	padding-bottom: 70px;
}
#contactLead .icTel{
	font-size: 5rem;
}

/* =======================================
	form
========================================== */
.tb_cont th{

	padding: 15px 2.5%;
	width: 25%;
}
.tb_cont td{
	border-left: 1px solid var(--base);
	padding: 15px 2.5%;
	width: 75%;
}
.tb_cont td input:not([type=checkbox]):not([type=radio]){
	padding: 8px;
	width: 80%;
}
.tb_cont td textarea{
	padding: 8px;
	width: 80%;
	height: 100px;
}
.tb_cont .hissu{
	padding: 3px 3%;
}
.tb_cont .zip{
	margin-right: 10px;
	width: 20% !important;
}
.tb_cont .zipBtn{
	font-size: 1.4rem;
	padding: 10px 14px;
}
.tb_cont .w50{
	width: 58% !important;
}
.tb_cont .fileBtn li{
	width: 33%;
}
.confirm {
  margin-top: 40px;
}
.tb_cont td input.radiobtn{
    width: auto;
}

/* =======================================
	privacypolicy
========================================== */


/* =======================================
staff
========================================== */

.staffList.flex li{
    width: 75%;
}
.staffList.flex li h4{
    padding: 15px 0 1em;
    font-size: 2rem;
}

/* =======================================
recruit
========================================== */
#recruitRecruitment dt{
border-right: 1px dotted var(--blue);
  padding: 10px 2.5%;
  width: 23%;
}

#recruitRecruitment dd {
  padding: 10px 2.5%;
  width: 77%;
}