#keyvisual {
    position: relative
}

#keyvisual .group-txt {
    position: absolute;
    bottom: 94px;
    left: 0;
    right: 0;
    color: #333;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
    z-index: 1
}

#keyvisual .group-txt .ttl {
    font-size: 50px;
    font-weight: 400;
    line-height: 70px;
    letter-spacing: -0.05em
}

#keyvisual .group-txt .txt {
    margin-top: 17px;
    font-size: 24px;
    line-height: 36px;
    letter-spacing: -0.05em
}

#keyvisual .slider-key {
    height: 800px
}

#keyvisual .slider-key .item {
    height: 800px
}

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

@media screen and (max-width: 767px) {
    #keyvisual {
        position: relative
    }

    #keyvisual .group-txt {
        inset: 50% 0 auto;
        max-width: 100%;
        width: -moz-fit-content;
        width: fit-content;
        padding: 0;
        color: #fff
    }

    #keyvisual .group-txt .ttl {
        font-size: 26px;
        line-height: 39px
    }

    #keyvisual .group-txt .txt {
        margin-top: 11px;
        font-size: 14px;
        line-height: 21px
    }

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

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

#philosophy {
    position: relative;
    background: url("../img/top/philosophy_bg_pc.jpg") no-repeat center/cover;
    color: #fff;
    padding: 95px 0 141px;
    z-index: 1
}

#philosophy .wrap {
    z-index: 1
}

#philosophy .wrap .txt {
    margin-top: 61px;
    font-size: 18px;
    line-height: 36px;
    letter-spacing: .1em
}

#philosophy .bg {
    position: absolute;
    bottom: -62px;
    left: 30px;
    right: 0;
    max-width: 1020px;
    margin-left: auto
}

@media screen and (max-width: 767px) {
    #philosophy {
        background-image: url("../img/top/philosophy_bg_sp.jpg");
        padding: 43px 0 108px
    }

    #philosophy .wrap .txt {
        margin-top: 29px;
        font-size: 14px;
        line-height: 28px
    }

    #philosophy .bg {
        bottom: -56px;
        max-width: 363px
    }
}

#feature {
    background: url("../img/top/feature_bg_pc.jpg") no-repeat center/cover;
    padding: 182px 0 132px
}

#feature .ttl-shared span.en::before {
    left: 197px
}

#feature .txt {
    text-align: center;
    margin-top: 65px
}

#feature .row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 79px;
    gap: 55px 3.9473684211%
}

#feature .row .box {
    position: relative;
    width: 30.701754386%;
    min-height: 620px;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, .15);
    background: #fff;
    border-radius: 160px 0 0 0;
    padding: 15px 15px 45px
}

#feature .row .box .box-point {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    background: #1baecf;
    color: #fff;
    border-radius: 50%;
    width: 90px;
    height: 90px
}

#feature .row .box .box-point span {
    display: block;
    line-height: 1
}

#feature .row .box .box-point span:nth-child(1) {
    font-size: 14px;
    letter-spacing: -0.05em
}

#feature .row .box .box-point span:nth-child(2) {
    font-size: 42px;
    letter-spacing: 0
}

#feature .row .box .box-img img {
    border-radius: 160px 0 0 0
}

#feature .row .box .box-title {
    color: #fb6e43;
    margin: 21px 11px 0;
    font-size: 20px;
    line-height: 30px;
    letter-spacing: .05em
}

#feature .row .box .box-desc {
    margin: 19px 10px 0
}

@media screen and (min-width: 768px)and (max-width: 1000px) {
    #feature .row {
        gap: 30px 3%
    }

    #feature .row .box {
        padding: 15px 10px 45px
    }

    #feature .row .box .box-title,
    #feature .row .box .box-desc {
        margin-left: 5px;
        margin-right: 0
    }
}

@media screen and (max-width: 767px) {
    #feature {
        background-image: url("../img/top/feature_bg_sp.jpg");
        padding: 119px 0 63px
    }

    #feature .txt {
        text-align: left;
        margin-top: 30px
    }

    #feature .row {
        flex-direction: column;
        justify-content: flex-start;
        margin-top: 48px;
        gap: 40px
    }

    #feature .row .box {
        width: 100%;
        min-height: auto;
        padding: 15px 15px 35px
    }

    #feature .row .box .box-title {
        font-size: 18px;
        line-height: 27px
    }
}

#greeting {
    position: relative;
    padding: 104px 0 60px
}

#greeting .bg {
    position: absolute;
    inset: 0
}

#greeting .bg .name {
    display: none
}

#greeting .bg .photo {
    height: 100%
}

#greeting .bg .photo img {
    width: 100%;
    height: 100%;
    -o-object-position: right;
    object-position: right;
    -o-object-fit: cover;
    object-fit: cover
}

#greeting .ttl-shared span.en::before {
    left: 209px
}

#greeting .group-txt {
    margin-top: 101px;
    width: 649px
}

#greeting .group-txt h3 {
    color: #333;
    font-size: 24px;
    line-height: 36px;
    letter-spacing: -0.05em
}

#greeting .group-txt .txt {
    margin-top: 30px
}

#greeting .group-txt .btn-shared {
    margin-top: 48px
}

#greeting .row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    background: rgba(255, 255, 255, .7);
    margin-top: 98px;
    padding: 25px 50px 29px
}

#greeting .row .col:nth-child(1) {
    max-width: 660px;
    width: 100%
}

#greeting .row .col:nth-child(2) {
    max-width: 356px;
    width: 100%
}

#greeting .row .col .subject {
    border-bottom: 1px solid #a5a5a5;
    color: #333;
    padding: 0 0 6px 10px;
    font-weight: 500;
    letter-spacing: .05em
}

#greeting .row .col .desc {
    padding: 11px 0 0 10px;
    font-size: 14px;
    line-height: 19px;
    letter-spacing: .1em
}

#greeting .row .col .desc * {
    letter-spacing: .1em
}

#greeting .row .col .desc dl {
    display: flex
}

#greeting .row .col .desc dl dt {
    max-width: 50px;
    width: 100%
}

@media screen and (max-width: 1000px) {
    #greeting {
        padding-top: 0px
    }

    #greeting .wrap {
        position: unset
    }

    #greeting .ttl-shared {
        position: absolute;
        top: 40px;
        left: 20px;
        right: 20px;
        z-index: 1
    }

    #greeting .bg {
        position: relative;
        inset: auto
    }

    #greeting .bg .name {
        position: absolute;
        bottom: 50px;
        right: 44px;
        color: #fff;
        display: block;
        z-index: 1;
        font-weight: 500;
        line-height: 1
    }

    #greeting .bg .name * {
        letter-spacing: 0
    }

    #greeting .bg .name dt {
        font-size: 16px
    }

    #greeting .bg .name dd {
        margin-top: 19px;
        font-size: 24px
    }

    #greeting .bg .name dd span {
        display: block;
        margin-top: 7px;
        font-size: 14px
    }

    #greeting .bg .photo {
        height: -moz-fit-content;
        height: fit-content
    }

    #greeting .group-txt {
        margin: 48px auto 0
    }

    #greeting .row {
        margin-top: 48px;
        padding-left: 0;
        padding-right: 0
    }

    #greeting .row .col {
        background: rgba(248, 248, 248, .9);
        padding: 15px 25px 25px;
        max-width: unset !important;
        width: calc(50% - 10px)
    }

    #greeting .btn-shared {
        margin: 0 auto
    }
}

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

    #greeting .group-txt {
        margin: 10px 0 0;
        width: auto
    }

    #greeting .group-txt h3 {
        font-size: 18px;
        line-height: 27px;
        letter-spacing: .05em
    }

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

    #greeting .group-txt .btn-shared {
        margin: 43px 5px 0
    }

    #greeting .row {
        flex-direction: column;
        background: rgba(0, 0, 0, 0);
        margin-top: 60px;
        padding: 0
    }

    #greeting .row .col {
        width: auto
    }

    #greeting .row .col .subject {
        padding: 0 6px 2px;
        font-size: 16px
    }

    #greeting .row .col .desc {
        padding: 15px 0 0 6px;
        line-height: 21px
    }
}

#menu .set1 {
    position: relative
}

#menu .set1 .bg {
    height: 824px
}

#menu .set1 .bg img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

#menu .set1 h2 {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    text-align: center;
    color: #fff;
    font-size: 50px;
    line-height: 1.4;
    letter-spacing: -0.05em;
    z-index: 1
}

#menu .set2 {
    background: url("../img/top/menu_bg2_pc.jpg") no-repeat center top/cover;
    padding: 96px 0 128px
}

#menu .set2 .ttl-shared span.en::before {
    left: 155px
}

#menu .set2 .group-menu1 {
    display: flex;
    flex-direction: column;
    gap: 60px;
    margin-top: 70px
}

#menu .set2 .group-menu1 .row {
    display: flex;
    justify-content: space-between;
    background: #fff;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, .15);
    gap: 30px;
    padding: 50px
}

#menu .set2 .group-menu1 .row:nth-child(odd) {
    border-radius: 0 100px 0 0
}

#menu .set2 .group-menu1 .row:nth-child(odd) .photo {
    order: 2
}

#menu .set2 .group-menu1 .row:nth-child(odd) .photo img {
    border-radius: 0 70px 0 0
}

#menu .set2 .group-menu1 .row:nth-child(odd) .group-txt {
    order: 1
}

#menu .set2 .group-menu1 .row:nth-child(even) {
    border-radius: 100px 0 0 0
}

#menu .set2 .group-menu1 .row:nth-child(even) .photo img {
    border-radius: 70px 0 0 0
}

#menu .set2 .group-menu1 .row .photo {
    max-width: 480px;
    width: 100%
}

#menu .set2 .group-menu1 .row .group-txt {
    color: #333;
    max-width: 510px;
    width: 100%;
    margin-top: -7px
}

#menu .set2 .group-menu1 .row .group-txt h3 {
    font-size: 32px;
    line-height: 45px;
    letter-spacing: .05em
}

#menu .set2 .group-menu1 .row .group-txt .txt {
    margin-top: 8px
}

#menu .set2 .group-menu1 .row .group-txt .list {
    margin-top: 17px
}

#menu .set2 .group-menu1 .row .group-txt .list li {
    position: relative;
    padding-left: 23px
}

#menu .set2 .group-menu1 .row .group-txt .list li::before {
    content: "";
    position: absolute;
    background: url("../img/top/menu_icon_check.png") no-repeat;
    width: 13.5px;
    height: 13px;
    background-size: 100%;
    top: 10px;
    left: 0
}

#menu .set2 .group-menu1 .row .group-txt .list li+li {
    margin-top: -6px
}

#menu .set2 .group-menu1 .row .group-txt .btn-shared {
    margin-top: 31px
}

#menu .set2 .group-menu2 {
    background: #fff;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, .15);
    margin-top: 122px;
    padding: 0 30px
}

#menu .set2 .group-menu2 ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 1048px;
    margin: 0 auto
}

#menu .set2 .group-menu2 ul li {
    width: calc(50% - 19px)
}

#menu .set2 .group-menu2 ul li a {
    position: relative;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #cdcdcd;
    height: 142px
}

#menu .set2 .group-menu2 ul li a::before {
    content: "";
    position: absolute;
    background: url("../img/icons/ico_arrow5.png") no-repeat;
    width: 31px;
    height: 5px;
    background-size: 100%;
    top: 50%;
    right: 20px;
    transform: translateY(-50%)
}

#menu .set2 .group-menu2 ul li a .icon {
    width: 144px;
    text-align: center
}

#menu .set2 .group-menu2 ul li a .txt dt {
    color: #13aef7;
    font-size: 15px;
    letter-spacing: 0
}

#menu .set2 .group-menu2 ul li a .txt dd {
    color: #333;
    font-size: 24px;
    letter-spacing: .05em
}

#menu .set2 .group-menu2 ul li a:hover {
    opacity: .7
}

#menu .set2 .group-menu2 ul li:last-child a {
    border-bottom: none
}

@media screen and (min-width: 768px)and (max-width: 1000px) {
    #menu .set1 h2 {
        font-size: 40px
    }

    #menu .set2 .group-menu1 .row {
        padding: 30px
    }

    #menu .set2 .group-menu2 ul li {
        width: calc(50% - 15px)
    }

    #menu .set2 .group-menu2 ul li a .icon {
        width: 110px
    }

    #menu .set2 .group-menu2 ul li a .txt dt {
        font-size: 13px
    }

    #menu .set2 .group-menu2 ul li a .txt dd {
        font-size: 20px
    }
}

@media screen and (max-width: 767px) {
    #menu .set1 .bg {
        height: -moz-fit-content;
        height: fit-content
    }

    #menu .set1 h2 {
        font-size: 6.15vw;
        line-height: 1.5
    }

    #menu .set2 {
        background-image: url("../img/top/menu_bg2_sp.jpg");
        padding: 43px 0 35px
    }

    #menu .set2 .group-menu1 {
        gap: 40px;
        margin-top: 35px
    }

    #menu .set2 .group-menu1 .row {
        display: block;
        padding: 15px 15px 48px
    }

    #menu .set2 .group-menu1 .row:nth-child(odd) .photo img {
        border-radius: 0 90px 0 0
    }

    #menu .set2 .group-menu1 .row:nth-child(even) .photo img {
        border-radius: 90px 0 0 0
    }

    #menu .set2 .group-menu1 .row .photo {
        max-width: unset;
        width: auto
    }

    #menu .set2 .group-menu1 .row .group-txt {
        max-width: unset;
        width: auto;
        margin-top: 24px
    }

    #menu .set2 .group-menu1 .row .group-txt h3 {
        font-size: 28px
    }

    #menu .set2 .group-menu1 .row .group-txt .txt {
        margin-top: 7px
    }

    #menu .set2 .group-menu1 .row .group-txt .list {
        margin-top: 23px
    }

    #menu .set2 .group-menu1 .row .group-txt .list li {
        padding-left: 21px
    }

    #menu .set2 .group-menu1 .row .group-txt .list li::before {
        top: 8px
    }

    #menu .set2 .group-menu1 .row .group-txt .list li+li {
        margin-top: -2px
    }

    #menu .set2 .group-menu1 .row .group-txt .btn-shared {
        margin-top: 34px
    }

    #menu .set2 .group-menu1 .row .group-txt .btn-shared a {
        font-size: 16px;
        line-height: 63px
    }

    #menu .set2 .group-menu2 {
        margin-top: 48px;
        padding: 14px 25px 34px
    }

    #menu .set2 .group-menu2 ul {
        flex-direction: column
    }

    #menu .set2 .group-menu2 ul li {
        width: 100%
    }

    #menu .set2 .group-menu2 ul li a {
        height: 79px
    }

    #menu .set2 .group-menu2 ul li a::before {
        right: 5px
    }

    #menu .set2 .group-menu2 ul li a .icon {
        text-align: left;
        width: 66px;
        padding-left: 3px
    }

    #menu .set2 .group-menu2 ul li a .txt dt {
        font-size: 13px;
        line-height: 16px
    }

    #menu .set2 .group-menu2 ul li a .txt dd {
        font-size: 20px;
        line-height: 28px
    }
}

#clinic {
    padding-top: 120px
}

#clinic .ttl-shared span.en::before {
    left: 148px
}

#clinic .row {
    display: flex;
    justify-content: space-between;
    color: #333;
    margin-top: 56px;
    gap: 30px
}

#clinic .row .col {
    max-width: 540px;
    width: 100%
}

#clinic .row .col .table-time {
    background: rgba(0, 0, 0, .05);
    padding: 17px 30px 34px
}

#clinic .row .col .table-time table {
    width: 100%;
    table-layout: fixed
}

#clinic .row .col .table-time table .txt-color {
    color: #1baecf
}

#clinic .row .col .table-time table tr th,
#clinic .row .col .table-time table tr td {
    line-height: 52px;
    border-bottom: 1px solid #8f8f8f;
    font-size: 14px;
    letter-spacing: .1em
}

#clinic .row .col .table-time table tr th {
    width: 30%
}

#clinic .row .col .table-time table tr td {
    text-align: center
}

#clinic .row .col .table-time table thead th {
    font-size: 16px;
    font-weight: bold
}

#clinic .row .col .table-time table thead th img {
    width: 27px;
    vertical-align: middle;
    margin: -5px 10px 0 10px
}

#clinic .row .col .table-time table tbody th {
    padding-left: 10px
}

#clinic .row .col .table-time .note {
    margin: 15px 0 0 10px;
    font-size: 14px;
    line-height: 21px;
    letter-spacing: .1em
}

#clinic .row .col .info {
    margin-top: 20px
}

#clinic .row .col .info dl {
    position: relative;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #dcdcdc;
    padding: 10px 0 11px;
    line-height: 24px
}

#clinic .row .col .info dl * {
    letter-spacing: .1em
}

#clinic .row .col .info dl::before {
    content: "";
    position: absolute;
    background: #1baecf;
    height: 1px;
    width: 100px;
    bottom: -1px;
    left: 0
}

#clinic .row .col .info dl dt {
    max-width: 100px;
    width: 100%;
    padding-left: 10px
}

#clinic .row .col .info dl dd {
    padding-left: 16px
}

#clinic .row .col .info dl dd a {
    display: contents
}

#clinic .row .col .map {
    height: 575px
}

@media screen and (min-width: 768px)and (max-width: 1000px) {
    #clinic .row .col .table-time {
        padding-left: 20px;
        padding-right: 20px
    }

    #clinic .row .col .table-time table tr th {
        width: 110px
    }

    #clinic .row .col .table-time table tr th,
    #clinic .row .col .table-time table tr td {
        font-size: 13px
    }

    #clinic .row .col .info dl {
        font-size: 13px
    }
}

@media screen and (max-width: 767px) {
    #clinic {
        padding-top: 40px
    }

    #clinic .row {
        flex-direction: column;
        margin-top: 26px
    }

    #clinic .row .col {
        max-width: unset;
        width: auto
    }

    #clinic .row .col .table-time {
        padding: 16px 20px 20px
    }

    #clinic .row .col .table-time table tr th,
    #clinic .row .col .table-time table tr td {
        line-height: 27.5px;
        font-size: 11px
    }

    #clinic .row .col .table-time table tr th {
        width: 84px
    }

    #clinic .row .col .table-time table thead th {
        font-size: 11px
    }

    #clinic .row .col .table-time table thead th img {
        width: 14px;
        margin: 0 6px 0 3px
    }

    #clinic .row .col .table-time table tbody th {
        padding-left: 5px
    }

    #clinic .row .col .table-time .note {
        margin: 8px 0 0 5px;
        font-size: 12px;
        line-height: 18px
    }

    #clinic .row .col .info {
        margin-top: 25px
    }

    #clinic .row .col .info dl {
        font-size: 12px;
        line-height: 18px
    }

    #clinic .row .col .info dl::before {
        width: 68px
    }

    #clinic .row .col .info dl dt {
        max-width: 68px;
        padding-left: 7px
    }

    #clinic .row .col .info dl dd {
        padding-left: 21px
    }

    #clinic .row .col .map {
        height: 373px
    }
}

#blog {
    padding: 120px 0 93px
}

#blog .post-box {
    display: block
}

#blog .lead {
    display: flex;
    justify-content: space-between
}

#blog .lead .ttl-shared {
    background-size: 67px;
    padding: 2px 0 10px 79px
}

#blog .lead .ttl-shared span.en {
    font-size: 32px
}

#blog .lead .ttl-shared span.en::before {
    display: none
}

#blog .lead .ttl-shared span.jp {
    font-size: 13px;
    margin-top: 11px
}

#blog .lead .more {
    margin-top: 39px;
    font-family: "Noto Sans JP", sans-serif
}

#blog .lead .more a {
    color: #333;
    font-size: 12px;
    text-decoration: underline;
    text-underline-offset: 2px
}

#blog .lead .more a:hover {
    text-decoration: none
}

#blog .post-box {
    display: block;
    margin-top: 15px
}

#blog .post-box .post-box__content dl {
    position: relative;
    padding: 25px 80px 20px 40px;
    border-radius: 40px 0 0 0
}

#blog .post-box .post-box__content dl::before {
    content: "";
    position: absolute;
    width: 31px;
    height: 5px;
    top: 50%;
    right: 30px;
    transform: translateY(-50%)
}

#blog .post-box .post-box__content dl dt {
    font-family: "Noto Sans JP", sans-serif;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #8f8f8f;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0
}

#blog .post-box .post-box__content dl dt span {
    display: block;
    text-align: center;
    color: #fff;
    width: 40px;
    font-size: 10px;
    line-height: 16px;
    letter-spacing: 0
}

#blog .post-box .post-box__content dl dd {
    margin-top: 6px
}

#blog .post-box .post-box__content dl dd a {
    display: inline-block;
    color: #333;
    font-size: 16px;
    letter-spacing: .1em
}

#blog .post-box .post-box__content dl dd a:hover {
    text-decoration: underline
}

#blog .post-box .post-box__content dl+dl {
    margin-top: 20px
}

#blog .elementor-col-50:nth-child(1) .post-box .post-box__content dl {
    background: rgba(27, 174, 207, .03)
}

#blog .elementor-col-50:nth-child(1) .post-box .post-box__content dl::before {
    background: url("../img/icons/ico_arrow6.png") no-repeat center/100%
}

#blog .elementor-col-50:nth-child(1) .post-box .post-box__content dl dt span {
    background: #1baecf
}

#blog .elementor-col-50:nth-child(2) .post-box .post-box__content dl {
    background: rgba(251, 110, 67, .03)
}

#blog .elementor-col-50:nth-child(2) .post-box .post-box__content dl::before {
    background: url("../img/icons/ico_arrow5.png") no-repeat center/100%
}

#blog .elementor-col-50:nth-child(2) .post-box .post-box__content dl dt span {
    background: #fb6e43
}

@media screen and (min-width: 768px) {
    #blog .elementor-row {
        flex-wrap: nowrap !important;
        justify-content: space-between;
        gap: 30px
    }

    #blog .elementor-col-50 {
        width: 100% !important;
        max-width: 540px
    }
}

@media screen and (max-width: 767px) {
    #blog {
        padding: 57px 0 93px
    }

    #blog .lead .ttl-shared {
        background-size: 58px;
        padding: 2px 0 8px 68px
    }

    #blog .lead .ttl-shared span.en {
        font-size: 28px
    }

    #blog .lead .ttl-shared span.jp {
        font-size: 12px;
        margin-top: 9px
    }

    #blog .lead .more {
        margin-top: 37px
    }

    #blog .lead .more a {
        font-size: 11px
    }

    #blog .post-box {
        margin-top: 25px
    }

    #blog .post-box .post-box__content dl {
        padding: 20px 65px 20px 33px
    }

    #blog .post-box .post-box__content dl::before {
        right: 20px
    }

    #blog .post-box .post-box__content dl dd {
        margin-top: 8px
    }

    #blog .post-box .post-box__content dl dd a {
        line-height: 24px
    }

    #blog .elementor-col-50:nth-child(2) {
        margin-top: 43px
    }
}