@charset "UTF-8";
#sub_nav.top li:first-child a,
#sub_nav.features li:nth-child(2) a,
#sub_nav.history li:nth-child(3) a,
#sub_nav.access li:nth-child(4) a {
    background-color: #fff;
    color: #d59f3e;
    pointer-events: none;
}

@media screen and (min-width: 769px) {
    #ach h2,
    #greeting h2,
    #overview h2,
    #access h2,
    #map h2 {
        font-size: clamp(2.4rem, 2.8vw, 3.8rem);
    }
    #ach h2 span,
    #greeting h2 span,
    #overview h2 span,
    #access h2 span,
    #map h2 span {
        display: block;
    }
    #ach h2 span.jp,
    #greeting h2 span.jp,
    #overview h2 span.jp,
    #access h2 span.jp,
    #map h2 span.jp {
        font-size: clamp(1.8rem, 1.4vw, 2.2rem);
        margin-top: 1em;
        font-weight: bold;
    }
    /*=============================================================
about_ach
=============================================================*/
    #ach {
        border-bottom: 1px solid #231815;
    }
    #ach .wrap {
        margin-top: clamp(40px, 2vw, 50px);
        display: flex;
        justify-content: space-between;
    }
    #ach .wrap .image {
        width: 41.5%;
        padding-top: min(7.9vw, 150px);
        align-self: flex-end;
    }
    #ach .wrap .image img {
        border-radius: 0 6.84vw 0 0;
    }
    #ach .wrap .text_box {
        width: 51.4%;
        box-sizing: border-box;
        padding-top: clamp(32px, 1.6vw, 40px);
        padding-bottom: clamp(32px, 1.6vw, 40px);
        padding-right: 2vw;
        border-top: 1px solid #231815;
    }
    #ach .wrap .text_box p {
        max-width: 620px;
        margin-right: auto;
        margin-left: 0;
        line-height: 2;
    }
    /*=============================================================
about_greeting
=============================================================*/
    #greeting {
        border-bottom: 1px solid #231815;
        padding-bottom: min(7.9vw, 150px);
    }
    #greeting .inner {
        margin-top: clamp(32px, 1.6vw, 40px);
    }
    #greeting .inner .text_box {
        line-height: 2;
    }
    #greeting .signature {
        margin-top: clamp(32px, 1.6vw, 40px);
        text-align: right;
    }
    /*=============================================================
about_overview
=============================================================*/
    #overview .inner {
        margin-top: clamp(32px, 1.6vw, 40px);
    }
    #overview .inner>dl {
        display: flex;
        flex-wrap: wrap;
        border-bottom: 1px solid #231815;
    }
    #overview .inner>dl>dt {
        width: 210px;
        display: flex;
        align-celf: center;
        padding: 1.5em 1em 1.4em;
        box-sizing: border-box;
        border-top: 1px solid #231815;
        background-color: #f5f5f5;
        font-weight: bold;
    }
    #overview .inner>dl>dd {
        width: calc(100% - 210px);
        padding: 1.5em 1em 1.4em 2em;
        box-sizing: border-box;
        border-top: 1px solid #231815;
    }
    #overview .inner dd.contact_box {
        display: flex;
        flex-wrap: wrap;
    }
    #overview .inner dd a,
    #overview .inner dd span {
        padding-right: 1em;
        display: block;
        box-sizing: border-box;
    }
    #overview .inner dd span.fax {
        width: 50%;
    }
    #overview .inner dd.inner_table {
        padding: 1.5em 1em 1.4em 1em;
    }
    #overview .inner dd.inner_table dl {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        box-sizing: border-box;
    }
    #overview .inner dd.inner_table dl dt {
        width: 14em;
        box-sizing: border-box;
        border-top: 1px solid #231815;
        padding: 1.5em 1em 1.4em 1em;
    }
    #overview .inner dd.inner_table dl dd {
        width: calc(100% - 14em);
        box-sizing: border-box;
        border-top: 1px solid #231815;
        padding: 1.5em 1em 1.4em 1em;
    }
    #overview .inner dd.inner_table dl dt:first-of-type {
        border-top: none;
        padding: 0 1em 1.4em 1em;
    }
    #overview .inner dd.inner_table dl dd:first-of-type {
        border-top: none;
        padding: 0 1em 1.4em 1em;
    }
    #overview .inner dd.inner_table dl dt:last-of-type {
        border-top: none;
        padding: 1.5em 1em 0 1em;
    }
    #overview .inner dd.inner_table dl dd:last-of-type {
        border-top: none;
        padding: 1.5em 1em 0 1em;
    }
    /*=============================================================
features_features
=============================================================*/
    #features {
        margin-top: 0;
        background-color: #fbf7ef;
        padding-top: min(10.5vw, 200px);
        padding-bottom: min(7.9vw, 150px);
    }
    #features h2 {
        font-size: 2.0rem;
        font-weight: 700;
    }
    #features h2 span {
        display: block;
        text-align: center;
    }
    #features h2 span:nth-of-type(2) {
        font-size: 3.4rem;
        font-weight: 900;
        margin-top: .5em;
        letter-spacing: 0.05em;
    }
    #features .inner>.text {
        text-align: center;
        line-height: 3;
        margin-top: min(3.94vw, 75px);
    }
    #features .wrap {
        margin-top: min(10.5vw - 1em, 200px - 1em);
    }
    #features .wrap .box {
        display: flex;
        justify-content: space-between;
        margin-top: min(7.9vw, 150px);
        align-items: center;
    }
    #features .wrap .box:first-child {
        margin-top: 0;
    }
    #features .wrap .box:nth-child(even) {
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
    }
    #features .wrap .box .text_box {
        max-width: 750px;
        width: 50%;
        padding: 1em 2vw;
        box-sizing: border-box;
        margin: 0 auto;
        display: flex;
        align-items: center;
    }
    #features .wrap .box .text_box p {
        font-size: 1.4rem;
        line-height: 2;
    }
    #features .h3_wrap {
        width: 50%;
    }
    #features .h3_wrap h3 {
        background-color: #fbf7ef;
        display: inline-block;
        font-size: 2.0rem;
        padding: 1.0em 0 .9em 1.0em;
        font-weight: 700;
    }
    #features .h3_wrap h3 span {
        font-size: 2.4rem;
        margin: 0 1.5em;
    }
    #features .h3_wrap h3.adjust span {
        font-size: 2.2rem;
        margin: 0 .2em 0 .5em;
        letter-spacing: -0.05em;
    }
    /*=============================================================
features_quality
=============================================================*/
    #quality {
        border-bottom: 1px solid #231815;
    }
    #quality h2,
    #cost h2 {
        font-size: clamp(2.4rem, 2.8vw, 3.8rem);
    }
    #quality h2 span,
    #cost h2 span {
        display: block;
    }
    #quality h2 span.jp,
    #cost h2 span.jp {
        font-size: clamp(1.8rem, 1.4vw, 2.2rem);
        margin-top: 1em;
        font-weight: bold;
    }
    #quality .catch {
        margin-top: 1em;
    }
    #quality .wrap {
        margin-top: clamp(40px, 2vw, 50px);
        display: flex;
        justify-content: space-between;
    }
    #quality .wrap .image {
        width: 41.5%;
        padding-top: min(7.9vw, 150px);
        align-self: flex-end;
    }
    #quality .wrap .image img {
        border-radius: 0 6.84vw 0 0;
    }
    #quality h3 {
        font-size: clamp(2.0rem, 2.4vw, 3.2rem);
        display: flex;
        align-items: center;
    }
    #quality h3 span.jp {
        font-size: clamp(1.6rem, 1.2vw, 1.8rem);
        margin-left: 1em;
        font-weight: bold;
    }
    #quality .wrap .text_box {
        width: 51.4%;
        box-sizing: border-box;
        padding-top: clamp(32px, 1.6vw, 40px);
        padding-bottom: clamp(32px, 1.6vw, 40px);
        padding-right: 2vw;
        border-top: 1px solid #231815;
    }
    #quality .wrap .text_box .box {
        max-width: 620px;
        margin-right: auto;
        margin-left: 0;
        line-height: 2;
        margin-top: min(5.27vw, 100px);
    }
    #quality .wrap .text_box .box:first-of-type {
        margin-top: 0;
    }
    #quality .wrap .text_box .box ul li {
        margin-top: 2em;
    }
    #quality .wrap .text_box .box ul li h4 {
        padding: 0 0 1em 1.5em;
        font-size: 1.6rem;
        position: relative;
    }
    #quality .wrap .text_box .box ul li h4::before {
        content: "";
        position: absolute;
        border-radius: 50%;
        border: 1px solid #231815;
        left: 0;
        top: 0;
        width: 14px;
        height: 14px;
    }
    #quality .wrap .text_box .box ul li h4::after {
        content: "";
        position: absolute;
        border-radius: 50%;
        background-color: #231815;
        left: 3px;
        top: 3px;
        width: 10px;
        height: 10px;
    }
    #quality .wrap .text_box .box ul li p {
        font-size: 1.4rem;
        padding-left: 1.5em;
    }
    /*=============================================================
features_cost
=============================================================*/
    #cost {
        border-bottom: 1px solid #231815;
    }
    #cost .wrap {
        margin-top: clamp(40px, 2vw, 50px);
        display: flex;
        justify-content: space-between;
    }
    #cost .wrap .image {
        width: 41.5%;
        padding-top: min(7.9vw, 150px);
        align-self: flex-end;
    }
    #cost .wrap .image img {
        border-radius: 0 6.84vw 0 0;
    }
    #cost h3 {
        font-size: clamp(1.6rem, 1.2vw, 1.8rem);
        font-weight: bold;
    }
    #cost .wrap .text_box {
        width: 51.4%;
        box-sizing: border-box;
        padding-top: clamp(32px, 1.6vw, 40px);
        padding-bottom: clamp(32px, 1.6vw, 40px);
        padding-right: 2vw;
        border-top: 1px solid #231815;
    }
    #cost .wrap .text_box .box {
        max-width: 620px;
        margin-right: auto;
        margin-left: 0;
        line-height: 2;
        margin-top: min(5.27vw, 100px);
    }
    #cost .wrap .text_box .box:first-of-type {
        margin-top: 0;
    }
    #cost .wrap .text_box .box ul li {
        margin-top: 1em;
        position: relative;
        padding-left: 1.25em;
        font-size: 1.4rem;
    }
    #cost .wrap .text_box .box ul li::before {
        content: "";
        position: absolute;
        background-color: #231815;
        left: 0;
        top: .5em;
        width: 12px;
        height: 12px;
    }
    #cost .wrap .text_box .box p {
        font-size: 1.4rem;
        margin-top: 1em;
    }
    /*=============================================================
history_history
=============================================================*/
    #history {
        border-bottom: 1px solid #231815;
    }
    #history h2,
    #story h2 {
        font-size: clamp(2.4rem, 2.8vw, 3.8rem);
    }
    #history h2 span,
    #story h2 span {
        display: block;
    }
    #history h2 span.jp,
    #story h2 span.jp {
        font-size: clamp(1.8rem, 1.4vw, 2.2rem);
        margin-top: 1em;
        font-weight: bold;
    }
    #history .wrap {
        margin-top: clamp(40px, 2vw, 50px);
        display: flex;
        justify-content: space-between;
    }
    #history .wrap .image {
        width: 41.5%;
        padding-top: min(7.9vw, 150px);
        align-self: flex-end;
    }
    #history .wrap .image img {
        border-radius: 0 6.84vw 0 0;
    }
    #history .wrap .text_box {
        width: 51.4%;
        box-sizing: border-box;
        padding-top: clamp(32px, 1.6vw, 40px);
        padding-bottom: clamp(32px, 1.6vw, 40px);
        padding-right: 2vw;
        border-top: 1px solid #231815;
    }
    #history .wrap .text_box .box {
        display: flex;
        flex-wrap: wrap;
        margin-right: auto;
        margin-left: 0;
    }
    #history .wrap .text_box .box dt {
        width: 6em;
        box-sizing: border-box;
        margin-top: 1.5em;
    }
    #history .wrap .text_box .box dd {
        width: calc(100% - 6em);
        margin-top: 1.5em;
    }
    #history .wrap .text_box .box dt:first-of-type,
    #history .wrap .text_box .box dd:first-of-type {
        margin-top: 0;
    }
    /*=============================================================
history_story
=============================================================*/
    #story .wrap {
        margin-top: clamp(40px, 2vw, 50px);
        display: flex;
        flex-direction: column;
    }
    #story .wrap p {
        text-align: justify;
    }
    #story .wrap .text_box {
        width: 58.5%;
        min-width: 725px;
        box-sizing: border-box;
        padding-right: 2vw;
        margin-top: min(7.9vw, 150px);
    }
    #story .wrap .text_box:first-of-type {
        border-top: 1px solid #231815;
        margin-top: 0;
    }
    #story .wrap .text_box:nth-of-type(odd) {
        margin-right: 0;
        margin-left: auto;
    }
    #story .wrap .text_box:nth-of-type(even) {
        padding-right: 0;
        padding-left: 2vw;
    }
    #story .wrap .text_box .box {
        max-width: 725px;
        margin-right: auto;
        margin-left: 0;
        line-height: 2;
    }
    #story .wrap .text_box:nth-of-type(even) .box {
        margin-right: 0;
        margin-left: auto;
    }
    #story .wrap .text_box .box h3 {
        font-size: 1.8rem;
        line-height: 1.8;
        padding-bottom: clamp(20px, 1.2vw, 32px);
        display: flex;
    }
    #story .wrap .text_box:first-of-type .box h3 {
        padding-top: clamp(32px, 1.6vw, 40px);
    }
    #story .wrap .text_box .box h3 span.year {
        min-width: 5em;
    }
    #story .wrap .text_box .box p {
        margin-top: 1em;
    }
    #story .wrap .text_box .box p:first-of-type {
        margin-top: 0;
    }
    #story .wrap .text_box .box .fig_wrap p {
        box-sizing: border-box;
        padding-right: 1em;
    }
    #story .wrap .text_box .box .fig_wrap .fig {
        width: 180px;
        float: right;
        clear: right;
    }
    #story .wrap .image_wrap {
        width: 100%;
        border-bottom: 1px solid #231815;
    }
    #story .wrap .image_wrap .image {
        width: 41.5%;
        padding-top: min(7.9vw, 150px);
        margin-left: auto;
        margin-right: 0;
    }
    #story .wrap .image_wrap .image img {
        border-radius: 6.84vw 0 0 0;
    }
    /*=============================================================
access_access
=============================================================*/
    #access {}
    #access .wrap {
        margin-top: clamp(40px, 2vw, 50px);
        display: flex;
        justify-content: space-between;
        position: relative;
    }
    #access .wrap::after {
        content: "";
        position: absolute;
        width: 70%;
        border-top: 1px solid #231815;
        right: 0;
    }
    #access .wrap .image {
        width: 41.5%;
        padding-top: min(7.9vw, 150px);
        align-self: flex-end;
    }
    #access .wrap .image img {
        border-radius: 0 6.84vw 0 0;
    }
    #access .wrap .text_box {
        width: 51.4%;
        box-sizing: border-box;
        padding-top: min(7.9vw, 150px);
        padding-bottom: clamp(32px, 1.6vw, 40px);
        padding-right: 2vw;
    }
    #access .wrap h3 {
        font-size: 1.8rem;
        line-height: 1.8;
    }
    #access .wrap .text_box p {
        max-width: 620px;
        margin-right: auto;
        margin-left: 0;
        line-height: 2;
        margin-top: 1em;
    }
    #access .wrap .text_box h3+p {
        margin-top: 3em;
    }
    #access .bg_wrap {
        padding-bottom: clamp(32px, 1.6vw, 40px);
    }
    #access .bg_wrap .wrap {
        position: relative;
        display: flex;
    }
    #access .bg_wrap .wrap::before {
        content: "";
        display: block;
        width: 30%;
    }
    #access .bg_wrap .wrap .text_box {
        width: calc(70% - 3.0rem);
        padding-top: clamp(32px, 1.6vw, 40px);
    }
    /*=============================================================
access_map
=============================================================*/
    #map .wrap {
        margin-top: clamp(40px, 2vw, 50px);
        position: relative;
    }
    #map .wrap::after {
        content: "";
        position: absolute;
        width: 80%;
        border-top: 1px solid #231815;
        right: 0;
        top: 0;
    }
    #map .wrap .map_box {
        width: 60%;
        margin: 0 auto;
        padding-top: min(7.9vw, 150px);
    }
    #map .wrap .map {
        position: relative;
        width: 100%;
        height: 0;
        padding-top: 56.25%;
    }
    #map .wrap .map iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
    #map .wrap .map_box h3 {
        font-weight: bold;
        position: relative;
        padding-left: 1.2em;
        font-size: 1.6rem;
        margin-top: clamp(40px, 2vw, 50px);
    }
    #map .wrap .map_box h3::before {
        content: "";
        position: absolute;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: .4em 0 .4em .6928em;
        border-color: transparent transparent transparent #231815;
        left: 0;
        top: 0;
    }
    #map .wrap .map_box h3+p {
        margin-top: 1em;
    }
}

@media screen and (min-width: 521px) and (max-width: 768px) {
    /*=============================================================
about_ach
=============================================================*/
    #ach {
        border-bottom: 1px solid #231815;
    }
    #ach h2,
    #greeting h2,
    #overview h2,
    #access h2,
    #map h2 {
        border-bottom: 1px solid #231815;
        margin-top: 1em;
        line-height: 1.8;
        font-size: 2.2rem;
        box-sizing: border-box;
        padding: 0 3vw;
        width: 88%;
    }
    #ach h2 span,
    #greeting h2 span,
    #overview h2 span,
    #access h2 span,
    #map h2 span {
        display: block;
    }
    #ach h2 span.jp,
    #greeting h2 span.jp,
    #overview h2 span.jp,
    #access h2 span.jp,
    #map h2 span.jp {
        font-size: 1.4rem;
        margin-top: 0.6em;
        padding-bottom: 1em;
    }
    #ach .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #ach .wrap .image {
        width: 60%;
        padding-top: 60px;
        align-self: flex-start;
        order: 5;
    }
    #ach .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #ach .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        margin-top: 60px;
        padding: 0 3vw;
    }
    #ach .wrap .text_box p {
        margin-right: auto;
        margin-left: 0;
        line-height: 1.8;
    }
    /*=============================================================
about_greeting
=============================================================*/
    #greeting {
        border-bottom: 1px solid #231815;
        padding-bottom: 50px;
    }
    #greeting .inner .text_box {
        line-height: 1.8;
        margin-top: 50px;
    }
    #greeting .signature {
        margin-top: 50px;
        text-align: right;
        box-sizing: border-box;
        padding: 0 3vw;
    }
    /*=============================================================
about_overview
=============================================================*/
    #overview .inner>dl {
        display: flex;
        flex-wrap: wrap;
        margin-top: 60px;
    }
    #overview .inner>dl>dt {
        width: 100%;
        min-height: 60px;
        display: flex;
        align-celf: center;
        margin-top: 1em;
        padding: 1.0em 3vw .9em;
        box-sizing: border-box;
        background-color: #f5f5f5;
        font-weight: bold;
    }
    #overview .inner>dl>dt:first-of-type {
        margin-top: 0;
    }
    #overview .inner>dl>dd {
        width: 100%;
        padding: 1.0em 3vw .9em;
        box-sizing: border-box;
        border-top: 1px solid #231815;
    }
    #overview .inner dd.contact_box {
        display: flex;
        flex-wrap: wrap;
    }
    #overview .inner dd a,
    #overview .inner dd span {
        padding-right: 1em;
        display: block;
        box-sizing: border-box;
    }
    #overview .inner dd span.fax {
        width: 50%;
    }
    #overview .inner dd.inner_table {
        padding: 1.5em 1em 1.4em 1em;
    }
    #overview .inner dd.inner_table dl {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        box-sizing: border-box;
    }
    #overview .inner dd.inner_table dl dt {
        width: 50%;
        box-sizing: border-box;
        border-top: 1px solid #231815;
        padding: 1.0em 3vw .9em;
    }
    #overview .inner dd.inner_table dl dd {
        width: 50%;
        box-sizing: border-box;
        border-top: 1px solid #231815;
        padding: 1.0em 3vw .9em;
    }
    #overview .inner dd.inner_table dl dt:first-of-type {
        border-top: none;
        padding: 0 3vw .9em;
    }
    #overview .inner dd.inner_table dl dd:first-of-type {
        border-top: none;
        padding: 0 3vw .9em;
    }
    #overview .inner dd.inner_table dl dt:last-of-type {
        border-top: none;
        padding: 1.0em 3vw 0;
    }
    #overview .inner dd.inner_table dl dd:last-of-type {
        border-top: none;
        padding: 1.0em 3vw 0;
    }
    /*=============================================================
features_features
=============================================================*/
    #features {
        margin-top: 0;
        background-color: #fbf7ef;
        padding-top: 120px;
        padding-bottom: 60px;
    }
    #features h2 {
        font-size: 2.0rem;
        font-weight: 700;
    }
    #features h2 span {
        display: block;
        text-align: center;
    }
    #features h2 span:nth-of-type(2) {
        font-size: 3.4rem;
        font-weight: 900;
        margin-top: .5em;
        letter-spacing: 0.05em;
    }
    #features .inner>.text {
        text-align: center;
        line-height: 3;
        margin-top: 60px;
    }
    #features .wrap .box {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        margin-top: 60px;
    }
    #features .wrap .box .text_box {
        width: 100%;
        padding: 1em 3vw;
        box-sizing: border-box;
        margin: 0 auto;
        display: flex;
        align-items: center;
    }
    #features .wrap .box .text_box p {
        font-size: 1.6rem;
        line-height: 1.8;
    }
    #features .h3_wrap {
        width: 100%;
        background-position: center;
        background-size: cover;
        display: flex;
        justify-content: flex-end;
        align-items: flex-end;
    }
    #features .wrap .box:nth-child(even) .h3_wrap {
        justify-content: flex-start;
    }
    #features .h3_wrap h3 {
        background-color: #fbf7ef;
        display: inline-block;
        font-size: 2.0rem;
        padding: 1.0em 0 .9em 1.0em;
        font-weight: 700;
    }
    #features .h3_wrap h3 span {
        font-size: 2.4rem;
        margin: 0 1.5em;
    }
    /*=============================================================
features_quality
=============================================================*/
    #quality {
        border-bottom: 1px solid #231815;
    }
    #quality h2,
    #cost h2 {
        border-bottom: 1px solid #231815;
        margin-top: 1em;
        line-height: 1.8;
        font-size: 2.2rem;
        box-sizing: border-box;
        padding: 0 3vw;
        width: 88%;
    }
    #quality h2 span,
    #cost h2 span {
        display: block;
    }
    #quality h2 span.jp,
    #cost h2 span.jp {
        font-size: 1.4rem;
        margin-top: 0.6em;
        padding-bottom: 1em;
    }
    #quality .catch {
        box-sizing: border-box;
        padding: 60px 3vw 0;
    }
    #quality .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #quality .wrap .image {
        width: 60%;
        padding-top: 60px;
        align-self: flex-start;
        order: 5;
    }
    #quality .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #quality h3 {
        font-size: 2.4rem;
        display: flex;
        align-items: center;
    }
    #quality h3 span.jp {
        font-size: 1.4rem;
        margin-left: 1em;
        font-weight: bold;
    }
    #quality .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        padding: 50px 3vw 0;
    }
    #quality .wrap .text_box .box {
        margin-top: 60px;
    }
    #quality .wrap .text_box .box:first-of-type {
        margin-top: 0;
    }
    #quality .wrap .text_box .box ul li {
        margin-top: 2em;
    }
    #quality .wrap .text_box .box ul li h4 {
        padding: 0 0 1em 1.5em;
        font-size: 1.6rem;
        position: relative;
    }
    #quality .wrap .text_box .box ul li h4::before {
        content: "";
        position: absolute;
        border-radius: 50%;
        border: 1px solid #231815;
        left: 0;
        top: 0;
        width: 14px;
        height: 14px;
    }
    #quality .wrap .text_box .box ul li h4::after {
        content: "";
        position: absolute;
        border-radius: 50%;
        background-color: #231815;
        left: 3px;
        top: 3px;
        width: 10px;
        height: 10px;
    }
    #quality .wrap .text_box .box ul li p {
        font-size: 1.4rem;
    }
    /*=============================================================
features_cost
=============================================================*/
    #cost {
        border-bottom: 1px solid #231815;
    }
    #cost .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #cost .wrap .image {
        width: 60%;
        padding-top: 50px;
        align-self: flex-start;
        order: 5;
    }
    #cost .wrap .image img {
        border-radius: 0 6.84vw 0 0;
    }
    #cost h3 {
        font-size: 1.8rem;
        font-weight: bold;
    }
    #cost .wrap .text_box {
        box-sizing: border-box;
        padding: 50px 3vw 0;
    }
    #cost .wrap .text_box .box {
        margin-top: 50px;
    }
    #cost .wrap .text_box .box:first-of-type {
        margin-top: 0;
    }
    #cost .wrap .text_box .box ul li {
        margin-top: 1em;
        position: relative;
        padding-left: 1.25em;
        font-size: 1.4rem;
    }
    #cost .wrap .text_box .box ul li:first-child {
        margin-top: 1.5em;
    }
    #cost .wrap .text_box .box ul li::before {
        content: "";
        position: absolute;
        background-color: #231815;
        left: 0;
        top: .5em;
        width: 12px;
        height: 12px;
    }
    #cost .wrap .text_box .box p {
        font-size: 1.4rem;
        margin-top: 1.5em;
    }
    /*=============================================================
history_history
=============================================================*/
    #history {
        border-bottom: 1px solid #231815;
    }
    #history h2,
    #story h2 {
        border-bottom: 1px solid #231815;
        margin-top: 1em;
        line-height: 1.8;
        font-size: 2.2rem;
        box-sizing: border-box;
        padding: 0 3vw;
        width: 88%;
    }
    #history h2 span,
    #story h2 span {
        display: block;
    }
    #history h2 span.jp,
    #story h2 span.jp {
        font-size: 1.4rem;
        margin-top: 0.6em;
        padding-bottom: 1em;
    }
    #history .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #history .wrap .image {
        width: 60%;
        padding-top: 60px;
        align-self: flex-start;
        order: 5;
    }
    #history .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #history .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        margin-top: 60px;
        padding: 0 3vw;
    }
    #history .wrap .text_box .box {
        display: flex;
        flex-wrap: wrap;
        margin-right: auto;
        margin-left: 0;
    }
    #history .wrap .text_box .box dt {
        width: 6em;
        box-sizing: border-box;
        margin-top: 1.5em;
    }
    #history .wrap .text_box .box dd {
        width: calc(100% - 6em);
        margin-top: 1.5em;
    }
    #history .wrap .text_box .box dt:first-of-type,
    #history .wrap .text_box .box dd:first-of-type {
        margin-top: 0;
    }
    /*=============================================================
history_story
=============================================================*/
    #story .wrap {
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
    }
    #story .wrap p {
        text-align: justify;
    }
    #story .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        padding: 0 3vw 0 9vw;
        margin-top: 120px;
    }
    #story .wrap .text_box:first-of-type {
        margin-top: 60px;
    }
    #story .wrap .text_box:nth-of-type(odd) {
        margin-right: 0;
        margin-left: auto;
    }
    #story .wrap .text_box:nth-of-type(even) {
        padding: 0 9vw 0 3vw;
    }
    #story .wrap .text_box .box {
        margin-right: auto;
        margin-left: 0;
        line-height: 1.8;
    }
    #story .wrap .text_box:nth-of-type(even) .box {
        margin-right: 0;
        margin-left: auto;
    }
    #story .wrap .text_box .box h3 {
        font-size: 1.8rem;
        line-height: 1.8;
        padding-bottom: clamp(20px, 1.2vw, 32px);
        display: flex;
    }
    #story .wrap .text_box .box h3 span.year {
        min-width: 5em;
    }
    #story .wrap .text_box .box p {
        margin-top: 1em;
    }
    #story .wrap .text_box .box p:first-of-type {
        margin-top: 0;
    }
    #story .wrap .text_box .box .fig_wrap p {
        box-sizing: border-box;
        padding-right: 1em;
    }
    #story .wrap .text_box .box .fig_wrap .fig {
        width: 180px;
        float: right;
        clear: right;
    }
    #story .wrap .image_wrap {
        width: 100%;
        border-bottom: 1px solid #231815;
    }
    #story .wrap .image_wrap .image {
        width: 60%;
        padding-top: 60px;
        margin-left: auto;
        margin-right: 0;
    }
    #story .wrap .image_wrap .image img {
        border-radius: 12vw 0 0 0;
    }
    /*=============================================================
access_access
=============================================================*/
    #access {}
    #access .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #access .wrap .image {
        width: 60%;
        padding-top: 60px;
        align-self: flex-start;
        order: 5;
    }
    #access .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #access .wrap .text_box {
        width: 88%;
        box-sizing: border-box;
        margin-top: 60px;
        margin-right: 0;
        margin-left: auto;
        padding: 0 3vw;
    }
    #access .bg_wrap {
        background-color: #fbf7ef;
        padding: 60px 0;
    }
    #access .bg_wrap h2 {
        margin-right: 0;
        margin-left: auto;
    }
    #access .bg_wrap h2 span {
        text-align: right;
    }
    #access .wrap h3 {
        font-size: 1.8rem;
        line-height: 1.8;
    }
    #access .wrap .text_box p {
        margin-right: auto;
        margin-left: 0;
        line-height: 2;
        margin-top: 1em;
    }
    #access .wrap .text_box h3+p {
        margin-top: 2em;
    }
    /*=============================================================
access_map
=============================================================*/
    #map .wrap {
        margin-top: 60px;
    }
    #map .wrap .map_box {
        width: 76%;
        margin: 0 auto;
    }
    #map .wrap .map {
        position: relative;
        width: 100%;
        height: 0;
        padding-top: 56.25%;
    }
    #map .wrap .map iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
    #map .wrap .map_box h3 {
        font-weight: bold;
        position: relative;
        padding-left: 1.2em;
        font-size: 1.6rem;
        margin-top: 2em;
    }
    #map .wrap .map_box h3::before {
        content: "";
        position: absolute;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: .4em 0 .4em .6928em;
        border-color: transparent transparent transparent #231815;
        left: 0;
        top: 0;
    }
    #map .wrap .map_box h3+p {
        margin-top: 1em;
    }
}

@media screen and (max-width: 520px) {
    /*=============================================================
about_ach
=============================================================*/
    #ach {
        border-bottom: 1px solid #231815;
    }
    #ach h2,
    #greeting h2,
    #overview h2,
    #access h2,
    #map h2 {
        border-bottom: 1px solid #231815;
        margin-top: 1em;
        line-height: 1.8;
        font-size: 2.25rem;
        box-sizing: border-box;
        padding: 0 3vw;
        width: 88%;
    }
    #ach h2 span,
    #greeting h2 span,
    #overview h2 span,
    #access h2 span,
    #map h2 span {
        display: block;
    }
    #ach h2 span.jp,
    #greeting h2 span.jp,
    #overview h2 span.jp,
    #access h2 span.jp,
    #map h2 span.jp {
        font-size: 1.75rem;
        margin-top: 0.6em;
        padding-bottom: 1em;
    }
    #ach .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #ach .wrap .image {
        width: 88%;
        padding-top: 50px;
        align-self: flex-start;
        order: 5;
    }
    #ach .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #ach .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        margin-top: 50px;
        padding: 0 3vw;
    }
    #ach .wrap .text_box p {
        margin-right: auto;
        margin-left: 0;
        line-height: 1.8;
    }
    /*=============================================================
about_greeting
=============================================================*/
    #greeting {
        border-bottom: 1px solid #231815;
        padding-bottom: 50px;
    }
    #greeting .inner .text_box {
        line-height: 1.8;
        margin-top: 50px;
    }
    #greeting .signature {
        margin-top: 50px;
        text-align: right;
        box-sizing: border-box;
        padding: 0 3vw;
    }
    /*=============================================================
about_overview
=============================================================*/
    #overview .inner>dl {
        display: flex;
        flex-wrap: wrap;
        margin-top: 50px;
    }
    #overview .inner>dl>dt {
        width: 100%;
        display: flex;
        align-celf: center;
        margin-top: 1em;
        padding: 1.0em 3vw .9em;
        box-sizing: border-box;
        background-color: #f5f5f5;
        font-weight: bold;
    }
    #overview .inner>dl>dt:first-of-type {
        margin-top: 0;
    }
    #overview .inner>dl>dd {
        width: 100%;
        padding: 1.0em 3vw .9em;
        box-sizing: border-box;
        border-top: 1px solid #231815;
    }
    #overview .inner>dl>dd a,
    #overview .inner dd span {
        display: block;
    }
    #overview .inner dd.inner_table {
        padding: 1.5em 1em 1.4em 1em;
    }
    #overview .inner dd.inner_table dl {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        box-sizing: border-box;
    }
    #overview .inner dd.inner_table dl dt {
        width: 50%;
        box-sizing: border-box;
        border-top: 1px solid #231815;
        padding: 1.0em 3vw .9em;
    }
    #overview .inner dd.inner_table dl dd {
        width: 50%;
        box-sizing: border-box;
        border-top: 1px solid #231815;
        padding: 1.0em 3vw .9em;
    }
    #overview .inner dd.inner_table dl dt:first-of-type {
        border-top: none;
        padding: 0 3vw .9em;
    }
    #overview .inner dd.inner_table dl dd:first-of-type {
        border-top: none;
        padding: 0 3vw .9em;
    }
    #overview .inner dd.inner_table dl dt:last-of-type {
        border-top: none;
        padding: 1.0em 3vw 0;
    }
    #overview .inner dd.inner_table dl dd:last-of-type {
        border-top: none;
        padding: 1.0em 3vw 0;
    }
    /*=============================================================
features_features
=============================================================*/
    #features {
        background-color: #fbf7ef;
        padding-top: 100px;
        padding-bottom: 50px;
        margin-top: 0;
    }
    #features .hd_bg {
        background-image: url("../images/top/hd_features.jpg");
        background-size: cover;
        color: #fff;
        font-size: 1.75rem;
        line-height: 1.8;
        padding: 1em 1em .9em;
        text-align: center;
    }
    #features h2 {
        font-size: 2.0rem;
        font-weight: 700;
    }
    #features h2 span {
        display: block;
        text-align: center;
    }
    #features h2 span:nth-of-type(2) {
        font-size: 3.0rem;
        font-weight: 900;
        margin-top: .5em;
        letter-spacing: 0.05em;
    }
    #features .inner>.text {
        text-align: left;
        line-height: 1.8;
        margin-top: 50px;
    }
    #features .wrap {
        margin-top: 50px;
    }
    #features .wrap .box {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        margin-top: min(7.9vw, 150px);
    }
    #features .wrap .box:first-child {
        margin-top: 0;
    }
    #features .wrap .box .text_box {
        width: 100%;
        padding: 1em 3%;
        box-sizing: border-box;
        margin: 0 auto;
        display: flex;
        align-items: center;
    }
    #features .wrap .box .text_box p {
        font-size: 2.0rem;
        line-height: 1.8;
    }
    #features .h3_wrap {
        width: 100%;
        background-position: center;
        background-size: cover;
        display: flex;
        justify-content: flex-end;
        align-items: flex-end;
    }
    #features .box:nth-child(even) .h3_wrap {
        justify-content: flex-start;
    }
    #features .h3_wrap h3 {
        background-color: #fbf7ef;
        display: inline-block;
        font-size: 2.0rem;
        padding: 1.0em 0 .9em 1.0em;
        font-weight: 700;
    }
    #features .h3_wrap h3 span {
        font-size: 2.25rem;
        margin: 0 1.5em;
    }
    #features .h3_wrap h3.adjust span {
        margin: 0 .5em;
    }
    /*=============================================================
features_quality
=============================================================*/
    #quality {
        border-bottom: 1px solid #231815;
    }
    #quality h2,
    #cost h2 {
        border-bottom: 1px solid #231815;
        margin-top: 1em;
        line-height: 1.8;
        font-size: 2.25rem;
        box-sizing: border-box;
        padding: 0 3vw;
        width: 88%;
    }
    #quality h2 span,
    #cost h2 span {
        display: block;
    }
    #quality h2 span.jp,
    #cost h2 span.jp {
        font-size: 1.75rem;
        margin-top: 0.6em;
        padding-bottom: 1em;
    }
    #quality .catch {
        box-sizing: border-box;
        padding: 50px 3vw 0;
    }
    #quality .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #quality .wrap .image {
        width: 88%;
        padding-top: 50px;
        align-self: flex-start;
        order: 5;
    }
    #quality .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #quality h3 {
        font-size: 2.5rem;
        display: flex;
        align-items: center;
    }
    #quality h3 span.jp {
        font-size: 1.75rem;
        margin-left: 1em;
        font-weight: bold;
    }
    #quality .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        padding: 40px 3vw 0;
    }
    #quality .wrap .text_box .box {
        margin-top: 50px;
    }
    #quality .wrap .text_box .box:first-of-type {
        margin-top: 0;
    }
    #quality .wrap .text_box .box ul li {
        margin-top: 2em;
    }
    #quality .wrap .text_box .box ul li h4 {
        padding: 0 0 1em 1.5em;
        font-size: 2.0rem;
        position: relative;
    }
    #quality .wrap .text_box .box ul li h4::before {
        content: "";
        position: absolute;
        border-radius: 50%;
        border: 1px solid #231815;
        left: 0;
        top: 0;
        width: 14px;
        height: 14px;
    }
    #quality .wrap .text_box .box ul li h4::after {
        content: "";
        position: absolute;
        border-radius: 50%;
        background-color: #231815;
        left: 3px;
        top: 3px;
        width: 10px;
        height: 10px;
    }
    #quality .wrap .text_box .box ul li p {
        font-size: 1.75rem;
    }
    /*=============================================================
features_cost
=============================================================*/
    #cost {
        border-bottom: 1px solid #231815;
    }
    #cost .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #cost .wrap .image {
        width: 88%;
        padding-top: 50px;
        align-self: flex-start;
        order: 5;
    }
    #cost .wrap .image img {
        border-radius: 0 6.84vw 0 0;
    }
    #cost h3 {
        font-size: 2.0rem;
        font-weight: bold;
    }
    #cost .wrap .text_box {
        box-sizing: border-box;
        padding: 50px 3vw 0;
    }
    #cost .wrap .text_box .box {
        margin-top: 50px;
    }
    #cost .wrap .text_box .box:first-of-type {
        margin-top: 0;
    }
    #cost .wrap .text_box .box ul li {
        margin-top: 1em;
        position: relative;
        padding-left: 1.25em;
        font-size: 1.75rem;
    }
    #cost .wrap .text_box .box ul li:first-child {
        margin-top: 1.5em;
    }
    #cost .wrap .text_box .box ul li::before {
        content: "";
        position: absolute;
        background-color: #231815;
        left: 0;
        top: .5em;
        width: 12px;
        height: 12px;
    }
    #cost .wrap .text_box .box p {
        font-size: 1.75rem;
        margin-top: 1.5em;
    }
    /*=============================================================
history_history
=============================================================*/
    #history {
        border-bottom: 1px solid #231815;
    }
    #history h2,
    #story h2 {
        border-bottom: 1px solid #231815;
        margin-top: 1em;
        line-height: 1.8;
        font-size: 2.25rem;
        box-sizing: border-box;
        padding: 0 3vw;
        width: 88%;
    }
    #history h2 span,
    #story h2 span {
        display: block;
    }
    #history h2 span.jp,
    #story h2 span.jp {
        font-size: 1.75rem;
        margin-top: 0.6em;
        padding-bottom: 1em;
    }
    #history .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #history .wrap .image {
        width: 88%;
        padding-top: 50px;
        align-self: flex-start;
        order: 5;
    }
    #history .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #history .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        margin-top: 50px;
        padding: 0 3vw;
    }
    #history .wrap .text_box .box {
        display: flex;
        flex-wrap: wrap;
        margin-right: auto;
        margin-left: 0;
    }
    #history .wrap .text_box .box dt {
        width: 5em;
        box-sizing: border-box;
        margin-top: 2.0em;
        font-size: 1.75rem;
    }
    #history .wrap .text_box .box dd {
        width: calc(100% - 5em);
        margin-top: 2.0em;
        font-size: 1.75rem;
    }
    #history .wrap .text_box .box dt:first-of-type,
    #history .wrap .text_box .box dd:first-of-type {
        margin-top: 0;
    }
    /*=============================================================
history_story
=============================================================*/
    #story .wrap {
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
    }
    #story .wrap p {
        text-align: justify;
        font-size: 1.75rem;
    }
    #story .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        padding: 0 3vw 0 9vw;
        margin-top: 100px;
    }
    #story .wrap .text_box:first-of-type {
        margin-top: 50px;
    }
    #story .wrap .text_box:nth-of-type(odd) {
        margin-right: 0;
        margin-left: auto;
    }
    #story .wrap .text_box:nth-of-type(even) {
        padding: 0 9vw 0 3vw;
    }
    #story .wrap .text_box .box {
        margin-right: auto;
        margin-left: 0;
        line-height: 1.8;
    }
    #story .wrap .text_box:nth-of-type(even) .box {
        margin-right: 0;
        margin-left: auto;
    }
    #story .wrap .text_box .box h3 {
        font-size: 2.0rem;
        line-height: 1.8;
        padding-bottom: clamp(20px, 1.2vw, 32px);
        display: flex;
    }
    #story .wrap .text_box .box h3 span.year {
        min-width: 5em;
    }
    #story .wrap .text_box .box p {
        margin-top: 1em;
    }
    #story .wrap .text_box .box p:first-of-type {
        margin-top: 0;
    }
    #story .wrap .text_box .box .fig_wrap p {
        box-sizing: border-box;
        padding-right: 1em;
    }
    #story .wrap .text_box .box .fig_wrap .fig {
        width: 150px;
        float: right;
        clear: right;
    }
    #story .wrap .image_wrap {
        width: 100%;
        border-bottom: 1px solid #231815;
    }
    #story .wrap .image_wrap .image {
        width: 88%;
        padding-top: 50px;
        margin-left: auto;
        margin-right: 0;
    }
    #story .wrap .image_wrap .image img {
        border-radius: 12vw 0 0 0;
    }
    /*=============================================================
access_access
=============================================================*/
    #access .wrap {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    #access .wrap .image {
        width: 88%;
        padding-top: 60px;
        align-self: flex-start;
        order: 5;
    }
    #access .wrap .image img {
        border-radius: 0 12vw 0 0;
    }
    #access .wrap .text_box {
        width: 100%;
        box-sizing: border-box;
        margin-top: 50px;
        margin-right: 0;
        margin-left: auto;
        padding: 0 3vw;
    }
    #access .bg_wrap {
        background-color: #fbf7ef;
        padding: 50px 0;
    }
    #access .bg_wrap h2 {
        margin-right: 0;
        margin-left: auto;
    }
    #access .bg_wrap h2 span {
        text-align: right;
    }
    #access .wrap h3 {
        font-size: 2.25rem;
        line-height: 1.8;
    }
    #access .wrap .text_box p {
        margin-right: auto;
        margin-left: 0;
        line-height: 2;
        margin-top: 1em;
        text-align: justify;
    }
    #access .wrap .text_box h3+p {
        margin-top: 2em;
    }
    /*=============================================================
access_map
=============================================================*/
    #map .wrap {
        margin-top: 50px;
    }
    #map .wrap .map_box {
        width: 76%;
        margin: 0 auto;
    }
    #map .wrap .map {
        position: relative;
        width: 100%;
        height: 0;
        padding-top: 56.25%;
    }
    #map .wrap .map iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
    #map .wrap .map_box h3 {
        font-weight: bold;
        position: relative;
        padding-left: 1.2em;
        font-size: 2.0rem;
        margin-top: 2em;
    }
    #map .wrap .map_box h3::before {
        content: "";
        position: absolute;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: .4em 0 .4em .6928em;
        border-color: transparent transparent transparent #231815;
        left: 0;
        top: 0;
    }
    #map .wrap .map_box h3+p {
        margin-top: 1em;
    }
}