@charset "utf-8";
/*-----------------------------------------------------
Reset
----------------------------------------------------- */
html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}

ol, ul { list-style: none; line-height: 1; }
table { border-collapse: collapse; border-spacing: 0; }

* { margin: 0; padding: 0; }
img { max-width: 100%; width: 100%; height: auto; vertical-align: top; image-rendering: -webkit-optimize-contrast; }

* { min-height: 0; min-width: 0; }

html { font-size: 62.5%; }
body { line-height: 1; margin: 0; padding: 0; height: 100%; font-family: 'Noto Sans JP', sans-serif; letter-spacing : 0.1em; color: #333333; }
a {	text-decoration: none; color: inherit; transition: 0.3s ease-in-out; }
@media (min-width: 1025px) {
	a[href*="tel:"] { pointer-events: none; cursor: default; text-decoration: none;}
}
p , div { text-align: justify; }
p { font-size: 1.6em; line-height: 3.6rem; font-weight: 500; }
button { margin: 0; padding: 0; outline: 0; border: 0; border-radius: 0; color: inherit; vertical-align: middle; text-align: inherit;font: inherit; -webkit-appearance: none; appearance: none; }

/*----------------
ボタン
-----------------*/

.btn{ max-width: 300px; width: 100%; position: relative; overflow: hidden; text-decoration: none; display: inline-block; padding: 15px 0; box-sizing: border-box; text-align: center; outline: none; transition: ease .4s; font-size: 2em; border: 1px solid #83B81F; border-radius: 50px; display: block; margin: 0 auto; background: #fff; }
.btn span { position: relative; z-index: 3; color:#333; transition: ease 1s; }
.btn:hover span { color:#fff; }
.bgleft:before { content: ''; position: absolute; top: 0; left: 0; z-index: 2; background:#83B81F; width: 100%; height: 100%; transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s; transform: scale(0, 1); transform-origin: right top; }
.bgleft:hover:before { transform-origin:left top; transform:scale(1, 1); }


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

common

-----------------*/
.outer { width: 100%; box-sizing: border-box; padding-left: 3.46%; padding-right: 3.46%; margin: 0 auto; }
.pc { display: block; }
.sp { display: none; }
p.none { margin-bottom: 30px; }

[data-size="w700"]{ max-width: 700px; width: 90%; margin: 0 auto; }
[data-size="w1000"]{ max-width: 1000px; width: 90%; margin: 0 auto; }
[data-size="w1166"]{ max-width: 1166px; width: 90%; margin: 0 auto; }
[data-size="w1366"]{ max-width: 1366px; width: 90%; margin: 0 auto; }
[data-font="font16"]{ font-size: clamp(0.875rem, 0.836rem + 0.18vw, 1rem); line-height: 2.5; }
[data-color="red"] { color: #C50000; }

h2 { font-family: 'Noto Sans JP', 'Montserrat', sans-serif; font-size: 4rem; line-height: 1.5; font-weight: 700; margin-bottom: 50px; text-align: center; position: relative; }
h2::before { content: ''; position: absolute; background: url("../images/common/head_point.svg") no-repeat; background-size: contain; width: 160px; height: 40px; top: -20px; left: 50%; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); } 

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

header

-----------------*/
header { position: fixed; z-index: 999; display: flex; justify-content: space-between; align-items: center; height: 90px; background: #fff; }
/*　上に上がる動き　*/
header.UpMove{ animation: UpAnime 0.5s forwards; }
@keyframes UpAnime{
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-100px); }
}
header.DownMove{ animation: DownAnime 0.5s forwards; }
@keyframes DownAnime{
  from { opacity: 0; transform: translateY(-100px); }
  to { opacity: 1; transform: translateY(0); }
}
header .h_logo { max-width: 207px; }
header nav ul {  display: flex; justify-content: space-between; }
header nav ul li { font-size: 1.6em; }
header nav ul li a { position: relative; }
header nav ul li.current a, header nav ul li a:hover{ color:#83B81F; }
header nav ul li a::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 100%; height: 2px; background:#83B81F; transition: all .3s; transform: scale(0, 1); transform-origin: center top; }

/*現在地とhoverの設定*/
header nav ul li.current a::after, header nav ul li a:hover::after { transform: scale(1, 1); }
header nav ul li:not(:last-child) { margin-right: 20px; }
header .burger_btn { display: none; }

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

main

-----------------*/
#Wrapper { padding-left: 100px; }

#Contact { padding-top: 100px; }
#Contact dl { display: flex; justify-content: space-between; align-items:center; flex-wrap: wrap; margin-top: 25px; font-size: 1.6em; margin-bottom: 50px; }
#Contact dl dt { width: 240px; padding: 25px 0; }
#Contact dl dd { width: calc(100% - 240px); padding: 25px 0; line-height: 1.5em; flex-wrap: wrap; }
#Contact dl dd .flex { margin-bottom: 20px; }
#Contact dl dd span.post { margin-right: 10px; }
#Contact dl dd span.hankaku { margin-left: 10px; }
#Contact dl dd.flex_box { display: flex; justify-content: space-between; align-items: center; }
#Contact dl dd.flex_box > span { width: 48%; }
#Contact input[type="text"], #Contact textarea, #Contact select { color: #333333; font-family: 'Noto Sans JP', sans-serif; font-size: 1.6rem; }
#Contact p.mini { font-size: 1.3rem; }
#Contact textarea { width: 100%; background: #DDDDDD; border: none; padding: 15px; box-sizing: border-box; }
#Contact input[type="tel"] , #Contact input[type="email"] , #Contact input[type="text"] { background: #DDDDDD; border: none; height: 40px; max-width: 100%; padding: 0 15px; box-sizing: border-box; font-family: 'Noto Sans JP', sans-serif; font-size: 1.6rem; }
#Contact .policy_box { background: #DDDDDD; width: 100%; height: 298px; margin-top: 25px; padding: 40px 45px; box-sizing: border-box; overflow-y: auto; margin-bottom: 30px; }
#Contact .policy_box p { line-height: 2.8rem; } 
#Contact p.policy_top { text-align: center; }
#Contact .policy_box ul li { font-size: 1.6em; line-height: 2.8rem; margin-top: 30px; }
#Contact .consent { text-align: center; }
#Contact .consent span { display: inline-block; text-align: center; font-size: 1.6rem; }
#Contact .consent input { margin-right: 5px; }
#Contact input[type="submit"] { max-width: 300px; width: 100%; position: relative; overflow: hidden; text-decoration: none; display: inline-block; padding: 15px 0; box-sizing: border-box; text-align: center; outline: none; transition: ease .4s; font-size: 2em; border: 1px solid #83B81F; color: #333333; border-radius: 50px; display: block; margin: 50px auto 0; background: #fff; cursor: pointer; appearance: none; -webkit-appearance: none; }
#Contact input[type="submit"]:hover { opacity: .5; }

#Works { margin-top: 100px; }
.entry { margin-bottom: 100px; }
.entry ul { margin-bottom: 50px; }
.entry ul li:first-child { border-top: 1px solid #BFBFBF; }
.entry ul li { padding: 30px 0; border-bottom: 1px solid #BFBFBF; }
.entry .sub { display: flex; align-items: center; font-size: 1.6rem; margin-bottom: 5px; }
.entry time { font-weight: 700; }
.entry .cate_news { color: #83B81F; border: 1px solid #83B81F; padding: 5px 10px; margin-left: 10px; }
.entry .cate_works { color: #81582B; border: 1px solid #81582B; padding: 5px 10px; margin-left: 10px; }

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

footer

-----------------*/
footer { background: #333333; padding: 50px 0 0; margin-top: 150px; }
footer .f_logo { max-width: 171px; margin: 0 auto 50px; }
footer small { background: #DDDDDD; display: block; font-size: 1em; text-align: center; padding: 20px 0; }


@media screen and (max-width: 960px) {
	.pc { display: none; }
	.sp { display: block; }
	[data-size="w1366"] { max-width: initial; width: 100%; }
	
	/*　ハンバーガーボタン　*/
	header .burger_btn { display: block; width: 48px; height: 44px; position: fixed; z-index: 3; border:none; cursor: pointer; right: 3.46%; top: 25px; } 
	header .burger_btn span { width: 44px; height: 2px; display: block; position: absolute; left: 50%; transform: translateX(-50%); background-color: #333333; transition: transform .3s; }
	header .burger_btn span:first-child { top: 10px; }
	header .burger_btn span:nth-child(2) { top: 21px; }
	header .burger_btn span:last-child { bottom: 10px; }
	header .burger_btn.close span:first-child { transform: translate(-50%,10px) rotate(45deg); top: 10px; } 
	header .burger_btn.close span:last-child { transform: translate(-50%,-8px) rotate(-45deg); bottom: 14px; }
	header .burger_btn.close span:nth-child(2) { display: none; }
	
	header nav { display: none; }
	header nav ul { display: block; }
	header nav ul li:not(:last-child) { margin-right: 0; margin-bottom: 30px; }
	header nav ul li.sp { margin-top: 80px; max-width: 274px; }
	
	/*　ハンバーガーなかみ　*/
	header .nav_wrapper { height: 100vh; position: fixed; top: 0; width: 100vw; z-index: 2; background: #fff; opacity: 0; visibility: hidden; right: 0; transition: 0.3s ease-in-out; padding: 100px; box-sizing: border-box; }
	header .nav_wrapper.slide_in { opacity: 1; visibility: visible; }
	header .nav_wrapper { display: flex; background: #fffffff2; align-items: center; justify-content: center; text-align: center; }
	header .nav_wrapper ul.parent li:first-child { margin-bottom: 15px; }
	header .nav_wrapper ul.parent li:not(:last-of-type) { margin-bottom: 15px; }
	header .nav_wrapper ul.parent , header .nav_wrapper ul.out { font-weight: 700; }
	header .nav_wrapper ul.child li { position: relative; font-weight: initial; }
	header .nav_wrapper ul.child li:not(:last-of-type) { margin-bottom: 15px; }
	header .nav_wrapper ul.child li::before { content: '-'; display: inline-block; margin: 0 2px; }
	header .nav_wrapper ul.out li { position: relative; margin-bottom: 15px; }
	header .nav_wrapper ul.out li::after { content: ''; position: absolute; background: url(../images/common/link.svg) no-repeat; background-size: contain; width: 12px; height: 12px; margin-left: 3px; bottom: 1px; }
}

@media screen and (max-width: 600px) {
	header .burger_btn span { width: 24px; }
	h2 { font-size: 3.2rem; }
	#Contact dl { display: block; margin-bottom: 30px; }
	#Contact dl dt { width: 100%; padding: 0; }
	#Contact dl dd { width: 100%; padding: 10px 0 50px; }
	#Contact dl dd .flex { margin-bottom: 10px; }
	#Contact dl dd span.hankaku { margin-left: 0; margin-top: 5px; display: inline-block; }
	#Contact .policy_box { padding: 20px 25px; }
	.entry ul p.txt { line-height: 3.2rem; }
}