@charset "utf-8";


/* =======================
　　　PC・共通部分
======================= */

/*非表示切り替え*/
.pc { display: block; }
.sp { display: none; }
/*非表示切り替え*/

/*非表示切り替え*/
.pc_thead { display: table-header-group; }
.sp_thead { display: none; }
/*非表示切り替え*/

img{
    width: 100%;
}
body{
    font-family: "游明朝", 	"Yu Mincho", "游明朝体", "	YuMincho", sans-serif;
}
a{
    text-decoration: none;
    color: #000;
}

li{
  list-style: none;
}

/* スクロールエフェクト */
.scroll_up {
    transition: 0.8s ease-in-out;
    transform: translateY(30px);
    opacity: 0;
}

.scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
}

  /* 事例エリアスライド */
  .case_slide {
    width: 100%;
    display: flex;
    max-width: 70%;
    margin: auto;
  }
  
  .case_slide li {
    height: auto;
    margin-right: 10px;
    margin-left: 10px;
  }
  
  .case_slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* ページ内スクロール */
  .page_nav{
    width: 300px;
    display: flex;
    justify-content: space-between;
    color: #fff;
    position: absolute;
    left: 50%;
    font-size: 1.1em;
    bottom: 75px;
    transform: translateX(-50%);
  }
  
  .page_nav a{
    color: #fff;
  }

/* =======================
　　　      PC
======================= */
@media screen and (min-width:769px) {

    /* メインビジュアル */
    .main_slide {
      width: 100%;
      height: 100%;
    }
    
    .main_slide img {
      width: 100%;
      object-fit: cover;
      max-width: 1920px;
      height: 969px;
      object-fit: cover;
    }

    /* コンテンツタイトル */
    .con_ttl {
      text-align: center;
      padding-bottom: 40px;
    }

    .con_ttl h1{
      font-size: 33px;
    }

/* 追従予約ボタン */
.reserve_scloll {
  color: #fff;
  width: 173px;
  right: 1%;
  text-align: center;
  position: fixed;
  bottom: 5%;
  right: 5%;
}

.rv_up {
padding: 14px 0;
background: #000;
}

/* 追従追加 */
.rv_up a{
  color: #fff;
}

.rv_under {
background: none;
display: flex;
justify-content: space-between;
margin-top: 0px;
padding-top: 4px;
height: 65px;
}

a.line_btn {
border: 1px solid #000;
background: #fff;
width: 85px;
display: flex;
align-items: center;
justify-content: flex-end;
padding-right: 13px;
color: #000;
position: relative;
}

a.line_btn::after {
content: url(/common/img/line_icon.png);
display: inline-block;
position: absolute;
bottom: -55px;
left: -72%;
transform: scale(0.13);
}

a.mail_btn {
border: 1px solid #000;
background: #fff;
width: 85px;
display: flex;
align-items: center;
justify-content: flex-end;
padding-right: 13px;
color: #000;
position: relative;
}

a.mail_btn::after{
content: "";
display: inline-block;
background-size: contain;
background: url(/common/img/mail_icon.svg);
width: 20px;
height: 20px;
position: absolute;
bottom: 19px;
left: 25%;
transform: translateX(-55%);
}



/* ----- @PC_header ----- */
header{
  width: 100%;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 9999999;
}

.nav{
  background-color: rgba(000, 000, 000, 0.6);
  height: 100px;
  display: flex;
  justify-content: center;
  width: 100%;
  align-items: center;
  font-size: 16px;
  position: absolute;
  width: 100%;
}

.hd_logo {
  width: 154px;
}

.nav_logo{
  position: absolute;
  left: 2%;
}

li.nav_list {
  height: 100%;
  display: flex;
  align-items: center;
}

li.nav_list:hover{
  background-color: #dcdcdc;
  transition: .1s;
}

/* ナビロゴホバー時色変化無し */
li.nav_list:first-child:hover{
  background-color: initial;
}


/*========= ドロップダウンのためのCSS ===============*/

/*==ナビゲーション全体の設定*/
nav{
	background:#333;
	color:#fff;
	text-align: center;
}

/*ナビゲーションを横並びに*/
nav ul{
    /*2階層目の基点にするためrelativeを指定*/
	position: relative;
	list-style: none;
	display: flex;
	justify-content: center;
}

/*2階層目以降は横並びにしない*/
nav ul ul{
	display: block;
}

/*ナビゲーションのリンク設定*/
nav ul li a{
    /*矢印の基点にするためrelativeを指定*/
	position: relative;
	display: block;
	text-decoration: none;
	color: #fff;
	padding:20px;
	transition:all .3s;
  font-size: 14px;
}

nav ul li li a{
	padding:20px;
}

nav ul li:hover a{
	color:#000;	
}


/*==矢印の設定*/

/*2階層目を持つliの矢印の設定*/

/* mens非表示の場合 */
nav ul li.nav_list:nth-child(2) > a::before,
nav ul li.nav_list:nth-child(6) > a::before{
  content: '';
  position: absolute;
  right: 47%;
  top: 77%;
  width: 9px;
  height: 9px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(-45deg);
}

nav ul li.nav_list:nth-child(2) > a:hover:before,
nav ul li.nav_list:nth-child(6) > a:hover::before{
  border-top: 2px solid #000;
  border-right: 2px solid #000;
}

/*== 2層目の設定 */

nav li.nav_list ul{
  /*絶対配置で位置を指定*/
  position: absolute;
	left:0%;
	top:100%;
	z-index: 4;
  /*子要素を横並びに*/    
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
  /*形状を指定*/
	background: #dcdcdc;
	width:100%;
  /*はじめは非表示*/
	visibility: hidden;
	opacity: 0;
  /*アニメーション設定*/
	transition: all .1s;
}

/*hoverしたら表示*/
nav li.nav_list:hover > ul{
  visibility: visible;
  opacity: 1;
}

/*ナビゲーション上からフェードイン*/
nav li.nav_list ul li{
	width:15%;
  overflow: hidden;
  height: 0;
  transition: .3s;
  justify-content: center;
}

nav li.nav_list:hover ul li{
  overflow: visible;
  height: 100%;
}

/*ナビゲーションaタグの形状*/
nav li.nav_list ul li a{
	color: #fff;
}

/*==2階層目以降の画像設定*/

nav ul li.dropdown_list img{
	max-width: 60%;
	height: auto;
	transition: all .2s;
	vertical-align: bottom;
}

/*hoverしたら画像拡大*/
nav ul li.dropdown_list img:hover{
	transform: scale(1.1);
}

nav ul li.nav_list dt{
	overflow: hidden;
	height: auto;
	margin:0 0 10px 0;
}

nav ul li.nav_list dl{
  color: #000;
}



/* 予約スライドボタン */
.r-btn.slide {
  color: #fff;
  overflow: hidden;
  position: absolute;
  right: 2%;
  z-index: 1;
  border: 1px solid #fff;
  height: 44px;
  display: flex;
  align-items: center;
}

.r-btn.slide::after {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s ;
  z-index: -1;
}

.r-btn:hover a{
  color: #333;
}

.r-btn.slide:hover::after {
  transform: scale(1, 1);
}


/* ----- @PC_footer ----- */

footer,
footer a{
  color: #979899;
}

.flex{
  display: flex;
  text-align: left;
}

.ft_area{
  background-color: ghostwhite;
  padding: 50px 0;
}

footer img {
  width: 168px;
  margin: 0 auto;
  display: flex;
}

.footer_flex {
  display: flex;
  justify-content: center;
  padding: 50px 0;
}

.ft_box {
  text-align: center;
  margin:  0 4em;
}

.ft_box h3{
  padding-bottom: 1em;
  position: relative;
} 

.ft_box h3::after {
  content: '';
  width: 136%;
  height: 1px;
  display: inline-block;
  background-color: #dcdcdc;
  position: absolute;
  bottom: 13px;
  left: calc(12% - 63px);
}

/* .ft_box ul{
  display: flex;
} */

.ft_box li{
  margin:  0 1em;
}

.copy_right {
  text-align: center;
  font-size: 12px;
  padding: 5px 0;
}

/* ページトップ戻るボタン */
.scroll_btn{
  text-align: center;
  padding-bottom: 3em;
}

#page_top{
  position: relative;
}

#page_top::after {
  content: "";
  display: inline-block;
  background-size: contain;
  background-image: url(/common/img/pagetop.png);
  width: 17px;
  height: 11px;
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
}

ul.menu01 li:not(:first-child){
  padding-left: 0.6em;
}

}



/* =======================
　　　      SP
======================= */
@media screen and (max-width:998px) {


    /*非表示切り替え*/
      .pc { display: none; }
      .sp { display: block; }
    /*非表示切り替え*/

        /*非表示切り替え*/
        .pc_thead { display: none; }
        .sp_thead { display: table-header-group; }
      /*非表示切り替え*/
  
    /* メインビジュアル */
    .main_slide {
      width: 100%;
      height: 100%;
    }
    
    .main_slide img {
      width: 100%;
      object-fit: cover;
      height: 665px;
      object-fit: cover;
    }

    /* コンテンツタイトル */
    .con_ttl {
      text-align: center;
      padding-bottom: 20px;
    }

    .page_nav{
      width: 200px;
      font-size: 0.8em;
      bottom: 50px;
    } 

    /* 追従予約ボタン */
    .reserve_following{
      background: #dcdcdc;
      position: fixed;
      width: 100%;
      bottom: 0;
      left: 0;
  }
    .rv_under {
      display: flex;
      width: 101%;
      margin: 0 auto;
      padding: 1em 0;
      justify-content: space-evenly;
    }

    .line_area,
    .mail_area {
      width: 45%;
      background: #fff;
      /* border: 1px solid #000; */
      height: 64px;
      display: flex;
      align-items: center;
      justify-content: right;
    }

    a.line_btn,
    a.mail_btn {
      font-size: 14px;
      padding: 10px 7px;
      text-align: center;
      position: relative;
    }

    a.line_btn::after {
      content: url(/common/img/line_icon.png);
      display: inline-block;
      position: absolute;
      bottom: -42px;
      left: -64%;
      transform: scale(0.18);
      }
      
      a.mail_btn::after{
        content: "";
        display: inline-block;
        background-size: contain;
        background: url(/common/img/mail_icon.svg);
        width: 27px;
        height: 27px;
        position: absolute;
        bottom: 29px;
        left: -6%;
        transform: translateX(-55%);
      }
      

  /* ----- @SP_header ----- */

  header {
    width: 100%;
    position: fixed;
    z-index: 9999;
    background-color:rgba(000, 000, 000, 0.8);
    display: flex;
    height: 70px;
    justify-content: flex-end;
    align-items: center;
    opacity: 0.9;
}

.sp_hd{
  /* display: flex; */
  /* align-items: center; */
  height: 71px;
  padding-top: 9px;
} 

.hd_logo{
  display: flex;
}

.sp_hd img{
  width: 28%;
  margin: 0 auto;
  display: flex;
  align-items: center;
}


.nav {
  visibility: hidden;
  opacity: 0;
  width: 47vw;
  height: 100%;
  background-color: #000;
  position: fixed;
  top: 0;
  right: 0;
  transition: all .5s;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 6em 1em;
  overflow: auto;
  font-size: 10px;
}

.nav.fade {
    visibility: visible;
    opacity: 0.9;
}


.nav li{
    margin: 12px 0;
    font-size: 1.2em;
    font-weight: bold;
}
.nav li a{
  color: #fff;
  font-size: 14px;
}

.reserve_link {
  padding: 10px 46px;
  border: 1px solid #fff;
  margin-left: 1em;
}

.nav li:first-child a{
    color: #fff;
}

.nav_btn {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-right: 10px;
  position: absolute;
  right: 1%;
  bottom: 34%;
}

.nav_btn span:first-child {
  content: "";
  display: block;
  width: 33px;
  height: 1px;
  border-radius: 2px;
  margin-bottom: 11px;
  background: #fff;
}

.nav_btn span:nth-child(2) {
  content: "";
  display: block;
  width: 33px;
  height: 1px;
  border-radius: 2px;
  margin-bottom: 11px;
  background: #fff;
}

.nav_btn span:last-child {
  content: "";
  display: block;
  width: 33px;
  height: 1px;
  border-radius: 2px;
  background: #fff;
}

.nav_btn.close span:first-child {
  background: #fff;
  transform: translate(-9%,15px) rotate(45deg);
  transition: transform .5s;
}

.nav_btn.close span:nth-child(2){
    background: #fff;
    opacity: 0;
    transition: opacity .5s;
}

.nav_btn.close span:last-child {
  background: #fff;
  transform: translate(-4%,-9px) rotate(-40deg);
  transition: .5s;
  width: 36px;
}


nav ul{
  display: block;
}

nav li.nav_list ul{
position: relative;
left:0;
top:0;
width:100%;
visibility:visible;/*JSで制御するため一旦表示*/
opacity:1;/*JSで制御するため一旦表示*/
display: none;/*JSのslidetoggleで表示させるため非表示に*/
transition:none;/*JSで制御するためCSSのアニメーションを切る*/
}
  
nav li.nav_list ul li{
  width:100%;
  text-align: left;
}

nav li.nav_list ul li dl{
  padding-left: 2em;
}


  
nav ul li a{
  padding: 10px 20px;
  /* border-bottom:1px solid #ccc; */
}
  
  nav ul li li a{
  padding: 0;
}

/*矢印の位置と向き*/
.nav_list{
  position: relative;
}

/*mens非表示の場合 */
nav ul li.nav_list:nth-child(1) > a::before,
nav ul li.nav_list:nth-child(5) > a::before{
  content: '';
  position: absolute;
  left: 88%;
  top: 20%;
  width: 9px;
  height: 9px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(47deg);
}

nav ul li.nav_list > a::before{
top:17px;
left:20px;
transform: rotate(135deg);
}
  
nav ul li.nav_list.active > a::before{
  transform: rotate(-222deg);
  top: 5%;
}


  /* ----- @SP_footer ----- */

footer,
footer a{
  color: #979899;
}

.sp_none{
    display: none;
  }

.ft_area {
    text-align: center;
    background-color: ghostwhite;
    padding: 1em 0;
}

.ft_area img {
  width: 35%;
  padding: 1em 0;
}

.ft_box {
  margin: 15px 0;
}

.copy_right{
  text-align: center;
  font-size: 10px;
  padding: 11px 0;
}

/* ページトップ戻るボタン */
.scroll_btn{
  text-align: center;
  padding-bottom: 2em;
}

#page_top{
  position: relative;
}

#page_top::after {
  content: "";
  display: inline-block;
  background-size: contain;
  background-image: url(/common/img/pagetop.png);
  width: 17px;
  height: 11px;
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
}

}