/*
* 共通スタイル
*/
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
body{
    font-family: "awarabi Gothic", sans-serif;
    overflow-x: hidden;
}
.wf-sawarabimincho {
    font-family: "Sawarabi Mincho";
}
.inner {
    max-width: 1070px;
    display: block;
    margin: 0 auto;
}
section{
    width: 100%;
    height: auto;
}

@media screen and (max-width: 768px) {
    header .inner a img{
        max-width: 10%;
    }
}

/*
* ヒーローエリア
*/
#mainvisual {
    position: relative;
    overflow: hidden;
}
#mainvisual .inner {
    position: relative;
    width: 100%;
    max-height: 500px;
    background-image: url(../images/pattern.png);
    background-repeat: repeat;
    background-position: center center;
    background-size: auto;
}

#mainvisual .hero{
    display: block;
    margin: 0 auto;
    width: 80%;
}

#mainvisual #eyecatch {
    position: absolute;
    width: 30%;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

#mainvisual .costfree{
    position: absolute;
    top: 10%;
    left: 10%;
}

#mainvisual .seisakufree{
    position: absolute;
    top: 60%;
    right: 10%;
}
@media screen and (max-width: 1080px) {
    #mainvisual .costfree {
        width: 12.9%;
    }
    #mainvisual .seisakufree {
        width: 12.9%;
    }
}
.purun {
    animation: purun 0.8s linear 0s 1;
}

@keyframes purun {
    0% {
        transform: scale(1.0, 1.0) translate(0%, 0%);
    }

    15% {
        transform: scale(0.9, 0.9) translate(0%, 5%);
    }

    30% {
        transform: scale(1.3, 0.8) translate(0%, 10%);
    }

    50% {
        transform: scale(0.8, 1.3) translate(0%, -10%);
    }

    70% {
        transform: scale(1.1, 0.9) translate(0%, 5%);
    }

    100% {
        transform: scale(1.0, 1.0) translate(0%, 0%);
    }
}

/*
    コンセプト
*/
#concept .inner{
    text-align: center;
    margin-top: 50px;
    margin-bottom: 50px;
}
#concept h2 {
    font-size: 1.5rem;
    margin: 30px 0;
}
#concept h2 span {
    color: #e10012;
}
#concept p {
    margin: 20px 0;
}
#about, #point{
    padding-bottom: 50px;
}

/*
* About
*/
#about .inner{
    background-color: #acdddf;
    padding-bottom: 10px;
}
#about .sectiontitle{
    padding: 30px;
}
#about .sectiontitle h3{
    font-size: 2rem;
    text-decoration: underline 5px solid #1074bc;
    text-underline-offset: 10px;
}
#about .sectiontitle h3 span{
    color: #1074bc;
}
#about .box-top {
    display: flex;
    justify-content: center;
    gap: 20px;
}
#about .box-top img {
    max-width: 100%;
    height: auto;
}
@media screen and (max-width: 768px) {
    #about .box-top {
        flex-direction: column;
        align-items: center;
    }
}
#about .box-bottom {
    text-align: center;
    background-color: #fff;
    margin: 50px;
    padding: 30px;
}
#about .box-bottom p {
    margin: 20px 0;
    line-height: 1.8;
}
.highlight {
    color: #e10012;
    font-weight: bold;
    font-size: 1.8rem;
}
@media screen and (max-width: 768px) {
    #about .box-bottom {
        padding: 20px;
    }
    #about .box-bottom p {
        font-size: 0.9rem;
    }
    #about .highlight {
        font-size: 1.5rem;
    }
}

/*
* Point
*/
#point .inner{
    background-color: #cfe4ae;
    padding-bottom: 10px;
}
#point .sectiontitle{
    padding: 30px;
}
#point .sectiontitle h3{
    font-size: 2rem;
    text-decoration: underline 5px solid #0d9344;
    text-underline-offset: 10px;
}
#point .sectiontitle h3 span{
    color: #0d9344;
}
#point .box-top{
    display: block;
    text-align: center;
}
#point .box-top img {
    max-width: 100%;
    height: auto;
}
@media screen and (max-width: 768px) {
    #point .box-top img{
        max-width: 80%;
        height: auto;
    }
}
#point .points {
    display: flex;
    justify-content: space-between;
    margin: 30px 0;
}
#point .point1, #point .point2, #point .point3 {
    flex: 1;
    text-align: center;
    background-color: #fff;
    margin: 0 20px;
    padding: 20px;
    border: 3px solid #0d9344;
    text-align: left;
}
#point .point1 h2, #point .point2 h2, #point .point3 h2 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    color: #0d9344;
    font-weight: bold;
}
#point .point1 h3, #point .point2 h3, #point .point3 h3 {
    font-size: 1.3rem;
    margin-bottom: 5px;
    color: #0d9344;
    font-weight: bold;
}
#point .point1 p, #point .point2 p, #point .point3 p {
    padding: 40px 0 0;
}
#point .point1 p .highlight,
#point .point2 p .highlight,
#point .point3 p .highlight {
    font-size: 1.3rem;
}
@media screen and (max-width: 768px) {
    #point .points {
        display: block;
        gap: 20px;
    }
    #point .point1, #point .point2, #point .point3 {
        margin: 20px;
    }
}

/*
* Step
*/
#step .inner {
    background-color: #fada67;
    padding-bottom: 10px;
}
#step .sectiontitle {
    padding: 30px;
}
#step .sectiontitle h3 {
    font-size: 2rem;
    text-decoration: underline 5px solid #f58220;
    text-underline-offset: 10px;
}
#step .sectiontitle h3 span {
    color: #f58220;
}
#step .box-top {
    display: flex;
    justify-content: center;
    gap: 20px;
}
#step .box-top img {
    max-width: 100%;
    height: auto;
}
@media screen and (max-width: 768px) {
    #step .box-top img{
        max-width: 80%;
        height: auto;
    }
}
#step .steps{
    display: flex;
    margin-top: 30px;
    gap: 10px;
}
.step1, .step2, .step3, .step4, .step5, .step6, .step7, .step8 {
    flex: 1;
    background-color: #fff;
    padding: 20px;
    border: 3px solid #f58220;
}
.step1{
    margin-left: 5px;
}
.step8{
    margin-right: 5px;
}
@media screen and (max-width: 1070px){
    .step1{
        margin-left: 0;
    }
    .step8{
        margin-right: 0;
    }
}
.step1 h2, .step2 h2, .step3 h2, .step4 h2, .step5 h2 , .step6 h2, .step7 h2, .step8 h2 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    color: #f58220;
    font-weight: bold;
}
.step1 h3, .step2 h3, .step3 h3, .step4 h3, .step5 h3, .step6 h3, .step7 h3, .step8 h3 {
    font-size: 1.3rem;
    margin: 0 auto;
    color: #f58220;
    font-weight: bold;
    writing-mode: vertical-rl;
}
@media screen and (max-width: 1070px) {
    #step .steps {
        display: block;
        gap: 20px;
    }
    .step1, .step2, .step3, .step4, .step5, .step6, .step7, .step8 {
        margin: 20px;
        text-align: center;
    }
    .step1 h3, .step2 h3, .step3 h3, .step4 h3, .step5 h3, .step6 h3, .step7 h3, .step8 h3 {
        writing-mode: horizontal-tb;
    }
}

/*
* contact
*/
#contact {
    padding-top: 50px;
}
#contact .inner {
    background-color: #f8f8f8;
    padding-bottom: 50px;
    margin: 0 auto;
}
#contact .sectiontitle {
    padding: 30px;
}
#contact .sectiontitle h3 {
    font-size: 2rem;
    text-decoration: underline 3px #646464;
    text-underline-offset: 10px;
}

#contact .inner .sectionbox form {
    margin: 0 auto;
    padding-left: 30px;
}

form div {
    margin-bottom: 30px;
}

label {
    font-size: 1.125rem;
    font-weight: bold;
    display: block;
    margin: 0 auto 10px;
}

label span {
    font-size: 0.9rem;
    font-weight: normal;
    color: #e10012;
}

input,
textarea,
select {
    background-color: rgba(255, 255, 255, .5);
    border: 1px solid #646464;
    border-radius: 5px;
    padding: 10px;
    font-size: 1rem;
    display: block;
    margin: 0 auto;
}

textarea {
    display: block;
    margin: 0 auto;
    max-width: 100%;
}

.button {
    display: block;
    margin: 20px auto 30px;
    font-size: 1.5rem;
    background-color: #fff;
    border-radius: 5px;
    padding: 18px 32px;
}

.button:hover {
    opacity: 0.6;
    background-color: #646464;
}

/*
* footer
*/
footer {
    background-color: #4c3018;
    margin-top: 50px;
    padding: 50px 0 50px;
    position: relative;
}
footer .sectionbox{
    display: flex;
    justify-content: center;
    padding: 30px;
    gap: 30px;
}
footer .boxleft{
    text-align: left;
}
footer .boxleft h2, footer .boxleft h3, footer .boxleft p {
    color: #fff;
}
footer .boxright{
    text-align: right;
}
.linkbox{
    display: flex;
    border: 1px solid #fff;
}
.linkbox .boxleft{
    display: block;
    margin: auto;
}
.linkbox .boxleft h3{
    padding: 30px;
}
.linkbox .boxright{
    display: block;
    margin: auto;
    padding: 30px;
    text-align: right;
}
.linkbox .boxright a:hover{
    opacity: 0.6;
    color: #646464;
}
.copyright{
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    margin: 0 auto;
    text-align: center;
    color: #fff;
}
@media screen and (max-width: 768px) {
    footer .sectionbox{
        display: block;
        text-align: center;
    }
    footer .boxleft{
        text-align: center;
        margin-bottom: 30px;
    }
    footer .boxright{
        text-align: center;
        margin-top: 30px;
    }
    .linkbox{
        display: block;
        margin: 0 auto;
    }
    .linkbox .boxleft h3{
        padding-bottom: 10px;
    }
    .linkbox .boxright{
        padding: 20px;
        text-align: center;
    }
}