.object-fit {
    position: relative
}

.object-fit img {
    -o-object-fit: cover;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    width: 100%
}

section h2,
section h3 {
    font-weight: 700;
    font-size: 6.5vw;
    line-height: 1.66;
    letter-spacing: .1em;
    padding-bottom: 5vw
}

section h3 {
    font-size: 4.8vw
}

@media screen and (min-width: 768px) {

    section h2,
    section h3 {
        font-size: 40px;
        line-height: 64px;
        padding-bottom: 30px
    }

    section h2 {
        letter-spacing: .1em
    }

    section h3 {
        font-size: 24px;
        line-height: 40px;
        padding-bottom: 30px
    }
}
.red{
    color: #d16155
}
.key-shared h2 {
    top: 3vw;
    left: 0%
}

.key-shared .photo {
    margin: 0 0 15vw 41%
}

.key-shared dt {
    font-size: 4.5vw
}

@media screen and (min-width: 768px) {
    .key-shared {
        background-position: right 306px
    }

    .key-shared h2 {
        text-align: left;
        top: 32px;
        left: calc(50% - 445px);
        transform: none;
        line-height: 72px
    }

    .key-shared .photo {
        margin: 0
    }

    .key-shared dt {
        font-size: 24px
    }
}

#current {
    background-color: #f5f5f5;
    padding: 15vw 0
}

#current .lead {
    padding-bottom: 10vw
}

#current .lead .photo {
    height: 65vw;
    margin-bottom: 5vw
}

#current .group {
    gap: 10vw 0;
    flex-wrap: wrap;
    padding-bottom: 10vw
}

#current .group .item {
    width: 100%;
    text-align: center
}

#current .group .item h3 {
    color: #d16155;
    padding: 5vw 0 2vw
}

#current .txt-end {
    background-color: #fff;
    color: #d16155;
    border: 2px solid;
    padding: 10vw 5%;
    position: relative
}

#current .txt-end:before {
    content: "";
    position: absolute;
    top: -4px;
    left: 50%;
    transform: rotate(45deg) skew(7deg, 7deg) translateX(-50%);
    width: 22px;
    height: 22px;
    background-color: #fff;
    border-left: 2px solid;
    border-top: 2px solid
}

@media screen and (min-width: 768px) {
    #current {
        padding: 150px 0px
    }

    #current .wrap {
        max-width: 1500px
    }

    #current .lead {
        padding-bottom: 50px;
        position: relative;
        min-height: 506px;
        display: flex;
        justify-content: flex-end;
        padding: 50px 0
    }

    #current .lead h2 {
        letter-spacing: .2em
    }

    #current .lead .photo {
        height: 506px;
        margin-bottom: 0;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        width: calc(50% - 80px)
    }

    #current .lead .info {
        width: 500px;
        margin-right: 50%
    }

    #current .group {
        gap: 30px 0;
        flex-wrap: wrap;
        padding-bottom: 75px;
        max-width: 1000px;
        margin: 80px auto 0
    }

    #current .group .item {
        width: calc((100% - 60px)/3)
    }

    #current .group .item img {
        width: 100%;
        height: auto
    }

    #current .group .item h3 {
        padding: 13px 0 4px
    }

    #current .txt-end {
        max-width: 1000px;
        margin: 0 auto;
        padding: 40px 0 30px;
        text-align: center
    }
}

#point {
    padding: 15vw 0
}

#point .group {
    padding: 10vw 0 0;
    flex-wrap: wrap
}

#point .group .photo {
    width: 100%;
    height: 57vw;
    margin-bottom: 10vw;
    overflow: hidden
}

#point .group .photo img {
    top: -38vw;
    height: 115vw
}

#point .point .item {
    margin-bottom: 8vw
}

#point .point dt {
    font-weight: 700;
    font-size: 4.8vw;
    letter-spacing: .1em;
    border-bottom: 2px solid #d16155;
    display: flex;
    align-items: center;
    gap: 2vw;
    padding: 0 0 3vw;
    margin-bottom: 4vw
}

#point .point dt span {
    background-color: #d16155;
    font-weight: 700;
    color: #fff;
    border-radius: 50%;
    width: 8vw;
    height: 8vw;
    padding-bottom: 1vw;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center
}

@media screen and (min-width: 768px) {
    #point {
        padding: 140px 0 108px
    }

    #point .group {
        padding: 64px 0 0
    }

    #point .group .photo {
        width: 464px;
        height: 631px;
        margin-bottom: 0
    }

    #point .group .photo img {
        top: 0;
        height: 100%
    }

    #point .note {
        text-align: center
    }

    #point .point {
        width: 460px
    }

    #point .point .item {
        margin-bottom: 35px
    }

    #point .point dd {
        padding-right: 10px
    }

    #point .point dt {
        font-size: 24px;
        gap: 17px;
        padding: 0px 0 14px;
        margin-bottom: 10px
    }

    #point .point dt span {
        width: 47px;
        height: 47px;
        padding-bottom: 0
    }
}

#why {
    background-color: #f5f5f5;
    padding: 15vw 0 20vw
}

#why h3 {
    color: #d16155

}

#why .group {
    flex-wrap: wrap;
    gap: 5vw 0;
    padding: 5vw 0 10vw
}

#why .group .item {
    width: 100%;
    margin-bottom: 16px;
}

#why .group .item h3 {
    text-align: center;
    padding: 2vw 0;
    margin-bottom: 10px;
}

#why .group .item .photo {
    width: 36%;
    margin: 0 auto 3vw
}

#why .end {
    background-color: #eaeaea;
    padding: 10vw 5%;
    position: relative
}

#why .end:before {
    content: "";
    width: 0;
    height: 0;
    border-left: 15px solid rgba(0, 0, 0, 0);
    border-right: 15px solid rgba(0, 0, 0, 0);
    border-bottom: 20px solid #eaeaea;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -100%)
}
#why .item h3{
    color: #fff;
    background-color: #d16155;
}
@media screen and (min-width: 768px) {
    #why {
        padding: 136px 0 150px
    }

    #why .group {
        gap: 0;
        padding: 8px 13px 76px
    }

    #why .group .item {
        width: 33.3333333333%
    }

    #why .group .item h3 {
        padding: 10px 0;
        width: 300px;
        margin: 0 auto
    }

    #why .group .item .photo {
        width: auto;
        text-align: center;
        margin: 0 auto 20px
    }

    #why .group .item .txt {
        width: 252px;
        margin: 10px auto 0
    }

    #why .end {
        padding: 39px 42px 39px 38px;
        width: 890px;
        margin: 0 auto
    }

    #why .end:before {
        border-left: 17px solid rgba(0, 0, 0, 0);
        border-right: 17px solid rgba(0, 0, 0, 0);
        border-bottom: 20px solid #eaeaea
    }

    #why .end h3 {
        padding-bottom: 20px;
        width: 100%
    }
}

#feature {
    position: relative;
    padding: 0vw 0 15vw;
    z-index: 1;
    background: #f5f5f5
}

#feature:before {
    content: "";
    position: absolute;
    top: 20vw;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #d16155;
    z-index: -1
}

#feature .photo1 {
    height: 40vw;
    width: 90%
}

#feature h2 {
    color: #fff;
    padding: 10vw 0 5vw
}

#feature .group {
    gap: 5vw 0;
    flex-wrap: wrap;
    margin-bottom: 5vw
}

#feature .group .feature {
    background-color: #fff;
    padding: 5% 5%
}

#feature .group .feature .item {
    width: 100%
}

#feature .group .feature .item h3 {
    font-size: 6vw;
    line-height: 1.7;
    letter-spacing: .05em;
    padding-bottom: 2vw
}

#feature .group .feature .item h3 span {
    color: #fff;
    background-color: #d16155;
    letter-spacing: .1em;
    font-size: 3vw;
    line-height: 1.3;
    display: inline-block;
    padding: 1vw 2vw
}

#feature .group.ext .feature .item h3 {
    font-size: 5vw;
    display: flex;
    align-items: center;
    gap: 0 3vw
}

#feature .end {
    background-color: #fff;
    padding: 10vw 5%;
    position: relative;
    border: 1px solid #d16155;
    box-shadow: 0 0 0px 10px #fff;
    margin-top:15vw
}

#feature .end::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 20px solid rgba(0, 0, 0, 0);
    border-right: 20px solid rgba(0, 0, 0, 0);
    border-top: 23px solid #fff;
    position: absolute;
    bottom: -3px;
    left: 50%;
    transform: translate(-50%, 100%)
}

#feature .end h3 {
    color: #d16155;
    position: relative;
    margin-bottom: 3vw;
    padding-bottom: 4vw
}

#feature .end h3:before {
    position: absolute;
    content: "";
    border-top: 2px solid;
    width: 20vw;
    left: 50%;
    bottom: 0;
    transform: translate(-50%)
}

#feature .link {
    padding: 10vw 0 0
}

#feature .link .btn-shared-2 {
    margin-bottom: 4vw
}

#feature .link .btn-shared-2 a {
    color: #fff;
    border: 2px solid
}

#feature .link .btn-shared-2 a:before {
    border-right: 2px solid;
    border-bottom: 2px solid
}

@media screen and (min-width: 768px) {
    #feature {
        padding: 0 0 150px
    }

    #feature:before {
        top: 248px
    }

    #feature .photo1 {
        height: 456px;
        width: calc(50% + 324px);
        margin-bottom: 119px
    }

    #feature h2 {
        padding: 0 0px 48px 0px;
        font-size: 48px
    }

    #feature .group {
        gap: 40px 0;
        margin-bottom: 40px
    }

    #feature .group .feature {
        width: 850px;
        padding: 20px 35px 35px 35px;
        display: flex;
        justify-content: space-between;
        min-height: 361px
    }

    #feature .group .feature .photo {
        padding: 13px 0 0
    }

    #feature .group .feature .item {
        width: 324px;
        padding: 10px 0 0
    }

    #feature .group .feature .item h3 {
        font-size: 30px;
        line-height: 40px;
        padding-bottom: 18px;
        line-height: 1
    }

    #feature .group .feature .item h3 span {
        font-size: 13px;
        line-height: 22px;
        padding: 0 7px 0 6px;
        vertical-align: top;
        margin-bottom: 17px
    }

    #feature .group .feature .item .ext {
        max-width: 309px
    }

    #feature .group .feature.fadeInRight {
        margin-left: 150px
    }

    #feature .group .feature.fadeInRight .item {
        order: -1;
        width: 328px
    }

    #feature .group.ext {
        margin-bottom: 60px
    }

    #feature .group.ext .feature {
        width: 306px;
        padding: 28px 8px 40px 30px;
        min-height: 50px
    }

    #feature .group.ext .feature .item .txt {
        width: 244px
    }

    #feature .group.ext .feature .item h3 {
        font-size: 20px;
        gap: 0 13px;
        padding: 0;
        margin-bottom: 11px
    }

    #feature .group.ext .feature .item h3 span {
        margin: 0
    }

    #feature .end {
        padding: 48px 53px 55px 232px;
        width: 760px;
        margin: 0 auto;
        position: relative
    }

    #feature .end h3 {
        position: absolute;
        top: 50%;
        left: 43px;
        margin-bottom: 0;
        padding-bottom: 0;
        transform: translateY(-50%)
    }

    #feature .end h3:before {
        background: #d16155;
        width: 2px;
        height: 103px;
        top: 50%;
        bottom: auto;
        left: auto;
        right: -28px;
        transform: translateY(-50%)
    }

    #feature .link {
        padding: 60px 0 0;
        justify-content: center;
        gap: 0 40px;
        display: flex
    }

    #feature .link .btn-shared-2 {
        width: 300px;
        margin-bottom: 0
    }

    #feature .link .btn-shared-2 a:hover {
        color: #d16155;
        border: 2px solid #fff
    }
}

#access {
    padding: 15vw 0
}

#access .note {
    padding-bottom: 25px
}

#access .list {
    color: #d16155;
    border-top: 2px solid;
    border-bottom: 2px solid;
    padding: 20px;
    font-size: 11px
}

#access .list ul {
    padding-bottom: 10px
}

#access .list li {
    margin-bottom: 5px;
    font-weight: 700;
    font-size: 18px;
    position: relative;
    padding: 0 0 0 14px
}

#access .list li:before {
    content: "";
    width: 6px;
    height: 6px;
    background-color: #d16155;
    border-radius: 50%;
    display: inline-block;
    margin: 0 10px 5px 0;
    vertical-align: middle
}
#access .list p {
    text-align: right;
}

/* Mobile: align time to the right and left-align region name */
@media screen and (max-width: 767px) {
    #access .list {
        padding: 10px 30px;
    }
    #access .list li {
        display: flex;
        align-items: center;
        padding-right: 8px;
    }

    #access .list li .region {
        flex: 1 1 auto;
        text-align: left;
        padding-right: 12px;
    }

    #access .list li .time {
        flex: 0 0 auto;
        margin-left: 12px;
        white-space: nowrap;
        text-align: right;
    }
}

#access .area {
    padding: 16vw 0
}

#access .area dt {
    font-weight: 700;
    font-size: 4.8vw;
    line-height: 1.66;
    letter-spacing: .1em;
    padding-bottom: 5vw
}

#access #gmap ul li.link {
    padding: 10px 0 0;
    text-align: left
}

#access #gmap ul li.link a {
    display: inline-flex;
    align-items: center;
    border-bottom: 2px solid;
    color: #d16155
}

#access #gmap ul li.link img {
    width: auto;
    height: auto;
    margin-left: 5px
}

#access .access {
    padding: 35px 0
}


#access .access dl {
    margin-bottom: 20px
}

#access .access dt {
    font-weight: 700;
    letter-spacing: .075em;
    font-size: 18px;
    border-bottom: 2px solid;
    padding-bottom: 10px;
    margin-bottom: 10px
}
#access .access span {
    color: #d16155;
}
#access .access dl+dl {
    margin-top: 18px;
}
#access .access img {
    width: 100%;
}
#access .end {
    background-color: #f5f5f5;
    padding: 10vw 5%
}

#access .end h3 {
    font-size: 5.2vw;
    color: #d16155;
    padding-bottom: 3vw
}

#access .end dt {
    font-weight: 700;
    font-size: 4.6vw;
    letter-spacing: .1em;
    padding-bottom: 4vw
}

#access .end .info {
    padding-bottom: 5vw
}

@media screen and (min-width: 768px) {
    #access {
        padding: 136px 0 155px
    }

    #access .note {
        padding-bottom: 55px;
        width: 600px;
        margin: 0 auto
    }

    #access .wrap-inner {
        width: 828px;
        margin: 0 auto
    }

    #access .list {
        text-align: center;
        padding: 20px 9px 11px;
        font-size: 13px
    }

    /* PC: split into two columns, 3 items each */
    #access .list ul {
        padding: 0 18px 2px 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px 24px;
        align-items: start;
    }

    #access .list li {
        margin-bottom: 5px;
        font-size: 24px;
        padding: 0 0 0 14px;
        display: block;
        text-align: left;
    }

    #access .list li:before {
        width: 11px;
        height: 11px;
        margin: 0 10px 5px 0
    }

    #access .area {
        padding: 50px 0 60px
    }

    #access .area dl {
        display: flex;
        justify-content: space-between;
        align-items: center
    }

    #access .area dt {
        font-size: 24px;
        line-height: 40px;
        letter-spacing: .1em;
        padding: 9px 0 0
    }

    #access .area dd {
        width: 490px
    }

    #access #gmap iframe {
        height: 500px !important
    }

    #access #gmap ul {
        display: flex;
        justify-content: space-between;
        padding: 10px 0 20px
    }

    #access #gmap ul li.link {
        padding: 0px 0 0
    }

    #access #gmap ul li.link a {
        font-size: 14px
    }

    #access #gmap ul li.link a:hover {
        border-bottom: 2px solid rgba(209, 97, 85, 0)
    }

    #access #gmap ul li.link img {
        margin-left: 5px
    }

    #access .access {
        padding: 35px 0 100px;
        /* display: flex; */
        justify-content: space-between
    }

    #access .access dl {
        margin-bottom: 0px;
        /* width: 377px */
    }

    #access .access dt {
        font-size: 20px;
        padding-bottom: 10px;
        margin-bottom: 16px
    }
    #access .access img {
        padding-top: 10px; 
        width: 520px;
        height: auto;
    }
    #access .end {
        padding: 70px 58px 80px;
        display: flex;
        justify-content: space-between
    }

    #access .end h3 {
        font-size: 30px;
        padding-bottom: 20px
    }

    #access .end dt {
        font-size: 24px;
        padding-bottom: 37px
    }

    #access .end dd {
        width: 395px
    }

    #access .end .info {
        padding-bottom: 0;
        width: 440px
    }
}




.accordion-title {
    cursor: pointer;
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
}

.accordion-title:hover {
    background-color: #eaeaea;
}

.accordion-icon {
    font-size: 24px;
    color: #d16155;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.accordion-title.active .accordion-icon {
    transform: rotate(0deg);
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), padding 0.3s ease;
    padding: 0 15px;
}

.accordion-content.active {
    max-height: 1000px;
    padding: 15px;
    transition: max-height 0.5s cubic-bezier(0, 0, 0.2, 1), padding 0.3s ease;
}






#voice {
    background-color: #f5f5f5;
    padding: 15vw 0 0
}

#voice .group {
    padding: 10vw 0 5vw
}

#voice .group .item {
    padding-bottom: 15vw
}

#voice .group .item .tag {
    position: relative;
    padding: 0 19vw 6vw
}

#voice .group .item .tag dt {
    position: absolute;
    top: 0;
    left: 11vw;
    z-index: 1;
    font-size: 3.5vw;
    line-height: 1.8;
    color: #d16155;
    letter-spacing: .1em
}

#voice .group .item .tag dt span {
    letter-spacing: .1em
}

#voice .group .item .tag dt .t {
    color: #fff;
    background-color: #d16155;
    font-size: 4.5vw;
    letter-spacing: .1em;
    padding: 2vw 0 4vw
}

@media screen and (min-width: 768px) {
    #voice {
        padding: 136px 0 127px
    }

    #voice .group {
        padding: 8px 43px 20px;
        display: flex
    }

    #voice .group .item {
        padding-bottom: 0;
        width: 33.3333333333%
    }

    #voice .group .item .txt {
        width: 250px;
        margin: 0 auto
    }

    #voice .group .item .tag {
        position: relative;
        padding: 0 0 20px;
        text-align: center
    }

    #voice .group .item .tag dt {
        text-align: left;
        top: 0;
        left: 0px;
        font-size: 16px;
        line-height: 36px
    }

    #voice .group .item .tag dt .t {
        font-size: 20px;
        padding: 10px 0 16px;
        line-height: 44px;
        display: inline-block
    }
}

#message h2 {
    position: relative;
    background: url(../img/area/message_bg.jpg) no-repeat center 0/cover;
    color: #fff;
    padding: 20vw 0;
    text-align: center
}

#message .txt {
    padding: 5vw 5%
}

#message .txt p {
    padding-bottom: 15px
}

@media screen and (min-width: 768px) {
    #message {
        background: url(../img/area/message_bg.jpg) no-repeat center 0/cover;
        color: #fff;
        height: 673px;
        position: relative
    }

    #message h2 {
        background: none;
        position: absolute;
        top: 124px;
        right: calc(50% - 444px);
        font-size: 48px;
        line-height: 72px;
        padding: 0;
        text-align: left
    }

    #message .txt {
        padding: 0;
        height: 258px;
        position: absolute;
        top: 208px;
        right: calc(50% - 250px)
    }

    #message .txt p {
        padding: 0 0 0 30px
    }
}