/*----------------------------------------------------
　reset
------------------------------------------------------*/
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {  
    margin:0; 
    padding:0; 
} 
table { 
    border-collapse:collapse; 
    border-spacing:0; 
} 
fieldset,img {  
    border:0; 
} 
address,caption,cite,code,dfn,em,th,var {
    font-style:normal; 
    font-weight:normal; 
}
strong {
    font-style:normal; 
    font-weight:bold;
}
li { 
    list-style:none; 
} 
caption,th { 
    text-align:left; 
} 
img{border:none; vertical-align:top;max-width:100%;}
/*----------------------------------------------------
　
------------------------------------------------------*/
body{
	position: relative;
	text-align:center;
	font-family: source-han-sans-japanese, sans-serif;
}
body,th,td{font-size:25px; line-height:1.8; color:#282828;}
a{color:#282828; text-decoration:underline;}
a:hover{outline:none;transition:0.3s;}
hr{clear:both;}
input,textarea{font-size:100%;}
script,iframe{margin:0; padding:0; border:none;}
textarea,input[type=text],input[type=password]{padding:0.2em;}
input[type=submit]{padding:0.2em;}
input[type=button]{padding:0.2em;}
input[type=radio]{margin-right:3px;}
input[type=checkbox]{margin-right:3px;}

@media screen and (max-width: 1680px) {
body,th,td{font-size:16px;}
}
@media screen and (max-width: 1280px) {
body,th,td{font-size:14px;}
}
/*----------------------------------------------------
　font memo
------------------------------------------------------*/

/*Source Han Sans JP Bold
font-family: source-han-sans-japanese, sans-serif;
font-weight: 700;
font-style: normal;
*/
/*Source Han Sans JP Medium
font-family: source-han-sans-japanese, sans-serif;
font-weight: 500;
font-style: normal;
*/
/*Source Han Sans JP Regular
font-family: source-han-sans-japanese, sans-serif;
font-weight: 400;
font-style: normal;
*/
/*Chaparral Pro Regular
font-family: chaparral-pro, serif;
font-weight: 400;
font-style: normal;
*/
/*A-OTF Futo Min A101 Pr6N
font-family: a-otf-futo-min-a101-pr6n, serif;
font-weight: 400;
font-style: normal;
*/
/*A-OTF Ryumin Pr6N L-KL
font-family: a-otf-ryumin-pr6n, serif;
font-weight: 300;
font-style: normal;
*/
/*Futura PT Cond Bold
font-family: futura-pt-condensed, sans-serif;
font-weight: 700;
font-style: normal;
*/

/*----------------------------------------------------
　
------------------------------------------------------*/
a#top{
	font-size:1px;
	line-height:1;
	visibility:hidden;
}
.pc{
	display:block;
}
.sp{
	display:none;
}
img.pc{
  display: inline;
}
img.sp{
	display:none;
}
@media screen and (max-width: 1280px) {
.pc{
	display:none;
}
.sp{
	display:block;
}
img.pc{
  display: none;
}
img.sp{
	display:inline;
}
}

/*
全体1920px
コンテンツ1680px(約88％)
フッターコンテンツ1272px
各コンテンツ間120px

スマホ　コンテンツ90％
フォント14px
*/

/*----------------------------------------------------
　header
------------------------------------------------------*/
header {
	position:relative;
	width: 100%;
	z-index: 999;
  min-height: 118px;
	background:#fff;
	padding:0 0;
}
header .container{
	position:relative;
	margin:0 auto;
	padding:0 !important;
}

header h1{
	font-size:93%;
	text-align:left;
  margin-top: 40px;
  margin-left: 60px;
	margin-bottom:1em;
	font-weight:normal;
}
header #logo {
	position:relative;
	float: left;
	width:60%;
	max-width:360px;
	z-index:9;
}
header #logo img{
	width:100%;
	max-width:360px;
}
header.fixed {
	background-color: rgba(255, 255, 255, 0.9);
}

@media screen and (max-width: 1360px) {
header {
  min-height: 94px;
}
header h1{
  margin-top: 25px;
  margin-left: 30px;
}
}
@media screen and (max-width: 1280px) {
header {
	position: fixed;
	width: 100%;
  min-height: 65px;
  z-index: 999;
	background:#fff;
}
header #logo {
	float: none;
  margin-top: 1em;
  line-height:1.4;
}

}
@media screen and (max-width: 800px) {
}
@media screen and (max-width: 640px) {
}
@media screen and (max-width: 480px) {
}

/*
---------------------------------*/

.navigation.open {
	margin-top:64px;
	opacity: 0.9;
	visibility: visible !important;
	-moz-transition: opacity 0.9s;
	-o-transition: opacity 0.9s;
	-webkit-transition: opacity 0.9s;
	transition: opacity 0.9s;
}
.navigation {
	clear:both;
	overflow:hidden;
}
.navigation li {
	float:left;
  font-size: 19px;
}
.navigation a {
	color: #000;
	text-decoration:none;
}
@media screen and (max-width: 1360px) {
.navigation li {
  font-size: 17px;
}
}
/*
--------------*/
header .pc{
  float: right;
  margin: 0 118px 0 auto;
}
header .pc .navigation ul.menu{
  float: left;
  margin-right: 1em;
	min-height:118px;
  position: relative;
}
header .pc .navigation ul.menu li{
	float:left;
	margin-left:1.5em;
  padding: 60px 0 0 ;
}
header .pc .navigation ul.menu li:nth-child(1){
	margin-left:0;
}
header .pc .navigation ul.menu li.access{
  position: absolute;
  right: 0;
  top: 30px;
  padding: 0;
}
header .pc .navigation ul.menu li a:hover{
  position: relative;
  width: 100%;
  border-bottom: 2px solid #bbaf5b;
}
header .pc .navigation ul.menu li a:hover:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 50%;
  height: inherit;
  border-bottom: 2px solid #73588b;
}
header .pc .navigation ul.menu2{
position: absolute;
top: 0;
right: 0;
width: 118px;
max-width: 118px;
}
header .pc .navigation ul.menu2 li{
float:none;
}
header .pc .navigation ul.menu2 li a{
display: block;
max-width: 118px;
min-height: 118px;
color: #fff;
font-size: 16px;
line-height: 21px;
text-align: center;
}
header .pc .navigation ul.menu2 li:nth-child(1){
background: #563265;
}
header .pc .navigation ul.menu2 li:nth-child(1) a:hover{
background: #785b84;
transition:0.3s;
}
header .pc .navigation ul.menu2 li:nth-child(1) a i{
margin-top: 1.3em;
}
header .pc .navigation ul.menu2 li:nth-child(2){
background: #bbaf5b;
}
header .pc .navigation ul.menu2 li:nth-child(2) a:hover{
background: #c9bf7c;
transition:0.3s;
}
header .pc .navigation ul.menu2 li:nth-child(2) a i{
margin-top: 1.95em;
}
header .pc .tel{
  float: left;
  width: 265px;
  padding: 35px 0 0;
  margin-right: 1em;
}
@media screen and (max-width: 1360px) {
header .pc{
  margin: 0 94px 0 auto;
}
header .pc .navigation ul.menu{
  float: left;
  margin-right: 1em;
	min-height:94px;
  position: relative;
}
header .pc .navigation ul.menu li{
	float:left;
	margin-left:1em;
  padding: 45px 0 0 ;
}
header .pc .navigation ul.menu li.access{
  position: absolute;
  right: 0;
  top: 15px;
  padding: 0;
}
header .pc .navigation ul.menu2{
width: 94px;
max-width: 94px;
}
header .pc .navigation ul.menu2 li a{
max-width: 94px;
min-height: 94px;
font-size: 14px;
}
header .pc .tel{
  padding: 20px 0 0;
}

}


/*
--------------*/
.navigation a:hover, .navigation a.active {
	color: #000;
}
.nav-toggle {
	display: none;
	height: 46px;
	overflow: hidden;
	position: fixed;
	right: 5%;
	text-indent: 100%;
	top: 15px;
	white-space: nowrap;
	width: 46px;
	z-index: 99999;
	-moz-transition: all 0.3s;
	-o-transition: all 0.3s;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
header.fixed .nav-toggle {
	top: 18px;
}
.nav-toggle:before, .nav-toggle:after {
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	-moz-transform: translateZ(0);
	-ms-transform: translateZ(0);
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	-moz-backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-moz-transition-property: -moz-transform;
	-o-transition-property: -o-transform;
	-webkit-transition-property: -webkit-transform;
	transition-property: transform;
}
.nav-toggle:before {
	background-color: #fff;
	-moz-transform: scale(1);
	-ms-transform: scale(1);
	-webkit-transform: scale(1);
	transform: scale(1);
	-moz-transition-duration: 0.3s;
	-o-transition-duration: 0.3s;
	-webkit-transition-duration: 0.3s;
	transition-duration: 0.3s;
}
.nav-toggle:after {
	background-color: #fff;
	-moz-transform: scale(0);
	-ms-transform: scale(0);
	-webkit-transform: scale(0);
	transform: scale(0);
	-moz-transition-duration: 0s;
	-o-transition-duration: 0s;
	-webkit-transition-duration: 0s;
	transition-duration: 0s;
}
.nav-toggle span {
	background-color: #999;
	bottom: auto;
	display: inline-block;
	height: 3px;
	left: 50%;
	position: absolute;
	right: auto;
	top: 50%;
	width: 28px;
	z-index: 10;
	-moz-transform: translateX(-50%) translateY(-50%);
	-ms-transform: translateX(-50%) translateY(-50%);
	-webkit-transform: translateX(-50%) translateY(-50%);
	transform: translateX(-50%) translateY(-50%);
}
.nav-toggle span:before, .nav-toggle span:after {
	background-color: #999;
	content: "";
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	-moz-transform: translateZ(0);
	-ms-transform: translateZ(0);
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	-moz-backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-moz-transition: -moz-transform 0.3s;
	-o-transition: -o-transform 0.3s;
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
}
.nav-toggle span:before {
	-moz-transform: translateY(-6px) rotate(0deg);
	-ms-transform: translateY(-6px) rotate(0deg);
	-webkit-transform: translateY(-6px) rotate(0deg);
	transform: translateY(-6px) rotate(0deg);
}
.nav-toggle span:after {
	-moz-transform: translateY(6px) rotate(0deg);
	-ms-transform: translateY(6px) rotate(0deg);
	-webkit-transform: translateY(6px) rotate(0deg);
	transform: translateY(6px) rotate(0deg);
}
.nav-toggle.close-nav:before {
	-moz-transform: scale(0);
	-ms-transform: scale(0);
	-webkit-transform: scale(0);
	transform: scale(0);
}
.nav-toggle.close-nav:after {
	-moz-transform: scale(1);
	-ms-transform: scale(1);
	-webkit-transform: scale(1);
	transform: scale(1);
}
.nav-toggle.close-nav span {
	background-color: rgba(255, 255, 255, 0);
}
.nav-toggle.close-nav span:before, .nav-toggle.close-nav span:after {
	background-color: #999;
}
.nav-toggle.close-nav span:before {
	-moz-transform: translateY(0) rotate(45deg);
	-ms-transform: translateY(0) rotate(45deg);
	-webkit-transform: translateY(0) rotate(45deg);
	transform: translateY(0) rotate(45deg);
}
.nav-toggle.close-nav span:after {
	-moz-transform: translateY(0) rotate(-45deg);
	-ms-transform: translateY(0) rotate(-45deg);
	-webkit-transform: translateY(0) rotate(-45deg);
	transform: translateY(0) rotate(-45deg);
}
.navigation .primary-nav {
	width:1000px;
	margin:0 auto;
	text-align:center;
}
.navigation .primary-nav a:hover{
	color:#fff !important;
	opacity:0.5;
}
.navigation li:nth-child(1){
}

@media screen and (max-width: 1280px) {
.nav-toggle {
	display: block;
}
.navigation {
	position: fixed;
	background:#fff;
	width: 90%;
	height: 100%;
  padding: 0 5%;
	top: 0;
	left: 0;
	z-index: 99999;
	visibility: hidden;
	opacity: 0;
	-webkit-transition: opacity 0.5s, visibility 0s 0.5s;
	transition: opacity 0.5s, visibility 0s 0.5s;
}
.navigation .primary-nav {
	position: relative;
	width:100%;
	top: 45%;
	-moz-transform: translateY(-45%);
	-ms-transform: translateY(-45%);
	-webkit-transform: translateY(-45%);
	transform: translateY(-45%);
}
.navigation li {
	float:none;
	display: block;
	width:100%;
  font-size: 14px;
	border:none;
	border-top:1px solid #ccc;
}
.navigation .primary-nav li:nth-child(1){
	float:none;
	display: block;
	width:100%;
	margin-bottom: 10px;
	border:none;
}
.navigation .primary-nav li:nth-child(7){
	float:none;
	display: block;	
	width:100%;
	margin-bottom: 10px;
	border:none;
}
.navigation li:before{
	content:"";
}
.navigation li:nth-child(1) span{
	display:block;
	font-size:81%;
}
.navigation a {
	display: block;
	font-size: 16px;
	margin: 0;
	padding:0.8em 0;
	color:#000;
	text-align: center;
}
.navigation .primary-nav a:hover{
	color:#000 !important;
}
}


@media screen and (max-width: 760px) {
.nav-toggle {
	height: 46px;
	overflow: hidden;
	position: fixed;
	right: 5%;
	text-indent: 100%;
	top: 5px;
	white-space: nowrap;
	width: 46px;
	z-index: 99999;
	-moz-transition: all 0.3s;
	-o-transition: all 0.3s;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
}
@media screen and (max-width: 480px) {
.nav-toggle {
	height: 46px;
	overflow: hidden;
	position: fixed;
	right: 5%;
	text-indent: 100%;
	top: 5px;
	white-space: nowrap;
	width: 46px;
	z-index: 99999;
	-moz-transition: all 0.3s;
	-o-transition: all 0.3s;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
}
@media screen and (max-width: 390px) {
.nav-toggle {
	height: 46px;
	overflow: hidden;
	position: fixed;
	right: 5%;
	text-indent: 100%;
	top: 5px;
	white-space: nowrap;
	width: 46px;
	z-index: 99999;
	-moz-transition: all 0.3s;
	-o-transition: all 0.3s;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
}
@media screen and (max-width: 360px) {
.nav-toggle {
	height: 44px;
	overflow: hidden;
	position: fixed;
	right: 5%;
	text-indent: 100%;
	top: 5px;
	white-space: nowrap;
	width: 44px;
	z-index: 99999;
	-moz-transition: all 0.3s;
	-o-transition: all 0.3s;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
header.fixed .nav-toggle {
	top: 8px;
}
.nav-toggle span {
	height:2px;
}
}
@media screen and (max-width: 320px) {
.nav-toggle {
	height: 38px;
	overflow: hidden;
	position: fixed;
	right: 5%;
	text-indent: 100%;
	top: 5px;
	white-space: nowrap;
	width: 38px;
	z-index: 99999;
	-moz-transition: all 0.3s;
	-o-transition: all 0.3s;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
header.fixed .nav-toggle {
	top: 0;
}
.nav-toggle span {
	height:2px;
}
}



/*----------------------------------------------------
　main
------------------------------------------------------*/
html{height: 100%;}
body{height: 100%;}

#indexmain{
position: relative;
overflow: hidden;
height: 100%;
max-height:878px;
  margin: 0 auto;
  background-attachment: fixed;
  background-position: center top;
  background-repeat: no-repeat;
  z-index: -1;
  box-sizing: inherit;
}
.bg-slider {
  background-image: url('img/index_main02.jpg');
position: relative;
	width: 100vw;
	height: 100vh;
	background-position:center center;
  background-attachment: fixed;
	background-size: cover;
	display: flex;
	align-items: center;
	justify-content: center;
}
.bg-slider-sp {
background-image: url('img/index_main02_sp.jpg');
position: relative;
	width: 100vw;
	height: 100vh;
	background-position:center center;
  background-attachment: fixed;
	background-size: 100% auto;
	display: flex;
	align-items: center;
	justify-content: center;
}
/*スクロールするコンテンツ*/
#indexmain h2 {
position:absolute;
top: 0;
width: 100%;
/*height: 100%;
max-height:  878px;*/
height:878px;
line-height: 1;
background: none;
z-index: 1;
}
#indexmain h2 img{
/*position: relative;
top: 45%;*/
max-width: 776px;
vertical-align: middle;
}
#indexmain h2 span{
display: block;
line-height: 1;
}
#indexmain h2 span.catch1{
position: relative;
top: 38%;
filter: drop-shadow(3px 3px 5px #000);
}
#indexmain h2 span.catch2{
position: relative;
top: 39%;
filter: drop-shadow(3px 3px 5px #000);
}
@media screen and (max-width: 1280px) {
#indexmain{
padding: 65px 0 0 ;
}
#indexmain h2{
top: 65px;
}
}
@media screen and (max-width: 800px) {
#indexmain{
max-height:668px;
}
#indexmain h2{
width: 70%;
height:668px;
left: 15%;
}
}

@media screen and (max-width: 640px) {
#indexmain{
max-height:400px;
}
#indexmain h2{
height:400px;
}
}
@media screen and (max-width: 480px) {
#indexmain{
max-height:350px;
}

.bg-slider-sp {
background-image: url('img/index_main02_sp.jpg');
position: relative;
	width: 100vw;
	height: 100vh;
	background-position:center top;
  background-attachment: fixed;
	background-size: 100% auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

#indexmain h2{
width: 70%;
height:350px;
left: 15%;
}
}
@media screen and (max-width: 430px) {
#indexmain{
max-height:260px;
}
#indexmain h2{
height:260px;
}
}
@media screen and (max-width: 330px) {
#indexmain{
max-height:200px;
}
#indexmain h2{
height:200px;
}
}
/*----------------------------------------------------
　
------------------------------------------------------*/








/*----------------------------------------------------
　#foot-contact
------------------------------------------------------*/
#foot-contact{
clear: both;
overflow: hidden;
text-align: center;
margin: 0 auto 50px;
padding: 50px 0 0;
border-top: 1px solid #bebebe;
}
#foot-contact h3{
margin: 0 0 20px;
font-size: 41px;
font-family: a-otf-futo-min-a101-pr6n, serif;
}

#foot-contact ul{
overflow: hidden;
max-width: 840px;
margin: 0 auto;
}
#foot-contact ul li{
float: left;
width: 410px;
}
#foot-contact ul li:nth-child(1){
margin-right: 20px;
}
#foot-contact ul li:nth-child(2) a{
position: relative;
display: block;
color: #fff;
line-height: 86px;
text-align: center;
text-decoration: none;
background: #563265;
}
#foot-contact ul li:nth-child(2) a::before{
font-family: "Font Awesome 5 Free";
content: '\f061';
font-weight: 600;
position: absolute;
right: 30px;
top: 0em;
font-size: 50%;
}
@media screen and (max-width: 1280px) {
#foot-contact{
width: 90%;
margin: 0 auto 50px;
}
#foot-contact h3{
font-size: 25px;
line-height: 1.4;
}
#foot-contact ul li{
float: none;
width: 100%;
margin: 0 0 1em;
text-align: center;
}
#foot-contact ul li:nth-child(1) img{
max-width: 80%;
}
#foot-contact ul li:nth-child(2) a{
line-height: 56px;
}
}

@media screen and (max-width: 1280px) {
#foot-contact h3{
font-size: 21px;
}
}


/*----------------------------------------------------
　
------------------------------------------------------*/

footer{
clear: both;
overflow: hidden;
padding: 100px 0;
background: #594c6b;
}

footer .cont{
max-width: 1196px;
margin: 0 auto;
color: #fff;
}

footer .adder{
overflow: hidden;
max-width: 1000px;
margin: 0 auto 50px;
text-align: left;
}
footer .adder dt{
float: left;
width: 45%;
margin-right: 3%;
text-align: right;
}
footer .adder dt img{
width: 100%;
}
footer .adder dd{
float: left;
width: 52%;
font-size: 17px;
}


@media screen and (max-width: 1280px) {
footer{
padding: 50px 0;
}
footer .cont{
width: 90%;
}
footer .adder{
margin: 0 auto 1em;
text-align: center;
}
footer .adder dt{
float: none;
width: 100%;
margin: 0 auto 10px;
}
footer .adder dd{
float: none;
width: 100%;
font-size: 14px;
}
}



footer a{
color: #fff;
text-decoration: none;
}

footer nav.pc{
float: left;
width: 53%;
font-size: 19px;
}
footer nav.pc ul{
overflow: hidden;
}
footer nav.pc ul li{
float: left;
width: 33%;
line-height: 1.1;
margin: 0 0 45px;
text-align: center;
box-sizing: inherit;
border-left: 1px solid #fff;
}
footer nav.pc ul li:nth-child(3n){
border-right: 1px solid #fff;
}

footer nav.sp ul{

}

@media screen and (max-width: 1280px) {
footer nav.sp{
overflow: hidden;
width: 100%;
font-size: 14px;
}
footer nav.sp ul{
width: 48%;
margin: 0 0 1.5em;
border-top: 1px solid #fff;
}
footer nav.sp ul:nth-child(1){
float: left;
}
footer nav.sp ul:nth-child(2){
float: right;
}
footer nav.sp ul li{
text-align: center;
border-bottom: 1px solid #fff;
}
footer nav.sp ul:nth-child(2){
float: nene
}
}



footer .group{
float: right;
width: 44%;
max-width: 518px;
text-align: center;
border: 1px solid #fff;
}
footer .group h3{
padding: 0.3em;
font-size: 20px;
font-weight: normal;
background: #392e48;
border-bottom: 1px solid #fff;}
footer .group .add{
font-size: 14px;
font-family: a-otf-futo-min-a101-pr6n, serif;
}

footer .group .add{
padding: 0.5em;
}
footer .group h3 a i{
margin-left: 1em;
font-size: 60%;
vertical-align: middle;
}
footer .group h3 a:hover{
opacity: 0.8;
border-bottom: 1px solid #aca5b5;
}

@media screen and (max-width: 1280px) {
footer .group{
clear: both;
float: none;
width: 100%;
max-width: 518px;
margin: 0 auto;
}
footer .group h3{
font-size: 17px;
}
footer .group .add{
font-size: 14px;
}

}

@media screen and (max-width: 480px) {
.sp-del{display:none;}
.sp-en{display: block;}
}

/*----------------------------------------------------
　
------------------------------------------------------*/
#copyright{
clear: both;
height: 80px;
font-size: 14px;
background: #fff;
position: relative;
}
#copyright .cont{
max-width: 1280px;
margin: 0 auto;
text-align: left;
position: relative;
line-height: 80px;
}
#copyright .cont .privacylink{
position: absolute;
right: 0;
top: 0;
}

#copyright .pagetop a{
position: absolute;
right: 0;
bottom: 0;
display: block;
width: 80px;
height: 80px;
color: #fff;
text-decoration: none;
text-align: center;
line-height: 80px;
background: #bbaf5b;
}



@media screen and (max-width: 1280px) {
#copyright{
font-size: 12px;
}
#copyright .cont{
width: 90%;
margin: 0 auto;
padding: 2.5em 0 0;

line-height: 1.5;
}

#copyright .cont .privacylink{
left: 0;
top: 0.5em;
}


#copyright .pagetop{
display: none;
}
}


.text-typhoon{
	max-width: 80%;
  text-align: center;
  padding-top: 30px;
  margin: 0 auto;
  color: red;
  font-size: 22px;
}

@media screen and (max-width: 480px) {
.text-typhoon{
	max-width: 85%;
	font-size: 16px;
}
}