#header {
    background: rgba(0, 0, 0, 0);
    color: #fff
}

#header.active {
/*     background: #fff;
    color: #92bf4f;
    box-shadow: 0px 15px 24px rgba(161, 161, 161, .15) */
}

#key {
    position: relative
}

#key .deco1 {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 633px
}

#key .deco2 {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 1;
    width: 475px
}

#key .item {
    height: 730px
}

#key .item img {
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%;
    height: 100%
}

#key .group-txt {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    width: 824px;
    z-index: 1
}

#key .group-txt .row {
    display: flex
}

#key .group-txt .row h2 {
    font-size: 60px;
    line-height: 88px;
    letter-spacing: .1em
}

#key .group-txt .row h2 span {
    position: relative;
    color: #d5f377;
    letter-spacing: .1em
}

#key .group-txt .row h2 span::before {
    content: "";
    position: absolute;
    background: #d5f377;
    top: -5px;
    left: calc(50% - 2px);
    transform: translateX(-50%);
    border-radius: 50%;
    width: 5px;
    height: 5px
}

#key .group-txt .row .txt {
    margin: 14px 0 0 56px;
    font-size: 22.1px;
    font-weight: 600;
    line-height: 2.3;
    letter-spacing: .2em
}

#key .group-txt .list {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 47px
}

#key .group-txt .list li {
    background: rgba(38, 38, 38, .7);
    padding: 0 20px 0 21px;
    font-size: 20.1px;
    font-weight: 600;
    line-height: 59px;
    letter-spacing: .05em
}

@media screen and (min-width: 768px)and (max-width: 900px) {
    #key .group-txt {
        width: 91.5555555556vw
    }

    #key .group-txt .row h2 {
        font-size: 6.6666666667vw;
        line-height: 1.4666666667
    }

    #key .group-txt .row .txt {
        margin: 1.5555555556% 0 0 6.2222222222%;
        font-size: 2.4555555556vw
    }

    #key .group-txt .list {
        margin-top: 5.2222222222vw
    }

    #key .group-txt .list li {
        padding: 0 2.3333333333vw;
        font-size: 2.2333333333vw;
        line-height: 2.9353233831
    }
}

@media screen and (max-width: 767px) {
    #key .deco1 {
        width: calc(100% - 70px)
    }

    #key .deco2 {
        width: calc(100% - 74px)
    }

    #key .item {
        height: -moz-fit-content;
        height: fit-content
    }

    #key .group-txt {
        top: auto;
        bottom: 35px;
        left: 36px;
        transform: none;
        width: 266px
    }

    #key .group-txt .row {
        display: block
    }

    #key .group-txt .row h2 {
        font-size: 36.69px;
        line-height: 64.1px
    }

    #key .group-txt .row h2 span::before {
        top: 2px;
        width: 3.64px;
        height: 3.64px
    }

    #key .group-txt .row .txt {
        margin: 4px 0 0;
        font-size: 15.09px
    }

    #key .group-txt .list {
        flex-wrap: wrap;
        gap: 3px;
        margin-top: 23px
    }

    #key .group-txt .list li {
        text-align: center;
        padding: 0;
        font-size: 13.2px;
        line-height: 38.75px
    }

    #key .group-txt .list li:nth-child(1) {
        width: 159px;
        order: 1
    }

    #key .group-txt .list li:nth-child(2) {
        order: 3;
        width: 100%
    }

    #key .group-txt .list li:nth-child(3) {
        width: 103px;
        order: 2
    }
}

#banner {
    background: #90bb0b;
    padding: 62px 0
}

#banner .group-link {
    display: flex;
    justify-content: space-between
}

#banner .group-link li {
    width: calc(50% - 9px)
}

#banner .group-link li a {
    display: block
}

@media screen and (max-width: 767px) {
    #banner {
        padding: 19px 0
    }

    #banner .wrap {
        padding: 0 16.5px
    }

    #banner .group-link {
        flex-direction: column;
        gap: 12px
    }

    #banner .group-link li {
        width: 100%
    }
}

#about {
    background: url("../img/top/about_bg_pc.png") no-repeat center/cover;
    padding: 91px 0 122px
}

#about .row1 {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    margin-top: 66px
}

#about .row1 .col-l {
    max-width: 505px;
    width: 100%
}

#about .row1 .col-l .map {
    height: 603px
}

#about .row1 .col-r {
    max-width: 500px;
    width: 100%
}

#about .row1 .col-r .info {
    margin-top: -15px
}

#about .row1 .col-r .info dl {
    position: relative;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #b9b9b9;
    padding: 16px 0 19px;
    line-height: 24px
}

#about .row1 .col-r .info dl::before {
    content: "";
    position: absolute;
    background: #98c527;
    width: 75px;
    height: 1px;
    bottom: -1px;
    left: 0
}

#about .row1 .col-r .info dl dt {
    width: 75px;
    font-weight: bold;
    font-size: 14px;
    letter-spacing: 0
}

#about .row1 .col-r .info dl dd {
    width: calc(100% - 75px);
    padding-left: 27px
}

#about .row1 .col-r .table-time {
    table-layout: fixed;
    background: #fff;
    margin-top: 37px;
    width: 100%
}

#about .row1 .col-r .table-time th {
    width: 144px
}

#about .row1 .col-r .table-time td {
    position: relative;
    text-align: center
}

#about .row1 .col-r .table-time td.egg::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #98c527;
    border-radius: 50%;
    width: 12px;
    height: 12px
}

#about .row1 .col-r .table-time td.line::before {
    content: "";
    position: absolute;
    background: #626262;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 10.5px;
    height: 1px
}

#about .row1 .col-r .table-time td:last-child {
    width: 69px;
    padding-right: 16px
}

#about .row1 .col-r .table-time td:last-child.line::before {
    left: calc(50% - 7px)
}

#about .row1 .col-r .table-time thead {
    background: #6f7176
}

#about .row1 .col-r .table-time thead th,
#about .row1 .col-r .table-time thead td {
    color: #fff;
    font-size: 14px;
    line-height: 30px;
    font-weight: 500
}

#about .row1 .col-r .table-time thead th {
    padding-left: 24px;
    letter-spacing: .1em
}

#about .row1 .col-r .table-time thead td {
    letter-spacing: 0
}

#about .row1 .col-r .table-time tbody tr:nth-child(1) * {
    padding-top: 6px;
    padding-bottom: 8px
}

#about .row1 .col-r .table-time tbody tr:nth-child(2) * {
    padding-top: 4px;
    padding-bottom: 8px
}

#about .row1 .col-r .table-time tbody th,
#about .row1 .col-r .table-time tbody td {
    border-bottom: 1px solid #b9b9b9
}

#about .row1 .col-r .table-time tbody th {
    padding-left: 15px;
    letter-spacing: 0
}

#about .row1 .col-r .close-day {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    margin-top: 9px
}

#about .row1 .col-r .close-day dt {
    text-align: center;
    background: #ececec;
    width: 75px;
    font-size: 15px;
    font-weight: bold;
    line-height: 30px
}

#about .row1 .col-r .close-day dd {
    font-size: 15px;
    line-height: 30px
}

#about .row1 .col-r .list-note {
    margin-top: 12px
}

#about .row1 .col-r .list-note li {
    display: flex;
    gap: 10px;
    font-size: 15px;
    line-height: 1.5
}

#about .row2 {
    margin-top: 73px
}

#about .row2 .elementor-row {
    justify-content: space-between;
    gap: 30px
}

#about .row2 .elementor-col-50 {
    max-width: 510px;
    width: 100% !important
}

#about .row2 h3 {
    font-size: 28px;
    font-weight: 500;
    line-height: 48px;
    letter-spacing: .1em
}

#about .row2 .post-box {
    margin-top: 20px
}

#about .row2 .post-box dl {
    font-family: "Noto Sans JP", sans-serif;
    display: flex;
    line-height: 28px
}

#about .row2 .post-box dl dt {
    width: 128px;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: .1em
}

#about .row2 .post-box dl dt .new-label {
    display: none
}

#about .row2 .post-box dl dd {
    flex: 1;
    letter-spacing: .05em
}

#about .row2 .post-box dl dd a:hover {
    text-decoration: underline
}

#about .row2 .post-box dl+dl {
    margin-top: 20px
}

#about .row2 .btn-more {
    margin: 36px 0 0 auto;
    width: 122px
}

#about .row2 .btn-more a {
    position: relative;
    display: block;
    border-bottom: 1px solid #626262;
    padding-bottom: 10px;
    font-size: 14px;
    line-height: 1;
    letter-spacing: .1em
}

#about .row2 .btn-more a::before {
    content: "";
    position: absolute;
    background: url("../img/icons/ico_arrow04.svg") no-repeat center/100%;
    width: 9px;
    height: 8px;
    top: 4px;
    right: 0
}

#about .row2 .btn-more a:hover {
    border-color: rgba(0, 0, 0, 0)
}

@media screen and (min-width: 768px)and (max-width: 950px) {
    #about .row .col-r .table-time td:last-child {
        width: 50px;
        padding-right: 0
    }

    #about .row .col-r .table-time td:last-child.line::before {
        left: 50%
    }

    #about .row .col-r .table-time thead th,
    #about .row .col-r .table-time thead td {
        font-size: 12px
    }

    #about .row .col-r .table-time thead th {
        padding-left: 10px
    }

    #about .row .col-r .table-time th {
        width: 100px
    }

    #about .row .col-r .table-time tbody th {
        padding-left: 10px;
        font-size: 13px
    }

    #about .row .col-r .table-time tbody td {
        font-size: 13px
    }
}

@media screen and (max-width: 767px) {
    #about {
        background-image: url("../img/top/about_bg_sp.png");
        padding: 44px 0 75px
    }

    #about .row1 {
        flex-direction: column;
        gap: 13px;
        margin-top: 45px
    }

    #about .row1 .col-l {
        max-width: unset
    }

    #about .row1 .col-l .map {
        height: 172px
    }

    #about .row1 .col-r {
        max-width: unset
    }

    #about .row1 .col-r .info {
        margin-top: 0
    }

    #about .row1 .col-r .info dl {
        padding: 13px 0 14px;
        line-height: 21px
    }

    #about .row1 .col-r .info dl dd {
        font-size: 15px;
        padding-left: 7px
    }

    #about .row1 .col-r .table-time {
        margin-top: 36px
    }

    #about .row1 .col-r .table-time th {
        width: 93px
    }

    #about .row1 .col-r .table-time td {
        white-space: nowrap
    }

    #about .row1 .col-r .table-time td.line::before {
        width: 6.5px
    }

    #about .row1 .col-r .table-time td:last-child {
        width: 44px;
        padding-right: 0
    }

    #about .row1 .col-r .table-time td:last-child.line::before {
        left: 50%
    }

    #about .row1 .col-r .table-time thead th,
    #about .row1 .col-r .table-time thead td {
        font-size: 13px
    }

    #about .row1 .col-r .table-time thead th {
        padding-left: 15px;
        letter-spacing: 0
    }

    #about .row1 .col-r .table-time tbody th {
        padding-left: 9px;
        font-size: 14px
    }

    #about .row1 .col-r .close-day {
        gap: 14px;
        margin-top: 10px
    }

    #about .row1 .col-r .close-day dt {
        font-size: 14px;
        font-weight: bold;
        line-height: 25px
    }

    #about .row1 .col-r .close-day dd {
        font-size: 14px;
        line-height: 25px
    }

    #about .row1 .col-r .list-note {
        margin-top: 37px
    }

    #about .row1 .col-r .list-note li {
        gap: 5px;
        font-size: 14px
    }

    #about .row2 {
        margin-top: 50px
    }

    #about .row2 .elementor-row {
        gap: 18px
    }

    #about .row2 .elementor-col-50 {
        max-width: unset
    }

    #about .row2 .post-box {
        margin-top: 5px
    }

    #about .row2 .post-box dl {
        display: block
    }

    #about .row2 .post-box dl dt {
        width: auto
    }

    #about .row2 .post-box dl dd {
        line-height: 20px
    }

    #about .row2 .post-box dl+dl {
        margin-top: 12px
    }

    #about .row2 .btn-more {
        margin: 27px 0 0 auto
    }
}

#message {
    background: url("../img/top/mess_bg_pc.jpg") no-repeat center/cover;
    color: #fff;
    padding: 100px 0 112px
}

#message h2 {
    text-align: center;
    font-size: 34px;
    font-weight: 500;
    line-height: 52px;
    letter-spacing: .1em
}

#message .txt {
    text-align: center;
    margin-top: 31px;
    font-size: 18px;
    line-height: 40px;
    font-weight: bold;
    letter-spacing: .1em
}

@media screen and (max-width: 767px) {
    #message {
        background-image: url("../img/top/mess_bg_sp.jpg");
        padding: 65px 0 68px
    }

    #message h2 {
        font-size: 22px;
        line-height: 40px
    }

    #message .txt {
        text-align: left;
        margin-top: 17px;
        font-size: 15px;
        line-height: 33px
    }
}

#feature {
    background: url("../img/top/feature_deco_bot.png") no-repeat left bottom -1px/75% auto, url("../img/top/feature_bg.png") no-repeat center/cover;
    padding: 76px 0 126px
}

#feature .row1 {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 89px
}

#feature .row1 .btn-shared {
    width: 266px;
    margin-bottom: -5px
}

#feature .row {
    display: flex;
    align-items: center;
    justify-content: space-between
}

#feature .row .photo {
    max-width: 644px;
    width: 100%;
    margin-right: -66px
}

#feature .row .group-txt {
    position: relative;
    z-index: 1;
    background: #fff;
    box-shadow: 0px 15px 24px rgba(161, 161, 161, .15);
    max-width: 502px;
    width: 100%;
    padding: 52px 56px 48px
}

#feature .row .group-txt .num {
    position: absolute;
    top: -90px;
    right: 0;
    color: #e2e2e2;
    opacity: .4;
    font-size: 216.67px;
    font-weight: 300;
    line-height: 1;
    letter-spacing: 0
}

#feature .row .group-txt h3 {
    position: relative;
    z-index: 1;
    font-size: 28px;
    line-height: 1.6;
    font-weight: 500;
    letter-spacing: .05em
}

#feature .row .group-txt h3 span {
    color: #80b200;
    letter-spacing: .05em
}

#feature .row .group-txt .txt {
    margin-top: 21px
}

#feature .row+.row {
    margin-top: 67px
}

#feature .row4 {
    align-items: flex-start
}

#feature .row4 .photo {
    max-width: 666.5px;
    margin-right: -71px
}

#feature .row4 .group-txt {
    background: linear-gradient(90deg, rgb(114, 177, 21) 0%, rgb(175, 198, 1) 100%);
    color: #fff;
    max-width: 481px;
    margin-top: 41px
}

#feature .row4 .group-txt .num {
    color: #fff
}

#feature .row4 .group-txt h3 span {
    color: #fff
}

#feature .row4 .group-txt .btn-shared {
    margin-top: 43px
}

@media screen and (min-width: 1001px) {
    #feature .row3 .photo {
        order: 2;
        margin: 0 0 0 -66px
    }

    #feature .row3 .group-txt {
        order: 1
    }

    #feature .row3 .group-txt .num {
        right: auto;
        left: 0
    }
}

@media screen and (min-width: 768px)and (max-width: 1000px) {
    #feature .row1 {
        flex-wrap: wrap;
        justify-content: center;
        gap: 50px
    }

    #feature .row {
        display: block
    }

    #feature .row .group-txt {
        margin: -40px auto 0 !important
    }

    #feature .row .photo {
        margin: 0 auto !important
    }

    #feature .row4 .photo {
        position: relative;
        z-index: 2
    }
}

@media screen and (max-width: 767px) {
    #feature {
        background-size: calc(100% - 41px), cover;
        padding: 57px 0 63px
    }

    #feature .row1 {
        display: block;
        margin-bottom: 34px
    }

    #feature .row1 .btn-shared {
        width: auto;
        margin: 43px 0 0
    }

    #feature .row {
        display: block
    }

    #feature .row .photo {
        max-width: unset !important;
        width: auto !important;
        margin: 0 -22px !important
    }

    #feature .row .group-txt {
        max-width: unset !important;
        width: auto !important;
        margin: -29px -13px 0;
        padding: 29px 30px
    }

    #feature .row .group-txt .num {
        top: -56px;
        right: 6px;
        color: #e2e2e2;
        font-size: 134.39px
    }

    #feature .row .group-txt h3 {
        font-size: 22px
    }

    #feature .row .group-txt .txt {
        margin-top: 12px
    }

    #feature .row+.row {
        margin-top: 38px
    }

    #feature .row4 .photo {
        position: relative;
        z-index: 2
    }

    #feature .row4 .group-txt {
        margin-top: -16px
    }

    #feature .row4 .group-txt .btn-shared {
        margin-top: 19px
    }
	
	#feature .row4 .group-txt .btn-shared a{
		padding-left: 23px;
	}
}

#doctor {
    background: url("../img/top/doctor_bg.png") no-repeat center bottom/cover;
    padding: 80px 0 119px
}

#doctor .inner {
    background: #fff;
    box-shadow: 0px 15px 14px rgba(161, 161, 161, .15);
    border-top: 2px solid #9ec724;
    margin-top: 40px;
    padding: 77px 30px 72px
}

#doctor .row1 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    max-width: 900px;
    margin: 0 auto
}

#doctor .row1 .group-txt {
    max-width: 501px;
    width: 100%
}

#doctor .row1 .group-txt h3 {
    font-size: 28px;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: .1em
}

#doctor .row1 .group-txt h3 span {
    color: #80b200;
    letter-spacing: .1em
}

#doctor .row1 .group-txt .txt {
    margin-top: 26px;
    line-height: 2.1;
    font-weight: 500;
    letter-spacing: .05em
}

#doctor .row1 .avatar {
    position: relative;
    max-width: 368px;
    width: 100%;
    padding-right: 19px
}

#doctor .row1 .avatar dt {
    position: absolute;
    bottom: 21px;
    right: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgb(134, 191, 49) 0%, rgb(187, 209, 19) 100%);
    color: #fff;
    text-align: center;
    width: 191px;
    font-size: 23px;
    font-weight: 500;
    line-height: 49px;
    letter-spacing: 0
}

#doctor .row1 .avatar dt small {
    font-size: 17px;
    letter-spacing: 0
}

#doctor .row2 {
    display: flex;
    justify-content: space-between;
    max-width: 907px;
    margin: 66px auto 0
}

#doctor .row2 .col {
    width: calc(50% - 16px)
}

#doctor .row2 .col h4 {
    position: relative;
    border-bottom: 1px solid #ccc;
    padding: 1px 0 17px 20px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1;
    letter-spacing: .1em
}

#doctor .row2 .col h4::before {
    content: "";
    position: absolute;
    background: linear-gradient(180deg, rgb(114, 177, 21) 0%, rgb(175, 198, 1) 100%);
    width: 7.5px;
    height: 23px;
    top: 0;
    left: 0
}

#doctor .row2 .col .list {
    margin-top: 23px
}

#doctor .row2 .col .list li {
    position: relative;
    padding-left: 17px;
    font-size: 15px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: .05em
}

#doctor .row2 .col .list li::before {
    content: "";
    position: absolute;
    background: #a7c304;
    border-radius: 50%;
    width: 8px;
    height: 8px;
    top: 11px;
    left: 0
}

#doctor .row2 .col .list li small {
    font-size: 13px;
    letter-spacing: .05em
}

@media screen and (min-width: 768px)and (max-width: 950px) {
    #doctor .row1 .group-txt h3 {
        font-size: 2.8vw
    }

    #doctor .row1 .avatar {
        max-width: 290px
    }
}

@media screen and (max-width: 767px) {
    #doctor {
        background-image: url("../img/top/doctor_bg_sp.png");
        padding: 50px 0
    }

    #doctor .inner {
        margin: 35px -13px 0;
        padding: 39px 30px 43px
    }

    #doctor .row1 {
        flex-direction: column;
        gap: 26px;
        max-width: unset
    }

    #doctor .row1 .group-txt {
        order: 2;
        max-width: unset;
        width: auto
    }

    #doctor .row1 .group-txt h3 {
        font-size: 22px;
        line-height: 1.6;
        letter-spacing: .05em
    }

    #doctor .row1 .group-txt h3 span {
        letter-spacing: .05em
    }

    #doctor .row1 .group-txt .txt {
        margin-top: 13px;
        line-height: 2;
        font-weight: 400
    }

    #doctor .row1 .avatar {
        order: 1;
        max-width: unset;
        width: auto;
        padding: 0;
        margin: 0 5px
    }

    #doctor .row1 .avatar dt {
        bottom: -10px;
        right: 5px;
        width: 173px;
        font-size: 20.81px;
        line-height: 43px;
        letter-spacing: 0
    }

    #doctor .row1 .avatar dt small {
        font-size: 15.38px
    }

    #doctor .row2 {
        flex-direction: column;
        max-width: unset;
        gap: 36px;
        margin: 44px 0 0
    }

    #doctor .row2 .col {
        width: 100%
    }

    #doctor .row2 .col .list {
        margin-top: 17px
    }

    #doctor .row2 .col .list li {
        padding-left: 17px;
        font-size: 14px;
        line-height: 1.84
    }

    #doctor .row2 .col .list li::before {
        width: 7px;
        height: 7px;
        top: 0
    }

    #doctor .row2 .col .list li small {
        font-size: 12px
    }

    #doctor .row2 .col:nth-child(1) .list li:nth-child(1) {
        line-height: 19px;
        margin-bottom: 9px
    }
}