.home_page .key {
    --height: 50vw;
    --min-height: 380px;
    --max-height: 620px;
    height: var(--height);
    min-height: var(--min-height);
    max-height: var(--max-height);
    font-size: 10px;
    position: relative
}

.home_page .key:after,
.home_page .key:before {
    content: "";
    position: absolute
}

.home_page .key:before {
    top: 14em;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    height: 80.5em;
    background: url(../images/idx_mv_bf.svg) no-repeat top center;
    background-size: cover
}

.home_page .key:after {
    width: 100%;
    height: 100%;
    bottom: calc(-100% + 7.4em);
    left: 0;
    background: url(../images/idx_mv_at.svg) no-repeat top center/108% auto
}

.home_page .key .inner {
    width: 100%;
    max-width: 1180px
}

.home_page .key .mv_slider:not(.slick-slider) {
    display: flex;
    opacity: 0
}

.home_page .key .catch {
    padding: 1em 1em 8.9em 5em;
    margin: 0px auto;
    max-width: 100%
}

.home_page .key .catch .title,
.home_page .key .catch p {
    color: #fff;
    font-weight: bold;
    letter-spacing: 0.1em;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5)
}

.home_page .key .catch .title {
    margin-bottom: 0.8235294118em;
    font-size: 3.4em;
    line-height: 1.6;
    text-shadow: 0 0 3px rgba(0, 0, 0, 0.2), 0 0 8px rgba(0, 0, 0, 0.25), 3px 3px 10px rgba(0, 0, 0, 0.25)
}

.home_page .key .catch p {
    font-size: 2em;
    line-height: 1.65;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.3), 0 0 8px rgba(0, 0, 0, 0.3), 0px 0px 10px rgba(0, 0, 0, 0.3)
}

.home_page .key .key_text {
    position: relative;
    width: calc(100% - 10em);
    margin: 0 auto;
    height: 100%
}

.home_page .key .key_text:before {
    content: "";
    position: absolute;
    left: -0.4em;
    top: 0.3em;
    width: 18.8em;
    height: 20.4em;
    background: url(../images/idx-main-ico01.svg) no-repeat center;
    background-size: 100% auto;
    z-index: 1
}

.home_page .key .key_text .item {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-end;
    height: var(--height);
    min-height: var(--min-height);
    max-height: var(--max-height);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-top-right-radius: 200px;
    border-top-left-radius: 200px;
    position: relative
}
.home_page .key .s1 {
  background-image: url(../images/idx-main-img01.jpg);
}
.home_page .key .slick-initialized .s2 {
  background-image: url(../images/idx-main-img02.jpg);
}
.home_page .key .slick-initialized .s3 {
  background-image: url(../images/idx-main-img03.jpg);
}
.home_page .key .slick-initialized .s4 {
  background-image: url(../images/idx-main-img04.jpg);
}
.home_page .mv-txt{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1;
}
.home_page .topic_path {
    display: none
}

@keyframes scroll {
    0% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(1, 0);
        transform: scale(1, 0)
    }

    50% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1)
    }

    50.1% {
        -webkit-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1)
    }

    to {
        -webkit-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(1, 0);
        transform: scale(1, 0)
    }
}

.idx-scroll {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    bottom: 2.1em;
    z-index: 2
}

.idx-scroll a {
    text-decoration: none;
    color: var(--main-color);
    font-size: 1.8em;
    font-weight: 500;
    letter-spacing: 0.1em;
    display: table;
    margin: 0 auto;
    transition: 0.3s all
}

.idx-scroll a:before {
    content: "";
    position: relative;
    display: block;
    margin: 0 auto;
    border-radius: 1px;
    width: 2px;
    height: 2.3333333em;
    background: var(--clr2);
    margin-bottom: -0.22222222em;
    animation: scroll 1.8s cubic-bezier(1, 0, 0, 1) infinite
}

.idx-scroll a:hover {
    color: var(--main-color)
}

@media only screen and (min-width:769px) {
    .home_page .key .ml-pc {
        margin-left: 32px
    }

    .idx-scroll a:hover {
        transform: translateY(-5px)
    }
}

@media only screen and (min-width:1281px) {
    .home_page .key:before {
        height: 66.5em
    }

    .home_page .key:after {
        bottom: calc(-100% + 100px);
        background-size: 100% auto
    }

    .home_page .key .catch {
        padding-bottom: 115px
    }

    .idx-scroll {
        bottom: 47px
    }
}

@media only screen and (min-width:1921px) {
    .home_page .key {
        --max-height: 24vw
    }

    .home_page .key:after {
        bottom: calc(-100% + 6vw)
    }

    .home_page .key .catch {
        padding-bottom: 9vw
    }

    .idx-scroll {
        bottom: 5vw
    }
}

@media only screen and (min-width:769px) and (max-width:1024px) {
    .home_page .key {
        font-size: 8px
    }

    .home_page .key:before {
        height: 70em
    }

    .home_page .key .key_text {
        width: calc(100% - 5em)
    }

    .home_page .key .key_text .item {
        border-top-right-radius: 100px;
        border-top-left-radius: 100px
    }

    .home_page .key .key_text .item:before {
        font-size: 6px
    }
}

.wrap-title {
    text-align: center
}

.wrap-title.sm h2 {
    font-size: 35px
}

.wrap-title.sm .en {
    margin-bottom: 7px
}

.wrap-title .en {
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    color: var(--main-color);
    display: table;
    margin: 0 auto 10px;
    letter-spacing: 0.1em
}

.wrap-title .en:after {
    content: "";
    position: relative;
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 1px;
    background: var(--clr2);
    margin-top: 3px
}

.wrap-title h2 {
    font-size: 40px;
    line-height: 1.4;
    font-weight: 600;
    color: var(--main-color);
    letter-spacing: 0.1em
}

@media only screen and (min-width:769px) and (max-width:1024px) {
    .wrap-title .en {
        font-size: 14px;
        margin-bottom: 3px
    }

    .wrap-title h2 {
        font-size: 35px
    }

    .wrap-title.sm .en {
        margin-bottom: 2px
    }

    .wrap-title.sm h2 {
        font-size: 30px
    }
}

.idx01 {
    padding: 59px 0px 100px;
    background-color: #fff;
    position: relative
}

.idx01 .wrap-title {
    margin-bottom: 8px
}

.idx01 .block-news {
    position: relative;
    background-color: #f3f9f3;
    border-radius: 75px 75px 30px 30px;
    z-index: 1;
    padding: 0 69px 11px
}

.idx01 .block-news:before {
    content: "";
    position: absolute;
    top: -59px;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/idx01_mask.svg) no-repeat top center/100% auto;
    z-index: -1
}

.idx01 .btn-group {
    position: relative;
    bottom: -42px
}

.idx01 .btn-group .btn {
    max-width: 240px;
    margin: 0 auto
}

.idx01 .list-post li {
    background: url(../images/udr-ico-hr.svg) repeat-x bottom left;
    background-size: auto 1.5px
}

.idx01 .list-post a {
    display: flex;
    align-items: center;
    text-decoration: none;
    padding: 24px 40px 11px 16px;
    font-weight: 500;
    transition: all 0.3s;
    letter-spacing: 0.1em;
    white-space: nowrap;
    max-width: 100%;
    color: var(--clr1);
    position: relative
}

.idx01 .list-post a:after {
    content: "";
    position: absolute;
    top: 9px;
    bottom: 0;
    right: 16px;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background: var(--main-color) url(../images/ic_arr.svg) no-repeat center/100% auto;
    transition: all 0.3s;
    margin: auto
}

.idx01 .list-post a span {
    display: inline
}

.idx01 .list-post a:hover {
    opacity: 1;
    color: var(--main-color)
}

.idx01 .list-post a:hover .date {
    color: var(--main-color)
}

.idx01 .list-post a .date {
    width: 93px;
    transition: all 0.3s;
    font-size: 12px;
    letter-spacing: 0.1em;
    color: var(--main-color)
}

.idx01 .list-post a .title {
    width: calc(100% - 93px);
    position: relative;
    top: -3px;
    text-overflow: ellipsis;
    overflow: hidden
}

@media only screen and (min-width:769px) and (max-width:1024px) {
    .idx01 {
        padding-bottom: 60px
    }

    .idx01 .btn-group {
        bottom: -35px
    }
}

.idx02 {
    padding-top: 48px;
    position: relative;
    z-index: 1
}

.idx02 h3.en {
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    color: var(--main-color);
    display: table;
    margin-bottom: 38px;
    letter-spacing: 0.08em
}

.idx02 h3.en:after {
    content: "";
    position: relative;
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 1px;
    background: var(--clr2);
    margin-top: 3px
}

.idx02 .bx-cont>p {
    font-size: 18px;
    font-weight: 500;
    line-height: 2.333;
    color: var(--main-color)
}

.idx02 .bx-img {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    font-size: 10px
}

.idx02 .bx-img:after,
.idx02 .bx-img:before {
    content: "";
    position: absolute;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain
}

.idx02 .bx-img:before {
    top: 0.5em;
    left: -5.6em;
    width: 23.4em;
    height: 23.6em;
    background-image: url(../images/idx02_illus01.svg)
}

.idx02 .bx-img:after {
    bottom: -10em;
    right: 14.7em;
    width: 20em;
    height: 24.8em;
    background-image: url(../images/idx02_illus02.svg)
}

.idx02 .bx-img .img01 {
    width: 71%;
    max-width: 37em;
    margin-top: 1.7em
}

.idx02 .bx-img .img01 img {
    border-radius: 15px
}

.idx02 .bx-img .gr_img {
    width: 35%
}

.idx02 .bx-img .gr_img figure {
    margin-bottom: 4em;
    max-width: 21em;
    margin-left: auto
}

.idx02 .bx-img .gr_img figure:last-child {
    margin-bottom: 0
}

.idx02 .bx-img .gr_img img {
    border-radius: 15px 0 0 15px
}

@media only screen and (min-width:769px) {
    .idx02 .bx-cont {
        width: 48%;
        max-width: 460px
    }

    .idx02 .bx-img {
        width: calc(49% + 10em);
        max-width: 62em;
        margin-right: -10em;
        margin-top: 0.3em
    }
}

@media only screen and (min-width:769px) and (max-width:1024px) {
    .idx02 h3.en {
        margin-bottom: 20px
    }

    .idx02 .bx-cont>p {
        font-size: 16px
    }

    .idx02 .bx-img {
        width: 49%;
        margin-right: 0;
        font-size: min(8px, 1vw)
    }

    .idx02 .bx-img:before {
        left: -2.6em
    }

    .idx02 .bx-img .img01 {
        width: 62%
    }
}

.idx03 {
    padding: 58px 0px 137px;
    position: relative;
    z-index: 0
}

.idx03:before {
    content: "";
    position: absolute;
    bottom: -235px;
    left: 0;
    width: 100%;
    height: calc(100% + 805px);
    mask-image: url(../images/idx03_mask.svg);
    -webkit-mask-image: url(../images/idx03_mask.svg);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: 100% auto;
    -webkit-mask-size: 100% auto;
    mask-position: top center;
    -webkit-mask-position: top center;
    background: #F3F9F3;
    background: linear-gradient(180deg, #F3F9F3 0%, #FFFCE6 100%);
    z-index: -1
}

.idx03 .wrap-title {
    margin-bottom: 64px
}

.idx03 .block-services .link a:before {
    content: "";
    position: absolute;
    bottom: -25px;
    left: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: url(../images/arr_down.svg) no-repeat center/50px auto;
    background-color: #ffffff;
    border: 6px solid #f3f9f3
}

.idx03 .block-services .services-item {
    max-width: 251px;
    border-radius: 10px;
    background-color: #ffffff;
    padding: 29px 20px 48px;
    position: relative
}

.idx03 .block-services .services-img {
    background-color: #fffce6;
    border-radius: 10px;
    max-width: 191px;
    width: 100%;
    margin: 0 auto 25px
}

.idx03 .block-services h3 {
    font-size: 26px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
    color: var(--main-color);
    margin-bottom: 10px;
    text-align: center
}

.idx03 .block-services h3:after {
    content: "";
    position: relative;
    display: block;
    width: 87px;
    height: 2px;
    margin: 15px auto 0;
    background: url(../images/idx03_h3_at.svg) repeat-x left center
}

.idx03 .block-menu {
    background-color: #ffffff;
    border-radius: 15px;
    padding: 41px 60px 60px;
    margin-top: 69px
}

.idx03 .block-menu h3 {
    font-size: 30px;
    font-weight: bold;
    line-height: 1.4;
    color: var(--main-color);
    letter-spacing: 0.1em;
    margin-bottom: 25px
}

.idx03 .menu-link {
    display: flex;
    flex-wrap: wrap
}

.idx03 .menu-link .menu-item {
    margin-bottom: 13px
}

.idx03 .menu-link .menu-item a {
    color: var(--clr1);
    text-decoration: none;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
    background: url(../images/udr-ico-hr.svg) repeat-x bottom left;
    background-size: auto 1px;
    position: relative;
    display: flex;
    align-items: center;
    padding: 12px 20px 12px 0;
    height: 100%
}

.idx03 .menu-link .menu-item a:after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background: var(--main-color) url(../images/ic_arr.svg) no-repeat center/100% auto;
    transition: all 0.3s;
    margin: auto
}

.idx03 .menu-link .menu-item a:hover {
    opacity: 1
}

@media only screen and (min-width:1921px) {
    .idx03:before {
        bottom: -7vw;
        height: calc(100% + 34vw)
    }
}

@media only screen and (min-width:769px) {
    .idx03 .block-services .services-item {
        width: calc((100% - 78px) / 4);
        margin-right: 26px;
        transition: 0.3s all
    }

    .idx03 .block-services .services-item:last-child,
    .idx03 .block-services .services-item:nth-child(4n+4) {
        margin-right: 0
    }

    .idx03 .block-services .services-item .box-in>p {
        padding: 0 7px
    }

    .idx03 .block-services .services-item:hover {
        transform: translateY(-10px);
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.13)
    }

    .idx03 .menu-link .menu-item {
        max-width: 255px;
        width: calc((100% - 60px) / 4);
        margin-right: 20px
    }

    .idx03 .menu-link .menu-item:last-child,
    .idx03 .menu-link .menu-item:nth-child(4n+4) {
        margin-right: 0
    }

    .idx03 .menu-link .menu-item a:hover {
        color: var(--main-color)
    }
}

@media only screen and (min-width:769px) and (max-width:1600px) {
    .idx03:before {
        height: calc(100% + 647px)
    }
}

@media only screen and (min-width:769px) and (max-width:1024px) {
    .idx03 {
        padding-bottom: 100px
    }

    .idx03 .wrap-title {
        margin-bottom: 20px
    }

    .idx03 .block-services .services-item {
        width: calc((100% - 45px) / 4);
        margin-right: 15px;
        padding: 20px 1.5% 35px
    }

    .idx03 .block-services .link a:before {
        bottom: -20px;
        width: 40px;
        height: 40px;
        background-size: 40px auto
    }

    .idx03 .block-services h3 {
        font-size: 20px;
        letter-spacing: 0.05em;
        margin-bottom: 10px
    }

    .idx03 .block-services h3:after {
        margin-top: 8px
    }

    .idx03 .block-menu {
        padding: 30px 5% 45px
    }

    .idx03 .block-menu h3 {
        font-size: 26px
    }

    .idx03 .menu-link .menu-item {
        width: calc((100% - 30px) / 4);
        margin-right: 10px
    }

    .idx03 .menu-link .menu-item a {
        letter-spacing: 0.05em
    }
}

@media only screen and (min-width:769px) and (max-width:900px) {
    .idx03:before {
        bottom: -70px;
        height: calc(100% + 265px)
    }

    .idx03 .menu-link .menu-item {
        width: calc((100% - 20px) / 3);
        margin-right: 10px
    }

    .idx03 .menu-link .menu-item:last-child,
    .idx03 .menu-link .menu-item:nth-child(3n+3) {
        margin-right: 0
    }

    .idx03 .menu-link .menu-item:nth-child(4n+4) {
        margin-right: 10px
    }

    .idx03 .menu-link .menu-item a:after {
        width: 18px;
        height: 18px
    }
}

.idx04 {
    padding: 100px 0px 117px;
    position: relative;
    z-index: 1
}

.idx04:before {
    content: "";
    position: absolute;
    top: -16px;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/idx04_mask.svg) no-repeat top center/100% auto;
    z-index: -1
}

.idx04 .wrap-title {
    margin-bottom: -26px;
    position: relative;
    z-index: 1
}

.idx04 .inner_sm {
    position: relative
}

.idx04 .inner_sm:after {
    content: "";
    position: absolute;
    top: 1.4em;
    right: 6em;
    width: 21.3em;
    height: 17.5em;
    font-size: 10px;
    background: url(../images/idx04_illus01.svg) no-repeat top center/contain
}

.idx04 .checkup-illus {
    font-size: 10px
}

.idx04 .checkup-illus .img01,
.idx04 .checkup-illus .img02 {
    position: absolute
}

.idx04 .checkup-illus .img01 {
    bottom: -3.8em;
    left: 5.6em
}

.idx04 .checkup-illus .img01 img {
    max-width: 13.6em
}

.idx04 .checkup-illus .img02 {
    bottom: -3.5em;
    right: 3.6em
}

.idx04 .checkup-illus .img02 img {
    max-width: 17em
}

.idx04 .block-checkup {
    position: relative;
    z-index: 0;
    border-radius: 210px;
    background-color: #fffce6;
    padding: 70px 10% 4px
}

.idx04 .block-checkup:before {
    content: "";
    position: absolute;
    z-index: -1;
    bottom: 0.9em;
    left: -4em;
    background: url(../images/idx04_illus02.svg) no-repeat center/contain;
    width: 24.6em;
    height: 25.4em;
    font-size: 10px
}

.idx04 .block-checkup>p {
    font-weight: 500;
    color: var(--main-color);
    text-align: center
}

.idx04 .btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: -48px;
    margin-top: 37px
}

.idx04 .btn-group .btn {
    max-width: 240px;
    width: calc((100% - 15px) / 2);
    margin-right: 15px
}

.idx04 .btn-group .btn:last-child {
    margin-right: 0
}

@media only screen and (min-width:769px) and (max-width:1024px) {
    .idx04 {
        padding-top: 65px
    }

    .idx04 .inner_sm {
        max-width: 900px
    }

    .idx04 .inner_sm:after {
        font-size: min(8px, 0.75vw)
    }

    .idx04 .wrap-title {
        margin-bottom: -20px
    }

    .idx04 .block-checkup {
        padding: 47px 10% 4px
    }

    .idx04 .block-checkup:before {
        font-size: min(8px, 0.75vw);
        left: -11em
    }

    .idx04 .block-checkup>p {
        letter-spacing: 0.05em
    }

    .idx04 .checkup-illus {
        font-size: min(8px, 0.75vw)
    }

    .idx04 .checkup-illus .img01 {
        left: -0.4em
    }

    .idx04 .checkup-illus .img02 {
        right: -1.4em
    }
}

.block-common .wrap-title {
    background-color: #ffffff;
    padding: 20px 10px;
    border-radius: 10px
}

.block-common .wrap-title .en {
    letter-spacing: 0.08em
}

.block-common .wrap-title h2 span {
    font-size: 18px;
    color: #ffffff;
    background-color: var(--main-color);
    border-radius: 7px;
    padding: 15px 6px 15px 6px;
    margin-top: 10px;
    letter-spacing: 0.06em
}

.block-common>.fblock {
    justify-content: flex-end;
    max-width: 1080px;
    width: 100%;
    margin: 0 auto
}

.block-common .common-img img {
    border-radius: 15px
}

.block-common .common-cont {
    max-width: 930px;
    margin-top: 70px
}

.block-common h3 {
    font-size: 26px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.1em;
    color: var(--main-color)
}

.block-common h3.st01 {
    display: table
}

.block-common h3.st01:after {
    content: "";
    position: relative;
    display: block;
    width: 100%;
    height: 2px;
    background: url(../images/udr-ico-hr.svg) repeat-x bottom left;
    background-size: auto 1.5px;
    margin-top: 14px
}

.block-common h3.st02 {
    position: relative;
    margin-bottom: 16px
}

.block-common h3.st02:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 2px;
    margin: auto;
    background: url(../images/udr-ico-hr.svg) repeat-x bottom left;
    background-size: auto 1.5px
}

.block-common h3.st02 span {
    position: relative;
    padding-left: 1.1538461538em;
    padding-right: 0.5769230769em;
    background-color: #ffffff
}

.block-common h3.st02 span:before {
    content: "";
    position: absolute;
    top: 10px;
    left: 0;
    width: round(0.6923076923em, 1px);
    height: round(0.6923076923em, 1px);
    border-radius: 50%;
    background-color: #ffffff;
    border: 5px solid var(--clr2)
}

.block-common .listcheck li {
    position: relative;
    padding-left: 1.611111111em;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.1em;
    color: var(--main-color);
    margin-bottom: 14px
}

.block-common .listcheck li:last-child {
    margin-bottom: 0
}

.block-common .listcheck li:before {
    content: "";
    position: absolute;
    top: 0.2222222222em;
    left: 0;
    width: 1.1111111111em;
    height: 1.0555555556em;
    background: url(../images/ic_listcheck.svg) no-repeat center/contain
}

.block-common .cm-bx01 {
    position: relative
}

.block-common .cm-bx01:before {
    content: "";
    position: absolute;
    top: -14.6em;
    right: 3.3em;
    width: 28em;
    height: 21.5em;
    background: url(../images/idx05_illus01.svg) no-repeat center/contain;
    font-size: 10px;
    z-index: 1
}

.block-common .cm-tt {
    background-color: #f3f9f3;
    padding: 35px 43px 0 50px;
    display: table;
    border-radius: 15px 15px 0 0;
    position: relative;
    margin-bottom: -22px;
    max-width: 533px
}

.block-common .cm-tt:before {
    content: "";
    position: absolute;
    bottom: 17px;
    right: -26px;
    width: 30px;
    height: 30px;
    background: url(../images/idx05_bx_bf.jpg) no-repeat center/contain
}

.block-common .cm-cnt {
    background-color: #f3f9f3;
    padding: 46px 30px 29px 29px;
    border-radius: 0 15px 15px 15px
}

.block-common .cm-cnt>.fblock {
    padding-left: 20px
}

.block-common .bx-consultation {
    width: 100%;
    background-color: #ffffff;
    border-radius: 15px;
    position: relative;
    padding: 31px 212px 34px 40px;
    margin-top: 37px
}

.block-common .bx-consultation:before {
    content: "";
    position: absolute;
    bottom: -3em;
    right: -1.8em;
    background: url(../images/idx05_illus02.svg) no-repeat center/contain;
    width: 24.4em;
    height: 22.5em;
    font-size: 10px
}

.block-common .cm-bx02 {
    margin-top: 53px
}

.block-common .bx-guide {
    margin-bottom: 39px;
    margin-top: 33px
}

.block-common .bx-guide .guide-item {
    width: calc((100% - 50px) / 3);
    margin-right: 25px
}

.block-common .bx-guide .guide-item:last-child,
.block-common .bx-guide .guide-item:nth-child(3n+3) {
    margin-right: 0
}

.block-common .bx-guide .guide-item {
    background-color: #f3f9f3;
    border-radius: 15px;
    padding: 26px 20px 24px
}

.block-common .bx-guide h4 {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.5;
    color: var(--main-color);
    letter-spacing: 0.1em;
    text-align: center;
    margin-bottom: 10px
}

.block-common .bx-guide p {
    font-size: 14px;
    line-height: 1.85;
    padding: 0 5px 0 10px
}

.block-common .btn-group {
    display: flex;
    flex-wrap: wrap
}

.block-common .btn-group .btn {
    max-width: 221px
}

.idx05 {
    padding: 0 0 105px
}

.idx05 .block-common .cm-bx02 .cont {
    padding-left: 30px
}

.idx06 {
    padding: 0 0 30px;
    position: relative;
    z-index: 1
}

.idx06:before {
    content: "";
    position: absolute;
    bottom: -90px;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/idx06_mask.svg) no-repeat bottom center/100% auto;
    z-index: -1
}

.idx06 .block-common .cm-cnt {
    padding-bottom: 36px
}

.idx06 .block-common .cont {
    padding-left: 30px
}

.idx06 .block-common .cm-bx02 {
    margin-top: 44px
}

.idx06 .block-common .cm-bx02>.fblock {
    align-items: center
}

.idx06 .block-common .cm-bx02 .btn-group {
    width: 24%;
    margin-top: 7px
}

@media only screen and (min-width:1921px) {
    .idx06:before {
        bottom: -6vw
    }
}

@media only screen and (min-width:769px) {
    .block-common .wrap-title {
        display: flex;
        flex-direction: column;
        text-align: left;
        align-items: flex-start;
        justify-content: center;
        width: 160px;
        padding: 49px 10px 49px 5px;
        margin-top: -170px;
        margin-left: -10px
    }

    .block-common .wrap-title .en {
        margin: 0 0 0 13px
    }

    .block-common .wrap-title .en:after {
        width: 2px;
        height: 100%;
        margin-right: 4px;
        margin-top: 0
    }

    .block-common .common-cont {
        width: calc(100% - 150px)
    }

    .block-common .cm-cnt .listcheck {
        width: 50.4%
    }

    .block-common .cm-cnt .listcheck:first-child {
        width: 48%
    }

    .block-common .btn-group.col4 .btn {
        width: calc((100% - 45px) / 4);
        margin-right: 15px;
        margin-bottom: 15px
    }

    .block-common .btn-group.col4 .btn:last-child,
    .block-common .btn-group.col4 .btn:nth-child(4n+4) {
        margin-right: 0
    }
}

@media only screen and (min-width:769px) and (max-width:1024px) {
    .block-common h3 {
        font-size: 22px
    }

    .block-common h3.st01:after {
        margin-top: 10px
    }

    .block-common .wrap-title {
        padding: 30px 10px 35px 5px;
        width: 120px;
        margin-top: -120px
    }

    .block-common .wrap-title .en {
        margin-left: 4px
    }

    .block-common .wrap-title h2 span {
        font-size: 16px
    }

    .block-common .common-cont {
        width: calc(100% - 135px)
    }

    .block-common .cm-tt {
        padding: 25px 17px 0 25px
    }

    .block-common .cm-cnt {
        padding: 46px 26px 29px 16px
    }

    .block-common .cm-bx01:before {
        font-size: 7px
    }

    .block-common .listcheck li {
        font-size: 16px;
        margin-bottom: 10px
    }

    .block-common .listcheck li:before {
        top: 5px
    }

    .block-common .bx-guide h4 {
        font-size: 16px
    }

    .block-common .bx-guide .guide-item {
        width: calc((100% - 30px) / 3);
        margin-right: 15px
    }

    .block-common .bx-consultation:before {
        font-size: 8px;
        bottom: -2px
    }

    .block-common .btn-group.col4 .btn {
        width: calc((100% - 20px) / 3);
        margin-right: 10px;
        margin-bottom: 10px
    }

    .block-common .btn-group.col4 .btn:last-child,
    .block-common .btn-group.col4 .btn:nth-child(3n+3) {
        margin-right: 0
    }

    .block-common .btn-group.col4 .btn:nth-child(4n+4) {
        margin-right: 10px
    }

    .block-common .cont {
        padding-left: 20px
    }

    .idx05 {
        padding-bottom: 70px
    }

    .idx06 .block-common .cm-bx02 .cont {
        width: 68%
    }

    .idx06 .block-common .cm-bx02 .btn-group {
        width: 30%
    }
}

.idx-wrap {
    position: relative;
    z-index: 0;
    background: url(../images/idx_wrap_bg.svg) no-repeat top center/cover
}

.idx07 {
    padding: 206px 0 100px
}

.idx07 .wrap-title {
    position: relative;
    z-index: 1;
    margin-bottom: 63px
}

.idx07 .block-video {
    position: relative;
    align-items: flex-start
}

.idx07 .block-video:before {
    content: "";
    position: absolute;
    top: -20em;
    right: 0.9em;
    width: 19.1em;
    height: 16.7em;
    background: url(../images/idx07_illus02.svg) no-repeat center/contain;
    z-index: 1;
    font-size: 10px
}

.idx07 .illus {
    width: 38.9em;
    height: 32em;
    background: url(../images/idx07_illus03.svg) no-repeat top center/contain;
    position: absolute;
    top: -18.2em;
    left: -6em;
    font-size: 10px
}

.idx07 .illus:before {
    content: "";
    position: absolute;
    top: -0.3em;
    left: -0.7em;
    right: 0;
    margin: auto;
    width: 16.9em;
    height: 18.5em;
    background: url(../images/idx07_illus01.svg) no-repeat top center/contain
}

.idx07 .movie {
    max-width: 75.3em;
    position: relative;
    z-index: 1;
    font-size: 10px
}

.idx07 .movie:before {
    content: "";
    position: absolute;
    top: 0.6em;
    left: 1em;
    width: 100%;
    height: 100%;
    background: url(../images/idx07_dot.png) no-repeat top center/cover;
    border-radius: 15px;
    z-index: -1
}

.idx07 .movie video {
    border-radius: 15px;
    width: 75.3em;
    height: 42.9em
}

.idx07 .bx-cnt {
    position: relative;
    z-index: 0;
    padding-top: 4px
}

.idx07 .bx-cnt:before {
    content: "";
    position: absolute;
    top: -85px;
    right: -100px;
    width: 589px;
    height: 600px;
    background-color: #ffffff;
    border-radius: 7px 0 0 7px;
    z-index: -1
}

.idx07 .bx-appstore {
    margin-top: 22px
}

.idx07 .bx-appstore .title {
    font-weight: bold;
    color: var(--main-color);
    line-height: 1.4;
    letter-spacing: 0.1em;
    margin-bottom: 19px;
    text-align: center
}

.idx07 .bx-appstore .title:before {
    content: "";
    position: relative;
    display: block;
    width: 100%;
    height: 2px;
    background: url(../images/udr-ico-hr.svg) repeat-x bottom left;
    background-size: auto 1.5px;
    margin-bottom: 18px
}

.idx07 .gr-bnr {
    margin: 0 -6px;
    display: flex;
    justify-content: center
}

.idx07 .gr-bnr .store {
    margin: 0px 7px
}

.idx07 .gr-bnr .store img {
    max-height: 41px;
    width: auto
}

@media only screen and (min-width:1921px) {
    .idx07 {
        padding-top: 9vw
    }
}

@media only screen and (min-width:769px) {
    .idx07 .block-video .movie {
        width: 70%
    }

    .idx07 .block-video .bx-cnt {
        width: 24%
    }
}

@media only screen and (max-width:1200px) and (min-width:769px) {
    .idx07 {
        padding-top: 170px
    }

    .idx07 .illus {
        font-size: min(8px, 0.78vw)
    }

    .idx07 .movie {
        font-size: min(8px, 0.78vw)
    }

    .idx07 .wrap-title {
        margin-bottom: 35px
    }

    .idx07 .block-video:before {
        font-size: min(8px, 0.78vw)
    }

    .idx07 .block-video .bx-cnt {
        width: 35%;
        padding-right: 39px
    }

    .idx07 .block-video .bx-cnt:before {
        top: -60px;
        height: calc(100% + 135px)
    }
}

.idx08 {
    padding: 54px 0 116px
}

.idx08 .btn-group {
    position: absolute;
    bottom: 5px;
    right: 10px;
    width: 27%;
    max-width: 291px
}

.idx08 .inner_sm {
    position: relative
}

.idx08 .wrap-title {
    margin-bottom: 29px;
    text-align: left;
    position: relative
}

.idx08 .wrap-title:before {
    content: "";
    position: absolute;
    top: -7.4em;
    right: -11em;
    background: url(../images/idx08_illus01.svg) no-repeat center/contain;
    width: 12.4em;
    height: 9.8em;
    font-size: 10px
}

.idx08 .wrap-title .en {
    margin-right: 0;
    margin-left: 0
}

.idx08 .feature-slider {
    display: flex;
    position: relative;
    font-size: 10px
}

.idx08 .feature-slider .slick-track {
    display: flex
}

.idx08 .feature-slider .feature-item {
    width: calc(33.3333333333% - 30px);
    max-width: 355px;
    height: auto;
    margin: 0 1.5em;
    background-color: #ffffff;
    border-radius: 15px;
    position: relative;
    padding: 4.9em 3.4em 4.1em;
    margin-top: 3.5em
}

.idx08 .feature-slider figure {
    max-width: 25.5em;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 2.5em
}

.idx08 .feature-slider p {
    letter-spacing: 0.05em;
    font-size: 1.6em
}

.idx08 .feature-slider .point {
    width: round(6.8em, 1px);
    height: round(6.8em, 1px);
    background-color: var(--clr2);
    border-radius: 50%;
    position: absolute;
    top: -3.5em;
    left: 0;
    right: 0;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1em;
    padding-bottom: 0.2em
}

.idx08 .feature-slider .point:before {
    content: "";
    position: absolute;
    bottom: -0.9em;
    left: 0;
    right: 0;
    margin: auto;
    width: 2.9em;
    height: 2.5em;
    background-color: var(--clr2);
    clip-path: polygon(100% 0, 0 0, 50% 100%)
}

.idx08 .feature-slider .point span {
    font-size: 3.3em;
    line-height: 1;
    font-weight: bold;
    color: var(--main-color);
    text-align: center;
    letter-spacing: 0
}

.idx08 .feature-slider h3 {
    font-size: 2.6em;
    font-weight: bold;
    color: var(--main-color);
    line-height: 1.4;
    text-align: center;
    margin-bottom: 0.6538461538em;
    min-height: 2.8076923077em;
    display: flex;
    align-items: center;
    justify-content: center
}

.idx08 .feature-btn {
    width: 70%;
    display: flex;
    align-items: center;
    margin-top: 45px
}

.idx08 .slider_arrow {
    display: flex;
    width: 172px
}

.idx08 .slick-arrow {
    position: relative;
    transform: unset;
    top: 0;
    width: 67px;
    height: 67px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% auto;
    border: 1px solid var(--main-color);
    border-radius: 50%;
    transition: 0.3s all
}

.idx08 .slick-arrow.prev-arrow {
    background-image: url(../images/ic_prev.svg);
    margin-right: 18px
}

.idx08 .slick-arrow.next-arrow {
    background-image: url(../images/ic_next.svg)
}

.idx08 .slider_dot {
    width: calc(100% - 172px);
    margin-top: 2px
}

.idx08 .slick-dots {
    display: flex;
    width: 100%;
    overflow: hidden;
    border-radius: 10px
}

.idx08 .slick-dots li {
    width: 16.6666666667%;
    max-width: 67px;
    height: 10px;
    overflow: hidden
}

.idx08 .slick-dots li button {
    height: 6px;
    background-color: #ffffff;
    text-indent: -9999999px;
    width: 100%;
    border: 0;
    cursor: pointer
}

.idx08 .slick-dots li.slick-active button,
.idx08 .slick-dots li:hover button {
    background-color: var(--main-color);
    border-radius: 10px
}

@media only screen and (min-width:769px) {
    .idx08 .slick-arrow:hover {
        background-color: #fff;
        opacity: 0.8
    }
}

@media only screen and (max-width:1600px) and (min-width:769px) {
    .idx08 .feature-slider {
        font-size: min(10px, 1.2vw)
    }

    .idx08 .feature-slider .slick-track {
        display: flex !important
    }
}

@media only screen and (max-width:1200px) and (min-width:769px) {
    .idx08 {
        padding-bottom: 80px
    }

    .idx08 .wrap-title:before {
        font-size: min(8px, 1vw)
    }

    .idx08 .feature-slider h3 {
        font-size: 22px
    }

    .idx08 .feature-slider .feature-item {
        margin-left: 8px;
        margin-right: 8px
    }

    .idx08 .btn-group {
        width: 31%
    }

    .idx08 .slider_arrow {
        width: 130px
    }

    .idx08 .slick-arrow {
        width: 55px;
        height: 55px
    }

    .idx08 .slick-arrow.prev-arrow {
        margin-right: 8px
    }
}

.idx09 .wrap-title {
    position: relative;
    z-index: 1
}

.idx09 h3 {
    font-size: 30px;
    font-weight: bold;
    color: var(--main-color);
    line-height: 1.9
}

.idx09 .box-name {
    position: absolute;
    bottom: -2.9em;
    right: -2.9em;
    width: 17.7em;
    height: 17.7em;
    border-radius: 50%;
    background-color: var(--main-color);
    text-align: center;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 0;
    padding-bottom: 0.3em
}

.idx09 .box-name:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 8.9em;
    height: 8.9em;
    background-color: var(--main-color);
    border-top-left-radius: 10px;
    z-index: -1
}

.idx09 .box-name span {
    display: block;
    line-height: 1;
    letter-spacing: 0.1em
}

.idx09 .box-name .pos {
    font-size: 1.4em;
    font-weight: 500;
    margin-bottom: 0.8571428571em
}

.idx09 .box-name .name-jp {
    font-weight: bold;
    font-size: 2.6em;
    margin-bottom: 0.4230769231em
}

.idx09 .box-name .name-en {
    font-size: 1.2em;
    font-weight: 500
}

.idx09 .greeting-img {
    position: relative;
    z-index: 1;
    font-size: 10px
}

.idx09 .greeting-img:after,
.idx09 .greeting-img:before {
    content: "";
    position: absolute;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 1
}

.idx09 .greeting-img:before {
    bottom: 2em;
    left: -5.2em;
    background-image: url(../images/idx09_illus01.svg);
    width: 19.8em;
    height: 17.2em
}

.idx09 .greeting-img:after {
    top: -1.7em;
    right: -9.2em;
    background-image: url(../images/idx09_illus02.svg);
    width: 19.7em;
    height: 18.1em
}

.idx09 .greeting-img .mask {
    mask-image: url(../images/idx09_img_mask.svg);
    -webkit-mask-image: url(../images/idx09_img_mask.svg);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: 100% auto;
    -webkit-mask-size: 100% auto;
    mask-position: center;
    -webkit-mask-position: center;
    background-color: #ccc;
    width: 75em;
    height: 47.2em
}

.idx09 .greeting-img .mask img {
    object-fit: cover;
    width: 102%;
    height: 100%;
    position: relative;
    left: 0;
    top: 0
}

.idx09 .greeting-cont {
    padding: 60px 60px 58px 70px;
    position: relative;
    z-index: 0
}

.idx09 .greeting-cont:after,
.idx09 .greeting-cont:before {
    content: "";
    position: absolute;
    background-color: #fff;
    width: 100%;
    z-index: -1
}

.idx09 .greeting-cont:before {
    top: -236px;
    left: 0;
    height: 100%;
    background: url(../images/idx09_bg.svg) no-repeat top center/100% auto
}

.idx09 .greeting-cont:after {
    top: 0;
    left: 0;
    height: calc(100% + 200px)
}

.idx09 .cont>p {
    margin-bottom: 10px
}

.idx09 .btn-group {
    display: flex;
    flex-wrap: wrap;
    margin-top: 25px
}

.idx09 .btn-group .btn {
    margin-right: 15px;
    width: calc(50% - 15px)
}

.idx09 .btn-group .btn:last-child {
    margin-right: 0
}

.idx09 .b-banner {
    display: flex;
    justify-content: center;
    margin-top: 51px;
    background: url(../images/udr-ico-hr.svg) repeat-x top left/auto 1.4px;
    padding-top: 58px
}

.idx09 .b-banner .item {
    width: calc(50% - 48px);
    max-width: 377px;
    margin: 12px 24px
}

@media only screen and (min-width:769px) {
    .idx09 .flex {
        align-items: center;
        padding-left: 47px
    }

    .idx09 h3 {
        margin-top: -3px
    }

    .idx09 .wrap-title {
        margin-top: -1px;
        display: flex;
        flex-direction: column;
        text-align: left;
        align-items: flex-start;
        justify-content: center;
        order: 1
    }

    .idx09 .wrap-title .en {
        margin: 0 0 0 13px
    }

    .idx09 .wrap-title .en:after {
        width: 2px;
        height: 100%;
        margin-right: 4px;
        margin-top: 0
    }

    .idx09 .b-grid {
        display: grid;
        grid-template-columns: 43% 52.5%;
        justify-content: space-between
    }

    .idx09 .greeting-img {
        order: 2;
        margin-left: 27px
    }

    .idx09 .greeting-cont .cont {
        grid-row: 1/span 2;
        grid-column-start: 2
    }

    .idx09 .greeting-cont .btn-group {
        align-self: flex-end;
        margin-bottom: 3px;
        margin-left: -3px
    }
}

@media only screen and (max-width:1200px) and (min-width:769px) {
    .idx09 h3 {
        font-size: 24px
    }

    .idx09 .flex {
        padding-left: 35px
    }

    .idx09 .greeting-img {
        font-size: min(10px, 0.95vw)
    }

    .idx09 .greeting-cont {
        padding: 60px 45px 58px 40px
    }

    .idx09 .greeting-cont:before {
        top: -175px
    }

    .idx09 .greeting-cont:after {
        height: calc(100% + 140px)
    }

    .idx09 .b-grid {
        grid-template-columns: 45% 52.5%
    }

    .idx09 .btn-group .btn {
        margin-right: 10px;
        width: calc(50% - 10px)
    }

    .idx09 .btn-group .btn a {
        padding: 0.3em 1.5em 0.25em 1em;
        letter-spacing: 0.05em
    }

    .idx09 .btn-group .btn a:after {
        right: 9px
    }

    .idx09 .b-banner {
        margin-top: 45px;
        padding-top: 40px
    }

    .idx09 .b-banner .item {
        width: calc(50% - 24px);
        margin: 12px
    }
}

/*# sourceMappingURL=index_pc.css.map */