@charset "utf-8";
/* CSS Document */

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff') format('woff'), /* Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

body {
	font-weight: 400;
	font-family: "Noto Sans Japanese";
	height: auto;
	margin: 0;
	overflow-x: hidden;
	position: relative;
	background: #edece4;
}

@keyframes fadein {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

div { box-sizing: border-box; }

dl,dt,dd { margin: 0; }

/* header */
header {
	position: relative;
	top: 0;
	left: 0;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
}

header .logo { width: 430px; margin: 0 0 0 30px; }
header .logo span { display: block; font-size: .8rem; font-weight: normal; color: #222; }
header .logo span br { display: none; }
header .logo a {
	display: flex;
	align-items: center;
	margin-top: 10px;
	font-size: 1.5rem;
    color: #80ad29;
    text-decoration: none;
}
header .logo a img { width: 150px; margin-right: 15px; }
header .logo a span {
	display: block;
	font-size: .9rem;
	letter-spacing: .1em;
}

header #pc_nav { display: block; width: 700px; margin-right: 30px; }
header #pc_nav .menu {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
header #pc_nav .menu ul {
	width: 100%;
	list-style: none;
	padding: 0;
	display: flex;
	justify-content: space-between;
	font-style: normal;
	font-weight: 500;
}
header #pc_nav .menu ul li a { position: relative; font-size: 0.95rem; color: #222; text-decoration: none; transition: 0.3s; }
header #pc_nav .menu ul li a:hover { color: #0090e8; }
header #pc_nav .menu ul li a::after {
	position: absolute;
	bottom: -10px;
	left: 0;
	content: '';
	width: 100%;
	height: 3px;
	background: #0090e8;
	transform: scale(0,1);
	transform-origin: left top;
	transition: transform .3s;
}
header #pc_nav .menu ul li a:hover::after {
	transform: scale(1,1);
}

header #pc_nav .menu ul li:not(:last-of-type){ margin-right: 1em; }
header #pc_nav .menu ul li .contact_menu_list {
    position: relative;
    padding: 0.7rem 2rem;
	font-weight: bold;
	color: #111;
	background-color: #fff;
	border-radius: 100px;
    transition: .5s;
}
header #pc_nav .menu ul li .contact_menu_list:hover {
	color: #fff;
    background-color: #2f3739;
}

/* ※SMARTPHONE MENU */
.button_container { display: none; }
.overlay { display: none; }

/**********/
.page-head { width: 100%; padding: 5em 0; text-align: center; background: #80ad29; }
.page-head h2 { margin: 0; font-size: 2rem; color: #fff; letter-spacing: 0.1em; }
.page-head span { display: block; margin-top: 5px; color: #fff; letter-spacing: 0.1em; }

.page-copy { width: 100%; padding: 1em 0; color: #fff; text-align: center; background: #80ad29; }

.contact-button { position: fixed; top: 40%; right: 0; z-index: 10; }
.contact-button a {
	display: block;
	position: relative;
	padding: 3.5em 1em 1.5em;
	writing-mode: vertical-rl;
	font-size: 1.1rem;
	font-weight: 500;
	color: #fff;
	text-decoration: none;
	background: #80ad29;
	transition: 0.3s;
}
.contact-button a:hover { opacity: 0.6; }
.contact-button a::before {
	content: "";
	position: absolute;
	top: 20px;
	left: 50%;
	transform: translateX(-50%);
	width: 29px;
	height: 23px;
	background: url("../img/online/mail_icon.png") no-repeat;
}

/**********/
.contentsBox { width: 90%; max-width: 1100px; margin: 0 auto; padding: 2em 0 4em; }

h3.sub-heading {
	position: relative;
    padding: 25px 0 0;
    margin-top: 50px;
    margin-bottom: 25px;
    font-size: 1.7rem;
    color: #111;
    line-height: 1.6em;
    border-top: 2px solid #e5e5e5;
}
h3.sub-heading::before {
	content: "";
	position: absolute;
    left: 0;
    top: -2px;
    display: block;
    width: 3rem;
    height: 2px;
    background: #80ad29;
}

.line-buttonBox { display: flex; justify-content: space-between; flex-wrap: wrap; margin-top: 30px; }
.line-buttonBox .button { width: 49%; }
.line-buttonBox .button a {
	display: block;
	position: relative;
	padding: 1em;
	font-size: 1.2rem;
	font-weight: 500;
	color: #fff;
	text-align: center;
	text-decoration: none;
	background: #06c755;
	transition: 0.3s;
}
.line-buttonBox .button a:hover { opacity: 0.6; }
.line-buttonBox .button a::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 20px;
	transform: translateY(-50%);
	width: 50px;
	height: 50px;
	background: url("../img/online/line_icon.png") no-repeat;
}

@media only screen and (max-width:1024px){
	
	header #pc_nav { display: none; }
	
	/* バーガーメニュー */
	.button_container {
        display: block;
        position: fixed;
        top: 20px;
        right: 20px;
        height: 45px;
        width: 45px;
        cursor: pointer;
        -webkit-transition: opacity .25s ease;
        transition: opacity .25s ease;
        z-index: 2000;
        background-color: #80ad29;
    }
	.button_container:hover {
  		opacity: .7;
	}
	
	.button_container.active .top {
  		-webkit-transform: translateY(10px) translateX(0) rotate(45deg);
        transform: translateY(10px) translateX(0) rotate(45deg);
  		background: #fff;
	}
	.button_container.active .middle {
  		opacity: 0;
  		background: #fff;
	}
	.button_container.active .bottom {
  		-webkit-transform: translateY(-4px) translateX(0) rotate(-45deg);
    	transform: translateY(-4px) translateX(0) rotate(-45deg);
		background: #fff;
	}
	.button_container span {
		background: #fff;
		border: none;
		height: 1.5px;
		width: 20px;
		position: absolute;
		top: 14px;
		left: 0;
        right: 0;
        margin: 0 auto;
		-webkit-transition: all .35s ease;
		transition: all .35s ease;
		cursor: pointer;
	}
	.button_container span:nth-of-type(2) {
		top: 21px;
	}
	.button_container span:nth-of-type(3) {
		top: 28px;
	}

	.overlay {
		display: block;
		position: fixed;
		background: #80ad29;
		top: 0;
		right: 0;
		width: 0%;
		height: 100%;
 		opacity: 0;
		visibility: hidden;
		-webkit-transition: opacity .35s, visibility .35s, width .35s;
		transition: opacity .35s, visibility .35s, width .35s;
		overflow: hidden;
	}
	.overlay.open {
		opacity: 0.95;
		visibility: visible;
		width: 100%;
		z-index: 1000;
	}
	.overlay.open li {
		-webkit-animation: fadeInRight .5s ease forwards;
		animation: fadeInRight .5s ease forwards;
		-webkit-animation-delay: .35s;
		animation-delay: .35s;
	}
	.overlay nav {
		position: relative;
		top: 50%;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		width: 70%;
		margin: 0 auto;
	}
	.overlay ul {
		list-style: none;
		padding: 0;
		margin: 0 auto;
		display: inline-block;
		position: relative;
		height: 100%;
	}
	.overlay ul li {
		display: block;
		height: 15%;
		height: calc(100% / 6);
		min-height: 30px;
		position: relative;
		opacity: 0;
	}
	.overlay ul li::before {
    	content: "";
    	position: absolute;
    	top: 50%;
    	left: -50px;
    	width: 30px;
    	height: 1px;
    	background: #fff;
	}
	.overlay ul li a {
		display: block;
		position: relative;
		padding: 1em 0;
		font-size: 1.5em;
		font-weight: 500;
		color: #fff;
		text-decoration: none;
		line-height: 2em;
		letter-spacing: .05em;
		overflow: hidden;
	}
	.overlay ul li a span {
		margin-left: 20px;
		font-size: .6em;
		color: #ccc;
		opacity: 0.5;
	}
	.overlay ul li a:hover:after, .overlay ul li a:focus:after, .overlay ul li a:active:after {
		width: 100%;
	}

	@-webkit-keyframes fadeInRight {
		0% { opacity: 0; left: 20%; }
		100% { opacity: 1; left: 0; }
	}

	@keyframes fadeInRight {
		0% { opacity: 0; left: 20%; }
		100% { opacity: 1; left: 0;	}
	}
	
}

@media only screen and (max-width:896px){}

@media only screen and (max-width:640px){
	
	header .logo { width: 75%; margin: 0 0 0 10px; }
	header .logo span { font-size: .65rem; }
	header .logo span br { display: block; }
	
	header .logo a { font-size: 4.5vw; }
	header .logo a img { width: 70px; }
	
	.overlay ul li::before { left: -35px; }
	.overlay ul li a { padding: 0.5em 10px 0.5em; font-size: 1.1em; }
	.overlay ul li a span { color: #fff; opacity: 0.8; }
	
	/*****/
	
	.contact-button { display: none; }
	
	.page-head { padding: 3em 0; }
	.page-head h2 { font-size: 1.3rem; letter-spacing: 0.05em; }
	.page-head span { font-size: 0.9rem; letter-spacing: 0.05em; }
	
	.page-copy { font-size: 0.7rem; }
	
	.contentsBox { padding: 0 0 2em; }
	.contentsBox p { font-size: 0.9rem; line-height: 1.8; }
	
	h3.sub-heading { padding: 15px 0 0; margin-top: 40px; margin-bottom: 15px; font-size: 1.15rem; }
	
	.line-buttonBox { margin-top: 10px; }
	.line-buttonBox .button { width: 100%; margin-top: 10px; }
	.line-buttonBox .button a { padding: 0.7em 1em 0.7em 2em; }
		
}