@charset "utf-8";

/*body--------------------------------------------------------------*/

html
{
	font-size 		: 62.5%; 
}

body
{
	margin			: 0 auto;
	padding			: 0;
	min-width 		: 1000px;
	font			: 1.8rem/1.8 'Noto Sans JP', Meiryo, 'メイリオ', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', 'Lucida Grande', 'Lucida Sans Unicode',sans-serif;
	color			: #333333;
	background		: #FFF;
	text-align		: center;
	-webkit-text-size-adjust		: 100%;
    animation: bodyIn 2s ease 0s 1 normal;
    -webkit-animation: bodyIn 2s ease 0s 1 normal;
}


@keyframes bodyIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

@-webkit-keyframes bodyIn {
    0% {opacity: 0}
    100% {opacity: 1}
}



/*Opera用*/
html:first-child body
{
	font			: 1.8rem/1.8 'Noto Sans JP', Meiryo, 'メイリオ', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', 'Lucida Grande', 'Lucida Sans Unicode', sans-serif;
}

div,form,map
{
	margin			: 0;
	padding			: 0;
}

p
{
	margin-top      : 0;
	padding         : 0;
}

img
{
	border			: 0;
	height 			: auto;
	max-width 		: 100%; 
	vertical-align  : top;
}

*
{
	box-sizing: border-box;
}


/*システムが絡む場合、GoogleMapを使用する場合は消す*/
table
{
	margin-left		: auto;
	margin-right	: auto;
}

#side p,#side h1,#side #side h2,#side h3,
#header p,#header h1,#header h2,#header h3,
#footer p,#footer h1,#footer h2,#footer h3
{
	margin			: 0;
	font			: 1.6rem/1.8 'Noto Sans JP', Meiryo, 'メイリオ', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', 'Lucida Grande', 'Lucida Sans Unicode', sans-serif;
	text-align		: left;
}

em
{
	font-style: normal;
}

/*link--------------------------------------------------------------*/

a:link,
a:visited
{
	color           : #ff7d00; 
	text-decoration : underline;
}

a:hover,
a:active
{
	color           : #ff7d00; 
	text-decoration : none;
}







/*layout------------------------------------------------------------*/

#wrapper
{
	width			: 100%;
	margin			: 0;
	padding			: 0;
	padding-top 	: 107px;
	overflow 		: hidden;
	font-feature-settings : "palt" 1;
}




/*▼header------------------------------------------------------------*/


#site_header
{
    position 		: fixed;
    background 		: #FFF;
    z-index 		: 1000;
	width 			: 100%; 
    top 			: 0px;
    left 			: 0px;
}
#site_header.fix_top
{
	box-shadow:rgba(0, 0, 0, 0.0470588) 0px 0px 1px 3px;
}



#site_header *
{
 	transition: all 0.5s ease;
}
#site_header .header_inner
{
	padding 		: 0 0 0 2rem; 
	width 			: 100%;
	height 			: 107px;
    text-align 		: left;
	display 		: flex;
	align-items 	: center;
}
#site_header .header_inner .h_title
{
	margin 			: 0px;
	padding 		: 0px;
	font-size 		: clamp(1rem, 2vw, 2.2rem);
	margin-left 	: 5rem;
	font-weight: normal;
	line-height 	: 1.3; 
}
#site_header .header_inner .h_title em
{
	font-weight: bold;
	display: inline-block;
}
#site_header .header_inner .h_title span
{
	display: inline-block;
}



#site_header .header_inner .h_cta
{
	display: flex;
	flex-flow: column wrap;
	margin-left: auto;
	height: 100%;
}
#site_header .header_inner .h_cta a
{
	flex-grow: 1;
   background: rgb(255,125,0);
   background: linear-gradient(159deg, rgba(255,125,0,1) 0%, rgba(255,162,0,1) 100%);
	display: flex;
	align-items: center;
	gap:1.5rem;
	padding 		: 0 2rem;
	color 			: #FFF;
	font-weight 	: 400px;
	font-size 		: 2rem;
	text-decoration: none;
	line-height 	: 1.2;
}
#site_header .header_inner .h_cta a:hover
{
	opacity: .8;
}


#site_header .header_inner .h_cta a em
{
	font-size 			: 2.7rem;
	font-weight 		: 700;
	display 			: block;
}
#site_header .header_inner .h_cta a .tex
{
	white-space 		: nowrap;
}


#site_header .header_inner .h_nav
{
	display: flex;
	flex-flow: column wrap;
	height: 100%;
}




/*▼ハンバーガーメニュー--------------------------------------------------------*/

.hm_nav_area
{

	max-width 		: 1200px;
	margin: 0 auto;
}
.hm_nav_area .about_nav
{
	margin-bottom 	: 30px; 
}
.hm_nav_set
{
	display: flex;
	justify-content: space-between;
	flex-flow 		: row wrap;
	margin-bottom 	: 30px; 
}
.hm_nav_set .hm_nav
{
	flex 			: 0 0 49%;
	background 		: #FFF;
	border-radius: 10px;
	overflow: hidden;
}
.hm_nav_set .hm_nav h2
{
	display: flex;
	gap:1rem;
	padding: 1.5rem;
	margin: 0px;
	color: #333;
	align-items: center;
    font-size: clamp(2rem, 2.5vw, 3rem);
	
}
.hm_nav_set .hm_nav h2 i
{
	color: #5ea000;
	font-size: .8em;
}

.hmenu
{
	background: url("../images/common/base/summary_bg.gif") 0 0 repeat;
	padding			: 100px 4% 4%;
	margin			: 0;
	overflow		: auto;
 	-webkit-overflow-scrolling : touch;
	width			: 100%;
	height 			: 100vh;
	height			: 100dvh;
	box-sizing		: border-box;
}
.menu
{
    position			: fixed;
    top					: 0px;
    left				: 0;
    width				: 100%;
    height				: 100%;
	-webkit-transition	: all 0.5s ease;
    -moz-transition		: all 0.5s ease;
    -o-transition		: all 0.5s ease;
	transition			: all 0.5s ease;
    visibility			: hidden;
    opacity				: 0;
	text-align 			: left
}
.md_open .menu
{
    visibility			: visible;
    opacity				: 1;
	z-index				: 2000;
}
.menu-btn
{
	flex-grow: 1;
	position	: relative;
	padding		: 32px 25px;
    width		: 113px;
	background	: #5ea000;
    cursor		: pointer;
	box-sizing	: border-box;
    z-index		: 3000;
}
.menu-trigger,
.menu-trigger span
{
	display					: inline-block;
	vertical-align 			: top;
	transition				: all 0.5s ease;
	box-sizing				: border-box;
}
.menu-trigger
{
	position		: relative;
	display 		: block;
	height			: 100%;
}
.menu-trigger span
{
	position		: absolute;
	left			: 0;
	width			: 100%;
	height			: 5px;
	background 		: #fff;
}
.menu-trigger span:nth-of-type(1)
{
	top			: 0;
}
.menu-trigger span:nth-of-type(2)
{
	top: calc(50% - 2.5px);
}
.menu-trigger span:nth-of-type(3)
{
	bottom		: 0;
}


/*ボタン開いた時*/

.md_open .menu-btn
{
	background 			: #FFF; 
}
.md_open .menu-trigger span
{
	background 		: #5ea000; 
}


.md_open .menu-trigger span:nth-of-type(1)
{

	transform			: translateY(15px) rotate(-45deg);
}
.md_open .menu-trigger span:nth-of-type(2)
{
	opacity				: 0;
}
.md_open .menu-trigger span:nth-of-type(3)
{
	transform			: translateY(-9px) rotate(45deg);
}
.md_open .menu-trigger
{
	height			: 30px;
}
.sacbox
{
	display 		:none;
}
body.md_open
{
	overflow 		: hidden;
	height 			: 100%;
}
.hm_nav .hm_title
{
	padding			: 12px 0;
	color			: #fff;
	font-size		: 22px;
	font-weight		: bold;
}
.hm_nav ul,
.hm_nav ul li
{
	margin			: 0;
	padding			: 0;
	list-style-type	: none;
}
.hm_nav ul li
{
	border-bottom	: 1px solid #EEE;
}
.hm_nav ul li:first-child
{
	border-top		: 1px solid #EEE;
}
.hm_nav ul li a
{
	background-size	: 20px auto;
	padding 		: 1.5rem 4rem 1.5rem 2rem;
	display			: block;
	color 			: #333;
	position 		: relative;
	text-decoration: none;
	transition: all 0.5s ease;
}
.hm_nav ul li a:hover
{
	background 		: #EEE; 
}
.hm_nav ul li a:after
{
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: '\f138';
    font-size: 1.8rem;
    line-height: 1.0;
    height: 1em;
    position: absolute;
    right: 1.8rem;
    top: 0px;
    bottom: 0px;
    margin: auto 0;
	color: #5ea000;
	font-size: 1.8rem;

}

#site_header .hm_contact
{
	text-align 		: center;
	margin-top 		: 20px;
	background: #FFF;
	padding 		: 4rem 2rem;
	border-radius: 10px;
}
#site_header .hm_contact .hm_tel,
#site_header .hm_contact .hm_item
{
	width 			: 45%;
	padding 		: 10px 0; 
	display					: inline-block;
	vertical-align 			: top;
	box-sizing 		: border-box;
}
#site_header .hm_contact .hm_tel
{
	margin-right 	: 2%;
	padding-right 	: 3%;
	border-right 	: 1px solid #666;
}
#site_header .hm_contact .hm_tel img,
#site_header .hm_contact .hm_item img
{
	max-width 		: 100%;
	height 			: auto;
}

#site_header .hm_contact .hm_tel img/*色違い画像の用意がなかったので階調の反転しています*/
{
	filter 			: invert(100%);
}


/*スクロール時の調節*/

#site_header.fix_top .header_inner
{
	height 			: 90px; 
}
#site_header.fix_top .menu-btn
{
	padding 			: 25px 25px;
}


/*▼#main_catch------------------------------------------------------------*/

#hero_area
{
	background: none;
}
#main_catch 
{
    height: 790px;
    overflow: hidden;
    position: relative;
    perspective: 1000px;
	  border-bottom-left-radius: 8000px 6000px;
  border-bottom-right-radius: 8000px 6000px;
  margin-left: -100px;
  margin-right: -100px;
  padding-left: 100px;
  padding-right: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
 animation 	: waku-anmi 3s ease 0.3s 1 forwards;
}

@keyframes waku-anmi {
	100% {
	  border-bottom-left-radius: 3000px 1000px;
  border-bottom-right-radius: 3000px 1000px;
	}
}




#main_catch:before
{
	content 		: "";
	background 		: rgba(0,0,0,0.6) url("../images/common/base/des_bg.gif") 0 0 repeat;
	opacity 		: .3; 
	width 			: 100%;
	height 			: 100%;
	display: block;
	position: absolute;
	left: 0px;
	top:0px;
	z-index: 200;
}
#main_catch .rd_area
{
  overflow: hidden;
}

#main_catch .main_catch_inner
{
	max-width 		: 1200px;
	z-index 		: 300;
	position 		: relative;
}
#main_catch .main_catch_inner .catch_box
{
	max-width 		: 584px;

	position 		: relative;
	margin 			: 0 auto;
    padding 		: 4.3rem 5.5rem;
}

#main_catch .main_catch_inner .waku
{
	width 			: 100%;
	position 		: absolute;
	left 			: 0;
	right 			: 0;
	bottom 			: 0;
	top 			: 0;
	z-index 		: 1;
	transform-origin: center;
}

#main_catch .main_catch_inner .catch_box .catch_box_inner
{
	position: relative;
	z-index 		:3; 
}


#main_catch .main_catch_inner .catch_box ul.forte,
#main_catch .main_catch_inner .catch_box ul.forte li
{
	margin 			: 0px;
	padding 		: 0px;
	list-style 		: none;
}
#main_catch .main_catch_inner .catch_box ul.forte
{
	display: flex;
	justify-content: center;
	gap:1rem;
	margin-bottom: 1rem;
}
#main_catch .main_catch_inner .title
{
	font-size: clamp(3rem, 5vw, 4rem);
	line-height: 1.0;
	margin: 0px;
	padding: 0px;
	margin-bottom: 2rem;
}
#main_catch .main_catch_inner .summary
{
	font-size: clamp(1.8rem, 3vw, 2.2rem);
	font-weight: 800;
	padding 			: .4em 0 .4em;
	line-height: 1.2;
	position: relative;
}
#main_catch .main_catch_inner .summary span
{
	display 			: block;
	width: fit-content;
	margin 				: 0 auto; 
}

#main_catch .main_catch_inner .summary:before
{
	content 			: "";
	display 			: block;
	width 				: 100%; 
	height 				: 1px;
	background 			: #CCC;
	top 				: 0px;
	left 				: 0px;
	right 				: 0px;
	margin 				: 0 auto; 
	position 			: absolute;
}
#main_catch .main_catch_inner .summary:after
{
	content 			: "";
	display 			: block;
	width 				: 100%; 
	height 				: 1px;
	background 			: #CCC;
	bottom 				: 0px;
	left 				: 0px;
	right 				: 0px;
	margin 				: 0 auto; 
	position 			: absolute;
}

#main_catch .main_catch_inner .title em
{
	font-weight: 900;
}
#main_catch .main_catch_inner .logo
{
	max-width: 98%;
	margin: 0 auto 1.3rem;
}
.quick_access
{
	position: absolute;
	right 		: 5rem;
	top 		: 150px; 
	background 	: #FFF;
	border-radius 	: 10px;
	z-index 		: 300;
	width 			: 135px;
	box-shadow: 5px 1px 19px -8px rgba(0, 0, 0, 0.33);
	overflow: hidden;
}
.quick_access,
.quick_access dt,
.quick_access dd
{
	margin 			: 0px;
	padding 		: 0px;
	list-style 		: none;
}
.quick_access dt
{
	padding 			: 2rem;
	border-bottom 		: 1px #CCC solid; 
}
.quick_access dd
{
	padding 			: 1rem;
	border-bottom 		: 1px #CCC solid; 
}
.quick_access dd a
{
	display: block;
	background 			: #f7f7f7;
	color 				: #5ea000;
	border-radius 		: 10px;
	padding 			: 1.5rem 1rem;
	text-decoration 	: none;
	transition: all 0.5s ease;
}
.quick_access dd a img
{
	width 				: 70%;
	display 			: block;
	margin 				: 0 auto 1rem; 
	transition: all 0.5s ease;

}
.quick_access dd a .tex
{
	font-weight 		: bold;
	font-size 			: 1.6rem; 
}

.quick_access dd a:hover
{
	background 			: #5ea000;
	color 				: #FFF; 
}

.quick_access dd a:hover img
{
filter: brightness(0) invert(1);
}
.image_container
{
    position: absolute;
    width: 100%;
    height: 200%;
    display: flex;
    animation: move 10s linear infinite;
    transform: rotate3d(0, 0, 1, -34deg) translateY(-30%);
}
.image_container::before 
{
    content: "";
    position: absolute;
    width: 130%;
    height: 130%;
    background: url(../images/common/base/main_bg.jpg) repeat-x;
    background-position: top center;
    background-size: cover;
    animation: move-bg 30s linear infinite;
    z-index: 1
}
@keyframes move-bg {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(100%);
    }
}

.image_container::after 
{
    content: "";
    position: absolute;
    width: 130%;
    height: 130%;
    background: url(../images/common/base/main_bg.jpg) repeat-x;
    background-position: top center;
    background-size: cover;
    animation: move-bg-af 30s linear infinite;
    z-index: 0;
}
@keyframes move-bg-af {
    from {
        transform: translateX(-100%);
    }
    to {
        transform: translateX(0%);
    }
}
.scroll_mov
{
	position 			: absolute;
	bottom 				: 3rem;
	left 				: 0px;
	right 				: 0px;
	margin 				: 0 auto;
	z-index 			: 500;
	width 				: 40px; 
}
.scroll_mov img
{
	display: block;
	margin 				: 0 auto;
	position: relative;
}
.scroll_mov img.arr01
{
	width 				: 60%;
  animation 			: scrollAni 1.5s ease-out 0s infinite forwards;
  opacity 				: 0; 
  transform 			: translateY(-500%);
  margin-bottom 		: .5rem; 
}
.scroll_mov img.arr02
{
  width 				: 100%;
  animation 			: scrollAni 1.5s ease-out 0.3s infinite forwards;
  opacity 				: 0; 
  transform 			: translateY(-200%);
}


@keyframes scrollAni {
  60% {
    opacity: 1;
	transform: translateY(0%);
  }
   80% {
    opacity: 1;
	transform: translateY(0%);
  }
    100% {
    opacity: 0;
	transform: translateY(0%);
  }
}


/*animation*/

#main_catch .main_catch_inner .waku
{

    animation 	: zoom-in-waku-anim 0.5s ease-out 0.3s 1 forwards;
 	opacity 	: 0;
}

#main_catch .main_catch_inner .logo
{
    animation 	: zoom-in-anim 0.5s ease-out 0.8s 1 forwards;
	opacity: 0;
}

#main_catch .main_catch_inner .catch_box ul.forte li
{
	opacity: 0;
    animation 	: zoom-in-anim02 0.5s ease-out 1.3s 1 forwards;
}

#main_catch .main_catch_inner .catch_box ul.forte li:nth-child(1)
{
 	animation-delay: 1.5s;
}
#main_catch .main_catch_inner .catch_box ul.forte li:nth-child(2)
{
 	animation-delay: 1.8s;
}
#main_catch .main_catch_inner .catch_box ul.forte li:nth-child(3)
{
 	animation-delay: 2.1s;
}
#main_catch .main_catch_inner .title
{
	opacity 	: 0; 
    animation 	: zoom-in-anim 0.5s ease-out 2.4s 1 forwards;
}
#main_catch .main_catch_inner .summary span
{
	opacity: 0;
    animation 	: fade-in-anim 1s ease-out 2.8s 1 forwards;
}
#main_catch .main_catch_inner .summary:before,
#main_catch .main_catch_inner .summary:after
{
    animation 	: line-anim 1s ease-out 2.4s 1 forwards;
	opacity: 0;
}
.quick_access
{
    animation 	: fade-in-anim 0.5s ease-out 2.8s 1 forwards;
	opacity: 0;
}


/*▼main------------------------------------------------------------*/
#main
{
	width			: 745px;
	float			: right;
	padding 		: 0 15px;
	text-align		: center;
	box-sizing 		: border-box;
}

.section_inner
{
	max-width 		: 1200px;
	margin 			: 0 auto;
	width 			: 90%;
}








/*▼footer------------------------------------------------------------*/

#footer
{
	width			: 100%;
}
#footer .footer_cont
{
	background		: #f7f7f7 url("../images/common/base/footer_bg.png") bottom center repeat-x;	
}
#footer .footer_inner
{
	max-width 		: 1200px;
	width 			: 90%; 
	margin			: 0 auto;
	box-sizing 		: border-box;
	position		: relative;
	padding 		: 80px 0px 200px;  
}
#footer .footer_inner .ft_logo
{
	max-width 		: 320px;
	margin 			: 0 auto 60px; 
}
#footer .footer_inner .ft_nav_area
{
	display 		: flex;
	gap 			: 4rem;
}
#footer .footer_inner .ft_nav_area .ft_nav
{
	flex 			: 1 1 50%;
	text-align 		: left;
}
#footer .footer_inner .ft_nav_area .ft_nav h2
{
	display 		: flex;
	gap 			: .8rem;
	color 			: #FFF;
	font-size 		: 2.6rem;
	background: url("../images/common/base/summary_bg.gif") 0 0 repeat;
	align-items: center;
	padding 		: 1rem 2.5rem;
	border-radius 	: 3px;
	margin-bottom 	: 3rem; 
}
#footer .footer_inner .ft_nav_area .ft_nav h2 i
{
	font-size 		: .8em; 
}
#footer .ft_nav ul,
#footer .ft_nav ul li
{
	margin 			: 0px;
	padding 		: 0px;
	list-style 		: none;
	font-size 		: 1.8rem;
}
#footer .ft_nav ul
{
	display 		: flex;
	flex-flow: row wrap;
	column-gap: 5rem;
	grid-row-gap: 2rem;
	width 			: 90%;
	margin 			: 0 auto; 
}
#footer .ft_nav ul li a
{
	display: block;
	color: #333;
	padding-left: 20px;
	background 	: url("../images/common/icon/list_icon.png") 0 50% no-repeat;	
}
#footer .copy
{
	background 		: #FFF; 
}
#footer small
{
	display 		: block;
	max-width 		: 1200px;
	margin 			: 0 auto;
	width 			: 90%;
	font-size 		: 1.8rem;
	text-align 		: left;
	padding 		: 2rem; 
}



/*1280以下の指定（タブレット）*/

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





}




/*1024以下の指定（タブレット）*/

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

body
{
	min-width 		: 100%;
}
#wrapper
{

    padding-top 	: 107px;
}


#site_header .header_inner .h_title
{
	display: none;
}
#site_header .header_inner .h_cta a .tex span
{
	display: none;
}
#site_header .header_inner .h_cta a
{
	flex-flow: column;
}
#site_header .header_inner .h_cta span.icon
{
    width: 50px;
}
#site_header .header_inner .h_cta a
{
	padding: 0 1.5rem;
	gap:1rem;
	justify-content: center;
}
#site_header .header_inner .h_cta a em
{
	font-size 		: 1.2rem;
}
.quick_access
{
	display: none;
}
.section_inner
{
	width 		: 90%;
}

/*▼footer------------------------------------------------------------*/

#footer_inner
{
	width			: 90%;
	padding 		: 30px 0 40px;
}

}


/*767以下の指定（スマホ横)*/
@media screen and (max-width: 767px) {


#wrapper
{

    padding-top 	: 70px;
}

#site_header .hm_contact
{
	padding 		: 2rem; 
}

#site_header .h_logo
{
    flex: 0 0 165px;
}
#site_header.fix_top .header_inner,
#site_header .header_inner
{
	height 				: 70px;
	padding 			: 0 0 0 1.5rem; 
}
.menu-btn,
#site_header.fix_top .menu-btn
{
	width 			: 70px;
	padding 		: 20px 15px; 
}
.menu-trigger span
{
	height 			: 3px; 
}
.hm_nav_set
{
	display 		: block;
}
.hm_nav_set .hm_nav
{
	margin-bottom 		: 2rem; 
}

#site_header .header_inner .h_cta a
{
	gap 			: .5rem;
	flex-flow 	 	: row nowrap;
	padding 		: 0 1.1rem; 
}
#site_header .header_inner .h_cta span.icon
{
	flex 			: 0 0 35px; 
}
#site_header .header_inner .h_cta a .tex
{
    white-space 	: normal;
    flex 			: 0 0 55px;
}

#site_header .header_inner .h_cta
{
	    flex 		: 0 0 115px;
}
#main_catch
{
	height 				: calc(100vh - 80px);
	min-height 			: 500px; 
}
#main_catch .main_catch_inner
{
	width 			: 90%;
	max-width 		: 338px; 
}
#main_catch .main_catch_inner .catch_box
{
    padding: 3.3rem 3.5rem;
}
#main_catch .main_catch_inner .title
{
	line-height 		: 1.2; 
}
#main_catch .main_catch_inner .title em
{
	display 			: block;
}

#main_catch .main_catch_inner .logo
{
	margin 				: 0 auto 1rem; 
}
#main_catch .main_catch_inner .title
{
	margin-bottom 		: 1.3rem; 
}
#footer .footer_inner
{
	padding 			: 40px 0px 150px; 
}
#footer .footer_inner .ft_nav_area
{
	flex-flow 			: column;
}
#footer .footer_inner .ft_logo
{
	max-width 			: 250px;
	margin: 0 auto 30px;
}
#footer .footer_inner .ft_nav_area .ft_nav h2
{
	font-size 			: 2rem;
	padding 			: .8rem 1.5rem; 
}


}


/*320以下の指定（スマホ縦)*/
@media screen and (max-width: 320px) {
}




/*---------------------------------------------------------*/
/*    copyright(C) CloudWorks. All rights reserved. Ver1.0   */
/*---------------------------------------------------------*/
