
html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

@font-face {
  font-family: 'Cantarell';
  src: url('../fonts/Cantarell-Bold.ttf') format('truetype');
}

body {
  line-height: 2.0;
  font-family:'Cantarell', sans-serif;
  background-color: #EEEADC;
}

main {
  z-index: 0;
}

h2 {
  font-size: 4vw;
  font-weight: 500;
}

a {
  font-size: 18px;
  text-decoration: none;
  font-family:
   Hiragino Sans,
   "ヒラギノ角ゴシック",
   Hiragino Kaku Gothic ProN,
   "ヒラギノ角ゴ ProN W3",
   Roboto,
   "Droid Sans",
   YuGothic,
   "游ゴシック",
   Meiryo,
   "メイリオ",
   Verdana,
   "ＭＳ Ｐゴシック",
   sans-serif;
}

p {
  font-size: 20px;
  font-family:
   Hiragino Sans,
   "ヒラギノ角ゴシック",
   Hiragino Kaku Gothic ProN,
   "ヒラギノ角ゴ ProN W3",
   Roboto,
   "Droid Sans",
   YuGothic,
   "游ゴシック",
   Meiryo,
   "メイリオ",
   Verdana,
   "ＭＳ Ｐゴシック",
   sans-serif;
}

/* ヘッダー */

#header {
  position: fixed;
  top: 0;  
  width: 100%;
  height: auto;
  box-sizing: border-box;
  transition: .5s;
  box-shadow: 5px 5px 5px rgba(15, 14, 14, 0.2);
  padding: 5px 0;
  background-color: #EEEADC;
  z-index: 9999;
}

.header_wrap {
  width:80vw;
  margin: auto;
}

.header_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header_inner img {
  width: 5vw;
  height: auto;
  object-fit: contain;
}

.header_nav {
  display: flex;
  align-items: center;
}

.header_nav ul {
  display: flex;
}

.header_nav ul li{
  margin-right: 2vw;
}

.header_wrap .tel {
  width: fit-content;
  height: auto;
  background-color: #fff;
  border:solid 2px #2E2624;
  border-radius: 10px;
  padding:5px 45px;
}

.header_wrap .tel p {
  font-size: 16px;
}

.header_wrap .phone_num {
  display: flex;
  justify-content: center;
}

.header_wrap .phone_num img {
  width: 20px;
  height: auto;
  object-fit: contain;
  margin-right: 0.5vw;
}

/*========= ナビゲーションのためのCSS ===============*/

.navigations {
  position: relative;
  z-index: 9999;
}

#g-nav {
  position: fixed;
  display: none;
  opacity: 0;
}

#g-nav .drawer_body {
  display: none;
}

/*アクティブになったエリア*/
#g-nav.panelactive {
  display: block;
}

#g-nav.panelactive {
  position: fixed;
  display: flex;
  z-index: 999;
  top: 0;
  transition: all .4s;
  opacity: 1;
}

#g-nav.panelactive .drawer_body {
  display: block;
  width: 110vw;
  height: 100vh;
  background-color: #EEEADC;
  z-index: 999;
  transform: translateX(-90vw);
}

.drawer_inner {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 7vw 10vw 0 0;
}

#g-nav.panelactive img {
  opacity: 1;
}

#g-nav.panelactive img {
  animation-name: gnaviAnime;
  animation-duration: 1s;
  animation-delay: .5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

#g-nav.panelactive ul {
  animation-name: gnaviAnime;
  animation-duration: 1s;
  animation-delay: .7s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes gnaviAnime {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/*丸の拡大*/
.circle-bg{
  position: fixed;
  z-index:3;
  /*丸の形*/
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #999;
  /*丸のスタート位置と形状*/
  transform: scale(0);/*scaleをはじめは0に*/
  right:-50px;
  top:-50px;
  transition: all .6s;/*0.6秒かけてアニメーション*/
}

.circle-bg.circleactive{
transform: scale(50);/*クラスが付与されたらscaleを拡大*/
}


/* 背景が出現後にナビゲーション li を表示※レイアウトによって調整してください。不必要なら削除*/
#g-nav.panelactive ul li{
  animation-name:gnaviAnime;
  animation-duration:1s;
  animation-delay:.2s;/*0.2 秒遅らせて出現*/
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes gnaviAnime{
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/*リストのレイアウト設定*/

.g-nav-contents nav{
  display: block;
}

#g-nav li{
  text-align: center; 
  list-style: none;
  width: fit-content;
  margin: 1vw 0;
}

#g-nav li a{
  color: #333;
  text-decoration: none;
  display: block;
  letter-spacing: 0.1em;
  font-weight: bold;
  position: relative;
}

#g-nav li a::after {
  position: absolute;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #212121;
  bottom: -3px;               
  transform: scale(0, 1);     
  transform-origin: left top; 
  transition: transform 0.3s; 
}

#g-nav li a:hover::after {
  transform: scale(1, 1);    
}

.nav_sns {
  display: flex;
  align-items: center;
  transform: translate(0,3vw);
}

.nav_sns a {
  margin-right: 2vw;
  transition: all .3s;
}

.nav_sns a:hover {
  opacity: 0.5;
}

.nav_sns a:hover::after {
  display: none;
}

.nav_sns a img {
  width: 2vw;
  height: auto;
  object-fit: contain;
}

.drawer_left img{
  display: block;
}

.drawer_left img {
  width: 45vw;
  height: 30vw;
  object-fit: contain;
}

.drawer_left .neon_img {
  width: 10vw;
  height: fit-content;
  margin-bottom: 1vw;
}

.drawer_right {
  margin-left: 10vw;
}

.drawer_right .tel {
  margin-top: 2vw;
}

/*========= ボタンのためのCSS ===============*/
.openbtn{
  position: relative;
  z-index: 9999;/*ボタンを最前面に*/
  cursor: pointer;
  width: 80px;
  height:95px;
  background-color: #F4E710;
}

/*×に変化*/	
.openbtn span{
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 15px;
  height: 3px;
  border-radius: 2px;
  color: #fff;
  background-color: #fff;
  width: 65%;
}

.openbtn span:nth-of-type(1) {
  top:20px;	
}

.openbtn span:nth-of-type(2) {
  top:34px;
}

.openbtn span:nth-of-type(3) {
  display: none;
}

.openbtn span:last-child {
  top:47px;
  font-size: 14px;
  letter-spacing: 0.1rem;
  line-height: 2.5;
}

.openbtn.active span:nth-of-type(1) {
  top: 25px;
  left: 29px;
  transform: translateY(6px) rotate(-45deg);
  width: 30%;
}

.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn.active span:nth-of-type(3){
  display: block;
  top: 37px;
  left: 29px;
  transform: translateY(-6px) rotate(45deg);
  width: 30%;
}

.openbtn.active span:last-child{
  display: none;
}

/* ページトップ */
/*リンクの形状*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	border-radius: 5px;
	width: 80px;
	height: 60px;
	color: #333;
	text-align: center;
	text-transform: uppercase; 
	text-decoration: none;
	font-size:0.6rem;
  letter-spacing: 0.1rem;
	transition:all 0.3s;
}

#page-top a:hover{
	color: #777;
}

/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 10px;
	bottom:10px;
	z-index: 2;
    /*はじめは非表示*/
	opacity: 0;
	transform: translateY(100px);
}

/*　上に上がる動き　*/

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(100px);
  }
}

/* fadeIn */

.fadeIn{
    animation-name:fadeAnime;
    animation-duration:1.6s;
    animation-fill-mode:forwards;
    opacity:0;
    }
    
    @keyframes fadeAnime{
      from {
        opacity: 0;
      }
    
      to {
        opacity: 1;
      }
    }
    
    
    /* スクロールをしたら出現する要素にはじめに透過0を指定　*/
     
    .fadeInTrigger{
        opacity: 0;
    }

/* 下層トップ */

.main_image {
  width: 85.938vw;
  height: 43vw;
  margin-bottom: 7.031vw;
  border-radius:0 30px 30px 0;
  object-fit: cover;
}

h1,
h2 {
  font-weight: bold;
}

h1{
  position: relative;
}

.top_title {
  font-size: 3.594vw;
  color: #FFFFFF;
  position: absolute;
  left: 5.547vw;
  top: 30.234vw;
  width: 30vw;
}

.yellow_triangle {
  position: absolute;
  left: -3vw;
  top: 3vw;
}

.top_text {
  font-size: 1.25vw;
  color: #FFFFFF;
  position: absolute;
  top: 5.078vw;
  line-height: 3.0;
}

.yellow_box {
  width: 19.531vw;
  height: 37.5vw;
  background-color: #F4E710;
  position: absolute;
  right: 0;
  top: 9.516vw;
  z-index: -2;
  overflow: hidden;
}

.blueprint {
  width: 37.422vw;
  height: 37.578vw;
  position: absolute;
  right: -11.719vw;
  z-index: -1;
}

.neonlife {
  width: 9.297vw;
  height: 6.719vw;
  position: absolute;
  top: 1.328vw;
  right: 3.125vw;
}

.scrolldown {
  position: absolute;
  right: 3.75vw;
  top: 31.641vw;
}

.scrolldown span {
  color: #2E2624;
  font-size: 0.781vw;
  letter-spacing: 0.063vw;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}

.scrolldown:before {
  content: "";
  position: absolute;
  bottom: -0.625vw;
  left: 0.6vw;
  width: 0.234vw;
  height: 0.234vw;
  border-radius: 50%;
  background: #2E2624;
  animation:
      circlemove 1.6s ease-in-out infinite,
      cirlemovehide 1.6s ease-out infinite;
}

@keyframes circlemove {
  0% {
      bottom: -0.5vw;
  }

  100% {
      bottom: -2.6vw;
  }
}

@keyframes cirlemovehide {
  0% {
      opacity: 0
  }

  50% {
      opacity: 1;
  }

  80% {
      opacity: 0.9;
  }

  100% {
      opacity: 0;
  }
}

.scrolldown:after {
  content: "";
  position: absolute;
  bottom: -2.4vw;
  left: 0.7vw;
  width: 0.078vw;
  height: 1.953vw;
  background: #2E2624;
}

/* ボタン */
.btn{
  display:inline-block;
  width: 15vw;
  height: fit-content;
  padding:20px 30px 20px 20px;
  color: #2E2624;
  text-align:center;
  margin:5px;
  border:2px solid;
  border-radius: 20px;
  cursor:pointer;
  position: relative;
  background-color: #EEEADC;
  transition: .3s;
}

.btn::after{
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 5px);
  right: -40px;
  width: 80px;
  height: 5px;
  border: none;
  border-right: 2px solid #2E2624;
  border-bottom: 1px solid #2E2624;
  transform: skew(45deg);
  transition: .3s;
}

.btn:hover {
  color: #EEEADC;
  background-color: #2E2624;
}

.btn:hover::after{
  right: -60px;
  width: 90px;
}

.rental_btn {
  position: relative;
}

.rental_btn::before {
  position: absolute;
  content: '';
  top: 30%;
  left: -5%;
  width: 16vw;
  height: 3.5vw;
  background-color: #F4E710;
}

/* ttl */

.ttl h2 {
  position: relative;
}

.ttl h2::before {
  content: '';
position: absolute;
bottom: 50%;
  left: 138%;
width: 18vw;
height: 2px;
background-color: #F5DB28;
}

.ttl h2::after {
  content: '';
position: absolute;
bottom: 47%;
right: -40%;
width: 12px;
height: 12px;
background-color: #F5DB28;
border-radius: 10px;
}

/* contact */
#contact {
  background-image: url(../img/contact_back.png);
  background-size: cover;
  padding: 5vw 0 0;
}

.contact_ttls {
  display: flex;
  align-items: center;
}

#contact .ttl{
  background-color: #F4E710;
  color: #fff;
  width: 35vw;
  padding: 30px;
  margin-right: auto;
}

#contact .ttl {
  text-align: right;
}

#contact .ttl h2 {
  position: relative;
}

#contact .ttl h2::before,
#contact .ttl h2::after {
  background-color: #fff;
}

#contact .ttl h2::before {
  width: 10vw;
  bottom: 49%;
  left: 0;
}

#contact .ttl h2::after {
  left: 30%;
  bottom: 46%;
}

.contact_ttls a {
  transform: translateX(-20vw);
}

.contact_img {
  width: 80vw;
  height: 30vw;
  margin:5vw auto 0;
}

.contact_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
}

#contact .btn {
  color: #212121;
  border:solid 2px #F4E710;
  background-color: #fff;
}

#contact .btn::after {
  border-right:2px solid #F4E710;
  border-bottom:1px solid #F4E710;
}

#contact .concept_img {
  margin-top: 5vw;
}

.town_img{
  width: 70vw;
  height: auto;
  margin: auto;
}

.town_img img{
  width: 100%;
  height: auto;
}

#contact .town_img {
  margin-top: 5vw;
}

/* footer */

footer {
  background-color: #B3B0A5;
  padding: 5vw 0 2vw;
  font-family:
  Hiragino Sans,
  "ヒラギノ角ゴシック",
  Hiragino Kaku Gothic ProN,
  "ヒラギノ角ゴ ProN W3",
  Roboto,
  "Droid Sans",
  YuGothic,
  "游ゴシック",
  Meiryo,
  "メイリオ",
  Verdana,
  "ＭＳ Ｐゴシック",
  sans-serif;
}

#footer_inner {
  width: 90vw;
  margin:0 auto 5vw;
}

.footer_contents {
  display: flex;
  justify-content: space-between;
}

.footer_contents img {
  width: 8vw;
  height: auto;
  object-fit: contain;
}

.footer_contents nav {
  display: flex;
}

.footer_contents ul {
  border-left:solid 1px #2E2624;
  padding: 0 5vw 0 3vw;
}

.footer_contents ul li a {
  color: #2E2624;
  transition: all .5s;
}

.footer_contents ul li a:hover {
  opacity: .5;
}

.footer_contents span {
  font-size: 1.0vw;
}

footer p {
  text-align: center;
  font-size: 14px;
}

@media screen and (max-width: 1600px) {
  .scrolldown:before {
    left: 0.53vw;
    width: 7px;
    height: 7px;
  }

  p {
    font-size: 18px;
  }

  .main_image {
    height: 49vw;
  }

  .yellow_box {
    top: 15vw;
  }

  .top_title {
    top: 35vw;
  }

  .btn {
    width: 22vw;
  }

  #contact {
    background-size: cover;
  }

  #contact .ttl h2::before {
    bottom: 50%;
  }

  .town_img {
    width: 60vw;
  }

  .footer_contents ul {
    padding: 0 3vw;
  }

  .footer_contents span {
    font-size: 18px;
  }
}

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

  .main_image {
    height: 52vw;
  }
  
  .yellow_box {
    top: 18vw;
  }

  .top_title {
    top: 40vw;
  }

}

@media screen and (max-width: 1400px) {
    .scrolldown:before {
      left: 0.5vw;
    }

    .scrolldown:after {
      left: 0.75vw;
    }

    a {
      font-size: 16px;
    }

    p {
      font-size: 16px;
    }

    .btn {
      width: 20vw;
    }

    .main_image {
      height: 55vw;
    }
    
    .yellow_box {
      top: 22vw;
    }
}

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

  .header_inner img {
    width: 6vw;
  }

  .drawer_left img {
    width: 45vw;
    height: 30vw;
    object-fit: contain;
  }

  .main_image {
    height: 60vw;
  }
  
  .yellow_box {
    top: 27vw;
  }

  .top_title {
    top: 45vw;
  }

  #footer_inner {
    width: 95vw;
  }
}

@media screen and (max-width: 1180px) {
  h2 {
    font-size: 35px;
  }

  a {
    font-size: 14px;
  }

  p {
    font-size: 14px;
  }

  .header_wrap .tel p {
    font-size: 14px;
  }

  .nav_sns a {
    margin-right: 3vw;
  }

  .nav_sns a img {
    width: 3vw;
  }

  .btn {
    width: 25vw;
    font-size: 14px;
  }

  .main_image {
    height: 58vw;
  }
  
  .yellow_box {
    top: 25vw;
  }

  .scrolldown span {
    font-size: 10px;
  }

  #contact .ttl h2::before {
    bottom: 51%;
  }

  .scrolldown:after {
    left: 0.74vw;
    bottom: -2vw;
  }

  #contact .ttl h2::after {
    bottom: 45%;
  }

  .town_img {
    width: 55vw;
  }

  .footer_contents ul {
    padding: 0 2.5vw;
  }

  .footer_contents ul li {
    font-size: 15px;
  }

  .footer_contents ul li a{
    font-size: 15px;
  }

  .footer_contents span {
    font-size: 17px;
  }

  .footer_contents img {
    width: 10vw;
  }
}


@media screen and (max-width: 1024px) {
  .header_wrap {
    width: 90vw;
  }

  .header_inner img {
    width: 7vw;
  }

  .drawer_left img {
    width: 45vw;
    height: 30vw;
    object-fit: contain;
  }

  .scrolldown {
    top: 30vw;
  }

  .scrolldown:after {
    height: 3vw;
    left: 0.8vw;
    bottom: -3vw;
  }

  .main_image {
    height: 62vw;
  }

  .top_title {
    top: 50vw;
  }

  .yellow_box {
    top: 30vw;
}

  #contact .ttl h2::before {
    left: -1%;
  }

  .footer_contents ul {
    padding: 0 2vw;
  }
}


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

  .header_nav {
    display: none;
  }

  .header_inner img {
    width: 10vw;
  }
  
  .drawer_inner {
    margin: 13vw 10vw 0 0;
  }

  .nav_sns a {
    margin-right: 4vw;
  }

  .nav_sns a img {
    width: 3.5vw;
  }

  .drawer_left {
    display: none;
  }

  .scrolldown {
    top: 29.5vw;
  }

  .scrolldown:before {
    left: 0.7vw;
  }

  .scrolldown:after {
    height: 3.2vw;
    left: 1.1vw;
  }

  .main_image {
    height: 110vw;
  }

  .top_title {
    top: 80vw;
  }

  .yellow_box {
    top: 80vw;
  }

  #contact .ttl {
    width: 40vw;
    left: 30%;
  }

  #contact .ttl h2::before {
    width: 10vw;
  }

  #contact .ttl h2::after {
    width: 12px;
  }

  .footer_contents {
    display: block;
    width: 90vw;
  }

  .footer_contents div {
    width: fit-content;
    margin: auto;
  }

  .footer_contents ul {
    padding: 0 7vw 0 5vw;
    margin-bottom: 5vw;
  }

  .footer_contents img {
    width: 18vw;
    margin:0 auto 3vw;
  }

  .footer_contents nav {
    flex-wrap: wrap;

  }

  .footer_contents ul li {
    font-size: 14px;
  }
}

@media screen and (max-width: 768px) {
  .scrolldown:before {
    left: 0.5vw;
  }

  .scrolldown:after {
    left: 0.9vw;
  }
}

@media screen and (min-width: 531px){
  .br-sp {
  display:none;
  }

  .sp {
    display: none;
}
}  

@media screen and (max-width: 530px) {
  h2 {
    font-size: 35px;
  }

  p, a {
    font-size: 14px;
  }

  .header_inner img {
    width: 15vw;
  }

  #g-nav li {
    margin: 5vw 0;
  }

  .nav_sns a {
    margin:5vw 8vw 0 0;
  }

  .nav_sns a img {
    width: 8vw;
  }

  .openbtn {
    width: 60px;
    height: 70px;
  }

  .openbtn span {
    left: 11px;
  }

  .openbtn span:nth-of-type(1) {
    top: 14px;
  }

  .openbtn span:nth-of-type(2) {
    top: 26px;
  }

  .openbtn span:last-child {
    top: 38px;
    font-size: 12px;
    letter-spacing: 0;
  }
  
  .openbtn.active span:nth-of-type(1),
  .openbtn.active span:nth-of-type(3) {
    left: 22px;
  }

  .btn {
    width: 75vw;
  }

  .main_image {
    height: 82vh;
  }

  .top_title {
    top: 150vw;
    left: 10vw;
    width: 60vw;
  }

  h1 {
    font-size: 28px;
  }

  .top_text {
    font-size: 16px;
    top: 10vw;
  }

  .yellow_triangle {
    top: 4vw;
    left: -6vw;
  }

  .yellow_box {
    top: 95vw;
    width: 45vw;
    height: 100vw;
  }

  .neonlife {
    display: none;
  }

  .scrolldown {
    top: 70vw;
    right: 6vw;
  }

  .scrolldown:before {
    left: 1.3vw;
  }

  .scrolldown:after {
    height: 5vw;
    left: 2.1vw;
    bottom: -5vw;
    width: 1px;
  }

  @keyframes circlemove {
    0% {
        bottom: -0.5vw;
    }
  
    100% {
        bottom: -5.6vw;
    }
  }
  
  @keyframes cirlemovehide {
    0% {
        opacity: 0
    }
  
    50% {
        opacity: 1;
    }
  
    80% {
        opacity: 0.9;
    }
  
    100% {
        opacity: 0;
    }
  }

  #contact .ttl {
    width: 80vw;
  }

  #contact .ttl h2::before {
      width: 20vw;
  }

  #contact .ttl h2::after {
      right: 65%;
  }

  .contact_ttls {
      display: block;
  }

  .contact_ttls .btn {
      display: none;
  }

  .contact_img {
      width: 90vw;
      height: 50vw;
  }

  #contact .btn {
      margin:10vw 6vw;
  }

  .contact_img {
    width: 90vw;
    height: 50vw;
  }

  #contact .sp {
    width: 60vw;
    display: block;
    margin:10vw auto;
  }

  .town_img {
    width: 100vw;
  }

  .footer_contents {
    margin: auto;
  }

  .footer_contents img {
    width: 20vw;
  }

  .footer_contents ul {
    border-left: 0px;
    margin: 4vw 0;
  }

  .footer_contents ul li {
    margin: 3vw 0;
  }
}

@media screen and (max-width: 375px) {
  .main_image {
    height: 80vh;
  }

  .top_title {
    top: 100vw;
  }

  .yellow_box {
    top: 45vw;
  }

  .scrolldown {
    right: 8vw;
  }

  .scrolldown:after {
    left: 2.1vw;
  }

  #contact .ttl h2::before {
    width: 15vw;
  }

  #contact .ttl h2::after {
    left: 22%;
  }
}

