html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, 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: inherit;
    font-size: 100%;
    vertical-align: baseline
}

html {
    line-height: 1
}

ol, ul {
    list-style: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

caption, th, td {
    text-align: left;
    font-weight: normal;
    vertical-align: middle
}

q, blockquote {
    quotes: none
}

q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none
}

a img {
    border: none
}

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

* {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-appearance: none
}

input, textarea, select, label {
    vertical-align: sub;
    font-family: inherit;
    font-size: 16px;
    letter-spacing: 1.5px;
    line-height: 170%;
    outline: none;
}

@media screen and (max-width: 700px) {
    input, textarea, select, label {
        -webkit-appearance: none
    }
}

input::placeholder {
    color: #ccc
}

input:-ms-input-placeholder {
    color: #ccc
}

input::-ms-input-placeholder {
    color: #ccc
}

body {
    color: #333;
    font-family: -apple-system-subset, "Avenir Next", Arial, Roboto, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, sans-serif;
    font-size: 16px;
    letter-spacing: 1.5px;
    width: 100%;
    line-height: 170%;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden
}

a:link {
    color: #333;
    text-decoration: none
}

a:hover {
    color: #333;
    text-decoration: none
}

a:visited {
    color: #333;
    text-decoration: none
}

.wrap {
    width: 1100px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 2
}

@media screen and (max-width: 1000px) {
    .wrap {
        width: 100%;
        padding-left: 10px;
        padding-right: 10px
    }
}

header {
    width: 100%;
    height: 85px;
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 999;
    background-color: rgba(255, 255, 255, 0.8)
}

@media screen and (max-width: 1000px) {
    header {
        padding: 0px;
        height: 65px;
    }
}

header .wrap {
    padding: 0px 20px
}

@media screen and (max-width: 1000px) {
    header .wrap {
        padding: 0px
    }
}

header h1 {
    padding-top: 15px;
    float: left
}

@media screen and (max-width: 1000px) {
    header h1 {
        padding: 10px 0px 0px 15px
    }
}

header h1 img {
    width: 200px
}

@media screen and (max-width: 1000px) {
    header h1 img {
        width: 145px
    }
}

header nav {
    float: right;
    font-size: 15px;
    padding-top: 25px
}

@media screen and (max-width: 1000px) {
    header nav {
        display: none;
        padding-top: 12px;
        margin-top: -2px;
        width: 100%
    }
}

@media screen and (max-width: 1000px) {
    header nav ul {
        background-color: #B2DEA5
    }
}

header nav ul li {
    display: inline-block;
    position: relative;
    font-family: 'Frank Ruhl Libre', serif
}

@media screen and (max-width: 1000px) {
    header nav ul li {
        width: 100%;
        display: block;
        border-bottom: solid 1px #F4FEF1
    }
}

header nav ul li a {
    display: block;
    padding: 5px 20px
}

@media screen and (max-width: 1000px) {
    header nav ul li a {
        padding: 10px 15px
    }
}

header nav ul li a:hover {
    color: #999;
}

header #toggle {
    display: none;
    position: absolute;
    top: 20px;
    right: 15px;
    cursor: pointer
}

@media screen and (max-width: 1000px) {
    header #toggle {
        display: block
    }
}

header #toggle .menu-trigger, header #toggle .menu-trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box
}

header #toggle .menu-trigger {
    position: relative;
    width: 36px;
    height: 23px
}

header #toggle .menu-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #000;
    border-radius: 4px
}

header #toggle .menu-trigger span:nth-of-type(1) {
    top: 0
}

header #toggle .menu-trigger span:nth-of-type(2) {
    top: 10px
}

header #toggle .menu-trigger span:nth-of-type(3) {
    bottom: 0
}

header #toggle .menu-trigger.active span:nth-of-type(1) {
    -webkit-transform: translateY(15px) rotate(-45deg);
    transform: translateY(15px) rotate(-45deg)
}

header #toggle .menu-trigger.active span:nth-of-type(2) {
    opacity: 0
}

header #toggle .menu-trigger.active span:nth-of-type(3) {
    -webkit-transform: translateY(-7px) rotate(45deg);
    transform: translateY(-7px) rotate(45deg)
}

main {
    overflow: hidden
}

main h2 {
    text-align: center;
    font-family: 'Frank Ruhl Libre', serif;
    font-size: 36px;
    line-height: 100%;
}

main dfn.h2 {
    display: block;
    text-align: center;
    padding: 10px 0px;
    font-size: 20px;
    color: #CCC
}

main p.lead {
    margin: 10px 0px 30px;
    display: block;
    text-align: center
}

#visual {
    position: relative;
    text-align: center;
    padding-top: 260px;
    background-image: url(../img/visual@2x.png);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    height: 600px
}

#visual h2 {
    position: absolute;
    left: 50%;
    top: 0px;
    margin-left: -100px;
}

#visual h2 img {
    width: 500px;
}

@media screen and (max-width: 1000px) {
    #visual {
        background-position: top left -180px;
        padding-top: 230px;
        height: 450px;
    }

    #visual h2 {
        background-color: rgba(255, 255, 255, 0.7);
        padding: 10px 15px;
        margin-left: -45%;
        width: 90%;
    }

    #visual h2 img {
        width: 100%;
    }
}

#story {
    padding-top: 50px;
    overflow: hidden;
}

#story h2 {
    font-size: 24px;
}

#story dl {
    width: calc((100% / 3) - 20px);
    margin: 40px 30px 80px 0px;
    padding: 20px;
    float: left;
    text-align: center;
    background-color: #B2DEA5;
    border-radius: 5px;
}

#story dl:last-child {
    margin-right: 0px;
}

#story dt {
    color: #fff;
}

@media screen and (max-width: 1000px) {
    #story {
        padding-top: 30px;
        padding-bottom: 50px;
    }

    #story h2 {
        font-size: 16px;
    }

    #story dl {
        width: 100%;
        padding: 15px;
        margin: 15px 0px 0px 0px;
    }
}

#service {
    overflow: hidden;
    margin-bottom: 80px;
}

#service .items {
    width: calc((100% / 3) - 20px);
    min-height: 310px;
    margin: 100px 30px 0px 0px;
    padding: 20px;
    float: left;
    border: solid 1px #B2DEA5;
    border-radius: 5px;
}

#service .items figure {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background-color: #B2DEA5;
    margin: -100px auto 0px;
    text-indent: -9999px;
}

#service .items figure.icon1 {
    background-image: url(../img/icon1.png);
    background-repeat: no-repeat;
    background-size: 60px auto;
    background-position: center;
}

#service .items figure.icon2 {
    background-image: url(../img/icon2.png);
    background-repeat: no-repeat;
    background-size: 80px auto;
    background-position: center;
}

#service .items figure.icon3 {
    background-image: url(../img/icon3.png);
    background-repeat: no-repeat;
    background-size: 60px auto;
    background-position: center;
}

#service .items h3 {
    min-height: 80px;
    font-weight: bold;
    padding: 15px 0px 10px;
}

#service .items p {
    font-size: 15px;
}

#service .items:last-child {
    margin-right: 0px;
}

@media screen and (max-width: 1000px) {
    #service .items {
        width: 100%;
        min-height: auto;
        margin: 100px 0px 0px 0px;
        padding: 15px;
    }

    #service .items h3 {
        min-height: auto;
    }
}

#faq {
    overflow: hidden;
    margin-bottom: 80px;
}

#faq dl {
    margin-top: 20px;
    background-color: #F4FEF1;
    border: solid 1px #D1ECC8;
    padding: 20px;
    border-radius: 5px;
    width: calc(50% - 15px);
    float: left;
    cursor: pointer;
}

#faq dl dt {
    padding: 3px 0px 0px 40px;
}

#faq dl dd {
    border-top: solid 1px #D1ECC8;
    padding: 10px 0px 0px;
    margin-top: 10px;
    display: none;
}

#faq dl:before {
    content: "Q";
    font-family: 'Frank Ruhl Libre', serif;
    font-size: 36px;
    color: #52B279;
    float: left;
}

#faq dl:nth-child(odd) {
    margin-right: 30px;
}

@media screen and (max-width: 1000px) {
    #faq dl {
        padding: 15px;
        width: 100%;
    }
}

#company .wrap {
    overflow: hidden;
    margin-bottom: 40px;
}

#company dfn {
    margin-bottom: 30px
}

#company dl {
    float: left;
    padding: 10px 5px;
    border-bottom: solid 1px #C9C9DA
}

@media screen and (max-width: 700px) {
    #company dl {
        padding: 10px 0px
    }
}

#company dl dt {
    width: 110px;
    float: left;
    font-weight: bold
}

@media screen and (max-width: 700px) {
    #company dl dt {
        width: 90px
    }
}

#company dl dd {
    padding-left: 110px;
    line-height: 150%
}

@media screen and (max-width: 700px) {
    #company dl dd {
        padding-left: 90px
    }
}

#company dl:nth-of-type(1), #company dl:nth-of-type(3), #company dl:nth-of-type(5), #company dl:nth-of-type(7) {
    width: 48%;
    margin-right: 4%
}

@media screen and (max-width: 700px) {
    #company dl:nth-of-type(1), #company dl:nth-of-type(3), #company dl:nth-of-type(5), #company dl:nth-of-type(7) {
        width: 100%;
        margin-right: 0%
    }
}

#company dl:nth-of-type(2), #company dl:nth-of-type(4), #company dl:nth-of-type(6) {
    width: 48%
}

@media screen and (max-width: 700px) {
    #company dl:nth-of-type(2), #company dl:nth-of-type(4), #company dl:nth-of-type(6) {
        width: 100%
    }
}

#company h3:before {
    content: "";
    clear: both;
    display: block;
    margin-bottom: 10px
}

#company h3 {
    font-weight: bold;
    padding: 10px 5px
}

@media screen and (max-width: 700px) {
    #company h3 {
        padding: 10px 0px
    }
}

#company ul {
    padding-bottom: 60px;
    margin-bottom: 60px
}

#company ul li {
    float: left;
    list-style-type: decimal;
    list-style-position: inside
}

@media screen and (max-width: 700px) {
    #company ul li {
        border-bottom: solid 1px #C9C9DA;
        line-height: 150%;
        padding-bottom: 10px;
        margin-bottom: 10px
    }
}

#company ul li:nth-of-type(1), #company ul li:nth-of-type(3), #company ul li:nth-of-type(5) {
    width: 45%;
    margin-right: 4%
}

@media screen and (max-width: 700px) {
    #company ul li:nth-of-type(1), #company ul li:nth-of-type(3), #company ul li:nth-of-type(5) {
        width: 100%;
        margin-right: 0%
    }
}

#company ul li:nth-of-type(2), #company ul li:nth-of-type(4), #company ul li:nth-of-type(6) {
    width: 45%
}

@media screen and (max-width: 700px) {
    #company ul li:nth-of-type(2), #company ul li:nth-of-type(4), #company ul li:nth-of-type(6) {
        width: 100%
    }
}

#company #access {
    margin-bottom: 60px;
    padding-top: 60px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

@media screen and (max-width: 700px) {
    #company #access iframe {
        margin-top: 80px
    }
}

#company #access h4 {
    font-family: 'Frank Ruhl Libre', serif;
    position: absolute;
    top: 35px;
    left: 50%;
    width: 200px;
    margin-left: -100px;
    background-color: #fff;
    padding: 10px;
    border: solid 1px #000;
    font-size: 20px
}

@media screen and (max-width: 700px) {
    #contact p br {
        display: none
    }
}

#contact input.error, #contact textarea.error {
    border: none;
}

#contact label.error {
    padding: 3px 0 0;
    font-size: 12px;
    color: #FF4D4D;
    display: block !important;
}

#contact dl {
    float: left;
    padding: 10px 5px;
    border-bottom: solid 1px #C9C9DA
}

#contact dl#desc {
    border-bottom: none;
}

@media screen and (max-width: 700px) {
    #contact dl {
        padding: 5px 0px
    }

    #contact label.error {
        padding-left: 0px
    }
}

#contact dl dt {
    padding-top: 6px;
    width: 150px;
    float: left;
    font-weight: bold
}

#contact dl dd input {
    width: 350px;
    padding: 0;
    border: none
}

@media screen and (max-width: 700px) {
    #contact dl dd input {
        padding: 5px 5px 5px 0px
    }
}

#contact dl:nth-of-type(1), #contact dl:nth-of-type(3) {
    width: 48%;
    margin-right: 4%
}

@media screen and (max-width: 700px) {
    #contact dl:nth-of-type(1), #contact dl:nth-of-type(3) {
        width: 100%;
        margin-right: 0%
    }
}

#contact dl:nth-of-type(2), #contact dl:nth-of-type(4) {
    width: 48%
}

@media screen and (max-width: 700px) {
    #contact dl:nth-of-type(2), #contact dl:nth-of-type(4) {
        width: 100%
    }
}

#contact dl#desc {
    width: 100%;
    margin-bottom: 10px
}

#contact dl#desc dt {
    width: 100%;
    padding-bottom: 5px
}

#contact dl#desc dd textarea {
    width: 100%;
    padding: 10px;
    border-radius: 4px;
    background-color: #FFF;
    border: solid 1px #C9C9DA;
}

#contact dl#desc dd label.error {
    padding-left: 0px
}

#contact #agree {
    padding: 10px 0px;
    text-align: center
}

#contact #agree1 {
    border: none;
}

#contact .checkbox01 {
    position: relative;
    line-height: 2.6;
    padding: 0 20px 0 30px
}

#contact .checkbox01:hover:after {
    border-color: #52B279
}

#contact .checkbox01:after, #contact .checkbox01:before {
    position: absolute;
    content: "";
    display: block;
    top: 50%
}

#contact .checkbox01:after {
    left: 0;
    margin-top: -12px;
    width: 18px;
    height: 18px;
    border: 2px solid #d1d1d1;
    border-radius: 4px
}

#contact .checkbox01:before {
    left: 7px;
    margin-top: -9px;
    width: 5px;
    height: 10px;
    border-right: 3px solid #52B279;
    border-bottom: 3px solid #52B279;
    transform: rotate(45deg);
    opacity: 0
}

#contact input[type=checkbox]:checked+.checkbox01:before {
    opacity: 1
}

#contact #privacy {
    font-size: 13px;
    padding: 20px;
    border: solid 1px #ddd;
    height: 180px;
    overflow-y: scroll
}

#contact #privacy h3 {
    font-weight: bold;
    margin: 20px 0px 15px 0px;
    padding-bottom: 10px;
    border-bottom: solid 1px #ccc;
}

#contact #formbtn {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    padding-top: 30px
}

#contact #formbtn input[type=submit] {
    color: #fff;
    font-weight: bold;
    background-color: #52B279;
    padding: 15px 60px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

#pagetop {
    position: fixed;
    bottom: 20px;
    right: 20px;
    display: block;
    width: 50px;
    height: 50px;
    background: #52B279;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    z-index: 20;
    color: #fff;
    border-radius: 5px
}

@media screen and (max-width: 1000px) {
    #pagetop {
        bottom: 15px;
        right: 15px
    }
}

#pagetop a {
    display: block;
    width: 50px;
    height: 50px
}

#pagetop:before {
    text-indent: 0;
    width: 12px;
    height: 12px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -2px 0 0 -6px;
    content: "";
    vertical-align: middle;
    border-left: 2px solid #fff;
    border-top: 2px solid #fff;
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    cursor: pointer
}

@media screen and (max-width: 1000px) {
    #pagetop:before {
        left: 20px;
        margin: -2px 0 0 -2px;
    }
}

footer {
    margin-top: 100px;
    margin-bottom: 20px
}

footer dl {
    width: 100%;
    text-align: center
}

footer dl dt {
    width: 200px;
    height: 60px;
    background-image: url(../img/logo@2x.png);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 200px auto;
    margin: 0px auto 10px auto;
    text-indent: -9999px
}

footer dl dd {
    font-size: 11px;
    color: #ccc;
    letter-spacing: 1px;
    line-height: 150%
}

footer dl dd br {
    display: none
}

@media screen and (max-width: 700px) {
    footer dl dd br {
        display: block
    }
}

.popup {
    background-color: rgba(0, 0, 0, 0.8);
    position: fixed;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    z-index: 999;
    display: none
}

.popup a {
    border: solid 1px #52B279;
    display: block;
    width: 270px;
    padding: 10px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    border-radius: 5px;
    color: #52B279
}

.popup a:hover {
    background-color: #fff
}

#mailsend {
    text-align: center;
    padding: 200px 15px 0px 15px
}

#mailsend p {
    color: #fff;
    padding-bottom: 20px;
    margin-bottom: 20px
}

@media screen and (max-width: 700px) {
    #mailsend p br {
        display: none
    }
}

#message {
    text-align: center;
    padding: 200px 15px 0px 15px
}

#message p {
    color: #fff;
    padding-bottom: 20px;
    margin-bottom: 20px
}

@media screen and (max-width: 700px) {
    #message p br {
        display: none
    }
}

#message p:first-child {
    border-bottom: solid 1px #999
}
