/*** ----------------------------------------------------------------------------- 

reset

-----------------------------------------------------------------------------  ***/
.clearfix:after {
	content:".";
	display:block;
	visibility:hidden;
	clear:both;
	height:0.1px;
	font-size:0.1em;
	line-height:0;
}
.clearfix {
	display:inline-table;
	zoom:1;
}
/*Hides from IE-mac \*/
* html .clearfix {
	height:1%;
}
.clearfix {
	display:block;
}


:root {
	--main_color: #2B8A3F;
	--color_black: #000;
	--color_beige: #FCF6F1;
	--color_brown: #4D332A;
	--color_brown01: #41261D;
}


/* End hide from IE-mac */
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
	margin:0px;
	padding:0px;
}　
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;
}
ul {
	list-style:none;
}
ol li{
	list-style:none;
}
caption, th {
	text-align:left;
}
h1, h2, h3, h4, h5, h6 {
	font-size:100%;
	font-weight:normal;
}
q:before, q:after {
	content:'';
}
abbr, acronym {
	border:0;
	font-variant:normal;
}
sup {
	vertical-align:top;
}
sub {
	vertical-align:text-bottom;
}
input, textarea, select {
	font-family:inherit;
	font-size:inherit;
	font-weight:inherit;
}
input, textarea, select {
 *font-size:100%;
}
legend {
	color:#000000;
}
img {
	vertical-align:bottom;
	image-rendering: -webkit-optimize-contrast;
}
table caption {
	font-weight: bold;
	margin:0 0 5px;
}
/* iOSでのデフォルトスタイルをリセット */
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;
}
/*** ------------------------------------------------------------------------------ 

HTML5

-----------------------------------------------------------------------------  ***/
#header, footer, nav, section, article, figure, aside {
	display:block;
}
* {
	box-sizing:border-box;
}
i{
	margin: 0 5px 0 0;
}
img{
	max-width: 100%;
}

/*** ------------------------------------------------------------------------------ 

common

-----------------------------------------------------------------------------  ***/
html {
	font-size: 62.5%;
	overflow-x: hidden;
	height: 100%;
}
body {
	color: var(--color_black);
	line-height: 1.9;
	font-size: 1.6rem;
	font-family: 'Noto Sans JP', Hiragino Kaku Gothic ProN, "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", MS PGothic, "ＭＳ Ｐゴシック", Osaka, sans-serif;
	overflow-x: hidden;
}
@media (max-width:768px){
	body {
		font-size: 1.4rem;
	}	
}
.inner{
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}
.inner_in{
	max-width: 1130px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}
.inner_out{
	max-width: 1480px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}
.pc{ display: block;}
.sp{ display: none;}
@media (max-width:768px){
	.pc{ display: none;}
	.sp{ display: block;}
}


/*** ------------------------------------------------------------------------------ 

リンク

-----------------------------------------------------------------------------  ***/
/* 基本 */
a{
	color: var(--color_black);
	outline:none;
	-webkit-transition: 0.3s;
    -moz-transition: 0.3s;
    -o-transition: 0.3s;
    -ms-transition: 0.3s;
}
a:link {
	text-decoration: none;
}
a:visited {
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}
a:active {
	text-decoration: none;
}
a img {
	transition: 0.3s;
}

input[type=text],
textarea {
  -webkit-appearance: none;
}





/*** ------------------------------------------------------------------------------ 

header

-----------------------------------------------------------------------------  ***/

#header{
	position: absolute;
	left: 0;
	top: 0;
	z-index: 10;
	width: 100%;
	padding: 0;
	box-sizing: border-box;
	transition: 0.3s;
}
#header.fix{
	top: 0;
	padding: 0;
}
#header.is_active{}
#header .header-cont{
	display: block;
	position: relative;
}
#header.is_active .header-cont{
	box-shadow: none;
}
#header.fix .header-cont{
	border-radius: 0;
}
#header .header-cont .h-logo{
	position: absolute;
	left: 30px;
	top: 25px;
}
#header .header-cont nav{
	position: fixed;
	right: 0%;
	top: 0;
	z-index: 10001;
	background: rgba(255,247,232,0.7);
	width: 100%;
	height: 100vh;
	padding: 0;
	box-sizing: border-box;
	transition: 0.3s;
	visibility: hidden;
	opacity: 0;
}
#header.is_active .header-cont nav{
	visibility: visible;
	opacity: 1.0;
}
#header .header-cont nav .nav-cont{
	max-width: 520px;
	height: 100vh;
	background: var(--main_color);
	margin: 0 0 0 auto;
}
#header .header-cont nav ul.parent{
	display: block;
}
#header .header-cont nav ul li.nav-contact{
	margin: 40px 0 0 0;
	text-align: center;
}
#header .header-cont nav ul li.nav-contact a{
	padding: 10px 80px;
}

#header .header-cont nav ul li a{
	font-size: 1.6rem;
}
@media (max-width:768px){
	#header .header-cont .h-logo{
		width: 71px;
		left: 20px;
		top: 10px;
	}
}

#header #menu{
	position: fixed;
	right: -60px;
	right: -35px;
	top: -70px;
	top: -50px;
	z-index:9999;
	color: #fff;
	font-size:0.76em;
	height: 156px;
	overflow:hidden;
	border-radius: 50%;
	background: var(--main_color);
	transition: 0.3s;
	cursor: pointer;
}
#header.fix #menu{
	right: 10px;
}
#header.is_active #menu{}
#header #menu:before{
	content:"メニュー";
	display:block;
	position:absolute;
	left: 32px;
	bottom:28px;
	width:80px;
	text-align: center;
	font-size:1.4rem;
	font-weight: bold;
	z-index:999;
}
#header #menu.close{
	background: url(../img/#header_menu_bg02.png) center 40px no-repeat #664397;
	background-size: auto 7px ;
}
#header #menu a{
  display: inline-block;
  position: relative;
  width: 168px;
  height:156px;
  overflow:hidden;
}

#header #menu::after{
	position: absolute;
	right: 6px;
	top: 18px;
	content: '';
	width: 2px;
	height: 2px;
	background: #0E6A95;
	transition: 0.3s;
}
#header #menu a::before{
	position: absolute;
	right: 6px;
	top: 12px;
	content: '';
	width: 2px;
	height: 2px;
	background: #0E6A95;
	transition: 0.3s;
}
#header #menu a::after{
	position: absolute;
	right: 6px;
	top: 24px;
	content: '';
	width: 2px;
	height: 2px;
	background: #0E6A95;
	transition: 0.3s;
}
#header.is_active #menu::after,
#header.is_active #menu a::before,
#header.is_active #menu a::after{
	background: #fff;
}
#header #menu a span{
	display: block;
	position: absolute;
	top: 55%;
	left: 35%;
	width: 46px;
	height: 3px;
	margin: -3px 0 0 -10px;
	background: transparent;
	transition: .2s;
	text-indent:-9999px;
	border-radius: 2px;
}
#header #menu a span:before,
#header #menu a span:after{
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 46px;
  height: 3px;
  background: #fff;
  transition: .3s;
	border-radius: 2px;
}
#header #menu a span:before{
  margin-top: -7px;
}
#header #menu a span:after{
  margin-top: 6px;
}
#header #menu a .close{
  background: transparent;
}
#header #menu a .close:before,
#header #menu a .close:after{
  margin-top: 0;
}
#header #menu a .close:before{
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
#header #menu a .close:after{
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
}
#header .header-cont nav .nav-cont{
	padding: 50px 100px;
	box-sizing: border-box;
	position: relative;
}
#header .header-cont nav .nav-cont ul li {
	border-bottom: 1px solid rgba(255,255,255,0.5);
}
#header .header-cont nav .nav-cont ul li a {
	text-decoration: none;
	color: #fff;
	display: block;
	font-size: clamp(1.6rem, 2.0vw, 2.0rem);
	padding: 22px 0 20px;
	line-height: 1.5;
	transition: 0.3s;
	letter-spacing: 0.1vw;
}
#header .header-cont nav .nav-cont ul li a span{
	display: block;
	font-family:"Times New Roman", Times, "serif";
	font-size: 1.6rem;
	line-height: 1.0;
	letter-spacing: 0.1vw;
}
#header .header-cont nav .nav-cont .btn a{
	margin: 50px auto 0;
	background: #fff;
	color: var(--main_color);
}
#header .header-cont nav .close-btn{
	position: absolute;
	right: 38px;
	top: 22px;
	width: 48px;
	color: #fff;
	text-align: center;
	cursor: pointer;
	background: url("../img/close.svg") no-repeat center top / 100% auto;
	padding: 30px 0 0;
}
@media (min-width:769px){
	#header .header-cont nav .nav-cont ul li a:hover{
		transform: translateX(5px);
	}
	#header .header-cont nav .nav-cont .btn a:hover{
		border:1px solid #fff;
		background: var(--main_color);
		color: #fff;
	}
}
@media (max-width:768px){
	#header #menu{
		position: fixed;
		right: -30px;
		top: -30px;
		height: 110px;
	}
	#header #menu a{
		width: 110px;
		height:110px;
	}
	#header #menu a span{
		width: 28px;
		left: 37.5%;
		top: 52%;
	}
	#header #menu a span:before,
	#header #menu a span:after{
		width: 28px;
		height: 2px;
	}
	#header #menu:before{
		left: 20px;
		bottom:20px;
		width:50px;
		font-size:1.1rem;
	}
	#header #menu a span:after{
		margin-top: 3px;
	}
	#header .header-cont nav .nav-cont{
		padding: 40px 40px 30px
	}
	#header .header-cont nav .nav-cont ul li a {
		font-size: 2.0rem;
		font-weight: 500;
		padding: 18px 0 16px;
	}
	#header .header-cont nav .nav-cont ul li a span{
		font-size: 1.8rem;
		letter-spacing: 0.4vw;
	}
	#header .header-cont nav .nav-cont .btn a{
		margin: 35px auto 0;
		padding: 15px 20px;
	}
	#header .header-cont nav .close-btn{
		right: 15px;
		top: 15px;
		width: 38px;
		background: url("../img/close.svg") no-repeat center top / 100% auto;
		padding: 25px 0 0;
		font-size: 1.2rem;
	}
}


#header .header-cont nav ul > li,
#header .header-cont nav .btn{
	opacity: 0;
}
#header.is_active .header-cont nav ul > li:nth-child(1){
	animation: nav-sp 0.8s cubic-bezier(0.32, 0.1, 0, 1) 0.2s forwards;
}
#header.is_active .header-cont nav ul > li:nth-child(2){
	animation: nav-sp 0.8s cubic-bezier(0.32, 0.1, 0, 1) 0.25s forwards;
}
#header.is_active .header-cont nav ul > li:nth-child(3){
	animation: nav-sp 0.8s cubic-bezier(0.32, 0.1, 0, 1) 0.3s forwards;
}
#header.is_active .header-cont nav ul > li:nth-child(4){
	animation: nav-sp 0.8s cubic-bezier(0.32, 0.1, 0, 1) 0.35s forwards;
}
#header.is_active .header-cont nav ul > li:nth-child(5){
	animation: nav-sp 0.8s cubic-bezier(0.32, 0.1, 0, 1) 0.4s forwards;
}
#header.is_active .header-cont nav ul > li:nth-child(6){
	animation: nav-sp 0.8s cubic-bezier(0.32, 0.1, 0, 1) 0.45s forwards;
}
#header.is_active .header-cont nav .btn{
	animation: nav-sp 0.8s cubic-bezier(0.32, 0.1, 0, 1) 0.5s forwards;
}
@keyframes nav-sp{
	0%{
		transform: translateY(50px);
		opacity: 0;
	}
	100%{
		transform: translate(0);
		opacity: 1;
	}
}






/*** ------------------------------------------------------------------------------ 

footer

-----------------------------------------------------------------------------  ***/
footer{
	background: var(--main_color);
	text-align: center;
	padding: 90px 0 0;
	color: #fff;
}
footer .company-name{
	font-size: clamp(2.1rem, 2.5vw ,3.0rem);
	font-weight: 600;
	line-height: 1.0;
	margin: 0 0 18px;
	letter-spacing: 0.2vw;
}
footer .addr{
	font-size: clamp(1.4rem, 2.0vw ,1.6rem);
	font-weight: 300;
	line-height: 1.9;
	letter-spacing: 0.05vw;
}
footer .copyright{
	font-size: 1.2rem;
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	padding: 60px 0 25px;
	letter-spacing: 0.05vw;
}



/*** ------------------------------------------------------------------------------ 

headline

-----------------------------------------------------------------------------  ***/
.headline .en{
	font-size: clamp(1.8rem, 2.0vw,  2.2rem);
	font-weight: bold;
	font-family:"Times New Roman", Times, "serif";
	color: var(--main_color);
	line-height: 1.0;
	margin: 0 0 5px;
	letter-spacing: 0.1vw;
}
.headline .ja{
	font-size: clamp(3.2rem, 3.0vw,  3.4rem);
	font-weight: bold;
	color: var(--color_brown01);
	line-height: 1.5;
	margin: 0;
	letter-spacing: 0.1vw;
}



/*** ------------------------------------------------------------------------------ 

btn

-----------------------------------------------------------------------------  ***/
.btn{}
.btn a{
	border: 1px solid var(--main_color);
	background: var(--main_color);
	color: #fff;
	display: block;
	text-align: center;
	max-width: 300px;
	width: 100%;
	padding: 20px 25px;
	font-size: 1.8rem;
	font-weight: 600;
	border-radius: 40px;
	text-decoration: none;
	cursor: pointer;
	transition: 0.3s;
	letter-spacing: 0.1vw;
}
@media (min-width:769px){
	.btn a:hover{
		background: #fff;
		color: var(--main_color);
	}	
}




/*** ------------------------------------------------------------------------------ 

ページ内リンクズレ対策

-----------------------------------------------------------------------------  ***/
.anchor{
    display: block;
    padding-top: 70px;
    margin-top: -70px;
}


/*** ------------------------------------------------------------------------------ 

scroll animation

-----------------------------------------------------------------------------  ***/
/* fadeUp */
.fadeUp{
	animation-name:fadeUpAnime;
	animation-duration:1.0s;
	animation-fill-mode:forwards;
	opacity:0;
}
@media all and (-ms-high-contrast:none){
	*::-ms-backdrop, .fadeUp{
		opacity:1;
	}
}


@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(150px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.fadeUpTrigger{
    opacity: 0;
}
@media all and (-ms-high-contrast:none){
	*::-ms-backdrop, .fadeUpTrigger{
		opacity:1;
	}
}


/* その場で */
.fadeIn{
	animation-name:fadeInAnime;
	animation-duration:1.5s;
	animation-fill-mode:forwards;
	opacity:0;
}
@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


/*** ------------------------------------------------------------------------------ 

流れるテキスト

-----------------------------------------------------------------------------  ***/
/*全共通*/

.slide-in {
	overflow: hidden;
    display: inline-block;
}

.slide-in_inner {
	display: inline-block;

}

/*左右のアニメーション*/
.leftAnime{
    opacity: 0;/*事前に透過0にして消しておく*/
}

.slideAnimeLeftRight {
	animation-name:slideTextX100;
	animation-duration:0.8s;
	animation-fill-mode:forwards;
    opacity: 0;
}

@keyframes slideTextX100 {
  from {
	transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.slideAnimeRightLeft {
	animation-name:slideTextX-100;
	animation-duration:0.8s;
	animation-fill-mode:forwards;
    opacity: 0;
}


@keyframes slideTextX-100 {
  from {
	transform: translateX(100%);/*要素を右の枠外に移動*/
    opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}


