﻿@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@200;500&family=Noto+Sans+JP:wght@400;700&display=swap');

/* CSS Document */

/*** all ***/

*:focus {outline:none;}
body{-webkit-text-size-adjust: 100%;}
body, .font_sans-serif{
	font-family: 'Noto Sans JP', 'Comfortaa', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
}

.font_mon{
	font-family: 'Montserrat', 'Noto Sans JP', 'Comfortaa', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
}
.font_mon_l{
	font-family: 'Montserrat', 'Noto Sans JP', 'Comfortaa', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
	font-weight: 200
}

.font_bold{
	font-weight: 700
}

input[type="submit"],
input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
  display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
  outline-offset: -2px;
}
textarea{overflow: auto}

#page_top{
}

.hvr_trans:hover{
	transform: translateY(-5px);
}

#loader{
	z-index: 7
}
#loader .count{
	font-size: 70px
}

.fadein .fade_box{
	opacity: 0;
	transform: translateY(20px);
	transition: 1s;
	transition-property: opacity, transform
}
.fadein .fade_box.active{
	opacity: 1;
	transform: none
}

/*** header ***/

header::before{
	position: absolute;
	content: "";
	width: 200px;
	height: 5px;
	left: 50px;
	top: 0;
	background-color: currentColor
}
#header.active{
	position: fixed;
	top: 0;
	left: 0;
	z-index: 5;
	background-color: var(--white);
}
#header.active .logo_wrap{
	width: 170px
}

#pc_nav li a.active{
	position: relative;
}
#pc_nav li a.active::before{
	position: absolute;
	content: "";
	width: 8px;
	height: 8px;
	left: 0;
	right: 0;
	bottom: -5px;
	background-color: currentColor;
	margin: auto;
	border-radius: 10px
}
#pc_nav li.active a:hover{
	transform: none
}

#sp_nav{
	padding-top: 40px;
	top: 0;
	left: 0;
	z-index: 5;
	background-color: var(--color1);
}
#header_sns{
	background-color: transparent;
	border-radius: 3px;
}
#header_sns li{
	width: 30px!important
}
.menu_stick{
	top: 8px;
	right: 20px;
	width: 40px;
	height: 40px;
	z-index: 6
}
.menu_stick::before, .menu_stick::after{
	position: absolute;
	content: "";
	width: 30px;
	height: 1px;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	background-color: currentColor;
	transition: 0.3s
}
.menu_stick::before{
	bottom: 10px;
}
.menu_stick::after{
	top: 10px;
}
.menu_stick.trans::before{
	transform: rotate(135deg);
	bottom: 0;
	color: var(--white);
}
.menu_stick.trans::after{
	transform: rotate(-135deg);
	top: 0;
	color: var(--white);
}

/*** footer ***/

#footer_info .footer_bg{
	bottom: 0;
	right: 0;
	background-color: var(--color3);
	/* background-image: linear-gradient(125deg, var(--color1), var(--color4)); */
}
#footer_info #map iframe{
	display: block;
	width: 100%!important;
	height: 100%!important
}
#footer_info .info_title{
	top: 0;
	left: 10%;
	color: var(--white);
	opacity: 1;
	font-weight: 900;
}
footer .footer_item{
	background-color: rgba(255,255,255,0.1)
}

#page_top{
	width: 92px;
	height: 92px;
	right: 0;
	bottom: 0;
	z-index: 4;
	cursor: pointer;
	background-color: #eff6f6;
	background-image: linear-gradient(125deg, var(--color1), var(--color3));
}
#page_top::before{
	position: absolute;
	content: "";
	width: 15px;
	height: 15px;
	border-left: solid 2px #fff;
	border-top: solid 2px #fff;
	transform: rotate(45deg);
	top: 10px;
	right: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}

#bottom_tel{
	right: 92px;
	bottom: 0;
	z-index: 4;
}
#bottom_tel a{
	height: 92px;
	background-color: #eaf5ff;
}

/*** top ***/

#main_img{
	height: 800px
}
#con_nav ul{
	margin-top: -50px;
	z-index: 3
}
#con_nav .nav_border{
	width: 1px;
	height: 100px;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto
}

#top_contents1{
	margin-top: -90px
}
#top_contents1 .info_title{
	top: 50px;
	left: 20%;
}

#top_contents3 .con3_bg{
	top: 150px;
	bottom: 0;
	background-image: linear-gradient(125deg, var(--color2), var(--color4));
}
#top_contents3 .con3_no {
    font-size: 80px;
    left: 20px;
    bottom: -40px;
    color: var(--color1);
    text-shadow: var(--color2) 1px 1px 0, var(--color2) -1px -1px 0, var(--color2) -1px 1px 0, var(--color2) 1px -1px 0, var(--color2) 0px 1px 0, var(--color2) 0 -1px 0, var(--color2) -1px 0 0, var(--color2) 1px 0 0;
}

#top_contents3 .con_before{
	width: 40px;
	height: 1px;
	left: 0;
	bottom: 0;
}

#top_cms{
	z-index: 0
}
#top_cms .cms_before{
	width: 100px;
	height: 1px;
	left: 0;
	right: 0;
	bottom: -1px;
	margin: auto
}
#top_cms .cms_box:last-of-type{
	margin-bottom: 0;
	border-bottom: none
}
#top_cms .cms_box:last-of-type .cms_before{
	display: none
}

.more a{
	padding-right: 60px
}
.more a::before{
	position: absolute;
	content: "";
	width: 40px;
	height: 40px;
	border: solid 1px currentColor;
	border-radius: 50%;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	transition: 0.3s
}
.more a::after{
	position: absolute;
	content: "";
	width: 8px;
	height: 8px;
	border-top: solid 1px currentColor;
	border-right: solid 1px currentColor;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
	transform: rotate(45deg)
}
.more a:hover::before{
	transform: scale(1.3);
	background-color: currentColor
}
.more a:hover::after{
	border-color: #fff
}

/*** under_page ***/

.under_page{
	top: 20px
}
.under_page.active{
	opacity: 1;
	top: 0
}
#page_title .title_img{
	height: 400px
}
#page_title .title_wrap{
	margin-top: -20px;
	max-width: 600px;
}
#page_title .title_before{
	width: 100px;
	height: 3px;
	left: 0;
	right: 0;
	bottom: 0;
}

.cate_list li{
	box-sizing: border-box;
	max-width: 100%;
}
.cate_list li a::before{
	position: absolute;
	content: "";
	width: 5px;
	height: 5px;
	border-top: solid 1px currentColor;
	border-right: solid 1px currentColor;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
	transform: rotate(45deg)
}
.pager li a{
	height: 60px;
	line-height: 60px;
}
.pager li.prev a, .pager li.next a{padding: 0 20px}
.pager li:not(.prev) a,.pager li:not(.next) a{width: 60px;}

/*** page10 ***/

#page10 .sitemap_wrap a::before{
	position: absolute;
	content: "";
	width: 50px;
	height: 1px;
	left: 0;
	bottom: -1px;
	background-color: currentColor;
	transition: 0.3s
}
#page10 .sitemap_wrap a:hover::before{
	width: 100%
}

/*** IE ***/

@media all and (-ms-high-contrast:none) {
}

.float_right{
	float: right
}
.float_left{
	float: left
}
.float_clear{
	float: none
}
.clearfix::after{
	clear:both;
	content:".";
	visibility:hidden;
	display:block;
	height:0;
}
/*ここからタブレット用（780px以下）環境の設定
---------------------------------------------------------------------------*/
/*表示を切り替えるウィンドウサイズの指定*/
@media screen and (max-width: 768px){
	
header::before{
	width: calc(100% - 40px);
	left: 20px;
}
#main_img{
	height: 100vw
}
#con_nav{
	padding-bottom: 300px
}
#top_contents1{
	margin-top: -150px
}
#top_contents1 .info_title{
	top: calc(-60vw - 45px);
	left: 0
}
#top_contents1 .con1_img{
	height: 60vw;
	margin-bottom: 30px;
}
#page_title .title_img{
	height: 40vw
}
#footer_info .footer_bg{
	height: calc(100% - 100px)
}
#footer_info #map{
	height: 400px
}
#page_top{
	width: 50px;
	height: 50px;
}
#bottom_tel{
	right: 50px;
}
#bottom_tel a{
	height: 65px;
}
.pager li:not(.prev):not(.next){
	display: none;
}
		
html, body{
	font-size: 16px;
}
	
.hvr_trans:hover{
	transform: none
}
#page10 .sitemap_wrap a::before{
	width: 100%;
}

.float_right_tb{
	float: right
}
.float_left_tb{
	float: left
}
.float_clear_tb{
	float: none
}
.clearfix_tb::after{
	clear:both;
	content:".";
	visibility:hidden;
	display:block;
	height:0;
}
}

/*ここからスマホ用（750px以下）環境の設定
---------------------------------------------------------------------------*/
/*表示を切り替えるウィンドウサイズの指定*/
@media screen and (max-width: 667px){

#header.active .logo_wrap{
	width: 130px
}
#top_contents1 .info_title{
	top: calc(-60vw - 132px);
	font-size: 34px;
}
#top_contents3 .con3_no{
	left: 0;
	font-size: 50px;
}
#top_contents3 .con_before{
	right: 0;
	margin: auto
}
#page_title .title_wrap {
    margin-top: -15px;
}
#bottom_tel{
	width: calc(100% - 50px)
}

.float_right_sp{
	float: right
}
.float_left_sp{
	float: left
}
.float_clear_sp{
	float: none
}
.clearfix_sp::after{
	clear:both;
	content:".";
	visibility:hidden;
	display:block;
	height:0;
}
}