
body{
  line-height: 180%;
  font-size: 15px;
  -webkit-text-size-adjust: 100%;/*文字サイズ自動調整させない*/
}

#header {
  width: 100%;
  z-index: 10;
  position: absolute;
  top: 0;
  left: 0;
}

#logo {
  box-sizing: border-box;
  width: 70px;
  position: absolute;
  left: 5%;
  top: 15px;
  z-index: 2;
}

.logo2{
  width: 70px;
  padding-bottom: 20px;
}

#logo img,
.logo2 img{
  height: auto;
  width: 100%;
  padding: 0;
  display: block;
  vertical-align: bottom;
}

#header.m_fixed {
  /*width: 100%;
  position: fixed;
  z-index: 4;*/
}

#contact{
  background: url(images/bg3.jpg) no-repeat center center;
  background-size: cover;
  position: relative;
  overflow: hidden;
}

.con_img{
  position: absolute;
	left: 20%;
	width: 700px;
	top: 50px;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
	-webkit-transform: rotateX(60deg) rotateZ(35deg);
	transform: rotateX(60deg) rotateZ(35deg);
  opacity: .7;
}

.ft_flex{
}

.ft_txt{
  width: 100%;
  display: block;
  padding-bottom: 20px;
}

.btn_tel{
}

.btn_mail{
  padding-top: 15px;
}

.btn_tel,
.btn_mail{
  width: 100%;
}

.btn_tel a,
.btn_mail a{
  display: block;
  padding: 15px 10px 15px 60px;
}

.btn_tel a h3{
  font-size: 20px;
  line-height: 30px;
  font-family: "Montserrat Alternates", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.btn_tel a h3{
  color: #ffffff;
}

.btn_mail a h3{
  font-size: 20px;
  line-height: 30px;
  color: #ffffff;
  font-style: italic;
}

.btn_tel a p,
.btn_mail a p{
  font-size: 13px;
  line-height: 20px;
  font-weight: 500;
  color: #ffffff;
}

.btn_tel a{
  background: rgba(0,0,0,0.7) url(images/i_tel.png) no-repeat 15px center;
  background-size: 25px;
}

.btn_mail a{
  background: rgba(0,0,0,0.7) url(images/i_mail.png) no-repeat 15px center;
  background-size: 25px;
}


footer{
  background: #191919;
}

.ft_flex2{
  
}

.ft_info{
  color: #ffffff;
}

.ft_sitemap{
  display: none;
}
/*
.ft_sitemap .menu-fnav1-container,
.ft_sitemap .menu-fnav2-container{
  display: table-cell;
  vertical-align: top;
}

.ft_sitemap .menu-fnav1-container{
  padding: 0px 20px 0 0;
}

.ft_sitemap .menu-fnav2-container{
  padding: 0px 0px 0 20px;
}
*/
.ft_sitemap li a{
  padding: 0 0 12px;
  font-size: 18px;
  line-height: 24px;
  display: block;
  font-style: italic;
}

.ft_sitemap li a{
  color: #ffffff;
}

.ft_sitemap li li a{
  padding: 0 0 5px 12px;
  font-size: 13px;
  line-height: 22px;
  position: relative;
  font-style: normal;
}

.ft_sitemap li li a::before{
  content: '・';
  position: absolute;
  left: 0;
  top: 2px;
}

.ft_sitemap li a:hover{
  color: #f4f4f4;
}

.ft_sitemap .sub-menu{
  padding-bottom: 30px;
}

#copyright{
  padding-top: 40px;
  padding-bottom: 40px;
  font-size: 13px;
  line-height: 30px;
  color: #ffffff;
}

#copyright a{
  color: #ffffff;
  display: block;
}

#copyright span{
  display: none;
}

/*メインビジュアル
トップスライダー*/
.description {
	padding-top: 100px;
  padding-left: 5%;
  box-sizing: border-box;
}

.description h2{
  font-size: 28px;
  line-height: 48px;
  font-style: italic;
  font-weight: 700;
  text-shadow: 0px 0px 5px rgba(255,255,255,0.5);
}

.description p{
  font-size: 16px;
  line-height: 28px;
  font-weight: 700;
  font-style: italic;
  padding-bottom: 10px;
  text-shadow: 0px 0px 5px rgba(255,255,255,0.5);
}

.description h2 span,
.description p span{
  color: #0051d7;
  font-weight: 700;
}

.slides {
	height: 450px;
	width: 100%;
}

.subvl{
  padding-top: 100px;
  padding-bottom: 40px;
  background: url(images/bg1.jpg) no-repeat center center;
  background-size: cover;
  position: relative;
}

.subttl{
  width: 90%;
}

.subttl h2{
  font-size: 28px;
  font-style: italic;
  line-height: 40px;
  font-weight: bold;
}

.subttl p{
  font-size: 15px;
  line-height: 28px;
  font-weight: bold;
  font-style: italic;
}

.sub_img{
  position: absolute;
	left: 50%;
	width: 300px;
	top: 70%;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
	-webkit-transform: translateY(-50%) rotateX(60deg) rotateZ(35deg);
	transform: translateY(-50%) rotateX(60deg) rotateZ(35deg);
}

/*お知らせ*/

#topnews{
  background: rgba(0,0,0,0.6);
  padding: 15px 0;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  box-sizing: border-box;
  z-index: 1;
}

.news_flex{

}

.news_ttl{
  display: none;
}

.news_line{
  width: 100%;
  position: relative;
  overflow-x: hidden;
  z-index: 1;
}

.news-swiper,
.news_line .swiper-slide,
.news_line .swiper-wrapper{
  width: 100%;
}

.news_line .swiper-slide a{
  display: block;
  width: 100%;
  padding: 0 30px 0 0;
  box-sizing: border-box;
  background: url(images/ar.png) no-repeat 97% center;
  background-size: 24px;
}

.news_line h3{
  font-size: 16px;
  line-height: 30px;
  color: #ffffff;
}
.news_line .date{
  color: #ffffff;
}

.date{
  font-size: 14px;
  line-height: 22px;
  font-family: "Montserrat Alternates", sans-serif;
  font-weight: 500;
}

#concept{
  background: url(images/bg_ill1.png) no-repeat left center;
  background-size: 100%;
}

.t_flex{
  display: block;
}

.t_img1{
  width: 100%;
  text-align: right;
}

.t_img1 img{
  max-width: 500px;
}

.t_box1{
  padding-top: 0;
  position: relative;
  margin-top: -70px;
  padding-bottom: 50px;
}

.t_inr1{
  width: 90%;
  margin: 0 auto;
}

.news_ttl,
.ttl h3{
  font-size: 24px;
  font-style: italic;
  line-height: 40px;
  font-weight: 700;
}

.ttl{
  margin-bottom: 20px;
}

#toppoint,
#subpoint,
#message{
  background: url(images/bg2.jpg) no-repeat center center;
  background-size: cover;
}

.about_inr,
.point_list li{
  background: rgba(255,255,255,.35);
  padding: 25px 0 35px;
}

.point_list li{
  margin: 15px 0;
}

.p_inr{
  position: relative;
  z-index: 3;
}

.p_inr2{
  position: relative;
  padding-top: 30px;
  z-index: 3;
}

.p_inr2 .p_no{
  position: absolute;
  top: -5px;
  left: 0;
  font-size: 50px;
  line-height: 50px;
  width: auto;
  text-align: left;
}

.p_inr2 .p_no span{
  display: inline-block;
  padding-right: 10px;
  line-height: 30px;
}

.p_img1{
  position: absolute;
  width: 200px;
  top: -30px;
  right: -10px;
  z-index: 2;
}

.p_img2{
  position: absolute;
  width: 150px;
  top: -90px;
  right: 60px;
  z-index: 1;
}

.p_img3{
  position: absolute;
  width: 150px;
  top: 30px;
  right: -20px;
  z-index: 2;
}

.p_img4{
  position: absolute;
  width: 200px;
  top: -60px;
  right: 20px;
  z-index: 1;
}


.a_img1{
  position: absolute;
  width: 200px;
  top: 0px;
  left: 20px;
  z-index: 2;
}

.a_img2{
  position: absolute;
  width: 150px;
  top: 80px;
  left: 150px;
  z-index: 1;
}

.img-3d {
  perspective: 800px;
}

.img-3d img {
  transform: skew(-25deg, 0deg);
  width: 100%;
  max-width: inherit;
}

.p_no,
.p_no span{
  font-family: "Montserrat Alternates", sans-serif;
  font-weight: 600;
  font-style: italic;
  color: rgba(255,255,255,.8);
}

.p_no{
  font-size: 70px;
  line-height: 70px;
  width: 100px;
  text-align: center;
}

.p_no span{
  display: block;
  font-size: 20px;
  line-height: 20px;
}

.p_txt{
  padding-top: 15px;
}

.p_txt h3 span{
  color: #0051d7;
  font-weight: 700;
}

#works .ttl,
.tl_inline{
  border-bottom: 1px solid #000;
  padding-bottom: 10px;
}

#works .ttl h3,
#message .ttl h3,
.tl_inline h3{

}

#works .ttl p,
#message .ttl p,
.tl_inline p{
  font-size: 13px;
  line-height: 24px;
  font-weight: bold;
  font-style: italic;
}

#works{
  padding-top: 40px;
}

.work_list{
  padding-bottom: 20px;
  width: 100%;
  margin: 0 auto 20px;
}

.work_list ul.multiple-items{
  padding: 0;
  margin: 0;
}

.work_list ul.multiple-items li{
  list-style: none;
  padding: 10px;
  box-sizing: border-box;
  height: auto;
}

.work_list li{
  position: relative;
}

.slick-dots li button:before {
  font-size: 18px;
}

.slick-dots {
  bottom: -30px;
}

.work_list2 ul {
  
}

.work_list2 li {
  max-width: 320px;
  box-sizing: border-box;
  margin:0 auto 40px;
}


.work_inr{
  position: relative;
  height: 250px;
}

.work_inr img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.work_txt{
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
  width: 100%;
}

.work_txt a{
  display: block;
  background: rgba(0,0,0,0.7) url(images/ar.png) no-repeat 96% center;
  background-size: 24px;
  padding: 10px 40px 10px 10px;
}

.work_txt a:hover{
  background: rgba(0,0,0,1) url(images/ar.png) no-repeat 96% center;
  background-size: 24px;
}

.work_txt h3{
  font-size: 17px;
  line-height: 30px;
}

.work_txt h3,
.work_txt .date{
  color: #ffffff;
}

/*パンくず*/

.pankuzu_list{
  padding: 10px 0;
}

.pankuzu_list li{
	display: inline-block;
	vertical-align: middle;
	font-size: 14px;
	line-height: 24px;
	color: #000;
}

.pankuzu_list li::after{
	content: '>';
	display: inline-block;
	vertical-align: middle;
	font-size: 12px;
	line-height: 24px;
	padding: 0 5px;
	color: #000;
}

.pankuzu_list li a{
	color: #0051d7;
  display: inline-block;
	vertical-align: middle;
}

.pankuzu_list li:last-child::after{
	display: none;
}

.mainclm{
}

.sideclm{
  padding-top: 40px;
}

.mainclm .news_post{
  margin-top: 5px;
}

.news_post li{
  border-top: 1px solid #dddddd;
}

.news_post li a{
  display: block;
  padding: 15px 30px 15px 10px;
  background: url(images/ar2.png) no-repeat right center;
  background-size: 24px;
}

.news_post li:first-child{
  border-top: none;
}

.news_post li:first-child a{
  /*padding-top: 0;*/
}

.archive li a{
  display: block;
  position: relative;
  padding: 15px 0px 0 20px;
  line-height: 30px;
}

.archive li a::before{
  content: '・';
  position: absolute;
  left: 0;
  top: 15px;
  line-height: 30px;
}

.archive li:last-child a{
}

.archive label{
  display: none;
}

.archive select{
  max-width: 300px;
}

.widget{
  padding-bottom: 30px;
}

.widget li{
}

.widget li:first-child{
  padding-top: 0;
  border-top: none;
}

.widget_title{
  font-size: 24px;
  font-weight: bold;
  line-height: 40px;
  font-style: italic;
  padding-bottom: 5px;
}

.widget select{
  
}

.postbtn{
  border-top: 1px solid #333333;
  padding: 30px 0 0px;
}

.leftbtn,
.rightbtn{
  font-size: 20px;
  font-weight: 500;
  display: inline-block;
  font-style: italic;
  color: #000;
}

.leftbtn{
  float: left;
}

.rightbtn{
  float: right;
}

.single_box{
  padding: 20px 0 30px;
}

/*タイトル*/

.lh_{
  line-height: 36px;
}

.txt_s{
  font-size: 13px;
  line-height: 20px;
}

.txt_ns{
  font-size: 15px;
  line-height: 26px;
}

.txt_n{
  font-size: 17px;
  line-height: 30px;
  font-weight: 700;
}

.txt_m{
  font-size: 19px;
  line-height: 32px;
  font-weight: 700;
}

.txt_l{
  font-size: 22px;
  line-height: 38px;
  font-weight: 700;
}

.txt_l2{
  font-size: 25px;
  line-height: 42px;
  font-weight: 700;
}

.txt_b{
  font-size: 28px;
  line-height: 45px;
  font-weight: 700;
}

.txt_c{
  text-align: center;
}

.txt_r{
  text-align: right;
}

.mgat{
  margin: 0 auto;
}

.wid_1{
  width: 100%;
}

.wid_2{
  width: 330px;
}


/*トップ*/

#toppoint .btn1{
  width: 90%;
  position: absolute;
  right: 5%;
  bottom: -50px;
}

.btn1 a{
  display: block;
  background: rgba(0,0,0,0.7);
  position: relative;
  width: 100%;
  color: #ffffff;
  padding: 10px 40px 10px 15px;
  font-size: 20px;
  line-height: 30px;
  font-style: italic;
}

.btn1 a:hover{
  background: rgba(0,0,0,1);
}


.btn1 a span{
  display: block;
  font-size: 13px;
  line-height: 25px;
}

.btn1 a::after{
  content: '';
  background: url(images/ar.png) no-repeat center center;
  background-size: 24px;
  position: absolute;
  width: 30px;
  height: 30px;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}

/*サブページ*/

.service_bg1{
  background: url(images/bg_ill2.png) no-repeat 20px 100px;
  background-size: 90%;
}

.service_bg2{
  background: url(images/bg_ill2.png) no-repeat 20px 20px;
  background-size: 90%;
}

.tag_txt{
  background: #0051d7;
  padding: 5px 15px;
  display: inline-block;
  color: #ffffff;
  font-weight: bold;
}

.check_list{
  display: inline-block;
}

.check_list li{
  background: url(images/i_ck.png) no-repeat left 12px;
  background-size: 20px;
  font-size: 16px;
  font-weight: 700;
  line-height: 30px;
  padding: 5px 0px 8px 30px;
  text-align: left;
}

.check_list li span{
  font-weight: 700;
  color: #0051d7;
}

.service_list ul{
  
}

.service_list li {
  width: 100%;
  height: 180px;
  position: relative;
  margin: 20px 0 70px;
}

.btn2{
  position: absolute;
  right: 15px;
  bottom: -30px;
  width: 90%;
  z-index: 2;
}

.btn2 a{
  display: block;
  background: rgba(0,0,0,0.7) url(images/ar.png) no-repeat 96% center;
  background-size: 24px;
  font-size: 16px;
  font-weight: 700;
  line-height: 30px;
  color: #ffffff;
  padding: 15px 40px 15px 10px;
}

.btn_inline{
  text-align: center;
}

.tab-menu{
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}

.btn_inline li{
  width: 100%;
  box-sizing: border-box;
  padding: 0 5px;
  text-align: left;
}

.btn_inline li a{
  display: block;
  background: rgba(0,0,0,0.7) url(images/ar3.png) no-repeat 96% center;
  background-size: 24px;
  font-size: 16px;
  font-weight: 500;
  color: #ffffff;
  padding: 15px 40px 15px 15px;
  margin-bottom: 10px;
}

.tab-item{
  display: block;
  background: rgba(0,0,0,0.7) url(images/ar3.png) no-repeat center 90%;
  background-size: 24px;
  font-size: 15px;
  font-weight: 500;
  line-height: 24px;
  color: #ffffff;
  padding: 10px 15px 40px 15px;
  margin-right: 10px;
  width: 48%;
  box-sizing: border-box;
  cursor: pointer;
  text-align: center;
}


/* アクティブなタブ */
.tab-item.active2 {
  background: rgba(0,0,0,0.2) url(images/ar3.png) no-repeat center 90%;
  background-size: 24px;
}


.faq_list dl{
}

.faq_list dt{
  padding: 20px 0 10px 40px;
  position: relative;
  font-size: 18px;
  line-height: 34px;
  color: #000000;
  font-weight: 700;
  cursor: pointer;
}

.faq_list dt::before{
  content: 'Q';
  position: absolute;
  font-family: "Montserrat Alternates", sans-serif;
  font-weight: 500;
  font-style: italic;
  color: #000000;
  font-size: 28px;
  left: 5px;
  top: 20px;
}

.faq_list dd{
  padding: 0px 0 20px 40px;
  position: relative;

}

.faq_list dd::before{
  content: 'A';
  position: absolute;
  font-family: "Montserrat Alternates", sans-serif;
  font-weight: 500;
  font-style: italic;
  color: #0051d7;
  font-size: 28px;
  left: 5px;
  top: 0px;
}

.tb_list dl{
  background: #f3f3f3;
  border-bottom: 1px solid #dddddd;
  border-left: 1px solid #dddddd;
  border-right: 1px solid #dddddd;
}

.tb_list dt,
.tb_list dd{
  border-top: 1px solid #dddddd;
  padding: 15px 15px;
  box-sizing: border-box;
}

.tb_list dt{
  background: #f3f3f3;
  width: 110px;
  float: left;
  clear: left;
}

.tb_list dd{
  background: #ffffff;
  margin-left: 110px;
  border-left: 1px solid #dddddd;
}

.about_bg1{
  background: url(images/bg_ill3.png) no-repeat right center;
  background-size: 90%;
}

.about_fl1 {
}

.about_img1{
  position: relative;
  height: 220px;
}

.about_txt1{
  font-weight: 500;
}

.message_fl{
}

.message_img{
  width: 300px;
  margin: 0 auto 20px;
}

.message_txt{
  
}

.office_list li{
  padding-top: 10px;
  margin-bottom: 40px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.office_list li:last-child{
  margin-bottom: 0px;
}

.of_img{
  width: 180px;
  padding-right: 30px;
}

.of_txt{
  flex: 1;
}

.of_txt .tel,
.ct_txt .tel{
  font-size: 24px;
  font-family: "Montserrat Alternates", sans-serif;
  font-weight: 700;
  font-style: italic;
  padding-top: 20px;
}

.map{
  display: block;
  padding-top: 10px;
}

.map a{
  display: block;
  width: 85px;
  text-align: center;
  color: #ffffff;
  background: #000000;
  font-weight: 700;
}

.con_form dl{
  padding-top: 30px;
}

.con_form dt{
  font-weight: bold;
  padding-bottom: 5px;
}

.con_form dd{
  padding-bottom: 30px;
  position: relative;
}

.hissu{
	font-size: 13px;
  line-height: 24px;
  display: inline-block;
  padding-left: 10px;
	color: #0051d7;
	font-weight: 500;
}

/* コンテンツ部分 */


.tab-contents .tab-content {
  display: none;
  margin-top: 20px;
}
.tab-contents .tab-content.active2 {
  display: block;
}

.table{
  padding: 5px 20px 20px;
  width: 100%;
  overflow-x: scroll;
  box-sizing: border-box;
}

.table table{
  width: 850px;
  border-bottom: 1px solid #dddddd;
  border-right: 1px solid #dddddd;
}

.table td{
  padding: 5px 10px;
  font-size: 14px;
  line-height: 26px;
  border-top: 1px solid #dddddd;
  border-left: 1px solid #dddddd;
}

/********************************************
 * 共通要素
 ********************************************/

.line1{
  border-top: 1px solid #dddddd;
}

.line2{
  border-top: 1px solid #dddddd;
  border-bottom: 1px solid #dddddd;
}

.tb_non,
.sp_none{
	display:none;
}

.pdl_no{
  padding-bottom: 0;
}

@media screen and (max-width: 500px) {

.office_list li{
  display: block;
}

.of_img{
  width: 300px;
  margin: 0 auto;
  padding-right: 0px;
}

.of_txt{
  padding-top: 30px;
}

  
  
}
