/* -----------------
sec01
-------------------- */
.sec01 {
    padding: 84px 0 106px;
}

.sec01 .ttl span {
    line-height: 1;
    text-align: center;
    display: block;
}

.sec01 .ttl_jp {
    font-weight: 500;
    font-size: 2.8rem;
    letter-spacing: .02em;
    text-indent: .02em;
}

.sec01 .ttl_en {
    font-weight: 700;
    font-size: 2.2rem;
    letter-spacing: .04em;
    text-indent: .04em;
    margin-top: 28px;
}

.sec01 .address_box {
    margin: 45px auto 0;
    max-width: 953px;
}

.sec01 .address_list li {
    display: flex;
    border-bottom: 1px solid #B2B2B2;
}

.sec01 .address_list li:first-child {
    border-top: 1px solid #B2B2B2;
}

.sec01 .address_list li.map_item {
    display: block;
    position: relative;
    padding-top: 39.874081846%;
}

.sec01 .address_list li.map_item iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.sec01 .address_list .sttl,
.sec01 .address_list .txt {
    font-weight: 500;
    font-size: 1.8rem;
    line-height: calc(40 / 18);
    letter-spacing: .04em;
    padding-top: 9px;
    padding-bottom: 9px;
}

.sec01 .address_list .sttl {
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 18.88772298%;
    background: #f1f1f1;
}

.sec01 .address_list .txt {
    padding-left: 34px;
    padding-right: 34px;
    width: calc(100% - 18.88772298%);
}

.sec01 .list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 48px auto 0;
    max-width: 953px;
}

.sec01 .list li {
    padding: 39px 0;
    width: 48.268625393%;
    background: #f1f1f1;
}

.sec01 .list li:nth-child(n+3) {
    margin-top: 33px;
}

.sec01 .list .txt {
    font-weight: 500;
    font-size: 2.8rem;
    line-height: calc(41 / 28);
    letter-spacing: .02em;
    text-indent: .02em;
    text-align: center;
}

.sec01 .list .sml_txt {
    font-weight: 500;
    font-size: 1.6rem;
    line-height: calc(29 / 16);
    letter-spacing: .06em;
    text-indent: .06em;
    text-align: center;
}

.sec01 .list dd {
    margin-top: 6px;
}

.sec01 .note_txt {
    font-size: 1.4rem;
    line-height: calc(28 / 14);
    letter-spacing: .04em;
    text-indent: .04em;
    text-align: center;
    margin-top: 21px;
}

@media screen and (max-width: 767px) {
    .sec01 {
        padding: 42px 0 53px;
    }

    .sec01 .ttl_jp {
        font-size: 1.8rem;
    }

    .sec01 .ttl_en {
        font-size: 1.4rem;
        margin-top: 14px;
    }

    .sec01 .address_box {
        margin-top: 23px;
    }

    .sec01 .address_list li.map_item {
        padding-top: 56.25%;
    }

    .sec01 .address_list .sttl,
    .sec01 .address_list .txt {
        font-size: 1.4rem;
        line-height: calc(28 / 14);
    }

    .sec01 .address_list .sttl {
        width: 100px;
    }

    .sec01 .address_list .txt {
        padding-left: 3%;
        padding-right: 3%;
        width: calc(100% - 100px);
    }

    .sec01 .list {
        display: block;
        margin-top: 24px;
    }

    .sec01 .list li {
        margin: 0 auto;
        padding: 20px 0;
        width: 100%;
        max-width: 350px;
    }

    .sec01 .list li:nth-child(n+2) {
        margin-top: 16px;
    }

    .sec01 .list .txt {
        font-size: 1.8rem;
        line-height: calc(28 / 18);
    }

    .sec01 .list .sml_txt {
        font-size: 1.2rem;
        line-height: calc(22 / 12);
    }

    .sec01 .list dd {
        margin-top: 3px;
    }

    .sec01 .note_txt {
        margin-top: 10px;
    }
}

/* -----------------
sec02
-------------------- */
.sec02 {
    padding-bottom: 75px;
    background: #f1f1f1;
}

.sec02 .inner {
    display: flex;
}

.sec02 .box01 {
    width: calc(100% - 53.08219178%);
}

.sec02 .box01 .box_inner {
    padding: 131px 15.912408759% 0 14.598540145%;
}

.sec02 .box01 .ttl span {
    line-height: 1;
    display: block;
}

.sec02 .box01 .ttl_jp {
    font-weight: 500;
    font-size: 5rem;
    letter-spacing: .2em;
}

.sec02 .box01 .ttl_en {
    font-weight: 700;
    font-size: 2.2rem;
    letter-spacing: .04em;
    position: relative;
    margin-top: 29px;
    padding-top: 30px;
}

.sec02 .box01 .ttl_en::before {
    content:"";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 164px;
    height: 2px;
    background: #3E3A39;
}

.sec02 .box01 .lead {
    font-weight: 500;
    font-size: 2.8rem;
    line-height: calc(52 / 28);
    letter-spacing: .02em;
    margin-top: 78px;
}

.sec02 .box01 .name {
    margin-top: 77px;
    max-width: 353px;
}

.sec02 .box01 .name + .name {
    margin-top: 32px;
}

.sec02 .box02 {
    width: 53.08219178%;
}

.sec02 .box02 .txt {
    font-weight: 500;
    font-size: 1.6rem;
    line-height: calc(32 / 16);
    letter-spacing: .04em;
    margin-top: 61px;
    padding: 0 10.967741935% 0 5.29032258%;
}

@media screen and (max-width: 767px) {
    .sec02 {
        padding-bottom: 37px;
    }

    .sec02 .inner {
        display: block;
    }

    .sec02 .box01 {
        width: 100%;
    }

    .sec02 .box01 .box_inner {
        padding: 65px 3% 0;
    }

    .sec02 .box01 .ttl_jp {
        font-size: 2.4rem;
    }

    .sec02 .box01 .ttl_en {
        font-size: 1.4rem;
        margin-top: 15px;
        padding-top: 15px;
    }

    .sec02 .box01 .ttl_en::before {
        width: 80px;
        height: 1px;
    }

    .sec02 .box01 .lead {
        font-size: 1.6rem;
        line-height: calc(26 / 16);
        margin-top: 39px;
    }

    .sec02 .box01 .name {
        margin-top: 33px;
        max-width: 282px;
    }

    .sec02 .box01 .name + .name {
        margin-top: 16px;
    }

    .sec02 .box02 {
        margin-top: 30px;
        width: 100%;
    }

    .sec02 .box02 .txt {
        font-size: 1.4rem;
        line-height: calc(28 / 14);
        margin-top: 30px;
        padding: 0 3%;
    }
}

/* -----------------
sec03
-------------------- */
.sec03 {
    padding: 123px 0 100px;
}

@media screen and (max-width: 767px) {
    .sec03 {
        padding: 61px 0 50px;
    }
}

/* -----------------
sec04
-------------------- */
.sec04 {
    padding-bottom: 195px;
}

.sec04 .ttl {
    font-weight: 500;
    font-size: 3.8rem;
    line-height: calc(78 / 38);
    text-align: center;
    margin-top: 59px;
}

.sec04 .lead {
    font-size: 1.4rem;
    line-height: calc(28 / 14);
    letter-spacing: .04em;
    margin: 24px auto 0;
    max-width: 533px;
}

.sec04 .list {
    display: flex;
    justify-content: space-between;
    margin: 68px auto 0;
    width: calc(100% - 60px);
    max-width: 1330px;
}

.sec04 .list li {
    width: 47.744360902%;
}

.sec04 .list .image_box {
    display: flex;
    justify-content: space-between;
}

.sec04 .list .image_box .image {
    width: 47.244094488%;
}

.sec04 .list .sttl {
    font-weight: 500;
    font-size: 2.8rem;
    line-height: calc(48 / 28);
    letter-spacing: .02em;
    text-indent: .02em;
    text-align: center;
    margin-top: 34px;
}

.sec04 .list .txt {
    font-size: 1.4rem;
    line-height: calc(28 / 14);
    letter-spacing: .04em;
    margin: 19px auto 0;
    width: calc(100% - 50px);
}

@media screen and (max-width: 767px) {
    .sec04 {
        padding-bottom: 97px;
    }

    .sec04 .ttl {
        font-size: 1.8rem;
        line-height: calc(28 / 18);
        text-align: left;
        margin-top: 30px;
        padding: 0 3%;
    }

    .sec04 .lead {
        margin-top: 12px;
        padding: 0 3%;
        max-width: 100%;
    }

    .sec04 .list {
        display: block;
        margin-top: 34px;
        width: 94%;
    }

    .sec04 .list li {
        width: 100%;
    }

    .sec04 .list li:nth-child(n+2) {
        margin-top: 30px;
    }

    .sec04 .list .image_box .image {
        width: 48.5%;
    }

    .sec04 .list .sttl {
        font-size: 1.6rem;
        line-height: calc(26 / 16);
        margin-top: 17px;
    }

    .sec04 .list .txt {
        margin-top: 9px;
        width: 88%;
    }
}
