@charset "UTF-8";
/* CSS Document */

html {
font-size: 62.5%;
}
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: 16px;
font-size: 1.6rem;
color: #303030;
font-family: "Yu Gothic medium", "Noto Sans JP", YuGothic, "Hiragino Sans", Meiryo, "sans-serif";
background: #FFF;
margin: 0;
}
img{
width:100%;
max-width: 100%;
height: auto;
vertical-align: bottom;
}
video, iframe {
width: 100%;
vertical-align: bottom;
}
a, a:hover {
text-decoration: none;
color: #333;
}
i {
font-size: 0.8em;
padding-right: 5px;
}
p {
font-weight: 500;
line-height: 1.8em;
word-break: break-all;
}
.box {
margin: 0 auto;
width: 90%;
max-width: 960px;
}
a.btn {
display: flex;
justify-content: space-between;
align-items: center;
background: linear-gradient(45deg, rgb(128 175 46) 0%, rgb(65 133 42) 50%, rgb(128 175 46) 100%);
background-size: 200% 100%;
color: #fff;
font-weight: 500;
width: 100%;
max-width: 150px;
letter-spacing: 0.1em;
}
a.btn:after {
content: "\f054";
font-family: "Font Awesome 5 Free";
font-weight: 600;
}
h3.h3-title{
color: #41852a;
font-weight: 600;
}
h3.h3-title span{
display: flex;
align-items: center;
flex-direction: row-reverse;
justify-content: flex-end;
color: #333;
font-weight: 500;
}
h3.h3-title span:before{
display: block;
content: "";
height: 1px;
background-color: #333;
margin-left: 10px;
}
h3.h3-title.center{
text-align: center;
}
h3.h3-title.center span{
display: block;
}
h3.h3-title.center span:before{
margin: 10px auto 5px;
}
h4.h4-sub{
font-weight: 600;
}
/*---------------
header
---------------*/
#header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background: #fff;
z-index: 10000;
box-shadow: 0px 1px 10px 0px rgb(0 0 0 / 20%);
}
#logo {
position: absolute;
z-index: 10000;
}
.el_humburger {
position: absolute;
height: auto;
padding-top: 1px;
box-sizing: border-box;
z-index: 10001;
transition: all 0.2s ease-in-out;
cursor: pointer;
pointer-events: auto;
}
.el_humburger > span {
display: block;
width: 100%;
margin: 0 auto 6px;
height: 3px;
background: #333;
transition: all 0.2s ease-in-out;
}
.el_humburger > span:last-of-type {
margin-bottom: 0;
}
.js_humburgerOpen .el_humburger > span.top {
transform: translateY(9px) rotate(-45deg);
}
.js_humburgerOpen .el_humburger > span.middle {
opacity: 0;
}
.js_humburgerOpen .el_humburger > span.bottom {
transform: translateY(-9px) rotate(45deg);
}
.uq_spNavi.js_appear {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
display: block;
background-color: #41852a;
z-index: 10000;
}
.sp-menu {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: rgba(255, 255, 255, 1);
z-index: 0;
margin-top: 0px;
padding-top: 0px;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.uq_spNavi_screen li a {
display: block;
font-weight: 500;
}
/*---------------
footer
---------------*/
#footer ul.banner{
display: flex;
flex-wrap: wrap;
justify-content:flex-start;
align-content: center;
}
#footer ul.banner li{
border: solid 1px #dfdfdf;
}
#footer .inner .detail h2{
font-weight: 500;
}
#footer .inner .detail p{
font-weight: 500;
}
#footer .inner .nav li a{
font-weight: 500;
}
#footer small{
display: block;
text-align: center;
color: #fff;
background: linear-gradient(50deg, rgb(128 175 46) 0%, rgb(65 133 42) 100%);
}
/*---------------
contact
---------------*/
#contact{
background: linear-gradient(50deg, rgb(128 175 46) 0%, rgb(65 133 42) 100%);
}
#contact h3.h3-title{
color: #fff;
}
#contact h3.h3-title span:before{
background-color: #fff;
}
#contact h3.h3-title span{
color: #fff;
}
#contact .inner{
background-color: #fff;
}
#contact .inner p{
text-align: center;
}
#contact .inner > div .tel,
#contact .inner > div .mail{
display: flex;
justify-content: center;
align-items: center;
}
#contact .inner > div .tel a{
background-color: #ddded6;
line-height: 1;
}
#contact .inner > div .tel a:before,
#contact .inner > div .mail a:before{
font-family: "Font Awesome 5 Free";
font-weight: 600;
}
#contact .inner > div .tel a:before{
content: "\f095";
color: #41852a;
}
#contact .inner > div .tel a{
color: #41852a;
font-weight: 500;
}
#contact .inner > div .mail a{
background-color: #41852a;
line-height: 1;
}
#contact .inner > div .mail a:before{
content: "\f0e0";
color: #fff;
}
#contact .inner > div .mail a{
color: #fff;
font-weight: 500;
}



@media (max-width: 560px){
body, p {
font-size: 1.4rem;
}
a.btn {
padding: 10px;
font-size: 1.4rem;
}	
section {
padding: 40px 0;
}
h3.h3-title{
font-size: 2.2rem;
padding-bottom: 20px;
}
h3.h3-title span{
font-size: 1.4rem;
margin-top: 5px;
}
h3.h3-title span:before{
width: 60px;
margin-top: 5px;
}
h4.h4-sub{
font-size: 1.8rem;
padding-bottom: 15px;
}
/*---------------
header
---------------*/
#header {
height: 60px;
}
#logo {
width: 150px;
top: 50%;
left: 3%;
transform: translateY(-50%);
}
/*---------------
footer
---------------*/
#footer{
margin-top: 40px;
}
#footer .box{
padding-bottom: 40px;
}
#footer ul.banner{
margin-bottom: 40px;
}
#footer ul.banner li{
width: calc(48% - 2px) ;
margin-right: 4%;
margin-bottom: 15px;
}
#footer ul.banner li:nth-of-type(2n){
margin-right: 0%;
}
#footer ul.banner li:nth-last-child(-n+2){
margin-bottom: 0;
}
#footer .inner .detail h1{
width: 80%;
margin: 0 auto 20px;
}
#footer .inner .detail h2{
text-align: center;
font-size: 1.6rem;
padding-bottom: 10px;
}
#footer .inner .detail p{
text-align: center;
font-size: 1.4rem;
line-height: 1.8em;
}
#footer .inner .nav{
padding-top: 40px;
}
#footer .inner .nav li{
text-align: center;
padding-bottom: 10px;
}
#footer .inner .nav li a{
font-size: 1.4rem;
}
#footer small{
font-size: 1.0rem;
padding: 5px 0;
}
/*---------------
contact
---------------*/
#contact .inner{
padding: 30px 5%;
}
#contact .inner p{
padding-bottom: 20px;
line-height: 1.8em;
}
#contact .inner > div a{
width: 80%;
text-align: center;
}
#contact .inner > div .tel a,
#contact .inner > div .mail a{
padding: 20px;
border-radius: 50px;
}
#contact .inner > div .tel a{
margin-bottom: 20px;
}
#contact .inner > div .tel a:before,
#contact .inner > div .mail a:before{
font-size: 2.4rem;
padding-right: 10px;
}
#contact .inner > div .tel a{
font-size: 2.6rem;
}
#contact .inner > div .mail a{
font-size: 1.8rem;
}
}


@media (min-width: 561px){
.nobr{
display: none;
}
a[href^="tel:"] {
pointer-events: none;
}
body, p {
font-size: 1.6rem;
}
a.btn {
padding: 10px 30px;
font-size: 1.4rem;
transition: 0.6s;
}
a.btn:hover {
background-position: 100% 0;
transition: .6s;
color: #fff;
}
h3.h3-title{
font-size: 3.0rem;
padding-bottom: 40px;
}
h3.h3-title span{
font-size: 1.8rem;
margin-top: 7px;
}
h3.h3-title span:before{
width: 50px;
margin-top: 5px;
}
h4.h4-sub{
font-size: 2.6rem;
padding-bottom: 20px;
}
/*---------------
header
---------------*/
#header {
height: 70px;
}
#logo {
top: 52%;
left: 3%;
transform: translateY(-50%);
}
/*---------------
footer
---------------*/
#footer{
margin-top: 100px;
}
#footer .box{
padding-bottom: 100px;
}
#footer ul.banner{
margin-bottom: 60px;
}
#footer ul.banner li{
width: calc(23% - 2px) ;
margin-right: calc(8% / 3);
margin-bottom: 20px;
}
#footer ul.banner li:nth-of-type(4n){
margin-right: 0%;
}
#footer ul.banner li:nth-child(n+5){
margin-bottom: 0;
}
#footer ul.banner li a{
transition: .3s;
}
#footer ul.banner li a:hover{
opacity: 0.6;
transition: .3s;
}
#footer .inner{
display: flex;
justify-content: space-between;
align-items: flex-start;
}
#footer .inner .detail{
width: calc(100% - 130px) ;
}
#footer .inner .detail h1{
width: 60%;
margin-bottom: 20px;
}
#footer .inner .detail h2{
font-size: 2.0rem;
padding-bottom: 10px;
}
#footer .inner .detail p{
font-size: 1.6rem;
}
#footer .inner .nav{
width: 130px;
padding-top: 40px;
}
#footer .inner .nav li{
padding-bottom: 10px;
}
#footer .inner .nav li a{
font-size: 1.5rem;
}
#footer small{
font-size: 1.2rem;
padding: 10px 0;
}
/*---------------
contact
---------------*/
#contact .inner{
padding: 60px 5%;
}
#contact .inner p{
padding-bottom: 30px;
}
#contact .inner > div{
display: flex;
justify-content: center;
align-content: center;
}
#contact .inner > div .tel a,
#contact .inner > div .mail a{
padding: 20px 30px;
border-radius: 50px;
}
#contact .inner > div .tel{
margin-right: 3%;
}
#contact .inner > div .tel a:before,
#contact .inner > div .mail a:before{
font-size: 3.0rem;
padding-right: 10px;
}
#contact .inner > div a{
transition: .3s;
}
#contact .inner > div a:hover{
opacity: 0.8;
transition: .3s;
}
}

@media screen and (max-width: 1024px){
/*---------------
#header
---------------*/
.el_humburger {
top: 50%;
right: 5%;
width: 30px;
transform: translateY(-50%);
}
.js_humburgerOpen .el_humburger > span {
background: #fff;
}	
.uq_spNavi {
display: none;
}	
.uq_spNavi_screen{
padding: 100px 30px 0;
}
.uq_spNavi_screen li{
text-align: center;
padding-bottom: 40px;
font-size: 1.6rem;
}
.uq_spNavi_screen li a{
color: #fff;
}
}

@media (min-width: 561px) and (max-width: 1024px){
section {
padding: 70px 0;
}
/*---------------
#header
---------------*/
#logo {
width: 25%;
}
/*---------------
#contact
---------------*/
#contact .inner > div .tel a{
font-size: 2.8rem;
}
#contact .inner > div .mail a{
font-size: 1.8rem;
}
}

@media screen and (min-width: 1025px){
section {
padding: 80px 0;
}
/*---------------
#header
---------------*/
#logo {
width: 17%;
}
.el_humburger {
display: none;
}	
.uq_spNavi_screen{
display: flex;
align-items: center;
justify-content: flex-end;
height: 70px;
}
.uq_spNavi_screen li{
text-align: center;
font-size: 1.5rem;
line-height: 70px;
}
.uq_spNavi_screen li a{
color: #333;
padding: 0 15px;
transition: .6s;
}
.uq_spNavi_screen li:last-of-type a{
background: linear-gradient(45deg, rgb(65 133 42) 0%, rgb(128 175 46) 50%, rgb(65 133 42) 100%);
background-size: 200% 100%;
padding: 0 20px;
color: #fff;
}
.uq_spNavi_screen li:last-of-type a:hover{
background-position: 100% 0;
transition: .6s;
}
/*---------------
#contact
---------------*/
#contact .inner > div .tel a{
font-size: 3.0rem;
}
#contact .inner > div .mail a{
font-size: 2.0rem;
}
}
