@charset "UTF-8";
@keyframes fadeInDown {
	0% {
	  -webkit-transform: translate3d(0, 50%, 0);
	  opacity: 0;
	  transform: translate3d(0, 50%, 0);
	}
	to {
	  -webkit-transform: translateZ(0);
	  opacity: 1;
	  transform: translateZ(0);
	}
}
.home_page .key {
    --height: 56vw;
    --min-height: 550px;
    --max-height: 1000px;
    height: var(--height);
    min-height: var(--min-height);
    max-height: var(--max-height);
    background-size: cover
}

.home_page .key:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1633px;
    background: url(../images/idx_key_bg.jpg) no-repeat center/cover
}

.home_page .key .inner_max {
    position: relative;
    padding: 0;
    width: 100%;
    max-width: 1447px
}

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

.home_page .key .key_bg {
    position: absolute;
    top: 0;
    right: 0;
    width: 150.5em;
    height: 100.8em;
    background: url(../images/idx_mv.png) no-repeat left bottom/contain;
}

.home_page .key .key_text {
    position: relative;
    overflow: hidden;
    font-size: 10px
}

.home_page .key .key_text .item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    height: var(--height);
    min-height: var(--min-height);
    max-height: var(--max-height);
    padding-bottom: 21.6em
}

.home_page .key .catch {
    max-width: 70em
}

.home_page .key .catch h2 {
    margin-bottom: 0.6666666667em;
    font-size: 3.6em;
    font-weight: 600;
    line-height: 1.556;
    letter-spacing: 0.06em;
    font-family: var(--f-klee);
	animation: fadeInDown 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.home_page .key .catch h2:after {
    content: "";
    position: relative;
    display: block;
    width: 1.944444em;
    height: 0.0833333em;
    background-color: var(--main-color);
    margin-top: 0.8888888889em
}

.home_page .key .catch p {
    font-size: 2em;
    letter-spacing: 0.14em;
    line-height: 2;    
	animation: fadeInDown 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.home_page .key_circle {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    position: absolute;
    left: 0;
    bottom: 6.9em;
    width: 100%
}

.home_page .key_circle .cir_it {
    max-width: 25em;
    width: calc(20% - 1em);
    height: 25em;
    margin-right: 0.8em;
    display: flex;
    align-items: center;
    justify-content: center;
    /* box-shadow: -11px -3px 17px 1px #ffffff, 11px 0px 17px 1px #ffffff, 0px 0px 8px 1px #ffffff, 0px 0px 4px 1px #ffffff, inset 0px 0px 0px 9px rgba(255, 255, 255, 0.67);
    background-image: linear-gradient( 0deg, rgba(241,243,247, 0.9) 0%, rgba(255,255,255, 0.9) 100%); */
    border-radius: 50%;
    position: relative;
    text-align: center;
   
    padding-bottom: 2.9em;
    z-index: 0
}

.home_page .key_circle .cir_it:before {
    content: "";
    position: absolute;
    top: -2.7em;
    left: -2.9em;
    width: 30.6em;
    height: 30.6em;
    background: url(../images/key_circle_bg.png) no-repeat center/contain;
    z-index: -1
}

.home_page .key_circle .cir_it:first-child {
    padding-bottom: 3.3em
}

.home_page .key_circle .cir_it:nth-child(2) {
    padding-bottom: 4em;
    margin-top: -11.3em;
    /* box-shadow: -0.3em -1em 2.2em 0.1em #ffffff, -0.6em 1.7em 1.5em 0.1em #ffffff, 0px 0px 0.8em 0.1em #ffffff, 0px 0px 0.4em 0.1em #ffffff, inset 0px 0px 0px 0.9em rgba(255, 255, 255, 1); */
}

.home_page .key_circle .cir_it:nth-child(3) {
    padding-bottom: 2.5em;
    /* box-shadow: -0.3em -1em 2.2em 0.1em #ffffff, -0.6em 1em 1.5em 0.1em #ffffff, 0px 0px 0.8em 0.1em #ffffff, 0px 0px 0.4em 0.1em #ffffff, inset 0px 0px 0px 0.9em rgba(255, 255, 255, 1); */
}

.home_page .key_circle .cir_it:nth-child(4) {
    padding-bottom: 0.7em;
    margin-top: -11.7em;
    /* box-shadow: -0.3em -1em 2.2em 0.1em #ffffff, -0.6em 1em 1.5em 0.1em #ffffff, 0px 0px 0.8em 0.1em #ffffff, 0px 0px 0.4em 0.1em #ffffff, inset 0px 0px 0px 0.9em rgba(255, 255, 255, 1); */
}

.home_page .key_circle .cir_it:last-child {
    margin-right: 0;
    padding-bottom: 3.4em;
    /* box-shadow: 0px -1.3em 1em 0.1em #ffffff, -0.3em 1em 1.6em 0.1em #ffffff, 0 0 0.8em 0.1em #ffffff, 0px 0px 0.4em 0.1em #ffffff, inset 0px 0px 0px 0.9em rgba(255, 255, 255, 1); */
}

.home_page .key_circle .cir_num {
    width: round(2.272727273em, 1px);
    height: round(2.272727273em, 1px);
    border-radius: 50%;
    background-color: #fff;
    color: var(--main-color);
    font-family: var(--f-jp);
    font-size: 2.2em;
    font-weight: 300;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.8181818182em;
    letter-spacing: 0;
    box-shadow: 0px 9px 30px 0px rgba(0, 0, 0, 0.04);
}

.home_page .key_circle .cir_tl {
    font-family: var(--f-klee);
    font-weight: 600;
    font-size: 2.4em;
    letter-spacing: 0.14em;
    line-height: 1.25;
    margin-bottom: 0.545454545em
}

.home_page .key_circle .cir_txt {
    font-size: 1.6em;
    line-height: 1.6;
    letter-spacing: 0.05em
}

.home_page .topic_path {
    display: none
}

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

    .home_page .key:before {
        height: 128vw
    }

    .home_page .key .key_bg {
        font-size: 1.4em
    }
}

@media only screen and (min-width:769px) {
    .home_page .key .inner_max {
        width: calc(100% - 8em)
    }
}

@media only screen and (max-width:1560px) and (min-width:769px) and (orientation:landscape) {
    .home_page .key {
        --max-height: calc(100vh + 120px);
    }

    .home_page .key .key_text {
        font-size: min(10px, 0.57vw)
    }

    .home_page .key .key_text .item {
        padding-bottom: 20em
    }

    .home_page .key_circle {
        bottom: 10em
    }
    .home_page .key_circle .cir_it{
        max-width: 27em;
        height: 27em;
    }
}
@media only screen and (min-width:769px) and (max-height:650px) {
    .home_page .key .key_text .item {
        padding-bottom: 24em
    }
    .home_page .key_circle {
        bottom: 18em
    }
}
@media only screen and (max-width:1400px) and (min-width:769px) {
    .home_page .key_circle {
        font-size: 0.95em
    }

    .home_page .key .inner_max {
        width: calc(100% - 16em)
    }
    .home_page .key:before{
        height: 1609px;
    }
}

@media only screen and (max-width:1000px) and (min-width:769px) {
    .home_page .key .key_text {
        font-size: min(10px, 0.7vw)
    }

    .home_page .key .catch p {
        font-size: 2.2em
    }

    .home_page .key .key_bg {
        font-size: 0.8em;
    }

    .home_page .key_circle {
        font-size: 1
    }

    .home_page .key_circle .cir_it {
        margin-right: 0
    }

    .home_page .key_circle .cir_txt {
        letter-spacing: 0
    }
}

.tl_wrap {
    position: relative;
    text-align: center
}

.tl_wrap:after {
    content: "";
    position: relative;
    display: block;
    background: url(../images/h3_ic.svg) no-repeat center/contain;
    width: 4.1666666667em;
    height: 1.8333333333em;
    margin: 0.9444444444em auto 0
}

.tl_wrap .en {
    color: var(--clr3);
    line-height: 1;
    font-weight: 500;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 9px
}

.tl_wrap h3 {
    font-size: 36px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.1em
}
.tl_wrap h3.f-klee{font-weight: 600;}

.tl_wrap h3 .fz40 {
    font-size: 40px
}

.tl_wrap h3 .fz42 {
    font-size: 42px
}

@media only screen and (min-width:769px) {
    .tl_wrap.tl_left {
        text-align: left
    }

    .tl_wrap.tl_left:after {
        margin-left: 5px;
        margin-top: 8px
    }

    .tl_wrap.tl_right {
        text-align: right;
        margin-right: -5px
    }

    .tl_wrap.tl_right:after {
        margin-right: 0
    }
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    .tl_wrap h3 {
        font-size: 30px
    }

    .tl_wrap h3 .fz40 {
        font-size: 32px
    }

    .tl_wrap h3 .fz42 {
        font-size: 34px
    }

    .tl_wrap .en {
        font-size: 18px
    }
}

h4.tl_h4 {
    font-weight: 500;
    font-size: 32px;
    letter-spacing: 0.1em;
    line-height: 1.5
}

h4.tl_h4:after {
    content: "";
    position: relative;
    display: block;
    width: 5em;
    height: 1px;
    background-color: var(--main-color);
    margin-top: 0.5625em
}

h4.tl_h4.no_line:after {
    display: none
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    h4.tl_h4 {
        font-size: 28px
    }

    h4.tl_h4:after {
        margin-top: 0.4em
    }
}

@media only screen and (min-width:769px) {
    .b_grid {
        display: grid
    }

    .b_grid .column-star1 {
        grid-row: 1/span 3
    }

    .b_grid .column-star2 {
        grid-column-start: 2;
        grid-row: 1/span 3
    }
}

.b_consultations {
    position: relative;
    z-index: 1;
    font-size: 10px
}

.b_consultations .p_tel {
    margin-top: -0.6em
}

.b_consultations .p_tel a {
    font-size: 3.6em;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    position: relative;
    padding-left: 1.5277777778em;
    display: table;
    margin: 0 auto;
    color: var(--main-color);
    text-decoration: none;
}

.b_consultations .p_tel a:before {
    content: "";
    position: absolute;
    top: 0.0277777778em;
    left: -0.1111111111em;
    width: 1.1944444444em;
    height: 1.1944444444em;
    mask-image: url(../images/ic_tel.svg);
    -webkit-mask-image: url(../images/ic_tel.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: var(--main-color)
}

.b_consultations.st01 {
    background-color: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    max-width: 1280px;
    width: calc(100% - 40px);
    margin: 0 auto;
    border-radius: 100px;
    margin-top: 30px;
    padding: 5.9em 6.8em 6.1em 5.6em
}

.b_consultations.st01 p {
    line-height: 1.666666667;

}

.b_consultations.st01 .box_text {
    position: relative;
    color: #000;
}

.b_consultations.st01 .box_text:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0.3em;
    bottom: 0;
    margin: auto;
    width: 2px;
    height: calc(100% - 0.8em);
    background-color: #e3e8f2
}

.b_consultations.st01 .consultations_tl {
    font-weight: 700;
    letter-spacing: 0.05em
}

.b_consultations.st01 .consultations_tl.sm {
    font-size: 2.4em;
    margin-bottom: 0.4166666667em
}

.b_consultations.st01 .consultations_txt {
    letter-spacing: 0.14em;
    font-size: 1.8em
}

.b_consultations.st01 .consultations_btn {
    max-width: 319px;
    height: 8em;
    position: relative;
    top: 0.1em
}

.b_consultations.st01 .consultations_btn a {
    display: flex;
    align-items: center;
    position: relative;
    font-size: 1.8em;
    color: var(--clr1);
    letter-spacing: 0.05em;
    line-height: 1.4;
    text-decoration: none;
    width: 100%;
    height: 100%;
    background-color: #fff;
    border-radius: 60px;
    padding: 0.5555555556em 2.7777777778em 0.5555555556em 1.3333333333em;
    z-index: 0
}

.b_consultations.st01 .consultations_btn a:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 60px;
    border: 1px solid var(--main-color);
    transition: 0.3s all;
    z-index: -1
}

.b_consultations.st01 .consultations_btn a:after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 1.5em;
    width: round(1.4444444444em, 1px);
    height: round(1.4444444444em, 1px);
    border-radius: 50%;
    background: var(--main-color) url(../images/ic_arr02.svg) no-repeat center/contain;
    margin: auto;
    transition: 0.3s all
}

.b_consultations.st01 .consultations_btn a:hover {
    opacity: 1
}

@media only screen and (min-width:769px) {
    .b_consultations.st01 {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between
    }

    .b_consultations.st01 .box_text {
        width: 40%
    }

    .b_consultations.st01 .p_tel {
        width: 30%
    }

    .b_consultations.st01 .consultations_btn {
        width: 30%
    }

    .b_consultations.st01 .consultations_btn a:hover:before {        
        background-color: #eefdff;
    }

    .b_consultations.st01 .consultations_btn a:hover:after {
        right: 1em
    }
}

@media only screen and (min-width:769px) and (max-width:1300px) {
    .b_consultations.st01 {
        font-size: min(10px, 0.8vw);
        padding: 5.9em 3.8em 6.1em 4.6em
    }
}

.b_contact {
    border-radius: 4em;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    font-size: 10px
}

.b_contact .contact_tl .jp {
    font-weight: 500;
    line-height: 1.4
}

.b_contact .contact_tl .fz30 {
    font-size: 3em;
    font-weight: bold;
    letter-spacing: 0.16em
}

.b_contact .contact_tl .fz36 {
    font-size: 3.6em
}

.b_contact .contact_tl >span {
    display: block
}

.b_contact .btn_tel {
    position: relative;
    border-radius: 100px;
    max-width: 52.4em;
    height: 16em;
    display: flex;
    align-items: center;
    justify-content: center
}

.b_contact .btn_tel a {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border-radius: 100px
}

.b_contact .btn_tel .icon {
    position: relative;
    text-align: center;
    padding-left: 7.7em
}

.b_contact .btn_tel .icon:before {
    content: "";
    position: absolute;
    top: -1.8em;
    left: -4.5em;
   /*  background-image: linear-gradient( 0deg, rgb(225,234,247) 0%, rgb(255,255,255) 100%);
    mask-image: url(../images/ic_tel03.svg);
    -webkit-mask-image: url(../images/ic_tel03.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-image: url(../images/ic_tel03.svg), linear-gradient( 182deg, rgb(225,234,247) 0%, rgb(255,255,255) 100%);
    background-repeat: no-repeat;
    background-size: 9em auto, auto;
    background-position: center;
    width: 10em;
    height: 10em;
    border-radius: 50%;
}

.b_contact .btn_tel span {
    display: block
}

.b_contact .btn_tel .txt_time {
    font-size: 1.8em;
    font-weight: 500;
    line-height: 1;
    color: var(--clr1);
    letter-spacing: 0.05em;
    margin-bottom: 0.22222222em
}

.b_contact .btn_tel .txt_tel {
    font-size: 4.2em;
    font-weight: 500;
    line-height: 1;
    color: var(--main-color);
    letter-spacing: 0
}

.b_contact.st01 {
    background-image: linear-gradient( 90deg, rgb(236,242,249) 29%, rgb(255,255,255) 39%, rgb(251,252,254) 63%, rgb(246,249,253) 81%);
    padding: 6em 10.7em 5.5em 12.5em;
    border-radius: 135px;
    box-shadow: 0px -9px 25px #fff, 0px 9px 25px #fff, 10px 10px 25px #fff, -10px -10px 25px #fff, inset 0 0 38px #fff, inset 0 0 24px #fff, inset 0 0 27px #fff, inset 0 0 20px #fff;
}

.b_contact.st01 .contact_tl {
    margin-bottom: 0.2em
}

.b_contact.st01 .contact_txt {
    position: relative;
    padding-left: 1.708333333em;
    font-size: 2.4em;
    font-weight: 400;
    line-height: 1.667
}

.b_contact.st01 .contact_txt:before {
    content: "";
    position: absolute;
    top: 0.3333333333em;
    left: 0.625em;
    width: 1px;
    height: calc(100% - 0.6666666667em);
    background-color: var(--main-color)
}

.b_contact.st01 .btn_tel {
    background-color: #fff;
    border: 1px solid #e1eaf7;
    margin-top: -0.4em
}

.b_contact.st01 .btn_tel .icon {
    color: #ffffff
}

.b_contact.st01 .btn_tel .icon:before {
    background-color: #ffffff
}

.b_contact.st02 {
    position: relative;
    display: block;
    /* padding: 8.2em 7em 7.3em 6.3em */
}

/* .b_contact.st02:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 4em;
    border: 1em solid #ffffff
} */

.b_contact.st02 .box_text {
    text-align: center
}

.b_contact.st02 .box_text span {
    letter-spacing: 0.1em
}

.b_contact.st02 .contact_tl {
    position: relative;
    margin-bottom: 23px;
    font-size: 3em;
    font-weight: bold;
    letter-spacing: 0.16em;
}

.b_contact.st02 .contact_tl:after {
    content: "";
    position: relative;
    display: block;
    width: 8em;
    height: 1px;
    background-color: var(--main-color);
    margin: 14px auto 0
}

.b_contact.st02 .contact_tl .fz36 {
    line-height: 1.4;
    margin-bottom: -0.055555556em
}

.b_contact.st02 .contact_tl .sm {
    font-size: 1.8em
}

.b_contact.st02 .contact_txt {
    font-size: 2.4em;
    line-height: 1.667;
    letter-spacing: 0.1em
}

.b_contact.st02 .btn_tel {
    background-color: #ffffff;
    background-image: linear-gradient(0deg, rgb(255, 255, 255) 0%, rgb(238, 242, 245) 30%, rgb(255, 255, 255) 100%);
    border: 1px solid #d2dbe7;
}

/* .b_contact.st02 .btn_tel .icon:before {
    background-color: var(--main-color)
} */

.b_contact.st02 .btn_tel .txt_tel {
    color: var(--main-color)
}
.b_contact.st03{
    border: 8px solid #ffffff;
    border-radius: 10px;
    background-color: rgba(255, 255, 255, 0.6);
    padding: 31px 101px 27px 37px;
    box-shadow: 0px 8px 54.15px 2.85px rgba(157, 157, 157, 0.08);

}
.b_contact.st03 .t01{
    font-size: 1.5em;
    font-weight: 500;
    color: #8aa8c3;
    line-height: 1.4;
    margin-bottom: 0.5333333333em;
}
.b_contact.st03 .t02{
    font-size: 2.4em;
    font-weight: 500;
    line-height: 1.4;
}
.b_contact.st03 .b_tt{
    position: relative;
    padding-left: 13.7em;

}
.b_contact.st03 .b_tt::before{
    content: "";
    position: absolute;
    top: -1.8em;
    left: 0;
    background-image: url(../images/ic_tel04.svg), linear-gradient(0deg, rgb(225, 234, 247) 0%, rgb(255, 255, 255) 100%);
    background-repeat: no-repeat;
    background-size: 9em auto, auto;
    background-position: center;
    width: 10em;
    height: 10em;
    border-radius: 50%;
}
.b_contact.st03 .bn_tel{
    position: relative;
    max-width: 30em;
    width: 100%;
    color: #fff;
    background-color: var(--main-color);
    border-radius: 40px;
    height: 7em;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.9em 5.6em 2em 2em;
    margin-top: -0.4em;
}
.b_contact.st03 .bn_tel a{width: 100%;height: 100%;}
.b_contact.st03 .bn_tel::after{
    content: '';
    position: absolute;
    top: 0.2em;
    bottom: 0;
    right: 1.7em;
    width: 1.6em;
    height: 0.5em;
    mask-image: url(../images/ic_arr03.png);
    -webkit-mask-image: url(../images/ic_arr03.png);
    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: #fff;
    margin: auto;
}
.b_contact.st03 .bn_tel .icon{
    position: relative;
    display: table;
    margin: 0 auto;
    padding-left: 2.2em;
    font-size: 2em;
    font-weight: 500;
}
.b_contact.st03 .bn_tel .icon::before{
    content: '';
    position: absolute;
    top: 0.55em;
    left: 0;
    width: 1.05em;
    height: 1.05em;
    mask-image: url(../images/ic_tel.svg);
    -webkit-mask-image: url(../images/ic_tel.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: #fff;
}
.idx_wrap{
    /* background-image: linear-gradient(0deg, rgb(255, 255, 255) -43%, rgb(246 248 250) 15%, rgb(255, 255, 255) 60%); */
    background: url(../images/idx_wrap_bg.jpg) no-repeat center top -246px / cover;
}
@media only screen and (min-width:769px) {
    /* .b_contact .btn_tel {
        width: 50%;
        max-width: 459px;
    } */

    .b_contact.st01 .btn_tel {
        width: 48%;
        max-width: 46em;
    }

    .b_contact.st01 .box_text {
        width: 50%
    }
}

@media only screen and (min-width:769px) and (max-width:1300px) {
    .b_contact {
        font-size: min(10px, 0.9vw)
    }

    .b_contact.st01 {
        width: calc(100% - 40px);
        margin-left: auto;
        margin-right: auto;
        padding: 6em 3.7em 5.5em 7em;
    }
    .b_contact.st01 .btn_tel{font-size: 0.9em;}
    .b_contact.st03{
        font-size: min(10px, 0.8vw);
        padding: 4.5em 3em 2em;
    }
}
@media only screen and (min-width:769px) and (max-width:1000px) {
    .b_contact.st03 .b_tt{
        margin: 0 auto 3em;
        padding-left: 11.5em;
        display: table;
    }
    .b_contact.st03 .t01{font-size: 1.8em;}
    .b_contact.st03 .bn_tel{
        margin: 0 auto;
    }
}

.sec_concerns {
    padding: 95px 0 52px;
    position: relative;
    z-index: 0;
}

.sec_concerns:before {
    content: "";
    position: absolute;
    top: -122px;
    left: 0;
    width: 100%;
    height: calc(100% + 122px);
    mask-image: url(../images/sec_concerns_mask.svg);
    -webkit-mask-image: url(../images/sec_concerns_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: url(../images/sec_concerns_bg.jpg) no-repeat top center/cover;
    z-index: -1
}

.sec_concerns .tl_wrap {
    margin-bottom: 35px
}

.sec_concerns .tl_wrap:after {
    margin-top: 6px
}

.sec_concerns .tl_wrap .en {
    margin-bottom: 5px
}
.sec_concerns .inner_big{z-index: 0;}
.sec_concerns .inner_big:before {
    content: "";
    position: absolute;
    bottom: 7.9em;
    right: 26.6em;
    background: url(../images/sec_concerns_illus.png) no-repeat bottom right/contain;
    width: 32.1em;
    height: 31.3em;
    font-size: 10px;
    z-index: 1;
}
.sec_concerns .block_concerns .concerns_it {
    background: url(../images/concerns_it_bg.png) no-repeat top right/cover;    
    border-radius: 40px;
    padding: 2.6em 2.2em 8em;
    position: relative;
    min-height: 30em;
    font-size: 10px;
    box-shadow: 0px 9px 30px 0px rgba(0, 0, 0, 0.05);
    margin-bottom: 2.2em;
}

.sec_concerns .block_concerns .concerns_img {
    width: round(16.8em, 1px);
    height: round(16.8em, 1px);
    background-color: #ffffff;
    border-radius: 50%;
    margin: 0 auto 0.9em;
    /* position: absolute;
    right: 2.2em;
    top: 2.2em */
}

.sec_concerns .block_concerns .concerns_tl {
    font-family: var(--f-klee);
    font-size: 2.4em;
    font-weight: 600;
    line-height: 1.58333;
    text-align: center;
}

.sec_concerns .concerns_note {
    display: table;
    margin: 123px auto 0;
    padding: 2em 1.4em 2.6em 6em;
    font-size: 10px;
    position: relative;
    z-index: 2;
}
.sec_concerns .concerns_note::before, .sec_concerns .concerns_note::after{
    content: '';
    position: absolute;
    background-position: center;
    background-repeat: no-repeat;
    background-size: auto;
}
.sec_concerns .concerns_note::before{
    mask-image: url(../images/sec_concerns_box_mask.svg);
    -webkit-mask-image: url(../images/sec_concerns_box_mask.svg);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: 212.6em auto;
    -webkit-mask-size: 221.6em auto;
    mask-position: top center;
    -webkit-mask-position: top left 90%;
    background-image: url(../images/sec_concerns_box_bg.jpg);
    top: -43.8em;
    left: -77em;
    width: 221.5em;
    height: 70.2em;
    background-position: top left 8.8em;
}
.sec_concerns .concerns_note::after{
    background-image: url(../images/sec_concerns_box_illus.svg);
    width: 176.1em;
    height: 29.6em;
    top: -20.9em;
    right: -29.2em;
}

.sec_concerns .concerns_note .ic {
    position: relative;
    font-size: 3.3em;
    font-weight: 600;
    font-family: var(--f-klee);
    line-height: 1.4;
    padding-left: 1.666666667em;
    padding-right: 1.090909091em;
}

.sec_concerns .concerns_note .ic:before, .sec_concerns .concerns_note .ic:after {
    content: "";
    position: absolute;
    top: 0.3em;
    background: url(../images/pointer.png) no-repeat center/contain;
    width: 1.212121212em;
    height: 0.90909091em
}
.sec_concerns .concerns_note .ic:before{    
    left: -0.2121212121em;
}
.sec_concerns .concerns_note .ic::after{    
    right: -0.2121212121em;
    transform: scaleX(-1);
}

@media only screen and (min-width:1921px) {
    .sec_concerns:before{height: calc(100% + 10vw);}
    .sec_concerns .concerns_note::before{
        top: -19vw;
        left: -38vw;
        width: 100vw;
        height: 45vw;
        background-position: top left 0;
        background-size: 100% auto;
        mask-size: 100% auto;
        -webkit-mask-size: 100% auto;
        mask-position: top left;
        -webkit-mask-position: top left;
    }
}
@media only screen and (min-width:769px) {
 

    .sec_concerns .block_concerns .concerns_it {
        width: calc((100% - 4.4em) / 3);
        margin-right: 2.2em;
       
    }

    .sec_concerns .block_concerns .concerns_it:last-child,
    .sec_concerns .block_concerns .concerns_it:nth-child(3n+3) {
        margin-right: 0
    }


    .sec_concerns .block_concerns .concerns_it:nth-child(5),
    .sec_concerns .block_concerns .concerns_it:nth-child(6) {
        padding-bottom: 2.9em
    }
}
@media only screen and (min-width:769px) and (max-width:1600px) {
    .sec_concerns .concerns_note::after{
        right: -14vw;
        font-size: 0.9em;
    }
}

@media only screen and (min-width:769px) and (max-width:1300px) {
    .sec_concerns {
        padding: 80px 0 40px
    }

    .sec_concerns .block_concerns .concerns_it {
        font-size: min(10px, 0.72vw)
    }
    
    .sec_concerns .concerns_note {
        margin-top: 8em;
        padding-right: 2em;
        font-size: min(10px, 0.8vw)
    }
    .sec_concerns .concerns_note::before, .sec_concerns .concerns_note::after{font-size: 0.7em;}
    .sec_concerns .concerns_note::before{left: -38em;}
    .sec_concerns .concerns_note::after{right: -12vw;}

    .sec_concerns .inner_big:before {
       right: 29.6em;
       bottom: 13.9em;
        font-size: min(10px, 0.68vw)
    }
    .sec_concerns .concerns_note .ic{margin-top: 1.5em;}
}

@media only screen and (min-width:769px) and (max-width:1200px) {

    .sec_concerns .concerns_note {
        position: relative;
        left: -5.5em
    }
}

.sec_intro {
    position: relative;
    z-index: 0;
    padding-top: 120px
}

.sec_intro:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: calc(100% - 40px);
    max-width: 1720px;
    height: 100%;
    border-radius: 40px;
    background-color: #ffffff;
    z-index: -1
}

.sec_intro .b_wrap {
    font-size: 10px;
    max-width: 110em;
    width: 100%;
    margin: 0 auto
}
.sec_intro .b_wrap::before, .sec_intro .b_wrap::after{
    content: '';
    position: absolute;
    top: 12.1em;
    width: 32em;
    height: 61.7em;
    background-size: auto 100%;
    background-repeat: no-repeat;
    z-index: 1;
}
.sec_intro .b_wrap::before{
    background-image: url(../images/sec_intro_bf01.png);
    background-position: top right;
    left: 0;
}
.sec_intro .b_wrap::after{
    background-image: url(../images/sec_intro_bf02.png);
    background-position: top left;
    width: 32em;
    right: 0;
}
.sec_intro .slick-arrow {
    width: round(10em, 1px);
    height: round(10em, 1px);
    border-radius: 50%;
    border: 1px solid #d2d7e2;
    background-color: rgba(255, 255, 255, 0.82);
    background-repeat: no-repeat;
    background-position: calc(50% + 1px) 50%;
    background-size: 100% auto;
    z-index: 1;
    top: -5.3em;
    bottom: 0;
    transform: unset;
    margin: auto;
    transition: all 0.3s
}

.sec_intro .slick-arrow.slick-prev {
    left: -5em;
    background-image: url(../images/slider_arrow_prev.svg)
}

.sec_intro .slick-arrow.slick-next {
    right: -5em;
    background-image: url(../images/slider_arrow_next.svg)
}

.sec_intro .slick-dots {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 2.6em
}

.sec_intro .slick-dots li {
    margin: 0 0.5em
}

.sec_intro .slick-dots li button {
    border: 2px solid #d2d7e2;
    border-radius: 50%;
    width: round(2.4em, 1px);
    height: round(2.4em, 1px);
    cursor: pointer;
    background-color: transparent;
    color: transparent;
    position: relative
}

.sec_intro .slick-dots li button:before {
    content: "";
    position: absolute;
    inset: 0.4em;
    background-color: #8aa8c3;
    opacity: 0;
    transition: all 0.3s;
    border-radius: 50%
}

.sec_intro .slick-dots li.slick-active button:before {
    opacity: 1
}

.sec_intro .slider_intro:not(.slick-slider) {
    opacity: 0;
    display: flex;
    flex-wrap: wrap
}

.sec_intro .slider_intro .slick-list {
    overflow: visible
}

.sec_intro .slider_intro .intro_it {
    width: 110em;
    height: 61.7em;
    margin: 0 4.5em;
    border-radius: 20px;
    overflow: hidden;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: left top;
    background-color: #f8f8f8;
    position: relative
}

.sec_intro .slider_intro .intro_it.item01 {
    background-image: url(../images/sec_intro_img01.jpg)
}

.sec_intro .slider_intro .intro_it.item02 {
    background-image: url(../images/sec_intro_img02.jpg)
}

.sec_intro .slider_intro .intro_it.item02 .box_in {
    padding-top: 5.2em
}

.sec_intro .slider_intro .intro_it.item02 .intro_cont {
    padding-bottom: 7.7em
}

.sec_intro .slider_intro .intro_it.item02 .l_feature .img {
    top: -0.7em
}

.sec_intro .slider_intro .intro_it.item03 {
    background-image: url(../images/sec_intro_img03.jpg)
}

.sec_intro .slider_intro .intro_it.item03 .intro_cont {
    padding-bottom: 8.5em
}

.sec_intro .slider_intro .intro_it.item03 .l_feature .item {
    margin-bottom: 1.8em
}

.sec_intro .slider_intro .intro_it.item03 .l_feature .img {
    top: 0
}

.sec_intro .slider_intro .intro_it.item03 .l_feature .cont {
    width: calc(100% - var(--w-cir) - 1.6em)
}

.sec_intro .slider_intro .intro_it:before {
    content: "";
    position: absolute;
    inset: 0;
    border: 2px solid #d2d7e2;
    border-radius: 20px
}

.sec_intro .slider_intro .intro_it .box_in {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-top: 7.2em
}

.sec_intro .slider_intro .intro_it .intro_tl {
    text-align: center
}

.sec_intro .slider_intro .intro_it .intro_tl p {
    line-height: 1.4;
    letter-spacing: 0.14em;
    margin-bottom: 0;
    font-weight: 500;
}

.sec_intro .slider_intro .intro_it .intro_tl .tt01 {
    font-weight: 500;
    font-size: 2.4em;
    margin-bottom: -0.2916666667em
}

.sec_intro .slider_intro .intro_it .intro_tl .tt02 {
    font-size: 6em;
}

.sec_intro .slider_intro .intro_it .intro_tl .tt02.sm {
    font-size: 4em;
    line-height: 1.5
}

.sec_intro .slider_intro .intro_it .intro_cont {
    max-width: 72.3em;
    width: 80%;
    margin-left: auto;
    background-color: rgba(255, 255, 255, 0.7);
    border-top-left-radius: 10em;
    padding: 6.8em 3.5em 8.2em 6.5em
}

.sec_intro .slider_intro .intro_it .l_feature .item {
    position: relative;
    justify-content: space-between;
    display: flex;
    --w-cir: 7em;
    margin-bottom: 2.2em
}

.sec_intro .slider_intro .intro_it .l_feature .item:last-child {
    margin-bottom: 0
}
.sec_intro .slider_intro .intro_it.item02 .intro_cont{background-color: rgba(255, 255, 255, 0.86);}
.sec_intro .slider_intro .intro_it.item03 .intro_cont{background-color: rgba(255, 255, 255, 0.86);}
.sec_intro .slider_intro .intro_it .l_feature .img {
    width: var(--w-cir);
    height: var(--w-cir);
    background-color: #fff;
    border-radius: 50%;
    border: 1px solid var(--main-color);
    position: relative;
    top: -0.2em
}
.sec_intro .slider_intro .intro_it.item01 .img{background-color: var(--main-color);}
.sec_intro .slider_intro .intro_it .l_feature .cont {
    width: calc(100% - var(--w-cir) - 2em)
}

.sec_intro .slider_intro .intro_it .l_feature p {
    margin-bottom: 0
}

.sec_intro .slider_intro .intro_it .l_feature .tl {
    font-weight: 500;
    font-size: 2.8em;
    line-height: 1.5
}

.sec_intro .slider_intro .intro_it .l_feature .tl.tl_sm {
    font-size: 2.4em
}

.sec_intro .slider_intro .intro_it .l_feature .tl .tt_num {
    font-size: 1.3333333333em;
    line-height: 0.8;
    letter-spacing: 0.1em
}

.sec_intro .slider_intro .intro_it .l_feature .en {
    font-size: 1.6em;
    font-weight: 400;
    color: var(--main-color);
    line-height: 1;
    margin-top: 0.125em;
    margin-left: 0.125em
}

.sec_intro .slider_intro .intro_it .l_feature .en sub {
    font-size: 0.7em;
    vertical-align: baseline;
    position: relative;
    bottom: -0.375em;
    left: -0.0625em
}

@media only screen and (min-width:769px) {
    .sec_intro .slick-dots li button:hover {
        background-color: rgba(210, 215, 226, 0.2)
    }

    .sec_intro .slick-dots li button:hover:before {
        opacity: 0.7
    }

    .sec_intro .slick-arrow:hover {
        background-color: rgb(247, 247, 247)
    }

    .sec_intro .b_wrap .slider_intro:not(.slick-slider) {
        height: 66.7em
    }
}
@media only screen and (min-width:769px) and (max-width:1600px) {
    .sec_intro .b_wrap::before, .sec_intro .b_wrap::after{
        max-width: 16em;
        width: 11vw;
    }
}
@media only screen and (min-width:769px) and (max-width:1500px) {
    .sec_intro .b_wrap::before, .sec_intro .b_wrap::after{
        width: 5vw;
    }
}
@media only screen and (min-width:769px) and (max-width:1400px) {
    .sec_intro {
        padding-top: 70px
    }
    .sec_intro .b_wrap::before, .sec_intro .b_wrap::after{
        width: 16vw;
    }

    .sec_intro .b_wrap {
        font-size: min(8px, 0.7vw)
    }
}
@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_intro .b_wrap::before, .sec_intro .b_wrap::after{
        width: 7%;
    }

}

.sec_prevention {
    padding: 181px 0 120px;
    position: relative;
    z-index: 0;
}
.sec_prevention::after{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/sec_prevention_bg.jpg) no-repeat top 77px center/cover;
    z-index: -2;
}

.sec_prevention:before {
    content: "";
    position: absolute;
    top: 80px;
    left: 0;
    right: 0;
    margin: auto;
    width: 100%;
    max-width: 1920px;
    height: 100%;
    background: url(../images/sec_prevention_img_pc.png) no-repeat top right;
    z-index: -1
}

.sec_prevention .tl_wrap {
    margin-bottom: 68px;
}

.sec_prevention .tl_wrap:after {
    margin-top: 0.888888889em
}

.sec_prevention .tl_wrap h3 {
    line-height: 1.6
}

.sec_prevention .tl_wrap .en {
    margin-bottom: 3px
}

.sec_prevention h4.tl_h4 {
    margin-bottom: 15px
}


.sec_prevention .inner_big {
    position: relative;
    z-index: 0
}

/* .sec_prevention .inner_big:before {
    content: "";
    position: absolute;
    bottom: -32.6em;
    right: -29.9em;
    background: url(../images/sec_prevention_bf.jpg) no-repeat top left/cover;
    border-top-left-radius: 45em;
    width: 75.3em;
    height: 154.2em;
    z-index: -1;
    opacity: 0.6;
    font-size: 10px
} */

/* .sec_prevention .box_center {
    text-align: center;
    max-width: 935px;
    width: 100%;
    margin: 93px auto 48px
} */
.sec_prevention .box_center p{
    line-height: 1.778;
}
.sec_prevention .prevention_img img {
    border-radius: 20px
}
.sec_prevention .prevention_cont {
   padding: 54px 72px;
    border-radius: 40px;
    background: url(../images/sec_prevention_box_bg.png) no-repeat top left/cover;
    /* background-color: rgba(255, 255, 255, 0.3); */
   position: relative;
   z-index: 0;
}
/* .sec_prevention .prevention_cont::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: blur(25px);
    border-radius: 40px;
    background-color: rgba(255, 255, 255, 0.6);
    z-index: -1;
} */
.sec_prevention .prevention_cont p {
    line-height: 2;
    margin-bottom: 11px
}

.sec_prevention .border {
    border: 1px solid var(--main-color);
    border-radius: 6px;
    padding: 5px 9px 6px 7px;
    display: inline-block;
    margin-top: 7px;
    margin-bottom: -3px;
    line-height: 1.5;
    color: var(--main-color);
    font-weight: bold;
}

.sec_prevention .box_chart {
   margin-top: 81px;
   max-width: 670px;
}

.sec_prevention .caption_chart {
    font-size: 16px;
    letter-spacing: 0.05em;
    margin-bottom: 29px;
    margin-left: -9px;
}

.sec_prevention .chart_note {
    font-family: var(--f-klee);
    font-weight: 600;
    font-size: 33px;
    letter-spacing: 0.16em;
    line-height: 1.4;
     background-image: linear-gradient( 90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.5) 10%, rgb(255,255,255) 50%, rgba(255,255,255,0.5) 90%, rgba(255,255,255,0) 100%);
    max-width: 1280px;
    width: 100%;
    margin: 43px auto 0;
    text-align: center;
    padding: 14px 20px 19px;
}

.sec_prevention .chart_note span {
    /* -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) calc(100% - 0.5384615385em), #b1e8ed 0.5384615385em) */
}

.sec_prevention .chart {
    margin-bottom: 42px;
    position: relative;
    font-size: 10px;
}
.sec_prevention .chart_tl{
    display: table;
    color: #fff;
    width: 4.16666666667em;
    height: 1.666666667em;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1;
    font-size: 2.4em;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin: 0 auto 0.95833333333em;
}
.sec_prevention .chart_man .chart_tl{
    background-color: #5596d2;
}
.sec_prevention .chart_woman .chart_tl{
    background-color: #ec7d9f;
}
.sec_prevention .b_chart{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    height: 33.7em;
    max-width: 29em;
}
.sec_prevention .b_chart p{
    font-size: 1.6em;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 0;
    letter-spacing: 0.05em;
}
.sec_prevention .b_chart .bar{
    width: 6em;
    border-radius: 5px 5px 0 0;
    margin: 0.1em 0 0.9em;
}
/* .sec_prevention .chart figure {
    max-width: 285px
} */
.sec_prevention .chart_man .col1 .bar{
    height: 25.5em;
    background-color: #5596d2;
}
.sec_prevention .chart_man .col2 .bar{
    height: 12.2em;
    background-color: #77aee0;
}
.sec_prevention .chart_man .col3 .bar{
    height: 11.6em;
    background-color: #9fc3e4;
}
.sec_prevention .chart_woman .col1 .bar{
    height: 11.9em;
    background-color: #ec7d9f;
}
.sec_prevention .chart_woman .col2 .bar{
    height: 10.9em;
    background-color: #ef96b1;
}
.sec_prevention .chart_woman .col3 .bar{
    height: 9.6em;
    background-color: #f7b5c9;
}
.sec_prevention .b_chart .unit_spec{font-weight: 500;}

.sec_prevention .chart_man .unit_spec{color: #7fafe2;}
.sec_prevention .chart_woman .unit_spec{color: #ef96b1;}
 .sec_prevention .chart:before {
    content: "";
    position: absolute;
    top: -2px;
    right: 3px;
    left: 0;
    margin: auto;
    width: 1px;
    height: calc(100% + 17px);
    background-color: rgba(0, 0, 0, 0.2)
}
/* @media only screen and (min-width:1921px) {
    .sec_prevention:before {
        height: calc(100% + 28vw)
    }
} */
@media only screen and (min-width:1800px) and (max-width:1920px) {
.sec_prevention::after{ background-size: 1920px auto;}
}
@media only screen and (min-width:769px) {
    /* .sec_prevention .b_grid {
        grid-template-columns: 50% 44.3%;
        justify-content: space-between
    } */
    .sec_prevention .fblock >div{
        width: 49%;
    }
    .sec_prevention .chart >div{
        width: 48%;
        max-width: 290px;
    }
    .sec_prevention .chart .chart_woman{margin-right: -0.8em;}
    .sec_prevention .block_prevention{
        order: 2;
        padding-top: 277px;
        max-width: 680px;
    }
    .sec_prevention .block_chart{order: 1;}

   

    .sec_prevention .chart figure {
        width: 48%
    }
}
@media only screen and (min-width:769px) and (max-width:1600px) {
    .sec_prevention:before{background-size: 57% auto;}
    .sec_prevention .chart{font-size: min(10px, 0.7vw);}
}
@media only screen and (min-width:769px) and (max-width:1400px) {
    .sec_prevention .inner_max{
        max-width: 1300px;
    }
}

@media only screen and (min-width:769px) and (max-width:1300px) {
    .sec_prevention .tl_wrap{margin-bottom: 20px;}
    .sec_prevention .tl_wrap:after {
        margin-top: 0.3em
    }

    .sec_prevention .tl_wrap h3 {
        line-height: 1.4
    }

    .sec_prevention .b_grid {
        grid-template-columns: 50% 46.3%
    }

    .sec_prevention .inner_big:before {
        font-size: min(8px, 0.7vw)
    }

    .sec_prevention .box_center {
        margin-top: 65px
    }
    .sec_prevention .box_chart{margin-top: 40px;}
    /* .sec_prevention .box_chart {
        padding: 45px 5%
    } */
    .sec_prevention .chart_tl{font-size: min(20px, 1.8vw);}
    .sec_prevention .caption_chart {
        font-size: 14px;
        padding-bottom: 10px;
        margin-bottom: 20px;
    }

    .sec_prevention .chart_note {
        font-size: 22px
    }
    .sec_prevention .block_prevention{padding-top: 15vw;}
    .sec_prevention .prevention_cont{padding: 6%;}
}

@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_prevention{padding-top: 85px;}
    .sec_prevention:before{
        background-size: 52% auto;
        top: 133px;
    }
    .sec_prevention .tl_wrap {
        margin-top: 0;
        margin-bottom: 25px
    }
    .sec_prevention .block_prevention{padding-top: 22vw;}
}

.sec_process {
    position: relative;
    padding: 139px 0 98px;
    z-index: 1
}

.sec_process:after,
.sec_process:before {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    z-index: -1
}

.sec_process:before {
    top: 0;
    height: 824px;
    background: url(../images/sec_process_bg.jpg) no-repeat center/cover;
    /* mask-image: url(../images/sec_process_mask.svg);
    -webkit-mask-image: url(../images/sec_process_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 */
}

.sec_process:after {
    bottom: 0;
    height: calc(100% - 942px);
    background: url(../images/sec_process_bg02.jpg) no-repeat center/cover
}

.sec_process h4.tl_h4 {
    margin-bottom: 13px
}

.sec_process .b_test {
    position: relative;
    z-index: 0;
    padding-bottom: 130px;
}

.sec_process .b_test:before {
    content: "";
    position: absolute;
    bottom: -20em;
    right: -5.3em;
    background: url(../images/sec_process_bf.png) no-repeat center/contain;
    width: 36.6em;
    height: 60em;
    z-index: -1;
    font-size: 10px
}

.sec_process .box_tel {
    background-color: #fff;
    border-radius: 10px;
    padding: 2em;
    max-width: 44em;
    width: 100%;
    height: 14em;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    position: relative;
    box-shadow: 5.196px -3px 27px 0px rgba(138, 168, 195, 0.07);
}

.sec_process .box_tel a {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0
}

.sec_process .box_tel .icon {
    position: relative;
    padding-left: 7.6em;
    line-height: 1
}

.sec_process .box_tel .icon:before {
    content: "";
    position: absolute;
    top: 0.8em;
    left: 0.4em;
    width: 5.6em;
    height: 5.6em;
    background: url(../images/ic_tel02.svg) no-repeat center/contain
}

.sec_process .box_tel span {
    display: block;
    line-height: 1;
    text-align: center
}

.sec_process .box_tel .tt01 {
    font-size: 1.8em;
    letter-spacing: 0.1em;
    margin-bottom: 0.4444444444em
}

.sec_process .box_tel .tt02 {
    font-size: 4em;
    font-weight: 500;
    color: var(--main-color);
    letter-spacing: 0;
    margin-left: -0.15em;
}

.sec_process .block_process {
    background: url(../images/sec_process_box_bg.jpg) no-repeat center/cover;
    border-radius: 80px;
    max-width: 1720px;
    width: calc(100% - 40px);
    margin: 0 auto;
    padding: 107px 2% 120px;
    position: relative
}

.sec_process .block_process .tl_wrap {
    margin-bottom: 14px
}

.sec_process .block_process .tl_wrap:after {
    margin-right: 4px;
    margin-top: 0px
}

.sec_process .block_process .tl_wrap .en {
    margin-bottom: 8px
}

.sec_process .l_proccess .item {
    border-radius: 40px;
    background-color: rgba(255, 255, 255, 0.8);
    padding: 3.9em 3.4em 3.9em 5.3em;
    max-width: 410px;
    position: relative;
    z-index: 0;
    font-size: 10px
}

.sec_process .l_proccess .item:before {
    content: "";
    position: absolute;
    inset: 1em;
    border-radius: 30px;
    background-color: #ffffff;
    z-index: -1
}

.sec_process .l_proccess .b_img {
    width: 8em;
    height: 8em;
    border-radius: 20px;
    background-color: var(--main-color);
    margin-bottom: 2.4em
}

.sec_process .l_proccess .b_title .en {
    font-size: 1.4em;
    color: var(--clr3);
    line-height: 1;
    font-weight: 400;
    text-transform: uppercase;
    margin-bottom: 0.9285714286em
}

.sec_process .l_proccess .b_title .ttl {
    font-family: var(--f-jp);
    font-weight: 500;
    font-size: 2.2em;
    letter-spacing: 0.1em;
    line-height: 1.6364
}

.sec_process .proccess_note {
    display: block;
    margin-top: -8px;
    background: linear-gradient(90deg, rgb(255, 255, 255) 29%, rgba(255, 255, 255, 0) 63%, rgba(255, 255, 255, 0) 120%);
    border-radius: 60px;
    padding: 2em 1.4em 2.3em 2.5em;
    font-size: 10px
}

.sec_process .proccess_note .ic {
    position: relative;
    font-size: 2.6em;
    font-weight: 600;
    font-family: var(--f-klee);
    line-height: 1.4;
    padding-left: 2.1739130435em
}

.sec_process .proccess_note .ic:before {
    content: "";
    position: absolute;
    top: 0.2307692307692308em;
    left: 0.0384615384615385em;
    background: url(../images/pointer_blue.png) no-repeat center/contain;
    width: 1.461538461538462em;
    height: 1.076923076923077em
}

.sec_process .txt_en {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 0;
    padding-right: 94px;
    padding-top: 174px
}

.sec_process .txt_en:before {
    content: "";
    position: absolute;
    bottom: 34.3em;
    right: 0;
    background: url(../images/sec_process_bf03.png) no-repeat top center/contain;
    width: 61.3em;
    height: 162.2em;
    z-index: -1;
    border-top-left-radius: 20em;
    font-size: 10px
}

.sec_process .txt_en p {
    font-size: 180px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    white-space: nowrap
}

.sec_process .box_h3 {
    max-width: 1920px;
    width: 100%;
    position: relative;
    margin: 0 auto
}

.sec_process .box_h3 .tl_wrap {
    margin-bottom: 52px
}

.sec_process .box_h3 .tl_wrap:after {
    margin-top: 8px
}

.sec_process .row01 {
    padding-top: 131px
}
.sec_process .row01 .btn{
    margin: 40px auto 0;
    position: relative;
    z-index: 1;
    max-width: 390px;
}

.sec_process .row02 {
    z-index: 0;
    padding-top: 75px
}

.sec_process .row02:before {
    content: "";
    position: absolute;
    top: -23.8em;
    left: 0;
    background: url(../images/sec_process_bf02.png) no-repeat center/contain;
    width: 104.7em;
    height: 91.1em;
    z-index: -1;
    font-size: 10px
}

.sec_process .row03 {
    z-index: 0;
    padding-top: 74px
}

.sec_process .row03:before {
    content: "";
    position: absolute;
    bottom: -218px;
    left: 0;
    background: url(../images/sec_process_bg03.jpg) no-repeat center/cover;
    max-width: 1307px;
    width: 80%;
    height: 461px;
    z-index: -1;
    border-bottom-right-radius: 20px;
    border-top-right-radius: 20px
}

.sec_process .l_anxiety {
    position: relative;
    z-index: 1
}

.sec_process .l_anxiety .item {
    max-width: 412px;
    position: relative;
    border-radius: 20px;
    background-color: #ffffff;
    padding: 0.5em 0.5em 3em;
    font-size: 10px
}

.sec_process .l_anxiety .b_img {
    display: table;
    margin-left: auto;
    margin-bottom: 3em
}

.sec_process .l_anxiety .b_img img {
    border-radius: 15px
}

.sec_process .l_anxiety .b_cont {
    padding-left: 5.3em;
    padding-right: 4.4em;
}

.sec_process .l_anxiety h4 {
    font-weight: 500;
    font-size: 2.4em;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 0.75em
}

.sec_process .l_anxiety h4.h_min {
    min-height: 2.7916666667em;
    display: flex;
    align-items: flex-end
}

.sec_process .l_anxiety p {
    font-size: 1.8em;
    line-height: 1.88889
}

@media only screen and (min-width:1921px) {
    .sec_process:before {
        height: 31vw
    }
}

@media only screen and (min-width:769px) {
    .sec_process .box_tel{
        margin-left: 8.8em;
        margin-top: -0.9em;
    }
    .sec_process .l_proccess {
        align-items: flex-start
    }

    .sec_process .l_proccess .item {
        width: calc((100% - 5em) / 3);
        margin-right: 2.5em
    }

    .sec_process .l_proccess .item:last-child,
    .sec_process .l_proccess .item:nth-child(3n+3) {
        margin-right: 0
    }

    .sec_process .l_proccess .item:first-child {
        margin-top: -4.1em
    }

    .sec_process .l_proccess .item:nth-child(3) {
        margin-top: 3.9em
    }

    .sec_process .l_anxiety .item {
        width: calc((100% - 4.2em) / 3);
        margin-right: 2.2em;
        margin-bottom: 2.2em;
        min-height: 54.6em
    }

    .sec_process .l_anxiety .item:last-child,
    .sec_process .l_anxiety .item:nth-child(3n+3) {
        margin-right: 0
    }

    /* .sec_process .row02 .l_anxiety .b_cont,
    .sec_process .row03 .l_anxiety .b_cont {
        padding-right: 5.3em
    } */
    /* .sec_process .b_test > div{
        width: 48%;
    } */
    .sec_process .row02 .l_anxiety .b_cont p,
    .sec_process .row03 .l_anxiety .b_cont p {
        letter-spacing: 0.16em
    }
}

@media only screen and (min-width:769px) and (max-width:1600px) {
    .sec_process .txt_en {
        right: -1em;
        padding-right: 0;
        width: 47.3em;
    }

    .sec_process .txt_en:before {
        font-size: min(9px, 0.6vw)
    }

    .sec_process .txt_en p {
        font-size: min(135px, 8.5vw)
    }

    .sec_process .box_h3 {
        padding-right: 6%;
        padding-left: 6%;
    }

    .sec_process .l_anxiety .item {
        font-size: min(10px, 0.75vw);
        width: calc((100% - 4.4em) / 3);
    }

    .sec_process .l_anxiety .b_cont {
        padding-right: 5%;
        padding-left: 4%;
    }

    .sec_process .row02 .l_anxiety .b_cont,
    .sec_process .row03 .l_anxiety .b_cont {
        padding-right: 5%
    }

    .sec_process .row02 .l_anxiety .b_cont p,
    .sec_process .row03 .l_anxiety .b_cont p {
        letter-spacing: 0.1em
    }
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_process {
        padding: 105px 0 70px
    }
    .sec_process:before{
        height: 53vw;
        max-height: 660px;
    }
    .sec_process .box_text {
        padding-bottom: 50px;
        max-width: 860px
    }
    .sec_process .b_test{
        max-width: 1000px;
        margin: 0 auto;
        padding-bottom: 50px;
    }
    .sec_process .b_test:before{
        font-size: min(8px, 0.8vw)
    }

    .sec_process .box_tel {
        font-size: min(8px, 0.8vw)
    }

    .sec_process .block_process {
        padding: 75px 2% 80px
    }

    .sec_process .txt_en:before {
        width: 34.3em
    }

    .sec_process .l_proccess .item {
        font-size: min(10px, 0.7vw);
        padding-left: 4.3em;
        padding-right: 2.4em
    }

    .sec_process .proccess_note {
        margin-top: 1.1em;
       
        font-size: min(10px, 0.9vw)
    }

    .sec_process .row01 {
        padding-top: 70px
    }

    .sec_process .row02:before {
        font-size: 4px
    }

    .sec_process .row03:before {
        height: 330px;
        bottom: -145px
    }

    .sec_process .row02,
    .sec_process .row03 {
        padding-top: 40px
    }

    .sec_process .box_h3 .tl_wrap {
        margin-bottom: 30px
    }
}
@media only screen and (min-width:769px) and (max-width:1300px) {
    
   .sec_process .txt_en{right: -0.6em;}
}
@media only screen and (min-width:769px) and (max-width:1000px) {
    .sec_process .l_anxiety .b_cont {
        padding-right: 4%
    }

    .sec_process .l_anxiety h4 {
        font-size: 2.8em;
        letter-spacing: 0
    }

    .sec_process .l_anxiety p {
        font-size: 2.1em
    }

    .sec_process .row02 .l_anxiety .b_cont,
    .sec_process .row03 .l_anxiety .b_cont {
        padding-right: 4%
    }
    .sec_process .b_test{
        padding-bottom: 0;
        padding-top: 5vw;
    }
    .sec_process .b_test:before{bottom: -11vw;}
}

.sec_flow {
    padding: 240px 0 100px;
    background: url(../images/sec_flow_bg.jpg) no-repeat center/cover;
    position: relative;
    z-index: 0;
}
.sec_flow::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    max-width: 1920px;
    width: 100%;
    height: 814px;
    margin: auto;
    background: url(../images/sec_flow_bf.png) no-repeat top right/ auto;
}

.sec_flow .tl_wrap {
    margin-bottom: 39px
}

.sec_flow .tl_wrap.tl_left:after {
    margin-left: 1px;
    margin-top: 9px
}

.sec_flow .box_ct {
    position: relative;
    padding-top: 85px
}

.sec_flow .box_ct .b_img img {
    border-radius: 20px 0 0 20px
}

.sec_flow .box_flow {
    /* background: radial-gradient(circle, rgb(255 255 255) 28%, rgb(255 255 255 / 89%) -71%); */
    position: relative;
    justify-content: center;
    padding: 46px 85px 42px 84px;
    border-radius: 20px;
    margin-top: 21px;
    z-index: 0;
    overflow: hidden;
}
.sec_flow .box_flow::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 20px;
    background-color: #ffffff;
    filter: blur(31px);
    z-index: -1;
    box-shadow: inset 0px 1px 11px rgb(255 255 255 / 94%), inset 0px 1px 11px rgb(255 255 255 / 94%);
}

.sec_flow .box_flow .num {
    width: round(2.5em, 1px);
    height: round(2.5em, 1px);
    background-color: #f7fafd;
    border-radius: 50%;
    border: 1px solid var(--main-color);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2.4em;
    font-weight: 700;
    color: var(--main-color);
    padding-bottom: 0.125em;
    padding-left: 0.1666666667em;
    margin: 0 auto 0.5833333333em
}

.sec_flow .box_flow .ttl {
    font-weight: 400;
    font-size: 2.2em;
    line-height: 1.36364;
    letter-spacing: 0.1em;
    text-align: center
}

.sec_flow .box_flow .ttl .sm {
    font-size: 0.8181818182em
}

.sec_flow .box_flow .item {
    position: relative;
    z-index: 0;
    font-size: 10px
}

.sec_flow .box_flow .item:not(:last-child):after,
.sec_flow .box_flow .item:not(:last-child):before {
    content: "";
    position: absolute;
    z-index: -1
}

.sec_flow .box_flow .item:not(:last-child):before {
    height: 2px;
    width: 15em;
    background: url(../images/dot.png) repeat-x left center;
    right: -10em;
    top: 2.9em
}

.sec_flow .box_flow .item:not(:last-child):after {
    background-color: var(--main-color);
    width: 0.8em;
    height: 1.1em;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    right: -2.5em;
    top: 2.5em
}

.sec_flow .flow_detail {
    margin-top: 80px
}

.sec_flow .flow_detail .item {
    max-width: 305px;
    border-radius: 20px;
    background-color: #f6f8fb;
    padding: 4.5em 2em 5.5em;
    text-align: center;
    overflow: hidden;
    position: relative;
    font-size: 10px
}

.sec_flow .flow_detail .item.has_tel {
    padding-top: 2.8em
}

.sec_flow .flow_detail .b_img {
    width: round(16em, 1px);
    height: round(16em, 1px);
    border-radius: 50%;
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto
}

.sec_flow .flow_detail .b_img:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: #ecf0f4;
    z-index: -1
}

.sec_flow .flow_detail .b_img img {
    max-width: 14em;
    border-radius: 50%;
    margin: auto
}

.sec_flow .flow_detail h4 {
    font-size: 2.4em;
    font-weight: 500;
    color: var(--main-color);
    line-height: 1.5;
    margin-bottom: 0.4166666667em
}

.sec_flow .flow_detail h4 span {
    margin-left: 0.458333333em
}

.sec_flow .flow_detail .tt_num {
    width: round(2.0833333333em, 1px);
    height: round(2.0833333333em, 1px);
    border-radius: 50%;
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.4em;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--main-color);
    line-height: 1;
    margin: -1.0416666667em auto 0.0833333333em;
    position: relative;
    padding-bottom: 0.125em
}

.sec_flow .flow_detail p:not(.tt_num) {
    line-height: 1.888888889;
    font-size: 1.8em
}

.sec_flow .flow_detail .tt_tel {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%
}

.sec_flow .flow_detail .tt_tel a {
    display: block;
    width: 100%;
    background-color: var(--main-color);
    color: #ffffff;
    padding: 0.7em 1em 1.1em 1.3em;
    text-decoration: none;
}
.sec_flow .flow_detail .tt_tel a:hover{opacity: 1;}

.sec_flow .flow_detail .tt_tel .icon {
    font-size: 2.4em;
    font-weight: 500;
    letter-spacing: 0;
    padding-left: 1.25em;
    position: relative
}

.sec_flow .flow_detail .tt_tel .icon:before {
    content: "";
    position: absolute;
    top: 0.375em;
    left: -0.125em;
    mask-image: url(../images/ic_tel.svg);
    -webkit-mask-image: url(../images/ic_tel.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: #ffffff;
    width: 0.9166666667em;
    height: 0.9166666667em
}
.sec_flow .gr_btn{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
.sec_flow .gr_btn .btn{
    width: calc(50% - 20px);
    margin: 10px;
}
@media only screen and (min-width:769px) {
    .sec_flow .box_ct {
        min-height: 395px
    }

    .sec_flow .box_ct .b_img {
        position: absolute;
        top: 0;
        right: -320px;
        width: 1020px
    }

    .sec_flow .box_flow .item {
        width: calc((100% - 28.6em) / 8);
        margin-right: 4em
    }

    .sec_flow .box_flow .item:last-child,
    .sec_flow .box_flow .item:nth-child(8n+8) {
        margin-right: 0
    }

    .sec_flow .flow_detail .item {
        width: calc((100% - 6em) / 4);
        margin-right: 2em;
        margin-bottom: 2em
    }

    .sec_flow .flow_detail .item:last-child,
    .sec_flow .flow_detail .item:nth-child(4n+4) {
        margin-right: 0
    }
}
@media only screen and (min-width:769px) and (max-width:1600px) {
    .sec_flow .inner_big{
        max-width: 100%;
        max-width: 1500px;
        padding-left: calc(6% + 20px);
        padding-right: calc(6% + 20px);
    }
    .sec_flow .box_flow{
        padding: 45px 3%
    }
    .sec_flow .box_flow .item{font-size: min(10px, 0.7vw);}
    .sec_flow .flow_detail p:not(.tt_num){letter-spacing: 0.05em;}
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_flow {
        padding: 140px 0 70px
    }
    .sec_flow::before{
        left: 100px;
        background-size: 100% auto;
    }
    .sec_flow .flow_detail {
        margin-top: 50px
    }

    .sec_flow .flow_detail .item {
        font-size: min(10px, 0.85vw);
        padding: 4.5em 1em 5.5em;
    }
    .sec_flow .flow_detail p:not(.tt_num){
        letter-spacing: 0;
        font-size: 1.6em;
    }
}

@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_flow .tl_wrap {
        margin-bottom: 20px
    }

    .sec_flow .box_ct {
        padding-top: 1vw;
        min-height: 200px
    }

    .sec_flow .box_ct .b_img {
        width: 54%;
        right: -21px
    }

    .sec_flow .box_ct>p {
        width: 48%
    }

    .sec_flow .box_ct>p br {
        display: none
    }

    .sec_flow .box_flow {
        padding: 45px 2%
    }

    /* .sec_flow .box_flow .item {
        font-size: min(10px, 0.8vw)
    } */
    .sec_flow .flow_detail .item {
        width: calc((100% - 3em) / 4);
        margin-right: 1em;
    }
}

.sec_achievements {
    padding: 107px 0 0;
    background-image: url(../images/sec_achievements_bg.png), linear-gradient( 180deg, rgb(241,244,248) 0%, rgb(248,248,248) 100%);
    background-repeat: no-repeat;
    background-position: top 77px left, top left
}

.sec_achievements .tl_wrap {
    margin-bottom: 38px
}

.sec_achievements .tl_wrap:after {
    margin-top: 0.3888888889em
}

.sec_achievements .tl_wrap p:not(.en) {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.8
}

.sec_achievements .tl_h4 {
    text-align: center;
    margin-bottom: 28px
}

.sec_achievements h5 {
    text-align: center;
    position: relative;
    font-size: 28px;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 29px;
    font-family: var(--f-jp)
}

.sec_achievements h5:after {
    content: "";
    position: relative;
    display: block;
    width: 100px;
    height: 1px;
    background-color: var(--main-color);
    margin: 11px auto 0
}

.sec_achievements .box_white {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 80px;
    padding: 54px 80px 80px;
    margin-bottom: 92px
}

.sec_achievements .box_test {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    padding-left: 1.9em;
    font-size: 10px
}

.sec_achievements .box_test p {
    line-height: 1
}

.sec_achievements .box_test .tt01 {
    margin-bottom: 0;
    position: relative;
    padding-right: 2em;
    padding-top: 1.1em;
    margin-right: 3.2em;
    width: 27%
}

.sec_achievements .box_test .tt01:before {
    content: "";
    position: absolute;
    top: 1.8em;
    right: -1.1em;
    bottom: 0;
    width: 1px;
    height: calc(100% - 1.9em);
    margin: auto;
    background-color: var(--main-color)
}

.sec_achievements .box_test .tt01 span {
    display: block;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: 0.1em
}

.sec_achievements .box_test .tt02 {
    width: 35%;
    padding-left: 6.2em
}

.sec_achievements .box_test .txt01 {
    font-size: 3em
}

.sec_achievements .box_test .txt02 {
    font-size: 2em;
    margin-top: 0.45em;
    margin-left: -0.6em
}

.sec_achievements .box_test .num {
    font-size: 9em;
    font-weight: 700;
    color: var(--main-color);
    letter-spacing: 0.05em;
    text-shadow: 3px 3px rgba(7, 175, 190, 0.28);
    line-height: 1
}

.sec_achievements .box_test .unit {
    width: round(1.75em, 1px);
    height: round(1.75em, 1px);
    border-radius: 50%;
    background-color: var(--main-color);
    color: #ffffff;
    font-size: 4em;
    font-weight: 700;
    letter-spacing: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.35em;
    padding-bottom: 0.1em;
    position: relative;
    top: -0.425em
}

.sec_achievements .box_rate {
    margin-top: 65px
}

.sec_achievements .box_rate .item {
    background-color: #ffffff;
    border-radius: 40px;
    padding: 2.9em 3em 4.3em;
    font-size: 10px;
    text-align: center
}

.sec_achievements .box_rate .item.it01 {
    --cl: #8dbfd2
}

.sec_achievements .box_rate .item.it02 {
    --cl: #efb23e
}

.sec_achievements .box_rate .item.it03 {
    --cl: #f39494
}

.sec_achievements .box_rate .b_img {
    max-width: 30em;
    margin: 0 auto -2.3em;
    position: relative
}

.sec_achievements .box_rate .b_cont {
    position: relative
}

.sec_achievements .box_rate .b_cont p {
    font-size: 1.8em
}

.sec_achievements .box_rate .txt_num {
    font-size: 4.2em;
    font-weight: 900;
    line-height: 1;
    color: var(--cl);
    letter-spacing: 0.05em;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 1.075em;
    text-align: center
}

.sec_achievements .box_rate .txt_num:after {
    content: "";
    position: relative;
    display: block;
    width: 1.5em;
    height: 2px;
    margin: 0.35em auto 0;
    background-color: var(--cl)
}

.sec_achievements .box_rate h4 {
    font-size: 2.4em;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
    margin-bottom: 0.125em
}

.sec_achievements .box_h5 {
    padding-top: 50px
}

.sec_achievements .tab_year {
    display: flex;
    flex-wrap: wrap;
    max-width: 1060px;
    margin: 0 auto 66px;
    border-top: 1px solid #61626e
}

.sec_achievements .tab_year .tabs {
    position: relative;
    text-align: center;
    padding-top: 19px;
    cursor: pointer
}

.sec_achievements .tab_year .tabs:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 4px;
    background-color: var(--main-color);
    top: -1px;
    left: 0;
    opacity: 0;
    transition: 0.3s all ease
}

.sec_achievements .tab_year .tabs .tt {
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1;
    color: #577082;
    transition: 0.3s all ease
}

.sec_achievements .tab_year .tabs.active:before {
    opacity: 1
}

.sec_achievements .tab_year .tabs.active .tt {
    font-weight: 700;
    color: var(--main-color)
}

.sec_achievements .tab_content {
    position: relative;
    z-index: 1;
    overflow: hidden
}

.sec_achievements .tab_content .content {
    transition: all 0.3s ease-in-out
}

.sec_achievements .tab_content .content>div {
    opacity: 0;
    z-index: -10;
    visibility: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    transition: all 0.5s ease-in-out
}

.sec_achievements .tab_content .content>div.active {
    opacity: 1;
    z-index: 1;
    visibility: visible
}

.sec_achievements .box_data .item {
    background-color: #ffffff;
    border-radius: 2em;
    padding: 1em 1em 1em 1em;
    display: flex;
    flex-direction: column;
    font-size: 10px
}

.sec_achievements .box_data .item:first-child {
    --cl: var(--clr1)
}

.sec_achievements .box_data .item:nth-child(2) {
    --cl: var(--main-color)
}

.sec_achievements .box_data .item:nth-child(3) {
    --cl: #ffc85e
}

.sec_achievements .box_data .data_tl {
    text-align: center;
    background-image: linear-gradient(-90deg, rgb(212, 236, 246) 0%, rgb(227, 242, 244) 100%);
    padding: 2em 1em 2.3em;
    border-radius: 10px;
    margin-bottom: 1.6em
}

.sec_achievements .box_data .data_tl .tl {
    font-size: 2.4em;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.05em
}

.sec_achievements .box_data .number {
    font-size: 6.6em;
    font-weight: 700;
    line-height: 1;
    color: var(--cl);
    text-align: center;
    letter-spacing: 0.05em;
    margin-bottom: 0.42424242em
}

.sec_achievements .box_data .number .unit {
    font-size: 0.4545454545em;
    font-weight: 500;
    margin-left: 0.3em
}

.sec_achievements .box_data .data_ct {
    border-top: 1px solid #e3e9f1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    padding-top: 1.9em;
    padding-bottom: 1.4em;
    width: calc(100% + 2em);
    margin-left: -1em
}

.sec_achievements .box_data .gender {
    font-weight: 500;
    letter-spacing: 0.05em
}

.sec_achievements .box_data .gender.male {
    margin-right: 2.5em;
    margin-bottom: 0
}

.sec_achievements .box_data .gender.male .tag {
    background-color: #9bd5ea
}

.sec_achievements .box_data .gender.female .tag {
    background-color: #fda8a8
}

.sec_achievements .box_data .gender span {
    font-size: 1.8em;
    letter-spacing: 0.05em;
    position: relative
}

.sec_achievements .box_data .gender .tag {
    padding: 0.2777777778em 0.2777777778em 0.3888888889em;
    line-height: 1;
    color: #fff;
    border-radius: 30px;
    margin-right: 0.6111111111em;
    width: 3.3333333333em;
    display: inline-block;
    text-align: center
}

.sec_achievements .box_data .gender .num {
    font-size: 2.4em;
    line-height: 1;
    margin-right: 0.3333333333em;
    top: 0.0416666667em
}

.sec_achievements .box_data .gender .unit {
    top: 0.0555555556em
}

.sec_achievements .box_data .data_rate {
    font-size: 2.4em;
    font-weight: 500;
    text-align: center;
    line-height: 1;
    letter-spacing: 0.05em
}

.sec_achievements .box_data .data_rate span {
    color: var(--cl)
}

.sec_achievements .box_percentage .item {
    background-color: #ffffff;
    border-radius: 10px;
    text-align: center;
    padding: 1.4em 1em 2em;
    position: relative;
    font-size: 10px
}

.sec_achievements .box_percentage .item:before {
    content: "";
    position: absolute;
    top: 1.4em;
    left: -1.1em;
    width: 1px;
    height: calc(100% - 3em);
    background-color: rgba(7, 175, 190, 0.2)
}

.sec_achievements .box_percentage .item:last-child:after {
    content: "";
    position: absolute;
    top: 1.4em;
    right: -1em;
    width: 1px;
    height: calc(100% - 3em);
    background-color: rgba(7, 175, 190, 0.2)
}

.sec_achievements .box_percentage figure {
    max-width: 9.6em;
    margin: 0 auto 0.9em
}

.sec_achievements .box_percentage .percentage_order {
    font-size: 2.2em;
    font-weight: 700;
    letter-spacing: 0;
    margin-bottom: 0.1363636364em
}

.sec_achievements .box_percentage .percentage_tl {
    font-size: 2em;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin-bottom: 0.55em
}

.sec_achievements .box_percentage .percentage_num {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 3.75em;
    width: 100%;
    margin: 0 auto;
    background-color: var(--main-color);
    color: #ffffff;
    font-size: 2.4em;
    line-height: 1;
    font-weight: 500;
    border-radius: 5px;
    padding: 0.25em 0.208333333em 0.4166666667em
}

.sec_achievements .percentage_note {
    text-align: center
}

.sec_achievements .percentage_sum {
    margin-top: 38px;
    margin-bottom: 21px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 10px
}

.sec_achievements .percentage_sum .tt01 {
    font-size: 2.4em;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.4;
    margin-bottom: 0;
    margin-right: 1.208333333em
}

.sec_achievements .percentage_sum .tt02 {
    position: relative;
    top: 0.2em
}

.sec_achievements .percentage_sum .tt02>span:last-child {
    padding-left: 0.6956521739em;
    margin-left: 0.6304347826em;
    position: relative
}

.sec_achievements .percentage_sum .tt02>span:last-child:before {
    content: "";
    position: absolute;
    top: 0.347826087em;
    left: 0;
    width: 1px;
    height: calc(100% - 0.5652173913em);
    background-color: #3b3d51
}

.sec_achievements .percentage_sum .fz46 {
    font-size: 4.6em;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1
}

.sec_achievements .percentage_sum .fz46.cl1 {
    margin-left: 0.2173913043em
}

.sec_achievements .percentage_sum .fz46 .per {
    font-size: 0.652173913em;
    color: var(--clr1)
}

.sec_achievements .btn{
    margin: 40px auto 0;
    max-width: 400px;
}

.sec_achievements .bx_watch{
    position: relative;
}
.sec_achievements .bx_watch .img02{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-origin: 50% 50%;
    transform: rotate(-90deg);
}

.box_faq {
    background: url(../images/box_faq_bg.jpg) no-repeat center/cover;
    padding: 106px 0 121px;
    position: relative;
    z-index: 1;
    border-radius: 80px;
    border: 1px solid var(--clr3);
    margin-top: 109px
}

.box_faq .tl_wrap {
    margin-bottom: 52px
}

.box_faq .tl_wrap:after {
    margin-top: 0.5em
}

.box_faq .tl_wrap h3 {
    color: #3b3d51
}

.box_faq .box_qa {
    max-width: 1000px;
    width: 100%;
    margin: 0 auto
}

.box_faq .box_qa .item {
    border-radius: 5em;
    border: 1px solid #f8f8f8;
    background-color: #f8f8f8;
    margin-bottom: 2.6em;
    font-size: 10px
}

.box_faq .box_qa .item:last-child {
    margin-bottom: 0
}

.box_faq .box_qa .item.is_active {
    background-color: #ffffff;
    border-color: var(--clr3)
}

.box_faq .box_qa .item.is_active .ic_plus {
    background-color: #f6f6f6
}

.box_faq .box_qa .b_answer,
.box_faq .box_qa .b_question {
    position: relative;
    padding-left: 9.4em
}

.box_faq .box_qa .b_answer:before,
.box_faq .box_qa .b_question:before {
    position: absolute;
    font-size: 3.5em;
    font-weight: 500;
    line-height: 1
}

.box_faq .box_qa .ic_plus {
    position: absolute;
    top: 0;
    right: 1.3em;
    bottom: 0;
    margin: auto;
    width: round(7em, 1px);
    height: round(7em, 1px);
    background-color: #fff;
    border-radius: 50%
}

.box_faq .box_qa .ic_plus:after,
.box_faq .box_qa .ic_plus:before {
    content: "";
    position: absolute;
    background-color: var(--clr3);
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;    
    -webkit-transition: all 0.3s;
    transition: all 0.3s
}

.box_faq .box_qa .ic_plus:before {
    width: 2em;
    height: 2px
}

.box_faq .box_qa .ic_plus:after {
    width: 2px;
    height: 2em
}

.box_faq .box_qa .b_question {
    padding-top: 3.1em;
    padding-bottom: 3.3em;
    padding-right: 7em;
    cursor: pointer
}

.box_faq .box_qa .b_question:before {
    content: "Q";
    color: var(--clr3);
    top: 0.8em;
    left: 1.075em
}

.box_faq .box_qa .b_question .title {
    font-size: 2.2em;
    font-weight: 500;
    line-height: 1.4;
    margin-bottom: 0
}

.box_faq .box_qa .b_question.rotate .ic_plus {
    transform: rotate(45deg)
}

.box_faq .box_qa .b_answer {
    padding-bottom: 2.6em;
    padding-right: 4em
}

.box_faq .box_qa .b_answer:before {
    content: "A";
    color: var(--main-color);
    top: -0.25em;
    left: 1.1em
}

.box_faq .box_qa .b_answer .box_in {
    top: -0.8em;
    position: relative;
}

.box_faq .box_qa .b_answer .box_in p {
    font-size: 1.6em
}

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

    .sec_achievements .box_data .item,
    .sec_achievements .box_rate .item {
        width: calc((100% - 4.4em) / 3);
        margin-right: 2.2em
    }

    .sec_achievements .box_data .item:last-child,
    .sec_achievements .box_data .item:nth-child(3n+3),
    .sec_achievements .box_rate .item:last-child,
    .sec_achievements .box_rate .item:nth-child(3n+3) {
        margin-right: 0
    }

    .sec_achievements .tab_year .tabs {
        width: 8.3333333333%
    }

    .sec_achievements .tab_content>.content:not(.init) {
        height: 44.3888888889em
    }

    .sec_achievements .box_percentage .item {
        width: calc(16.6666666667% - 21px);
        margin: 0 10px 0 11px
    }

    .box_faq .box_qa .item:hover {
        background-color: #ffffff;
        border-color: var(--clr3)
    }

    .box_faq .box_qa .item:hover .ic_plus {
        background-color: #f6f6f6
    }
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_achievements h4.tl_h4 {
        margin-bottom: 15px
    }

    .sec_achievements h5 {
        font-size: 24px
    }

    .sec_achievements .box_test {
        font-size: min(10px, 0.8vw)
    }

    .sec_achievements .box_test .tt01 {
        width: 31%
    }

    .sec_achievements .box_test .tt02 {
        width: 40%;
        padding-left: 4em
    }

    .sec_achievements .box_white {
        padding: 40px 5% 50px;
        margin-bottom: 50px
    }

    .sec_achievements .box_rate {
        margin-top: 40px
    }

    .sec_achievements .box_rate .item {
        padding: 2.9em 3em 4.3em;
        font-size: min(10px, 0.69vw)
    }

    .sec_achievements .box_data .item {
        font-size: min(10px, 0.9vw)
    }

    .sec_achievements .box_data .gender .tag {
        padding-top: 0.3389em
    }

    .sec_achievements .tab_year {
        margin-bottom: 30px
    }

    .sec_achievements .tab_year .tabs .tt {
        font-size: 20px
    }

    .sec_achievements .box_percentage .item {
        font-size: min(10px, 0.8vw)
    }

    .sec_achievements .percentage_sum {
        font-size: min(10px, 0.8vw)
    }

    .box_faq {
        margin-top: 70px;
        padding: 80px 5%
    }

    .box_faq .tl_wrap {
        margin-bottom: 25px
    }

    .box_faq .box_qa .item {
        font-size: min(10px, 1.1vw)
    }

    .box_faq .box_qa .b_answer,
    .box_faq .box_qa .b_question {
        padding-left: 8.2em
    }

    .box_faq .box_qa .b_question {
        padding-right: 7.5em
    }
}

@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_achievements .box_percentage .item:before {
        left: -1.2em
    }

    .sec_achievements .box_percentage .item:last-child:after {
        right: -1.2em
    }

    .sec_achievements .percentage_sum {
        margin-top: 25px;
        margin-bottom: 10px
    }
}

.sec_fee {
    padding: 107px 0 110px;
    position: relative;
    z-index: 0
}

.sec_fee:before {
    content: "";
    position: absolute;
    top: -169px;
    left: 0;
    width: 100%;
    height: calc(100% + 446px);
    background: url(../images/sec_fee_bg.jpg) no-repeat top center/cover;
    z-index: -1
}

.sec_fee .inner_big {
    position: relative;
    z-index: 1
}

.sec_fee .tl_wrap:after {
    margin-top: 1.16666667em
}

.sec_fee .tl_wrap h3 {
    margin-bottom: 7px
}

.sec_fee .tl_wrap p:not(.en) {
    line-height: 1.667
}

.sec_fee .tl_h4 {
    text-align: center
}

.sec_fee .tl_h4:after {
    margin-left: auto;
    margin-right: auto
}

.sec_fee .tl_h4 .sm {
    font-size: 24px
}

.sec_fee .b_title {
    position: relative;
    text-align: center;
    margin-bottom: 38px
}

.sec_fee .b_title:after {
    content: "";
    position: relative;
    display: block;
    width: 160px;
    height: 1px;
    background-color: var(--main-color);
    margin-top: 11px;
    margin-left: auto;
    margin-right: auto
}

.sec_fee .box_h4 {
    padding-top: 48px
}

.sec_fee .box_h4.bx_tl {
    padding-top: 46px
}
.sec_fee .box_h4.bx_tl .btn{
    max-width: 400px;
    margin: 40px auto 0;
}
.sec_fee .block_fee .item {
    width: 36em;
    height: 36em;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 0.9em;
    position: relative;
    z-index: 0;
    font-size: 10px;
    border-radius: 50%;
    /* background-image: linear-gradient( 90deg, rgb(241,243,247) 0%, rgb(255,255,255) 100%);
    box-shadow: 0 0 20px #fff, 0 0 30px #fff, 0 0 40px #fff, inset 0 0 20px #fff, inset 0 0 20px #fff, inset 0 0 20px #fff, inset 0 0 20px #fff; */
}

.sec_fee .block_fee .item:before {
    content: "";
    position: absolute;
    top: -4.7em;
    left: -5em;
    width: 43.6em;
    height: 43.6em;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url(../images/sec_fee_cir.png);
    z-index: -1
}

.sec_fee .block_fee .item.it02 .fee_title, .sec_fee .block_fee .item.it03 .fee_title{
    margin-bottom: 0.75em;
}
.sec_fee .block_fee .item.it01 {
    padding-bottom: 5.1em;    
    padding-right: 2.1em;
}
.sec_fee .block_fee .item.it02 {
    padding-right: 1.7em;
    padding-top: 1.3em;
}
.sec_fee .block_fee .item.it02::before{
    top: -4.3em;
    left: -4.5em;
}
.sec_fee .block_fee .item.it03 {
    padding-right: 1.2em;
    padding-bottom: 1.5em;
}

/* .sec_fee .block_fee .item.it01:before {
    background-image: url(../images/sec_fee_cir01.png)
}

.sec_fee .block_fee .item.it02:before {
    background-image: url(../images/sec_fee_cir02.png)
}

.sec_fee .block_fee .item.it03:before {
    background-image: url(../images/sec_fee_cir03.png)
} */

.sec_fee .block_fee figure {
    display: table;
    margin: 0 auto 1em;
    max-width: 8em
}

.sec_fee .block_fee .fee_title {
    font-size: 2.4em;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 0.5416666666667em
}

.sec_fee .block_fee .fee_price {
    font-size: 2em;
    line-height: 1.8;
    letter-spacing: 0.05em
}

.sec_fee .block_fee .fee_price span {
    font-size: 1.8em;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #2786b7;
    line-height: 1;
}
.sec_fee .block_fee .fee_price span.fz42{font-size: 2.1em;}
.sec_fee .fee_detail {
    border-radius: 4em;
    border: 0.8em solid #ffffff;
    background-color: rgba(255, 255, 255, 0.7);
    padding: 1.2em 3.2em;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2.4em;
    font-size: 10px
}

.sec_fee .fee_detail .col_title {
    display: flex;
    align-items: center
}

.sec_fee .fee_detail .tl {
    line-height: 1.8;
    position: relative;
    top: -0.1666666667em;
    font-size: 1.8em
}

.sec_fee .fee_detail .tl span {
    font-size: 1.5555555556em;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.1em;
    margin-right: 0.6071428571em;
    position: relative;
    top: 0.1428571429em
}

.sec_fee .fee_detail figure {
    width: round(8em, 1px);
    height: round(8em, 1px);
    border-radius: 50%;
    margin-right: 3.9em;
    background-color: #ffffff
}

.sec_fee .fee_detail figure img {
    max-width: 8.8em;
    position: relative;
    left: -0.5em
}

.sec_fee .fee_detail .txt_price {
    font-size: 2.4em;
    letter-spacing: 0.05em;
    line-height: 1.4;
    margin-bottom: 0.625em
}

.sec_fee .fee_detail .txt_price:last-child {
    margin-bottom: 0
}

.sec_fee .fee_detail .txt_price .price {
    font-size: 1.916666666666667em;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.05em
}
.sec_fee .fee_detail .txt_price .unit{
    font-size: 1.166666666666667em;
    font-weight: 500;
    line-height: 1;
}

.sec_fee .fee_detail .col_list {
    position: relative;
    padding-left: 2em
}

.sec_fee .fee_detail .col_list:before {
    content: "";
    position: absolute;
    top: 1.3em;
    left: -0.1em;
    width: 0.1em;
    height: calc(100% - 1.8em);
    background-color: var(--main-color)
}

.sec_fee .fee_detail .col_list>ul {
    display: table;
    margin-left: auto;
    margin-right: auto
}

.sec_fee .fee_detail .col_list li {
    position: relative;
    padding-left: 1.1111111111em;
    margin-bottom: 1.94444444em;
    line-height: 1.5;
    font-size: 1.8em
}

.sec_fee .fee_detail .col_list li:last-child {
    margin-bottom: 0
}

.sec_fee .fee_detail .col_list li:before {
    content: "・";
    position: absolute;
    top: -0.0555555556em;
    left: -0.0555555556em;
    font-size: 1.1111111111em
}

.sec_fee .fee_detail.detail02 {
    padding-top: 3.2em;
    padding-bottom: 4.3em;
    margin-bottom: 4em
}

.sec_fee .fee_detail.detail02 .tl {
    line-height: 2.1;
    top: 0.4em
}

.sec_fee .b_contact {
    margin-top: 56px
}

@media only screen and (min-width:1921px) {
    .sec_fee:before{height: calc(100% + 15vw);}
}
@media only screen and (min-width:769px) {
    .sec_fee .block_fee .item {
        margin-left: 3.4em;
        margin-right: 1.5em;
        margin-top: -2.1em
    }
    .sec_fee .block_fee .item.it01{
    }
    .sec_fee .block_fee .item.it02 {
        margin-top: 6em
    }

    .sec_fee .fee_note {
        line-height: 2.2
    }

    .sec_fee .fee_detail.detail01 figure img {
        top: -0.5em
    }

    .sec_fee .fee_detail .col_title {
        width: 39%
    }

    .sec_fee .fee_detail .col_list {
        width: 33%;
        padding-left: 0.3em;
        padding-right: 2em;
        margin-top: 0.6em;
    }

    .sec_fee .fee_detail.detail02 .col_price {
        width: 25.25%;
        margin-top: -0.5em;
    }
    .sec_fee .fee_detail.detail02 figure{
        position: relative;
        top: 0.2em;
    }
    .sec_fee .fee_detail.detail01 .col_price{
        width: 26%;
        padding-bottom: 1.3em;
    }
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_fee {
        padding: 80px 0
    }

    .sec_fee .block_fee .item {
        font-size: min(10px, 0.75vw)
    }

    .sec_fee .fee_detail {
        font-size: min(10px, 0.8vw);
        border-radius: 3em
    }

    .sec_fee .fee_detail .col_title {
        width: 41%
    }

    .sec_fee .fee_detail .col_list {
        width: 28%;
        padding-left: 0.3em
    }

    .sec_fee .fee_detail .col_list:before {
        top: 0.3em;
        height: 100%
    }

    .sec_fee .fee_detail .col_list li {
        margin-bottom: 1em
    }
    .sec_fee .block_fee {margin-top: 3em;}
}

.sec_message {
    position: relative;
    z-index: 1;
    padding: 108px 0 102px
}

.sec_message:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100% + 600px);
    background-image: url(../images/sec_message_bg.png), linear-gradient(180deg, rgb(247,249,249) 0%, rgba(247,249,249,1) 13%, rgba(255,255,255,1) 100%);
    background-repeat: no-repeat, repeat;
    background-position: top center, top center;
    background-size: 100% auto;
    mask-image: url(../images/sec_message_mask.svg);
    -webkit-mask-image: url(../images/sec_message_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;
    z-index: -1
}
.sec_message .btn{
    margin: 40px auto 0;
}
.sec_message .tl_wrap {
    margin-bottom: 52px
}

.sec_message .tl_wrap:after {
    margin-top: 0.5em
}
.sec_message .tl_wrap h3{color: #3b3d51;}
.sec_message .inner_big{
    max-width: 1760px;
}

.sec_message .txt_sub {
    font-weight: 500;
    font-size: 16px;
    color: #577082;
    line-height: 1.4;
    letter-spacing: 0.1em;
    padding-bottom: 20px;
    margin-bottom: 13px;
    position: relative;
}
.sec_message .txt_sub::after{
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: #c6c6c6;
    width: 275px;
    height: 1px;
}

.sec_message .message_img {
    position: relative;
    z-index: 1;
    font-size: 10px
}

/* .sec_message .message_img:before {
    content: "";
    position: absolute;
    top: -42px;
    left: -321px;
    background: url(../images/sec_message_bf.png) no-repeat center/contain;
    width: 654px;
    height: 871px;
    z-index: -1
} */

.sec_message .box_name {
    position: absolute;
    bottom: 55px;
    right: 3px;
    background-color: #fff;
    padding: 2.6em 3.1em 3em;
    border-radius: 5px;
    text-align: center;
    max-width: 30.4em;
    width: 100%;
}

.sec_message .box_name p {
    line-height: 1
}

.sec_message .box_name .name_jp {
    font-size: 2em;
    letter-spacing: 0.1em;
    margin-bottom: 0.7em;
    height: 100%
}

.sec_message .box_name .name_jp .lg {
    font-size: 1.8em;
    font-weight: 500;
    margin-left: 0.2777778em;
    letter-spacing: 0.16em
}
.sec_message .box_name .name_jp .sm{
    position: relative;
    top: -0.3em;
}



.sec_message .box_name .name_en {
    font-size: 1.4em;
    letter-spacing: 0.1em;
    color: #07afbe;
}

.sec_message .meassage_cont {
    position: relative;
    z-index: 0;
}


.sec_message .meassage_cont>p:not(.txt_sub) {
    margin-bottom: 10px;
    line-height: 1.875;
    letter-spacing: 0.1em;
    font-size: 16px;
}

.sec_message .meassage_cont .tt_bg01 {
    background-color: #eaf1fa;
    padding: 6px 10px 7px;
    border-radius: 6px;
    font-weight: 500;
    line-height: 1.4;
    display: inline-block;
    margin-top: 9px
}

.sec_message .meassage_cont .tt_bg01.mt {
    margin-top: 5px;
    margin-bottom: 5px
}

.sec_message .meassage_cont .tt_bg02 {
    background-color: var(--main-color);
    padding: 1px 10px;
    border-radius: 6px;
    color: #ffffff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    display: inline-block;
    padding: 5px 2px 9px 7px;
    margin-top: 8px;
    margin-bottom: 3px
}

.sec_message .b_contact {
    z-index: 1;
    padding-top: 7.6em;
    padding-left: 3.1em
}
.sec_message .b_contact:before {
    content: "";
    position: absolute;
    top: -2.8em;
    left: -6em;
    width: 100vw;
    height: 100%;    
    background-image: linear-gradient( 180deg, rgb(255,255,255) 0%, rgba(255,255,255, 0) 100%);
    border-top-left-radius: 8em;
    border: 0;
    z-index: -1;
    opacity: 0.9
}
.sec_message .b_contact .btn_tel{
    margin-top: 6.1em;
    padding-left: 0.8em;
}
.sec_message .b_contact .btn_tel .icon:before{top: -1.8em;}
@media only screen and (min-width:769px) {
    

    .sec_message .message_img {
        width: 26%;
        display: flex;
    }

    .sec_message .message_img figure {
        position: absolute;
        left: -6em;
        bottom: 2.4em;
        width: 58.6em;
        height: 65.3em
    }

    .sec_message .message_img figure img {
        position: absolute;
        bottom: 0;
        left: 0
    }
    .sec_message .b_contact {
        width: 35%;
        max-width: 482px;
    }

    .sec_message .meassage_cont {
        width: 33.4%;
    }
}

@media only screen and (min-width:769px) and (max-width:1600px) {
    .sec_message .b_contact{
        font-size: min(10px, 0.6vw);
        width: 32%;
    }
    .sec_message .b_contact:before{left: -2em;}
    .sec_message .message_img{
        width: 30%;
        height: 65.3em;
        font-size: min(9px, 0.55vw);
    }
    .sec_message .message_img figure{
        left: -19px;
    }
    
}
@media only screen and (min-width:769px) and (max-width:1366px) {
    /* .sec_message .txt_sub {
        padding-bottom: 14px;
        margin-bottom: 16px
    } */

    .sec_message .message_img {
        font-size: min(9px, 0.53vw)
    }
    .sec_message .b_contact:before{left: 0;}
    .sec_message .meassage_cont{width: 35.4%;}
    .sec_message .meassage_cont .tt_bg02 {
        font-size: 20px
    }
    .sec_message .box_name{font-size: 1.1em;}

    /* .sec_message .b_contact .btn_tel {
        width: 47%
    } */
}

@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_message {
        padding: 80px 0
    }
    .sec_message::before{
        background-image: url(../images/sec_message_bg.png), linear-gradient(180deg, rgb(247,249,249) 0%, rgba(247,249,249,1) 93%, rgba(255,255,255,1) 100%);
    }
    .sec_message .message_img figure {
        left: -2.5em
    }
}

@media only screen and (min-width:769px) and (max-width:1000px) {

    .sec_message .meassage_cont,
    .sec_message .message_img {
        width: 100%;
        max-width: 550px;
        margin-left: auto;
        margin-right: auto
    }

    .sec_message .message_img {
        font-size: min(10px, 1vw)
    }

    .sec_message .message_img figure {
        position: relative;
        left: 0
    }

    .sec_message .meassage_cont:before {
        left: -80px
    }
    .sec_message .b_contact{
        width: 100%;
        max-width: 100%;
        font-size: min(10px, 1vw);
        padding-left: 0;
        padding-top: 0;
    }
     .sec_message .b_contact::before{display: none;}
    .sec_message .b_contact .btn_tel{
        margin: 3em auto 0;
    }
}
.sec_calendar {
    padding: 126px 0 41px;
    max-width: 1720px;
    width: calc(100% - 40px);
    margin: 0 auto;
    background-color: #fff;
    border-radius: 60px;
    position: relative;
    z-index: 1;
}
.sec_calendar .tl_wrap{
    margin-bottom: 60px;
}
.sec_calendar .tl_wrap p:not(.en){
    line-height: 1.667;
    margin-top: 7px;
}
.sec_calendar .tl_wrap::after{margin-top: 0.833333333em;}
.sec_calendar .idx_calendar{
    border: 1px solid #8aa8c3;
    border-radius: 10px;
    overflow: hidden;
    height: 600px;
}
.sec_calendar .box_text{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 64px;
}
.sec_calendar .box_text p{
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: #bcc2c6;
    text-align: center;
    font-weight: 500;
    letter-spacing: 0.12em;
}
.sec_calendar .box_text::before, .sec_calendar .box_text::after{
    content: '';
    display: block;
    position: relative;
    width: 20em;
    height: 2.833333em;
    background-repeat: no-repeat;
    background-size: 20.8333333em auto;
    margin-top: -2.05555556em;
}
.sec_calendar .box_text::before{
    background-position: left center;
    background-image: url(../images/sec_calendar_txt_bf01.svg);
    right: -0.5em;

}
.sec_calendar .box_text::after{
    background-position: right center;
    background-image: url(../images/sec_calendar_txt_bf02.svg);
    left: -1.83333333em;
}
@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_calendar{padding-top: 80px;}
    .sec_calendar .tl_wrap{margin-bottom: 30px;}
    .sec_calendar .box_text{font-size: min(16px, 2vw);}
}
@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_calendar .box_text::before, .sec_calendar .box_text::after{
        width: 14em;
    }
    .sec_calendar .box_text{
        margin-top: 35px;
    }
    .sec_calendar .box_text::before, .sec_calendar .box_text::after{width: 8em;}
}
.sec_clinic {
    padding: 100px 0 0;
    position: relative;
    z-index: 2
}

.sec_clinic .inner_full {
    z-index: 0;
    position: relative
}

.sec_clinic .inner_full:before {
    content: "";
    position: absolute;
    top: -66px;
    left: 0;
    max-width: 977px;
    width: 57%;
    height: 881px;
    border-radius: 20px;
    background: url(../images/sec_clinic_img.jpg) no-repeat top center/cover;
    z-index: -1
}

.sec_clinic .inner_full:after {
    content: "";
    position: absolute;
    top: -17.3em;
    right: -9.3em;
    background: url(../images/sec_clinic_bf.png) no-repeat center/contain;
    width: 47.5em;
    height: 91.2em;
    z-index: -1;
    font-size: 10px
}

.sec_clinic .tl_wrap {
    margin-bottom: 33px
}

.sec_clinic .tl_wrap:after {
    margin-top: 5px;
    margin-right: 4px
}

.sec_clinic .tl_wrap h3 {
    margin-bottom: -2px
}

.sec_clinic .tl_wrap p:not(.en) {
    font-size: 20px;
    font-weight: 500;
    margin-right: -10px
}

.sec_clinic .block_clinic {
    max-width: 1280px;
    width: 100%;
    margin: 0 auto;
}

.sec_clinic .idx_logo {
    max-width: 307px;
    width: 100%;
    margin: 0 auto 24px
}

.sec_clinic .idx_logo a:hover {
    opacity: 1
}

.sec_clinic .b_info {
    text-align: center;
    background-color: #f8f8f8;
    border-radius: 20px;
    padding: 69px 50px 50px
}
.sec_clinic .b_info .btn{
    margin: 30px auto 0;
}

.sec_clinic .txt_address {
    line-height: 1.6666667
}

.sec_clinic .b_tel {
    max-width: 408px;
    width: 100%;
    height: 8em;
    margin: 26px auto 40px;
    font-size: 10px
}

.sec_clinic .b_tel a {
    background-color: #ffffff;
    border-radius: 50px;
    text-decoration: none;
    font-size: 2.6em;
    color: #577082;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.05em;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0.3846153846em 1.1538461538em 0.3846153846em 2.3846153846em
}

.sec_clinic .b_tel .icon {
    position: relative;
    padding-left: 2.4230769231em
}

.sec_clinic .b_tel .icon:before {
    content: "";
    position: absolute;
    top: 0.0769230769em;
    left: 0.0384615385em;
    width: 0.8846153846em;
    height: 0.8846153846em;
    background: url(../images/ic_tel.svg) no-repeat center/contain
}

.sec_clinic .img_map {
    border-radius: 20px;
    overflow: hidden;
    position: relative
}

.sec_clinic .img_map:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 20px;
    border: 4px solid #ffffff
}

@media only screen and (min-width:769px) {
    .sec_clinic .block_clinic {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    .sec_clinic .block_clinic .gr_btn{
        order: 3;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        margin-top: 40px;
    }
     .sec_clinic .block_clinic .gr_btn .btn{
        width: calc(50% - 20px);
        margin: 10px;
     }
    .sec_clinic .block_clinic .col_info {
        max-width: 620px;
        width: 50%;
        order: 2
    }

    .sec_clinic .block_clinic .col_time {
        max-width: 570px;
        width: 47%;
        order: 1;
        align-self: flex-end;
        margin-bottom: -8px
    }
}

@media only screen and (min-width:769px) and (max-width:1600px) {
    .sec_clinic .inner_full:before {
        left: 20px;
        max-width: 870px;
        width: 56%
    }
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_clinic .inner_full:after {
        right: -31.3em
    }

    .sec_clinic .tl_wrap p:not(.en) {
        font-size: 18px
    }
}

@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_clinic .inner_full:before {
        width: 52%;
        top: -30px
    }

    .sec_clinic .b_info {
        padding: 45px 7% 35px
    }

    .sec_clinic .b_tel {
        font-size: min(10px, 1.2vw)
    }

    .sec_clinic .b_tel .icon {
        padding-left: 1.8em
    }
}

.sp_br {
    display: none
}

@media only screen and (min-width:769px) and (max-width:1000px) {
    .sec_clinic .sp_br {
        display: block
    }
}

.sec_blog {
    padding: 113px 0 0;
    position: relative;
    z-index: 1
}

.sec_blog:after,
.sec_blog:before {
    content: "";
    position: absolute;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: -1;
    font-size: 10px
}

/* .sec_blog:before {
    top: -50.1em;
    left: -0.7em;
    width: 100em;
    height: 95em;
    background-image: url(../images/sec_blog_bg01.png);
    mix-blend-mode: color-burn;
    opacity: 0.5
} */

.sec_blog:after {
    bottom: 0;
    right: 0;
    width: 122em;
    height: 101.7em;
    background-image: url(../images/sec_blog_bg02.png)
}
.sec_blog .tl_wrap{
    margin-bottom: 31px;
}
.sec_blog .tl_wrap::after{display: none;}
.sec_blog .block_blog .item {
    background-color: #fff;
    border: 1px solid #dae2ec;
    border-radius: 40px;
    box-shadow: 0px 8px 54.15px 2.85px rgba(157, 157, 157, 0.04);
    padding: 65px 60px 55px;
}

.sec_blog .list_post li {
    border-bottom: 1px solid rgba(70, 90, 105, 0.2);
    width: auto
}

.sec_blog .list_post li:first-child {
    border-top: 1px solid rgba(70, 90, 105, 0.2)
}

.sec_blog .list_post li a {
    display: flex;
    text-decoration: none;
    padding: 18px 0px 22px;
    --w: 103px;
    transition: all 0.3s;
    letter-spacing: 0.1em;
    white-space: nowrap;
    max-width: 100%;
    color: var(--clr1);
    position: relative;
    line-height: 1.6668
}

.sec_blog .list_post li a:after {
    content: "";
    position: absolute;
    top: -5px;
    bottom: 0;
    right: 16px;
    width: 8px;
    height: 10px;
    margin: auto;
    background: url(../images/ic_arr_news.svg) no-repeat center/contain;
    transition: all 0.3s
}

.sec_blog .list_post li a span {
    display: inline-block
}

.sec_blog .list_post li a:hover {
    opacity: 1
}

@media only screen and (min-width:769px) {
    .sec_blog .list_post li a:hover {
        background-color: rgba(138, 168, 195, 0.16)
    }

    .sec_blog .list_post li a:hover:after {
        right: 1em
    }
    .sec_blog .block_blog .item{
        width: calc(50% - 20px);
    }
}

.sec_blog .list_post li .date {
    width: var(--w);
    transition: all 0.3s;
    position: relative;
    letter-spacing: 0.05em
}

.sec_blog .list_post li .date:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 1px;
    height: 15px;
    background-color: #eaf1fa
}

.sec_blog .list_post li .cate {
    color: #8aa8c3;
    width: 112px;
    padding-left: 15px;
    font-size: 16px;
    position: relative;
    top: 3px
}

.sec_blog .list_post li .title {
    width: calc(100% - var(--w));
    position: relative;
    padding-right: 1.5em;
    padding-left: 1.5em;
    text-overflow: ellipsis;
    overflow: hidden
}

.sec_blog .btn {
    margin-left: auto;
    margin-right: auto;
    margin-top: 43px
}

@media only screen and (min-width:769px) {
    .sec_blog .b_tabs .tab_it:hover {
        background-color: #07afbe;
        color: #ffffff
    }

    .sec_blog .block_blog {
        display: flex;
        justify-content: space-between
    }

    .sec_blog .block_blog .col_tl {
        width: 25%
    }

    .sec_blog .block_blog .col_content {
        margin-top: 31px;
        width: 72%;
        max-width: 752px
    }
}

@media only screen and (min-width:769px) and (max-width:1200px) {
    .sec_blog {
        padding-top: 80px;
    }
    .sec_blog .btn{
        margin-top: 25px;
    }

    .sec_blog:after,
    .sec_blog:before {
        font-size: min(8px, 0.6vw)
    }
    .sec_blog .block_blog .item{
        width: calc(50% - 10px);
        padding: 35px 4%;
    }

    .sec_blog .list_post li a {
        padding: 18px 0 18px;
        --w: 90px;
    }
    .sec_blog .list_post li a:after{top: 0;}
    .sec_blog .list_post li .cate {
        top: 0;
        font-size: 14px
    }

    .sec_blog .list_post li .title {
        padding-left: 0.8em;
    }
}
.sec_beyond{
    padding: 106px 0 126px;
    position: relative;
    z-index: 0;
}
.sec_beyond::before, .sec_beyond::after{
    content: '';
    position: absolute;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
    font-size: 10px;
}
.sec_beyond::before{
    top: -81.8em;
    left: 0;
    background-image: url(../images/sec_beyond_bg01.png);
    width: 132.5em;
    height: 207.7em;
}
.sec_beyond::after{
    top: -36.6em;
    right: 0;
    background-image: url(../images/sec_beyond_bg02.png);
    width: 94.9em;
    height: 100em;
}
.sec_beyond .tl_wrap{
    margin-bottom: 62px;
}
.sec_beyond .tl_wrap p:not(.en){
    line-height: 1.667;
    margin-top: 7px;
}
.sec_beyond .tl_wrap::after{margin-top: 0.77777778em;}
/* .sec_beyond .block_beyond .item{
    border: #8aa8c3 1px solid;
    border-radius: 5px;
    overflow: hidden;
    background-color: #ffffff;
    font-size: 10px;
    position: relative;
} */
.sec_beyond .bn_btn{
    padding: 0.2em 1em;
    background-color:#eceef1;
    margin: 0;
    flex: 1 1 auto;
}
.sec_beyond .bn_btn .arr{
    margin: 0 auto;
    display: table;
    color: #8aa8c3;
    font-size: 1.5em;
    font-weight: 500;
    position: relative;
    padding-right: 1.13333333em;
}
.sec_beyond .bn_btn .arr::after{
    content: '';
    position: absolute;
    top: 0.13333333em;
    bottom: 0;
    right: 0;
    margin: auto;
    width: 1.0666666667em;
    height: 0.333333333em;
    background: url(../images/ic_arr03.png) no-repeat center/contain;
}
.sec_beyond .block_beyond{
    margin-bottom: 28px;
}
.sec_beyond .block_beyond .box_in{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.sec_beyond .block_beyond .item .bn_logo{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1em 1em 0.4em;
    min-height: 9.1em;
}
/* .sec_beyond .block_beyond .item.it01 img{max-width: 27.5em;}
.sec_beyond .block_beyond .item.it02 img{max-width: 18.4em;}
.sec_beyond .block_beyond .item.it03 img{max-width: 25.6em;}
.sec_beyond .block_beyond .item.it04 img{max-width: 17.7em;} */
@media only screen and (min-width:769px){
    .sec_beyond .block_beyond .item{
        width: calc((100% - 3.6em)/4);
        margin-right: 1.2em;
        margin-bottom: 1.2em;
    }
    .sec_beyond .block_beyond .item:nth-child(4n+4){
        margin-right: 0;
    }
    .sec_beyond .block_beyond .item img{
        max-height: 120px;
        width: auto;
        height: 100%;
    }
}
@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_beyond{
        padding-top: 80px;
        padding-bottom: 70px;
    }    
    .sec_beyond::before, .sec_beyond::after{font-size: min(8px, 0.8vw);}
    .sec_beyond .tl_wrap{margin-bottom: 33px;}
}
@media only screen and (min-width:769px) and (max-width:1200px){
    .sec_beyond .block_beyond .item{
        font-size: min(8px, 0.7vw);
    }
}

.sec_relative {
    padding-bottom: 68px
}

.sec_relative .tl_wrap {
    margin-bottom: 60px
}
.sec_relative .tl_wrap .cl_gr{
    font-size: 1.333333333em;
    font-weight: 500;
    color: var(--main-color);
    line-height: 1;
}

.sec_relative .tl_wrap h3 {
    margin-bottom: 6px
}

.sec_relative .tl_wrap p:not(.en) {
    line-height: 1.667;
    margin-top: 7px;
}
.sec_relative .tl_wrap::after{margin-top: 0.8333333333em;}

.sec_relative .l_btn {
    display: flex;
    justify-content: center;
    flex-wrap: wrap
}

.sec_relative .l_btn .btn_it {
    max-width: 41.2em;
    height: 12em;
    border-radius: 5px;
    background: var(--cl_bg);
    border: 1px solid var(--border-cl);
    overflow: hidden;
    font-size: 10px;
    position: relative;
}

.sec_relative .l_btn .btn_it.btn01 {
    --cl_bg: #ddeff7;
}

.sec_relative .l_btn .btn_it.btn02 {
    --cl_bg: #cdefe9;
}

.sec_relative .l_btn .btn_it.btn03 {
    --cl_bg: linear-gradient( 90deg, rgb(248,221,229) 0%, rgb(251,230,201) 100%);
}

.sec_relative .l_btn .btn_it.btn04 {
    --cl_bg: linear-gradient( 90deg, rgb(220,236,248) 0%, rgb(227,242,213) 100%);
   
}

.sec_relative .l_btn .btn_it.btn05 {
    --cl_bg: #f6d9d9;
   
}
.sec_relative .l_btn .btn_it.btn06 {
    --cl_bg: #f8ded2;
    ----border-cl: #dcecf8;
}
.sec_relative .l_btn .btn_it.btn07 {
    --cl_bg: #f6dce7;
   
}
.sec_relative .l_btn .btn_it.btn08 {
    --cl_bg: #fbe6c9;
   
}
.sec_relative .l_btn .btn_it.btn09 {
    --cl_bg: #e2f1d2;
   
}
.sec_relative .l_btn .btn_it.btn10 {
    --cl_bg: #dcebfa;
   
}
.sec_relative .l_btn .btn_it.btn11 {
    --cl_bg: #e9ecef;
   
}
.sec_relative .l_btn .btn_it.btn12 {
    --cl_bg: #eae0f3;
   
}

.sec_relative .l_btn a {
    width: 100%;
    height: 100%;
    z-index: 1;
}
.sec_relative .l_btn .btn_it .b_in{
    width: calc(100% - 2px);
    height: calc(100% - 2px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
    background: var(--cl_bg);
    padding: 2.1em 1.7em 2.4em 2.8em;
    border-radius: 5px;
    z-index: 0;
}

.sec_relative .l_btn .b_in:after,
.sec_relative .l_btn .b_in:before {
    content: "";
    position: absolute;
    bottom: -1.9em;
    right: -1.9em;
    width: 6em;
    height: 6em;
    border-radius: 50%
}

.sec_relative .l_btn .b_in:before {
    mask-image: url(../images/ic_arr_btn.svg);
    -webkit-mask-image: url(../images/ic_arr_btn.svg);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: 0.7em auto;
    -webkit-mask-size: 0.7em auto;
    mask-position: top 1.9em left 2.2em;
    -webkit-mask-position: top 1.7em left 2em;
    background-color: #778189;
    z-index: -1
}

.sec_relative .l_btn .b_in:after {
    background-color: rgba(255, 255, 255, 0.8);
    z-index: -2
}

.sec_relative .l_btn span {
    line-height: 1.3;
    display: block;
    letter-spacing: 0.1em;
    color: #778189
}

.sec_relative .l_btn .tt_lg {
    font-size: 2.2em;
    font-weight: 500;
    margin-bottom: 0.5em
}

.sec_relative .l_btn .tt_sm {
    font-size: 1.5em
}

@media only screen and (min-width:769px) {
    .sec_relative .l_btn .btn_it {
        width: calc((100% - 3.6em) / 4);
        margin-right: 1.2em;
        margin-bottom: 1.2em
    }

    .sec_relative .l_btn .btn_it:last-child,
    .sec_relative .l_btn .btn_it:nth-child(4n+4) {
        margin-right: 0
    }
}

@media only screen and (min-width:769px) and (max-width:1366px) {
    .sec_relative {
        padding-bottom: 45px
    }
    .sec_relative .tl_wrap{
        margin-bottom: 30px;
    }
    .sec_relative .l_btn .btn_it {
        font-size: min(10px, 0.75vw)
    }
    .sec_relative .l_btn span{letter-spacing: 0.05em;}

    .sec_relative .l_btn .btn_it .b_in {
        padding: 2.1em 1em 2.4em 2em
    }
}