﻿@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Crimson+Text&display=swap');

html{ 
	font-size: 16px;
}
body{
	font-family: "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
	-webkit-text-size-adjust: none;
	word-wrap: break-word;
	overflow-wrap: break-word;
	letter-spacing: 0.5px;
	line-height: 1.8;
	margin: 0 auto;
}
a{
	text-decoration: none;
	color: currentColor;
}

.nav_tel, .main_page_link_span, .main_img_txt, .main_img_txt2, .contents1_title , .contents1_subtitle, .more_btn, .about_area_title, .contents_no, .contents2_title, .contents3_title, .modal_txt_wrap h2,  .top_cms_title, .footer_tel, .footer_mail, #page_title, #page8 #phone a, #page9 h3, #page10 li a,
.topcms_about_type1 .number::before,.flow_type3 .box_title1::before,.cate_title{
  font-family: 'Crimson Text', "游明朝", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "Sawarabi Mincho", "serif";
}
/* -------------------------------------------------- 
全ページ共通
 -------------------------------------------------- */
svg {
    fill: currentColor;
}

.wrap_bg{
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
}

/* ----- ローディング ----- */
#progressbar{
	position: fixed;
	z-index: 999;
	width: 100%;
	height: 100%;
	text-align:center;
}

#progressbar_text{
	position: absolute;
	top: 50%;
	left: 50%;
  z-index: 999;
	width: 100%;
	transform: translate(-50%, -50%);
}

/* ----- ヘッダー ----- */
#menu_bt{
  top: 30px;
	width: 50px;
	height: 50px;
	cursor: pointer;
	z-index: 980;
  transition: all 0.5s;
}
.sub_page #menu_bt{
  top: 15px;
  /* right: 25px; */
  left: 50px;
}
.index #menu_bt.trans{
  transform: translateX(-50px);
}
#menu_bt span{
	width: 20px;
	height: 1px;
	transition-timing-function: cubic-bezier(0,.43,.1,1);
	transition-property: width, top, transform, background-color;
  transform: translate(-50%,0);
}
#menu_bt span.top{
	top: 42%
}
#menu_bt span.bottom{
	top: 57%
}
#menu_bt.active span{
	width: 20px!important;
	top: 50%
}
#menu_bt.active span.top{
	transform: translate(-50%, -50%) rotate(45deg)
}
#menu_bt.active span.bottom{
	transform: translate(-50%, -50%) rotate(-45deg)
}

#menu_nav{
	top: 0;
	left: 0;
	pointer-events: none;
	transform: scale(0.95);
	transition-property: opacity, transform;
	z-index: 970;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
#menu_nav > div{
	overflow-y: auto
}
#menu_nav.active{
	pointer-events: auto;
	opacity: 1;
	transform: none
}
#menu_nav #nav_logo{
	top: 50px;
	left: 50px
}
#menu_nav .main_page_link li{
	transform: translateX(-20px);
	opacity: 0;
	filter: blur(5px);
	transition: 0.5s;
	transition-property: transform, opacity, filter
}
#menu_nav .main_page_link li.active{
	transform: none;
	opacity: 1;
	filter: none
}

/* ----- メニュー ----- */
.overlay_l::before{
	content: "";
	display: block;
	position: absolute;
	top: 10px;
	right: 10px;
	bottom: 10px;
	left: 10px;
	border: solid 1px rgba(255,255,255,0.7);
	z-index: 1;
}
.menu_list span::before{
  content: '/';
  margin-right: 10px;
}

/* ----- フッター ----- */
#logo2{
  max-width: 240px;
}
footer{
  position: relative;
}
.footer_bg{
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.5;
  z-index: -1;
}

/* ----- ページスクロール ----- */
#page_top{
	bottom: 5%;
	margin: auto;
	right: 10px;
	z-index: 1;
	width: 40px;
	height: 130px;
}
#page_top a{
	width: 40px;
	height: 130px;
	box-sizing: border-box;
}
#page_top .scroll_u{
	width: 1px;
	height: 50px;
	top: -8px;
	right: 0;
	left: 0;
	margin: auto;
}
#page_top .scroll_u .scroll_bar{
	animation: lineu 2s ease 0s infinite;
}
@keyframes lineu{
	0% {
		top: 50px;
		height: 0;
	}
	20% {
		top: 0;
		height: 50px;
	}
	40% {
		top: 0;
		height: 0;
	}
	100% {
		top: 0;
		height: 0;
	}
}

/* ----- アニメーション ----- */
.scrollin_blur{
  opacity: 0.0;
  transition: transform 0.5s linear;
  animation-duration: 1.5s;
  animation-fill-mode: both;
}
.scrollin_blur.blur{
  animation-name: imageBlur;
  opacity: 1.0;
  transition: 1.2s;
}
@keyframes imageBlur {
  from {
    opacity: 0.0;
    filter: blur(10px);
  }
  to {
    opacity: 1.0;
    filter: blur(0px);
  }
}
.filter{
	top: 0;
	right: 0;
	width: 100%;
}
.filter1{
	z-index: 2;
}
.filter2{
	z-index: 1;
}

/* -------------------------------------------------- 
トップページ
 -------------------------------------------------- */

/* ----- ヘッダー ----- */
.index .main_header{
  width: 20%;
  min-width: 260px;
  box-sizing: border-box;
}
.index .main_header h1{
  max-width: 190px;
  margin: 0 auto;
}

.sub_page .main_header{
  width: 100%;
  box-sizing: border-box;
}
.sub_page .main_header h1{
  max-width: 200px;
  
  /*制作時追加*/
  position: relative;
    left: 50%;
    transform: translate(-50%, 0px);
}

/* ----- main_img ----- */
.main_img{
  width: 80%;
  max-width: calc(100% - 260px);
  height: calc(100vh - 120px);
  min-height: 700px;
  box-sizing: border-box;
}
.main_img_txt{
  bottom: 5%;
  left:-17%;
  z-index: 1;
}
.main_img_txt2{
  bottom: 5%;
  left:-17%;
  z-index: 0;
}
.main_img_txt h2, .main_img_txt2 h2{
  font-size: 80px;
  line-height: 1.2;
  text-indent: -4px;
  letter-spacing: 4px;
}
.main_img_txt > div, .main_img_txt2 > div{
  font-size: 22px;
  line-height: 1.2;
}

/* ----- scroll ----- */
#page_scroll{
	bottom: 0;
	margin: auto;
	right: 25px;
	z-index: 1;
	width: 40px;
	height: 120px;
}
#page_scroll a{
	width: 40px;
	height: 120px;
	box-sizing: border-box;
}
#page_scroll .scroll_u{
	width: 1px;
	height: 50px;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}
#page_scroll .scroll_u .scroll_bar{
	animation: lineb 2s ease 0s infinite;
  right: 8px;
}
@keyframes lineb{
	0% {
		bottom: 50px;
		height: 0;
	}
	20% {
		bottom: 0;
		height: 50px;
	}
	40% {
		bottom: 0;
		height: 0;
	}
	100% {
		bottom: 0;
		height: 0;
	}
}

/* ----- top_cms 1つ目 ----- */
.top_cms_item_svg{
  width: 330px;
  top: 40px;
  left: -40px;
  z-index: -1;
}

/* ----- content1 ----- */
.contents1_svg{
  width: 62px;
}

/* ----- content2 ----- */
#contents2_outer{
  position: relative;
}
.contents2_outer_bg{
  top: 0;
  right: 0;
  height: 70%;
  opacity: 0.5;
  z-index: -1;
}
.contents2_img{
  margin-left: -60px;
}
.contents2_item .contents_no{
  top: -20px;
  left: 10px;
}
.contents_no span{
  width: 50px;
  height: 2px;
  transform: rotate(-45deg);
  left: 5px;
  top: 0;
  bottom: 15px;
  margin: auto;
}

/* ----- content2 ----- */
#contents3_outer{
  position: relative;
}
.contents3_outer_bg{
  top: 0;
  left: 0;
  height: 70%;
  opacity: 0.5;
  z-index: -1;
}
.contents3_img{
  margin-right: -60px;
}
.contents3_item .contents_no{
  top: -20px;
  left: 60px;
}

/* ----- モーダルウィンドウ ----- */
.modal_wrap{
	top: 0;
	left: 0;
	opacity: 1.0;
	z-index: 999;
}
.modal_wrap .modal_scroll{
	overflow-y: auto;
}
.modal_wrap .close_bt{
	top: 20px;
	right: 20px;
	cursor: pointer
}

/* ----- top_cms ----- */
.top_cms_item{
  position: relative;
}
.top_cms_line{
  position: absolute;
  content: '';
  bottom: -20px;
  left: 50%;
  width: 40px;
  height: 2px;
  transform: translate(-50%, 0);
}
.top_cms_bg{
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.5;
  z-index: -1;
}

/* ----- moreボタン ----- */
.more_btn{
  cursor: pointer;
}
.more_btn .more_btn_before{
  position: absolute;
  top: calc(50% - 2px);
  right: -2em;
  transform: translateY(-2px) rotate(30deg);
  width: 12px;
  height: 1px;
}
.more_btn .more_btn_after{
  position: absolute;
  top: 50%;
  right: -2em;
  width: 70px;
  height: 1px;
}
.more_btn:hover .more_btn_before,
.more_btn:hover .more_btn_after{
  right: -3.5em;
}
.more_btn .more_btn_txt{
  transform: translateY(1px);
  display: block;
}

/* ----- slide show ----- */
#slideshow_area .swiper-slide{
  opacity: 1;
}
#slideshow_area .swiper-pagination{
  bottom: 40px;
}
#slideshow_area .swiper-pagination-bullet{
  width: 40px;
  height: 0;
  border: 3px solid;
  border-radius: 0;
}
#slideshow_area .swiper-slide-active.scaleanime{
  animation: zoom 0.8s forwards;
}
@keyframes zoom{
  0%{transform: scale(1);}
  100%{transform: scale(1.1);}
}

/* -------------------------------------------------- 
下層ページ
 -------------------------------------------------- */

/* ----- ページタイトル ----- */
#page_title::before{
	display: inline-block;
  content: "";
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.2);
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}
#page_title .page_title_inner{
	padding: 150px 20px;
}
#page_title .title_box{
  top: 60%;
  padding: 35px;
}

/* ----- ページャー ----- */
.pager li{
	margin: 0 10px;
}
.pager li a{
	width: 60px;
	height: 42px;
}

/* ----- カテゴリリスト ----- */
.cate_label{
	max-width: 160px;
	box-sizing: border-box;
}
.cate_list{
	width: calc(100% - 160px);
	box-sizing: border-box;
}
.cate_list li{
	max-width: 25%;
	min-width: 160px;
	box-sizing: border-box;
}

/* ----- page7 ----- */
#page7 .map{
	height: 420px;
}
#page7 .map iframe{
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

/* ----- page8 ----- */
#page8 #form dl dt label{
	cursor: pointer;
}
#page8 input[type="text"]{
	width: calc(100% - 10px);
	height: 20px;
	border: 1px solid #cccccc;
	background-color: #fcfcfc;
}
#page8 textarea{
	width: calc(100% - 10px);
	border: 1px solid #cccccc;
	background-color: #fcfcfc;
}
#page8 input:focus, #page8 textarea:focus{
	background-color: #ffffff;
}
#page8 button{
	text-indent: 4px;
	cursor: pointer;
}

/* ----- page9 ----- */
#page9 h3 .line {
  position: absolute;
  content: '';
  width: 30px;
  height: 1px;
  bottom: -1px;
  left: 0;
  transition: 0.5s;
}

/* ----- page10 ----- */
#page10 a::before{
	position: absolute;
  font-family: "Font Awesome 5 Free";
  content: "\f105";
	font-weight: 900;
	left: 10px;
}
#page10 a .line{
	position: absolute;
	content: '';
	width: 30px;
	height: 1px;
	bottom: -1px;
	left: 0;
	transition: 0.5s;
}
#page10 a:hover .line{
  width: 100%;
}

/* ---------- PC ---------- */
@media screen and (min-width:769px){

}

/* ---------- TB ---------- */
@media screen and (max-width: 768px){
  .index .main_header {
      width: 100%;
      min-width: 100%;
  }
  .main_img {
    width: 100%;
    max-width: 100%;
    height: 500px;
    min-height: 500px;
  }  
  .index .main_header h1 {
    max-width: 200px;
    margin: 0;
  }  
  #menu_bt {
    top: 25px;
    right: 25px;
  }
  .index #menu_bt.trans {
    transform: translateX(0);
  }
  .main_img_txt, .main_img_txt2{
    left: 5%;
    bottom: -7%;
    right: auto;
  }
  .main_img_txt h2, .main_img_txt2 h2{
    font-size: 54px;
  }
  .main_img_txt > div, .main_img_txt2 > div{
    font-size: 20px;
  }
  .top_cms_item_svg {
    width: 230px;
  }
  .contents1_svg {
    width: 46px;
  }
  .contents2_item .contents_no {
    top: 0px;
  }
  .contents3_item .contents_no {
    top: 0;
    left: 10px;
  }
  .contents2_img {
    margin-left: 0;
  }
  .contents3_img {
    margin-right: 0;
  }  
  .more_btn:hover .more_btn_before,
  .more_btn:hover .more_btn_after{
    right: -2em;
  }
  .page_content{
    width: 94%;
  }
  
  
	#page_top{
    right: 0px;
	}
	#page_title .page_title_inner{
			padding: 130px 20px;
	}
	#page10 a:hover::after{
    width: 30px;
  }
}

/* ---------- SP ---------- */
@media screen and (max-width: 667px){
  .index #menu_bt, .sub_page #menu_bt {
    top: 15px;
    right: 15px;
    left: auto;
  }
  .main_img {
    height: 70vw;
    min-height: 70vw;
  }
  .main_img_txt h2, .main_img_txt2 h2 {
    font-size: 32px;
  }
  .main_img_txt > div, .main_img_txt2 > div{
    font-size: 16px;
  }
  .top_cms_item_svg {
    width: 150px;
  }
  .contents1_svg {
      width: 36px;
  }
  .contents2_item .contents_no {
    left: 0px;
  }
  .contents3_item .contents_no {
    left: 0px;
  }
  
  
  

  .more_btn .more_btn_after {
    width: 50px;
  }
  .footer_img{
    height: 60vw;
  }


	#page_top {
    bottom: 40px;
	}
	#page_top a{
		width: 30px;
	}
	#page_title .page_title_inner {
    padding: 100px 20px;
	}
	#page_title .title_box {
    padding: 25px;
    width: 82%!important;
	}
	.pager li:not(.prev){
		display: none;
	}
	.pager li a {
    width: 120px;
    height: 50px;
	}
	.cate_label{
		max-width: 100%;
		box-sizing: border-box;
	}
	.cate_label p{
		padding: 0;
		margin: 0;
	}
	.cate_list li{
		max-width: 100%;
	}
	#page8 button{
		max-width: 130px;
	}
}
