*{
  margin:0;
  padding:0;
  box-sizing: border-box;
}
body{
  width:100%;
  height:100%;
  font-family:"游ゴシック Medium",YuGothic,YuGothicM,"Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro",メイリオ,Meiryo,sans-serif;
  font-size: 14px;
  letter-spacing: 1px;
}
h2 , h3 , h4 , #housing-main .item-number{
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
img{
  width:100%;
}
a{
  color:#000;
  text-decoration: none;
}
ul{
  list-style: none;
}
a{
  text-decoration: none;
}
h2{
  font-size:30px;
  letter-spacing: 4px;
  font-weight:normal;
}
h4{
  font-size:20px;
  font-weight:normal;
  line-height: 33px;
  letter-spacing: 1.5px;
}
.main_inner{
	width:90%;
	margin:0 auto;
  max-width:1280px;
}
section{
  margin-top:150px;
}
.grecaptcha-badge{
  visibility:hidden;
}


/*----- ローダー ------*/

#logo_loader{
  display:none;
}
#logo_loader {
  display:block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background-color: #fff;
}

#logo_loader .f_logo {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 200px;
  height: 90px;
  text-align: center;
}
#logo_loader .f_logo img {
  width: 100%;
  height: auto;
}

#logo_loader .f_logo:before {
  content: "";
  display: block;
  width: 100%;
  height: 110%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 100%;
  animation: loadLogo 1.5s;
}
@keyframes loadLogo {
  0% {
    left: 0;
  }
  50% {
    left: 0;
  }
  100% {
    left: 100%;
  }
}
#logo_loader .f_logo:before {
  animation: loadLogo 1.5s;
}
#logo_loader.open {
  animation-name: slideOut;
  animation-fill-mode: forwards;
  animation-duration: 2s;
  animation-delay: 2s;
}

@keyframes slideOut {
0% {
  transform: translateX(0%);
}
50% {
  transform: translateX(0%);
}
100% {
  transform: translateX(100%);
}
}


/*----- downmenu ------*/
.in_fixed_top {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  z-index: 15;
}
.in_fixed_top header ul{
  height:70px;
  line-height:70px;
}
.in_fixed_top[aria-expanded=false] {
  top: -250px;
  transition: .8s;
}
.in_fixed_top[aria-expanded=true] {
  top: 0;
  transition: .8s;
}
.in_fixed_top .logo img{
  width:150px;
  height:auto;
}



/*----- 下層共通 ------*/

#midashi{
	text-align:center;
	margin:60px 0;
}
#midashi p{
	font-size:12px;
  font-weight:bold;
  border-top:2px solid #0B5197;
  display:inline-block;
  padding-top:5px;
  letter-spacing:2px;
}
#midashi h2{
  margin:10px 0;
}
#midashi .content{
	margin-top:30px;
	line-height:25px;
}
.other-wrap{
  width:100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background:#F7F7F7;
  padding:100px 0;
}

/*-------- header -------*/
header{
  position:relative;
}
h1.logo{
  position:absolute;
  top:20px;
  left:50px;
  z-index:9998;
}
h1.logo img{
  height:auto;
  width:40px;
}
header ul{
  display:flex;
  justify-content: flex-end;
  height:90px;
  line-height:90px;
  margin-right: 30px;
}
header ul li{
  padding:0 20px;
}
header ul li a{
  font-size:14px;
  display: block;
  color:#000;
  font-weight:bold;
  transition-duration: 0.3s;
}
header ul li a:hover{
  color:#0B5197;
}
.respo,
.toggle_btn{
  display:none;
}



/*-------- スライダー -------*/
.swiper-container {
  position: relative;
}
.swiper-slide{
  height:85vh !important;
}
.swiper-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
}

.main-visual__copy{
  position:relative;
}
.mv_bg{
  position:absolute;
  top:-66px;
  right:30px;
  z-index:9999;
  mix-blend-mode: overlay;
}
.mv_bg img{
  width:450px;
  height:auto;
}
#news_sns a::after:first-of-type{
    content:none;
}


/*-------- introduction -------*/
#our_wrap{
  display: flex;
  justify-content: space-between;
  align-items: top;
}
#our_wrap .right{
  width:77%;
}
#our_wrap .left{
  display:flex;
  flex-direction: column;
  align-items: center;
  width:20%;
}
#our_wrap .left .title{
  border-bottom: 2px solid #000;
  font-size:12px;
  display:inline;
  font-weight:bold;
  letter-spacing: 2px;
}
#our_wrap .left h2{
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  padding:45px 0 40px 0;
  letter-spacing: 5px;
  line-height:64px;
}
#our_wrap .left .content{
  line-height:30px;
  padding-top:30px;
}
#our_wrap .left .content:before{
  content:"";
  display:block;
  margin:0 auto 30px auto;
  width:100%;
  height:2px;
  background:#000;
}


/*-------- omakase-------*/
#omakase{
  position:relative;
  padding:100px 0;
  background:#f7f7f7;

  width:100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
#omakase h2{
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}
#omakase .wrap{
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-align-items: center;
  align-items: stretch;	
  width:90%;
  max-width:1280px;
  margin:0 auto;
}
#omakase .wrap .inner{
	position:relative;
	width:22%;
  text-align: center;
  background:#fff;
  padding:20px;
}
#omakase .wrap h3{
	position:absolute;
	top:-15px;
	left: 50%;
  font-size:21px;
  letter-spacing: 3px;
  font-weight: normal;
 	transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}
#omakase .wrap .icons{
  padding:80px 0 30px 0;
}
#omakase .wrap .content{
	font-size:14px;
  width: 85%;
  margin: 0 auto;
}
#omakase .wrap .inner img{
  width:60%;
}



/*-------- housing-------*/
#housing{
  position:relative;
  display:flex;
  justify-content: space-between;
  padding-top:100px;
}
#housing .left{
  position:relative;
  display:flex;
  flex-direction:column;
  width:13%;
}
#housing .left h2{
  display:flex;
  align-items: center;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  padding-bottom:20px;
  margin-bottom:10px;
  letter-spacing: 5px;
}
#housing .left .content{
	display: inline-block;
	border-top:2px solid #000;
	padding-top:10px;
  line-height: 25px;
  text-align:center;
  font-size:12px;
  font-weight:bold;
  letter-spacing: 2px;
}
#housing .center{
  position:absolute;
  width:50%;
  top: 0;
  left:18%;
}
#housing .photo{
  position:relative;
  z-index:11;
}
#housing .center img{
  width:90%;
}
#housing .right{
  position:relative;
  z-index:10;
  width: 45%;
  background: #F7F7F7;
  padding: 55px 45px 125px 45px;

}
#housing .right .content{
  font-size:14px;
  width:80%;
  line-height:30px;
  margin-left:auto;
}
#housing .right .btn{
  position:absolute;
  right:50px;
  bottom:60px;
  display: inline-block;
  padding: 8px 55px;
  background: #000;
  border-radius:20px;
  box-shadow: 0 3px 5px rgb(0 0 0 / 50%);
}
#housing .right .btn:hover{
  box-shadow: none;
  transform: scale(0.99, 0.99) translateY(2px);
}
#housing .right a{
  color:#fff;
}



/*-------- company-------*/
#company .company_inner{
  margin-left:10%;
}
#company .sen{
	width:80px;
	border-top:2px solid #000;
}
#company h2{
	padding:30px 0;
}
#company .wrap{
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-align-items: top;
  align-items: top;	
}
#company .wrap .en_title{
  font-size:12px;
  font-weight:bold;
  letter-spacing: 2px;
  line-height:25px;
  width:150px;
}
#company .wrap .content{
  width:75%;
  line-height:30px;
}
#company .btn{
	width:200px;
	height:40px;
	line-height: 40px;
	background:#000;
	border-radius:20px;
	text-align:center;
  margin: 70px 0 0 auto;
  box-shadow: 0 3px 5px rgb(0 0 0 / 50%);
}
#company .btn:hover{
  box-shadow: none;
  transform: scale(0.99, 0.99) translateY(2px);
}

#company .btn a{
	color:#fff;
	display:block;
}
#company .pics{
  display:flex;
  justify-content: space-between;
  margin-top:50px;
}
#company .pics .pic{
  width:49%;
}
#company .pics .pic:last-child{
  margin-top:200px;
}



/*-------- news -------*/
#news_sns{
  display:flex;
  justify-content: space-between;
  align-items: flex-start;
}
#news_sns h2{
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-orientation: upright;
  margin-right:40px;
  letter-spacing: 5px;
}
#news_sns a{
  display:block;
  color:#000;
  padding:12px;
  transition:0.3s;
}
#news_sns a:hover{
  opacity:0.5;
}
#news_sns .sec_btn a{
  padding:0px;
}
#news_sns .news .row a::after{
  position:absolute;
  right:20px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  content: "\f054";
  font-family: "Font Awesome 5 Free";
  font-weight: bold;
}


#news_sns .news{
  width:100%;
  display:flex;
}
#news_sns .news .col-md-4{
  position:relative;
  border-top:2px dotted #000;
}
#news_sns .news .news_inner{
  width:90%;
}
#news_sns .news .news_desc{
  display:none;
}
#news_sns .news .blog{
  width:100%;
  margin-top:30px;
}
#news_sns .news .row{
  border-bottom:2px dotted #000;
}
#news_sns .news .post-categories{
  position:absolute;
  left:20%;
  top:6px;
}
#news_sns .news .post-categories li a{
  color:#484646;
  font-size:12px;
  padding:5px 10px;
  color:#484646;
  background:#EDEDED;
}
#news_sns .news .post-categories li a::before{
  content:"＃";
  display:inline;
}
#news_sns .news .post-categories li a::after {
  display:none;
}
#news_sns .news .news_title{
  margin-top:10px;
}
#news_sns .news .blog .container{
  position:relative;
}
#news_sns .news .sec_btn{
  position:absolute;
  right:20px;
  bottom:-40px;
}
#news_sns .news .sec_btn i{
  padding-left:35px;
}






/*-------- アクセス -------*/

#access{
	text-align: center;
  margin-top:150px;
}
#access p{
  font-size:12px;
  font-weight:bold;
  border-bottom:2px solid #000;
  display:inline-block;
  padding-bottom:5px;
  letter-spacing:2px;
}
#access h2{
  margin:10px 0;
}
#access .map{
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
	margin-top:40px;
}
#access .map:hover{
  filter:none;
}


/*-------- form -------*/
#form{
  width:80%;
  max-width:1280px;
  margin:100px auto;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

#form a{
  position:relative;
  overflow: hidden;
	color:#000;
	display:block;
  width:48%;
	height:80px;
	line-height: 80px;
	border:2px solid #000;
	border-radius:50px;
	text-align:center;
  font-size:18px;
  font-weight:bold;
  letter-spacing: 2px;
}
#form a:before{
  content: "";
  z-index: -1;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: -100%;
  background-color: #000;
  transition: .4s;
}
#form a:hover{
  color: #fff;
}
#form a:hover:before{
  left: 0;
}




/*-------- フッター -------*/
footer{
	background:#000;
  text-align: center;
  color:#fff;
  padding:60px 0;
}
footer a{
  color:#fff;
}
footer .logo p{
  margin-top:20px;
}
footer .logo img{
  width:250px;
}
footer .copyright{
	font-size:12px;
}