@media screen and (min-width: 768px) {
    #keyvisual-child h1 {
        top: 288px
    }
}

.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: 5.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 h3 {
        font-size: 30px;
        line-height: 48px;
        padding-bottom: 30px
    }
}

@media screen and (min-width: 768px) {
    .key-shared .box {
        margin-bottom: 43px
    }
}

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

#point h3 {
    color: #d16155
}

#point .lead h2 {
    font-size: 6.8vw
}

#point .lead .photo {
    height: 46vw;
    margin-bottom: 5vw
}

#point .lead .photo-list {
    padding: 10vw 0 0
}

#point .lead .photo-list li {
    width: 31%
}

#point .lead .photo-list li:nth-child(1) {
    width: 60%;
    margin-top: 10vw
}

#point .item {
    padding-bottom: 15vw
}

#point .group .item .txt {
    padding-bottom: 5vw
}

#point .group .item .photo1 {
    width: 75%;
    margin: 0 auto 5vw
}

#point .group .item .photo-list {
    padding: 5vw 0 0
}

#point .group .item .photo-list li {
    width: 36%;
    margin-top: 5vw
}

#point .group .item .photo-list li:nth-child(1) {
    width: 54%;
    margin-top: 0vw
}

#point .group .item.item2 .photo1 {
    height: 42vw;
    width: 100%
}

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

    #point .wrap {
        max-width: 1200px
    }

    #point h3 {
        padding-bottom: 13px
    }

    #point .lead {
        padding-left: calc(50% - 330px);
        padding-top: 50px;
        padding-bottom: 96px
    }

    #point .lead h2 {
        font-size: 40px;
        text-align: left;
        position: absolute;
        top: 0;
        left: calc(50% - 513px);
        letter-spacing: .2em
    }

    #point .lead .photo {
        height: 508px;
        margin: 0 -150px 38px 0
    }

    #point .lead .txt {
        width: 396px
    }

    #point .lead .photo-list {
        padding: 0 0;
        position: absolute;
        top: 17px;
        right: -25px;
        max-width: 450px;
        width: 50%
    }

    #point .lead .photo-list li {
        width: auto
    }

    #point .lead .photo-list li:nth-child(1) {
        width: auto;
        margin-top: 74px
    }

    #point .lead .item {
        min-height: 270px
    }

    #point .item {
        padding-bottom: 0px;
        position: relative
    }

    #point .group {
        max-width: 1000px;
        margin: 0 auto
    }

    #point .group .item {
        display: flex;
        justify-content: space-between;
        padding-bottom: 131px
    }

    #point .group .item .txt {
        padding-bottom: 44px
    }

    #point .group .item .photo1 {
        width: auto;
        margin: 0
    }

    #point .group .item .photo-list {
        width: 595px;
        position: absolute;
        top: 20px;
        right: 15px;
        padding: 0
    }

    #point .group .item .photo-list li {
        width: auto
    }

    #point .group .item .photo-list li:nth-child(2) {
        margin-top: 41px
    }

    #point .group .item .info {
        width: 448px;
        padding: 57px 0 0
    }

    #point .group .item.item2 {
        display: block
    }

    #point .group .item.item2 .photo1 {
        height: 446px;
        width: auto;
        margin: 0 -100px 46px
    }

    #point .group .item.item2 .info {
        position: relative;
        width: 100%;
        min-height: 400px;
        padding: 0
    }

    #point .group .item.item2 .txt {
        max-width: 297px
    }
}

#baby {
    background: url(../img/visit/baby_deco.jpg) no-repeat 0 139vw/54% #d16155;
    color: #fff;
    padding: 15vw 0
}

#baby h2 {
    text-align: center;
    padding-bottom: 10vw
}

#baby h2 span {
    display: inline-block;
    background-color: #fff;
    color: #4c4c4c;
    font-size: 7.5vw;
    letter-spacing: .2em;
    padding: 0 5vw
}

#baby h3 {
    padding: 5vw 0
}

#baby .item {
    padding-bottom: 10vw
}

#baby .item .photo-list li {
    width: 62%
}

#baby .item .photo-list li:nth-child(1) {
    width: 31%;
    margin-top: 20vw
}

#baby .contact {
    border: 1px solid #fff;
    padding: 5vw 5% 10vw;
    margin-bottom: 10vw
}

#baby .contact .bnr {
    margin-top: 5px
}

#baby .contact .bnr a {
    display: block;
    border-bottom: 2px solid #fff;
    position: relative
}

#baby .contact .bnr a:after {
    content: url(../img/visit/arow.png);
    line-height: 0;
    position: absolute;
    right: 10px;
    bottom: 6px
}

#baby .sec-end {
    background-color: #dbd2d2;
    color: #4c4c4c;
    padding: 5vw 5% 10vw
}

#baby .sec-end h3 {
    text-align: center;
    color: #d16155;
    font-size: 5.5vw
}

#baby .sec-end h3 span {
    margin-right: 3vw;
    display: inline-block;
    letter-spacing: .1em;
    font-size: 4.5vw;
    line-height: 1.2;
    padding: 2vw 4vw;
    background-color: #fff
}

#baby .sec-end .photo {
    margin-bottom: 5vw
}

@media screen and (min-width: 768px) {
    #baby {
        background-size: auto;
        background-position: calc(50% - 408px) 503px;
        padding: 165px 20px 150px
    }

    #baby h2 {
        text-align: left;
        padding-bottom: 0;
        position: absolute;
        top: 0;
        left: 50px
    }

    #baby h2 span {
        font-size: 48px;
        padding: 41px 11px 29px 15px;
        line-height: 60px
    }

    #baby h3 {
        padding: 0 0 0 24px
    }

    #baby .item {
        padding-bottom: 0
    }

    #baby .item .photo-list {
        width: 579px;
        margin: 0 0 0 93px
    }

    #baby .item .photo-list li {
        width: auto
    }

    #baby .item .photo-list li:nth-child(1) {
        width: auto;
        margin-top: 142px
    }

    #baby .lead {
        position: relative;
        padding-bottom: 60px
    }

    #baby .lead .photo1 {
        padding: 115px 0 0 406px
    }

    #baby .lead .info {
        position: absolute;
        height: 318px;
        top: 145px;
        right: calc(50% + 130px)
    }

    #baby .group {
        position: relative;
        padding-bottom: 65px
    }

    #baby .group .info {
        position: absolute;
        height: 267px;
        top: 31px;
        right: 73px
    }

    #baby .contact {
        padding: 25px 40px 27px 285px;
        width: 810px;
        margin: 0 auto 50px;
        position: relative
    }

    #baby .contact h3 {
        position: absolute;
        top: 20px;
        left: 50px;
        padding: 0;
        font-size: 24px
    }

    #baby .contact .bnr {
        width: 233px
    }

    #baby .contact .bnr a::after {
        transition: .3s
    }

    #baby .contact .bnr a:hover::after {
        right: 4px
    }

    #baby .sec-end {
        padding: 48px 30px 40px 446px;
        width: 900px;
        margin: 0 auto;
        position: relative;
        min-height: 387px
    }

    #baby .sec-end h3 {
        text-align: left;
        font-size: 30px;
        padding: 0 0 31px
    }

    #baby .sec-end h3 span {
        margin-right: 24px;
        font-size: 18px;
        line-height: 30px;
        padding: 9px 15px
    }

    #baby .sec-end .photo {
        margin-bottom: 0;
        position: absolute;
        top: 44px;
        left: 54px
    }
}

#consultation {
    padding: 15vw 0 10vw
}

#consultation h2 {
    font-size: 7.5vw;
    letter-spacing: .2em
}

#consultation h3 {
    color: #d16155;
    padding: 5vw 0
}

#consultation .point {
    padding: 10vw 0
}

#consultation .point li {
    color: #d16155;
    border: 1px solid;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    font-size: 3.5vw;
    letter-spacing: .1em;
    width: 28vw;
    height: 28vw;
    text-align: center;
    line-height: 1.5;
    white-space: nowrap
}

@media screen and (min-width: 768px) {
    #consultation {
        padding: 140px 20px 150px
    }

    #consultation h2 {
        font-size: 48px
    }

    #consultation .note {
        width: 802px;
        margin: 0 auto
    }

    #consultation h3 {
        padding: 0px 0 20px
    }

    #consultation .point {
        padding: 42px 0 33px;
        justify-content: center;
        gap: 30px
    }

    #consultation .point li {
        font-size: 20px;
        line-height: 36px;
        width: 180px;
        height: 180px
    }

    #consultation .item {
        display: flex;
        justify-content: space-between;
        width: 840px;
        margin: 0 auto;
        padding: 0 0 80px 36px
    }

    #consultation .item .info {
        width: 350px
    }

    #consultation .item .photo {
        padding: 11px 0 0
    }
}