@charset "utf-8";
/* mv */
@media (min-width: 769px) {
    .mv_ttl {
        width: 474px;
        top: 172px;
        left: 44px;
    }
    .mv_txt {
        width: 281px;
        top: 535px;
        left: 54px;
    }
}
@media (max-width: 768px) {
    .mv_ttl {
        width: 619rem;
        top: 317rem;
        left: 59rem;
    }
    .mv_txt {
        width: 358rem;
        top: 773rem;
        left: 71rem;
    }
}

/* main_kv */
.main_kv {
    margin-top: -23rem;
    padding-bottom: 404rem;
    position: relative;
    z-index: 1;
}
.main_kv_txt_en {
    width: 268rem;
    position: absolute;
    top: -187rem;
    left: 95rem;
}
.main_kv_sun {
    width: 597rem;
    position: absolute;
    top: -187rem;
    left: 44rem;
}
.main_kv_deco_txt {
    font-size: 24rem;
    line-height: 1;
    position: absolute;
    writing-mode: vertical-rl;
    letter-spacing: 0.32em;
    top: 50rem;
}
.main_kv_deco_txt_left {
    left: 20rem;
    rotate: 180deg;
}
.main_kv_deco_txt_right {
    right: 20rem;
}
.main_kv_ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 600;
    line-height: 1;
    position: relative;
    z-index: 1;
}
.main_kv_ttl_txt_s {
    font-size: 48rem;
    display: inline-block;
    letter-spacing: 0.1em;
}
.main_kv_ttl_txt_m {
    font-size: 80rem;
    display: inline-block;
    margin-top: 40rem;
    letter-spacing: 0.1em;
}
.main_kv_ttl_txt_l {
    font-size: 96rem;
    display: inline-block;
    margin-top: 24rem;
    letter-spacing: 0.1em;
}
.main_kv_ttl_txt_m_strong {
    color: var(--color-orange);
    position: relative;
    display: inline-block;
    font-weight: 600;
}
.main_kv_ttl_txt_m_strong::after {
    content: "";
    display: block;
    width: 17rem;
    height: 17rem;
    border-radius: 50%;
    background-color: var(--color-orange);
    position: absolute;
    top: -24rem;
    left: 0;
    right: 0;
    margin-inline: auto;
}
.main_kv_txt_box {
    margin-top: 48rem;
    width: 535rem;
    background-color: var(--color-white);
    padding-block: 30rem;
    margin-inline: auto;
    border-top: 2rem solid var(--color-black);
    border-bottom: 2rem solid var(--color-black);
    position: relative;
    z-index: 4;
}
.main_kv_txt {
    line-height: 1;
    font-size: 36rem;
    letter-spacing: 0.16em;
    text-align: center;
}
.main_kv_neko,
.main_kv_l,
.main_kv_r {
    position: absolute;
    z-index: 4;
}
.main_kv_illust {
    position: absolute;
    width: 100%;
    bottom: 0;
    left: 0;
    z-index: 3;
}
.main_kv_neko {
    width: 202rem;
    left: 269rem;
    bottom: -12rem;
}
.main_kv_l {
    width: 115rem;
    left: 38rem;
    bottom: 198rem;
}
.main_kv_r {
    width: 277rem;
    left: 473rem;
    bottom: -7rem;
}
.main_kv_dot {
    position: absolute;
    top: -364rem;
    left: -21rem;
}
.animation_ready.animation_loaded .main_kv_neko.is_animated {
    animation: main_kv_neko 1s 0.5s linear forwards;
}
@keyframes main_kv_neko {
    0%, 20%, 40%, 60%, 80%, 100% {
        translate: 0 0;
    }
    10%, 30%, 70%, 90% {
        translate: 0 -10rem;
    }
}
.animation_ready .main_kv_l,
.animation_ready .main_kv_r {
    opacity: 0;
    transition: opacity 0.5s;
}
.animation_ready.animation_loaded .main_kv_l.is_animated,
.animation_ready.animation_loaded .main_kv_r.is_animated {
    opacity: 1;
}

/* worry */
.worry_deco_dot {
    top: -24rem;
    right: -50rem;
}
.worry_fukidashi_neko_block {
    width: 100%;
    height: 293rem;
    position: relative;
    margin-top: 125rem;
}
.worry_fukidashi_neko {
    width: 366rem;
    height: 265rem;
    position: absolute;
    top: -2rem;
    left: 73rem;
    background: url(../images/04/worry_fukidashi_neko_bg.svg) no-repeat center / contain;
    display: flex;
    justify-content: center;
    align-items: center;
}
.worry_fukidashi_neko_txt {
    font-size: 28rem;
    line-height: calc(44/28);
    letter-spacing: 0.1em;
    font-weight: 700;
}
.worry_fukidashi_neko_img_wrap {
    position: absolute;
    width: 179rem;
    top: 0;
    left: 472rem;
}
.worry_fukidashi_neko_deco {
    width: 93rem;
    position: absolute;
    top: -62rem;
    left: 49rem;
}
.worry_fukidashi_list {
    display: flex;
    flex-direction: column;
    gap: 24rem;
    margin-top: 78rem;
}
.worry_fukidashi_list li {
    width: 543rem;
    height: 246rem;
    padding-bottom: 37rem;
    position: relative;
    display: flex;
    align-items: center;
    padding: 0 0 37rem 69rem;
}
.worry_fukidashi_list li:nth-child(even) {
    margin-left: auto;
}
.worry_fukidashi_list_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.worry_fukidashi_list_bg_path {
    fill-rule: evenodd;
}
.worry_fukidashi_list li:nth-child(even) .worry_fukidashi_list_bg {
    scale: -1 1;
}
.worry_fukidashi_list li:nth-child(odd) .worry_fukidashi_list_bg_path {
    fill: #fd6818;
}
.worry_fukidashi_list li:nth-child(even) .worry_fukidashi_list_bg_path {
    fill: #8cd601;
}
.worry_fukidashi_list_txt {
    position: relative;
    z-index: 1;
    font-size: 32rem;
    line-height: calc(56/32);
    color: var(--color-white);
    width: 420rem;
}
.worry_fukidashi_list li:nth-child(odd) .worry_fukidashi_list_txt {
    color: var(--color-white);
}
.worry_fukidashi_list li:nth-child(even) .worry_fukidashi_list_txt {
    color: var(--color-black);
}
.worry_fukidashi_list_txt_center {
    text-align: center;
}
.worry_fukidashi_list li::after {
    content: "";
    display: block;
    position: absolute;
}
.worry_fukidashi_list li:nth-child(odd)::after {
    width: 47rem;
    height: 75rem;
    top: 24rem;
    right: -72rem;
    background: url(../images/04/worry_fukidashi_list_deco_odd.svg) no-repeat center / contain;
}
.worry_fukidashi_list li:nth-child(even)::after {
    width: 81rem;
    height: 123rem;
    top: 34rem;
    left: -100rem;
    background: url(../images/04/worry_fukidashi_list_deco_even.svg) no-repeat center / contain;
}
.worry_fukidashi_area_bottom {
    margin-top: 64rem;
    font-size: 48rem;
    font-weight: 600;
}
.worry_fukidashi_area_bottom_txt {
    line-height: calc(88/48);
    margin-top: 26rem;
    text-align: center;
}
.worry_fukidashi_area_bottom_neko {
    margin-top: 76rem;
}
.worry_fukidashi_area_bottom_neko_img {
    width: 711rem;
    margin-left: auto;
    position: relative;
}
.worry_fukidashi_area_bottom_neko_deco_wrap {
    width: 94rem;
    height: 117rem;
    position: absolute;
    top: -35rem;
    left: 158rem;
}
.worry_fukidashi_area_bottom_neko_deco {
    position: absolute;
}
.worry_fukidashi_area_bottom_neko_deco1 {
    top: 0;
    left: 0;
    width: 94rem;
}
.worry_fukidashi_area_bottom_neko_deco2 {
    top: 85rem;
    left: 44rem;
    width: 19rem;
}
.worry_fukidashi_area_bottom_neko_deco3 {
    bottom: 0;
    left: 59rem;
    width: 17rem;
}
.prediction {
    margin-top: 182rem;
}
.prediction_kv {
    padding-bottom: 425rem;
    position: relative;
}
.prediction_kv_txt {
    text-align: center;
    font-size: 48rem;
    line-height: calc(88/48);
    letter-spacing: 0.1em;
}
.prediction_kv_txt_white_bg {
    font-size: 72rem;
    display: inline-block;
    line-height: 1;
    padding: 7rem 20rem 11rem 20rem;
    background-color: var(--color-white);
    margin-right: 18rem;
}
.prediction_kv_bg,
.prediction_kv_neko,
.prediction_kv_fukidashi {
    position: absolute;
}
.prediction_kv_bg {
    width: 100%;
    left: 0;
    bottom: 0;
}
.prediction_kv_neko {
    width: 236rem;
    left: 51rem;
    bottom: -55rem;
    line-height: 0;
    z-index: 1;
}
.prediction_kv_fukidashi {
    width: 267rem;
    height: 198rem;
    background: url(../images/04/prediction_kv_fukidashi.svg) no-repeat center / contain;
    left: 48rem;
    bottom: 242rem;
}
.prediction_kv_fukidashi_txt {
    padding-top: 50rem;
    font-weight: 700;
    font-size: 28rem;
    line-height: calc(44/28);
    text-align: center;
}
.prediction_box {
    margin-top: 150rem;
    position: relative;
}
.prediction_box_en {
    width: 200rem;
    position: absolute;
    top: -32rem;
    right: 46rem;
}
.prediction_box_ttl {
    text-align: center;
    font-size: 40rem;
    font-weight: 600;
    line-height: calc(64/40);
    letter-spacing: 0.1em;
    padding-bottom: 72rem;
    background: url(../images/common/fukidashi_line.svg) no-repeat bottom center / 100% auto;
}
.prediction_box_txt {
    margin-top: 35rem;
    text-align: center;
    font-size: 28rem;
    line-height: calc(64/28);
    white-space: nowrap;
}
.prediction_box_txt strong {
    font-weight: 600;
    font-size: 44rem;
    line-height: calc(60/44);
}
.prediction_triangle {
    width: 322rem;
    height: 161rem;
    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    background-image: -moz-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -webkit-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -ms-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    margin: 52rem auto 0;
}
.prediction_triangle_txt {
    font-size: 40rem;
    line-height: calc(64/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 70rem;
}
.prediction_dot1 {
    top: 205rem;
    left: -23rem;
}
.prediction_dot2 {
    top: 826rem;
    right: -93rem;
}
/* worry animation */
.animation_ready.animation_loaded .worry_fukidashi_neko_block.is_animated .worry_fukidashi_neko_img,
.animation_ready.animation_loaded .prediction_kv_neko.is_animated {
    animation: worry_fukidashi_neko_img 1s 0.5s linear forwards;
    transform-origin: bottom center;
    --worry-neko-rotate: -3deg;
}
@keyframes worry_fukidashi_neko_img {
    0%, 20%, 40%, 60%, 80%, 100% {
        rotate: 0deg;
    }
    10%, 30%, 70%, 90% {
        rotate: var(--worry-neko-rotate);
    }
}
.animation_ready .worry_fukidashi_area_bottom_neko_deco {
    opacity: 0;
    transition: opacity 0.6s;
}
.animation_ready.animation_loaded .worry_fukidashi_area_bottom_neko_img.is_animated .worry_fukidashi_area_bottom_neko_deco {
    opacity: 1;
}
.animation_ready .worry_fukidashi_area_bottom_neko_deco2 {
    transition-delay: 0.2s;
}
.animation_ready .worry_fukidashi_area_bottom_neko_deco1 {
    transition-delay: 0.4s;
}

/* breakdown */
.breakdown_dot {
    top: -176rem;
    left: -50rem;
}
.breakdown_deco_triangle {
    width: 225rem;
    height: 450rem;
    top: -220rem;
    right: -72rem;
}
.breakdown_txt {
    font-size: 40rem;
    line-height: calc(72/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 47rem;
    padding-bottom: 33rem;
    position: relative;
}
.breakdown_txt::after {
    content: "";
    display: block;
    width: 59rem;
    height: 4rem;
    background-color: var(--color-black);
    border-radius: 100rem;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin-inline: auto;
}
.breakdown_box {
    margin-top: 80rem;
    position: relative;
}
.breakdown_dot1 {
    top: 320rem;
    right: -30rem;
}
.breakdown_dot2 {
    top: 1480rem;
    left: -155rem;
}
.breakdown_dot3 {
    left: -84rem;
    bottom: 5rem;
}
.breakdown_box_list {
    display: flex;
    flex-direction: column;
    gap: 45rem;
}
.breakdown_box_list_ttl {
    font-weight: 600;
    font-size: 38rem;
    color: var(--color-orange);
}
.breakdown_box_list > li + li {
    padding-top: 56rem;
    position: relative;
}
.breakdown_box_list > li + li::before {
    content: "";
    display: block;
    width: 100%;
    height: 4rem;
    border-top: 4rem dotted var(--color-black);
    position: absolute;
    top: 0;
    left: 0;
}
.breakdown_box_list_img {
    margin-top: 32rem;
}
.breakdown_box_list_txt {
    margin-top: 20rem;
    font-weight: 500;
    font-size: 28rem;
    line-height: calc(64/28);
}
.natural_disaster {
    margin-top: 130rem;
    position: relative;
}
.natural_disaster_dot {
    top: 645rem;
    right: -60rem;
}
.natural_disaster_ttl {
    text-align: center;
}
.natural_disaster_ttl_txt {
    font-weight: 600;
    font-size: 48rem;
    display: inline-block;
    position: relative;
}
.natural_disaster_ttl_txt::before,
.natural_disaster_ttl_txt::after {
    content: '';
    width: 4rem;
    height: 48rem;
    border-radius: 100rem;
    background-color: var(--color-black);
    display: block;
    position: absolute;
    bottom: 0;
}
.natural_disaster_ttl_txt::before {
    left: -40rem;
    rotate: -30deg;
}
.natural_disaster_ttl_txt::after {
    right: -40rem;
    rotate: 30deg;
}
.natural_disaster_txt {
    margin-top: 25rem;
    font-size: 28rem;
    line-height: calc(56/28);
    text-align: center;
}
.natural_disaster_img {
    margin-top: 20rem;
    position: relative;
}
.natural_disaster_triangle_txt {
    font-size: 40rem;
    line-height: calc(64/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 70rem;
}
.natural_disaster_triangle {
    width: 322rem;
    height: 161rem;
    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    background-image: -moz-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -webkit-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -ms-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    margin: 52rem auto 0;
}
.breakdown_area_ttl {
    margin-top: 74rem;
    text-align: center;
}
.breakdown_area_ttl_txt {
    font-weight: 600;
    font-size: 40rem;
    line-height: calc(64/40);
    display: inline-block;
    position: relative;
}
.breakdown_area_ttl_txt::before,
.breakdown_area_ttl_txt::after {
    content: '';
    width: 4rem;
    height: 112rem;
    border-radius: 100rem;
    background-color: var(--color-black);
    display: block;
    position: absolute;
    bottom: 0;
}
.breakdown_area_ttl_txt::before {
    left: -40rem;
    rotate: -30deg;
}
.breakdown_area_ttl_txt::after {
    right: -40rem;
    rotate: 30deg;
}
.breakdown_area_wrap {
    margin-top: 50rem;
    display: flex;
    flex-direction: column;
    gap: 46rem;
}
.breakdown_area {
    border-radius: 56rem;
    background-color: var(--color-white);
    overflow: hidden;
}
.breakdown_area_list_ttl {
    text-align: center;
    padding-block: 24rem;
    font-size: 32rem;
}
.breakdown_area_list_ttl_orange {
    color: var(--color-white);
    background-color: var(--color-simulate-orange);
}
.breakdown_area_list_ttl_green {
    background-color: var(--color-simulate-green);
}
.breakdown_area_list {
    padding-inline: 50rem;
}
.breakdown_area_list > li {
    padding-block: 46rem;
    position: relative;
}
.breakdown_area_list > li + li::before {
    content: "";
    display: block;
    width: 100%;
    height: 4rem;
    border-top: 4rem dotted var(--color-black);
    position: absolute;
    top: 0;
    left: 0;
}
.breakdown_area_list_txt {
    font-size: 32rem;
    line-height: calc(48/32);
    text-align: center;
}
.breakdown_area_list_txt_l {
    font-size: 40rem;
}
.breakdown_area_list_img {
    width: 448rem;
    margin: 26rem auto 0;
}
.breakdown_area_neko {
    width: 740rem;
    margin-top: 250rem;
    margin-left: auto;
    position: relative;
}
.breakdown_area_neko_img,
.breakdown_area_neko_txt,
.breakdown_area_neko_fukidashi {
    position: absolute;
}
.breakdown_area_neko_img {
    width: 186rem;
    right: 110rem;
    bottom: 134rem;
}
.breakdown_area_neko_txt {
    width: 215rem;
    right: 80rem;
    bottom: 440rem;
}
.breakdown_area_neko_fukidashi {
    width: 329rem;
    height: 238rem;
    padding: 72rem 0 0 48rem;
    background: url(../images/04/breakdown_area_neko_fukidashi.png) no-repeat center / contain;
    right: 330rem;
    bottom: 220rem;
}
.breakdown_area_neko_fukidashi_txt {
    font-weight: 700;
    font-size: 28rem;
    line-height: calc(44/28);
}
.preparation_txt {
    margin-top: 148rem;
    font-weight: 500;
    font-size: 48rem;
    line-height: calc(72/48);
    text-align: center;
}
.preparation_explanation {
    margin-top: 148rem;
}
.preparation_explanation_dot {
    top: 162rem;
    right: -78rem;
}
/* breakdown animation */
.animation_ready .breakdown_txt::after {
    scale: 0 1;
    transition: scale 0.3s;
}
.animation_ready.animation_loaded .breakdown_txt.is_animated::after {
    scale: 1 1;
}
.animation_ready .breakdown_box_list > li + li::before,
.animation_ready .breakdown_area_list > li + li::before {
    transition: clip-path 0.3s;
    clip-path: var(--clip-path-zero);
}
.animation_ready.animation_loaded .breakdown_box_list > li + li.is_animated::before,
.animation_ready.animation_loaded .breakdown_area_list > li + li.is_animated::before {
    clip-path: var(--clip-path-full);
}
.animation_ready.animation_loaded .breakdown_area_neko_img.is_animated {
    animation: breakdown_area_neko_img 1s 0.5s linear forwards;
    transform-origin: bottom center;
    --doubt-neko-rotate: -3deg;
}
@keyframes breakdown_area_neko_img {
    0%, 20%, 40%, 60%, 80%, 100% {
        rotate: 0deg;
    }
    10%, 30%, 70%, 90% {
        rotate: var(--doubt-neko-rotate);
    }
}

/* guarantee */
.guarantee_dot1 {
    top: -150rem;
    left: -80rem;
}
.guarantee_dot2 {
    top: 334rem;
    right: -80rem;
}
.guarantee_deco_triangle {
    width: 225rem;
    height: 450rem;
    top: -150rem;
    right: -94rem;
}
.guarantee .section_ttl {
    position: relative;
}
.guarantee_txt {
    font-size: 40rem;
    line-height: calc(72/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 47rem;
    padding-bottom: 33rem;
    position: relative;
}
.guarantee_txt::after {
    content: "";
    display: block;
    width: 59rem;
    height: 4rem;
    background-color: var(--color-black);
    border-radius: 100rem;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin-inline: auto;
}
.guarantee_area_wrap {
    margin-top: 82rem;
    display: flex;
    flex-direction: column;
    gap: 58rem;
}
.guarantee_area {
    border-radius: 56rem;
    background-color: var(--color-white);
}
.guarantee_area_list_top_ttl {
    text-align: center;
    padding-block: 26rem;
    font-size: 32rem;
    border-radius: 56rem 56rem 0 0;
    position: relative;
}
.guarantee_area_list_top_ttl_orange {
    color: var(--color-white);
    background-color: var(--color-simulate-orange);
}
.guarantee_area_list_top_ttl_green {
    background-color: var(--color-simulate-green);
}
.guarantee_area_list_top_ttl_tag {
    width: 170rem;
    height: 170rem;
    font-size: 32rem;
    line-height: calc(42/32);
    color: var(--color-green);
    border: 2px solid var(--color-simulate-green);
    border-radius: 50%;
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: -40rem;
    left: 40rem;
}
.guarantee_area_list {
    padding: 51rem 50rem 69rem;
}
.guarantee_area_list > li {
    position: relative;
}
.guarantee_area_list > li + li {
    margin-top: 42rem;
    padding-top: 47rem;
}
.guarantee_area_list > li + li::before {
    content: "";
    display: block;
    width: 100%;
    height: 4rem;
    border-top: 4rem dotted var(--color-black);
    position: absolute;
    top: 0;
    left: 0;
}
.guarantee_area_list_ttl {
    font-size: 38rem;
    line-height: calc(64/38);
    letter-spacing: 0.1em;
}
.guarantee_area_list_txt {
    margin-top: 7rem;
    font-size: 28rem;
    line-height: calc(64/28);
}
.guarantee_triangle_txt {
    font-size: 40rem;
    line-height: calc(64/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 50rem;
}
.guarantee_triangle {
    width: 322rem;
    height: 161rem;
    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    background-image: -moz-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -webkit-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -ms-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    margin: 68rem auto 0;
}
.checkpoint_box {
    margin-top: 110rem;
    position: relative;
}
.checkpoint_box_dot {
    top: -230rem;
    left: -112rem;
}
.checkpoint_box_deco_triangle {
    width: 225rem;
    height: 450rem;
    top: -430rem;
    right: -110rem;
}
.checkpoint_box_ttl {
    text-align: center;
    font-size: 40rem;
    font-weight: 600;
    line-height: calc(76/40);
    letter-spacing: 0.1em;
}
.checkpoint_box_ttl_l {
    font-size: 44rem;
}
.checkpoint_box_list > li {
    padding-block: 55rem;
    position: relative;
}
.checkpoint_box_list > li:last-child {
    padding-bottom: 0;
}
.checkpoint_box_list > li + li::before {
    content: '';
    display: block;
    width: 100%;
    height: 4rem;
    border-top: 4rem dotted var(--color-black);
    position: absolute;
    top: 0;
    left: 0;
}
.checkpoint_box_list_ttl {
    font-weight: 600;
    padding-left: 80rem;
    font-size: 38rem;
    line-height: calc(64/38);
    position: relative;
}
.checkpoint_box_list_ttl::before {
    content: '';
    width: 58rem;
    height: 71rem;
    background: url(../images/04/checkpoint_box_list_icon.svg) no-repeat 50% / contain;
    display: block;
    position: absolute;
    top: -10rem;
    left: 0;
}
.checkpoint_box_list_txt {
    margin-top: 20rem;
    font-size: 28rem;
    line-height: calc(64/28);
}
.checkpoint_box_top_ttl {
    margin-bottom: 48rem;
    padding-bottom: 64rem;
    font-size: 40rem;
    line-height: calc(64/40);
    text-align: center;
    background: url(../images/04/checkpoint_box_top_ttl_line.svg) no-repeat 50% 100% / 542rem auto;
}
.lease {
    margin-top: 138rem;
}
.lease_ttl {
    font-weight: 600;
    font-size: 56rem;
    line-height: calc(80/56);
    text-align: center;
}
.lease_txt {
    margin-top: 46rem;
    font-weight: 500;
    font-size: 28rem;
    line-height: calc(56/28);
}
.lease_btn {
    height: 140rem;
    margin-top: 64rem;
    font-weight: 500;
    font-size: 32rem;
    line-height: calc(48/32);
    border: 2px solid var(--color-black);
    border-radius: 100rem;
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.lease_btn::after {
    content: '';
    width: 14rem;
    height: 14rem;
    margin: auto;
    border-top: 2px solid var(--color-black);
    border-right: 2px solid var(--color-black);
    display: block;
    position: absolute;
    top: 0;
    right: 90rem;
    bottom: 0;
    rotate: 45deg;
}
.lease_neko {
    width: 750rem;
    margin-top: 64rem;
    position: relative;
}
.lease_neko_img {
    width: 336rem;
    position: absolute;
    right: 205rem;
    bottom: 50rem;
}
.lease_explanation {
    margin-top: 120rem;
}
.lease_explanation_dot {
    top: 160rem;
    right: -76rem;
}
.lease_triangle_txt {
    font-size: 40rem;
    line-height: calc(64/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 170rem;
}
.lease_triangle {
    width: 322rem;
    height: 161rem;
    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    background-image: -moz-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -webkit-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -ms-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    margin: 72rem auto 0;
}
/* guarantee animation */
.animation_ready .guarantee_txt::after {
    scale: 0 1;
    transition: scale 0.3s;
}
.animation_ready.animation_loaded .guarantee_txt.is_animated::after {
    scale: 1 1;
}
.animation_ready .guarantee_area_list > li + li::before,
.animation_ready .checkpoint_box_list > li + li::before {
    transition: clip-path 0.3s;
    clip-path: var(--clip-path-zero);
}
.animation_ready.animation_loaded .guarantee_area_list > li + li.is_animated::before,
.animation_ready.animation_loaded .checkpoint_box_list > li + li.is_animated::before {
    clip-path: var(--clip-path-full);
}
.animation_ready.animation_loaded .lease_neko_img.is_animated {
    animation: worry_fukidashi_neko_img 1s 0.5s linear forwards;
    transform-origin: bottom center;
    --worry-neko-rotate: -3deg;
}
@keyframes worry_fukidashi_neko_img {
    0%, 20%, 40%, 60%, 80%, 100% {
        rotate: 0deg;
    }
    10%, 30%, 70%, 90% {
        rotate: var(--worry-neko-rotate);
    }
}
@media (min-width: 769px) {
    @media (hover: hover) {
        .lease_btn {
            transition: color 0.4s, background-color 0.4s;
        }
        .lease_btn:hover {
            background-color: var(--color-black);
            color: var(--color-white);
        }
        .lease_btn::after {
            transition: border-color 0.4s;
        }
        .lease_btn:hover::after {
            border-color: var(--color-white);
        }
    }
}

/* cost */
.cost_dot {
    top: -144rem;
    left: -80rem;
}
.cost_deco_triangle {
    width: 225rem;
    height: 450rem;
    top: -154rem;
    right: -94rem;
}
.cost_txt {
    font-size: 40rem;
    line-height: calc(72/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 47rem;
    padding-bottom: 33rem;
    position: relative;
}
.cost_txt::after {
    content: "";
    display: block;
    width: 59rem;
    height: 4rem;
    background-color: var(--color-black);
    border-radius: 100rem;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin-inline: auto;
}
.cost_area_ttl {
    margin-top: 88rem;
    font-weight: 600;
    font-size: 48rem;
    line-height: calc(72/48);
    text-align: center;
}
.cost_area_ttl_note {
    margin-top: 32rem;
    font-weight: 500;
    font-size: 24rem;
    text-align: center;
}
.cost_area_wrap {
    margin-top: 80rem;
    display: flex;
    gap: 32rem;
}
.cost_area_img {
    width: 250rem;
    margin: auto;
}
.cost_area_inner {
    width: 303rem;
    height: 390rem;
    margin-top: 34rem;
    padding-block: 36rem 50rem;
    text-align: center;
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-direction: column;
    gap: 20rem;
    position: relative;
}
.cost_area_inner::before,
.cost_area_inner::after {
    content: '';
    width: 100%;
    height: 28rem;
    display: block;
    border-left: 4px solid var(--color-black);
    border-right: 4px solid var(--color-black);
    position: absolute;
    left: 0;
}
.cost_area_inner::before {
    border-top: 4px solid var(--color-black);
    top: 0;
}
.cost_area_inner::after {
    border-bottom: 4px solid var(--color-black);
    bottom: 0;
}
.cost_area_txt1 {
    font-size: 32rem;
    line-height: calc(40/32);
}
.cost_area_price {
    font-size: 36rem;
    line-height: calc(44/32);
}
.cost_area_price_s {
    font-size: 32rem;
}
.cost_area_price_num {
    font-size: 120rem;
    line-height: 1;
}
.cost_area_price_num_line {
    margin-inline: -0.06em;
    display: inline-block;
}
.cost_area_txt2 {
    font-size: 24rem;
}
.cost_box {
    margin-top: 150rem;
    text-align: center;
    position: relative;
}
.cost_box_dot1 {
    top: 205rem;
    left: -25rem;
}
.cost_box_dot2 {
    right: -92rem;
    bottom: 267rem;
}
.cost_box_en {
    width: 120rem;
    position: absolute;
    top: -20rem;
    right: 43rem;
}
.cost_box_ttl_tag {
    padding: 10rem 64rem;
    font-weight: 600;
    font-size: 26rem;
    border: 2px solid var(--color-black);
    border-radius: 16rem;
    display: inline-block;
}
.cost_box_ttl {
    margin-top: 35rem;
    font-size: 48rem;
    font-weight: 600;
    line-height: calc(80/48);
    letter-spacing: 0.1em;
    padding-bottom: 72rem;
    background: url(../images/common/fukidashi_line.svg) no-repeat bottom center / 100% auto;
}
.cost_box_txt {
    margin-top: 35rem;
    font-size: 28rem;
    line-height: calc(64/28);
    white-space: nowrap;
}
.cost_box_txt strong {
    font-weight: 600;
    font-size: 44rem;
    line-height: calc(60/44);
}
.cost_box_btn {
    height: 140rem;
    margin-top: 44rem;
    padding-bottom: 5rem;
    font-weight: 500;
    font-size: 30rem;
    line-height: calc(48/30);
    border: 2px solid var(--color-black);
    border-radius: 100rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.cost_box_btn::after {
    content: '';
    width: 14rem;
    height: 14rem;
    margin: auto;
    border-top: 2px solid var(--color-black);
    border-right: 2px solid var(--color-black);
    position: absolute;
    top: 0;
    right: 40rem;
    bottom: 0;
    rotate: 45deg;
}
.cost_box_explanation {
    margin-top: 150rem;
}
.cost_box_explanation_dot {
    top: 160rem;
    right: -80rem;
}
.cost_box_triangle_txt {
    font-size: 40rem;
    line-height: calc(64/40);
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 110rem;
}
.cost_box_triangle {
    width: 322rem;
    height: 161rem;
    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    background-image: -moz-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -webkit-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    background-image: -ms-linear-gradient( 276deg, rgb(253,108,30) 0%, rgb(250,159,1) 94%);
    margin: 52rem auto 0;
}
/* cost animation */
.animation_ready .cost_txt::after {
    scale: 0 1;
    transition: scale 0.3s;
}
.animation_ready.animation_loaded .cost_txt.is_animated::after {
    scale: 1 1;
}
@media (min-width: 769px) {
    @media (hover: hover) {
        .cost_box_btn {
            transition: color 0.4s, background-color 0.4s;
        }
        .cost_box_btn:hover {
            background-color: var(--color-black);
            color: var(--color-white);
        }
        .cost_box_btn::after {
            transition: border-color 0.4s;
        }
        .cost_box_btn:hover::after {
            border-color: var(--color-white);
        }
    }
}

/* end */
.end_dot {
    top: -294rem;
    left: -80rem;
}
.end_deco_triangle {
    width: 225rem;
    height: 450rem;
    top: -304rem;
    right: -94rem;
}
.how_update {
    margin-top: 80rem;
}
.how_update_ttl {
    width: 470rem;
    border-radius: 36rem;
    background-color: var(--color-white);
    font-size: 40rem;
    line-height: calc(56 / 40);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-align: center;
    padding-block: 16rem 18rem;
    position: relative;
    margin-inline: auto;
}
.how_update_ttl::after {
    content: "";
    display: block;
    position: absolute;
    top: calc(100% - 3rem);
    margin-inline: auto;
    inset-inline: 0;
    width: 403rem;
    height: 33rem;
    background: url(../images/common/explanation_border.svg) no-repeat center / contain;
}
.how_update_txt_wrap {
    display: flex;
    justify-content: center;
    margin-top: 80rem;
}
.how_update_txt {
    font-weight: 600;
    text-align: center;
}
.how_update_txt_m {
    font-size: 40rem;
    line-height: calc(88/40);
    letter-spacing: 0.02em;
}
.how_update_txt_strong {
    font-size: 56rem;
    line-height: calc(88/56);
    letter-spacing: 0.02em;
    font-weight: 600;
}
.how_update_txt_strong_dot {
    display: inline-block;
    position: relative;
}
.how_update_txt_strong_dot::after {
    content: "";
    display: block;
    width: 12rem;
    height: 12rem;
    border-radius: 50%;
    background-color: var(--color-orange);
    position: absolute;
    top: 0;
    inset-inline: 0;
    margin-inline: auto;
}
.how_update_neko {
    width: 100%;
    height: 410rem;
    margin-top: 70rem;
    position: relative;
}
.how_update_neko_bg,
.how_update_neko_house,
.how_update_neko_fukidashi,
.how_update_neko_img {
    position: absolute;
}
.how_update_neko_bg {
    width: 489rem;
    top: 0;
    left: 75rem;
}
.how_update_neko_house {
    width: 400rem;
    top: 172rem;
    left: 96rem;
    z-index: 2;
}
.how_update_neko_fukidashi {
    width: 300rem;
    top: 0;
    left: 362rem;
    z-index: 1;
}
.how_update_neko_img {
    width: 176rem;
    top: 176rem;
    left: 544rem;
    z-index: 2;
}
.how_update_list {
    display: flex;
    flex-direction: column;
    gap: 64rem;
    margin-top: 100rem;
}
.how_update_list li {
    width: 646rem;
    background-color: var(--color-white);
    padding: 70rem 58rem 60rem;
}
.how_update_list li:nth-child(odd) {
    margin-right: auto;
    border-top-right-radius: 40rem;
    border-bottom-right-radius: 40rem;
    --point-color: var(--color-orange);
}
.how_update_list li:nth-child(even) {
    margin-left: auto;
    border-top-left-radius: 40rem;
    border-bottom-left-radius: 40rem;
    --point-color: var(--color-green);
}
.how_update_list_ttl {
    font-weight: 500;
    color: var(--point-color);
    padding-bottom: 40rem;
    position: relative;
}
.how_update_list_ttl::after {
    content: "";
    display: block;
    width: 100%;
    height: 4rem;
    border-top: 4rem dotted var(--color-black);
    position: absolute;
    left: 0;
    bottom: 0;
}
.how_update_list_ttl_txt {
    font-size: 46rem;
    line-height: calc(64/46);
    letter-spacing: 0.1em;
}
.how_update_list_txt {
    font-size: 28rem;
    line-height: calc(64/28);
    margin-top: 30rem;
}
.end_explanation {
    margin-top: 140rem;
}
.end_explanation_dot {
    top: 160rem;
    right: -80rem;
}
/* end animation */
.animation_ready.animation_loaded .how_update_neko_img.is_animated {
    animation: how_update_neko_img 1s 0.5s linear forwards;
}
@keyframes how_update_neko_img {
    0%, 20%, 40%, 60%, 80%, 100% {
        translate: 0 0;
    }
    10%, 30%, 70%, 90% {
        translate: 0 -10rem;
    }
}
.animation_ready .how_update_list_ttl::after {
    transition: clip-path 0.3s;
    clip-path: var(--clip-path-zero);
}
.animation_ready.animation_loaded .how_update_list_ttl.is_animated::after {
    clip-path: var(--clip-path-full);
}

/* future */
.outline {
    margin-top: 70rem;
}
.outline_dot {
    top: -180rem;
    left: -80rem;
}
.outline_deco_triangle {
    top: -184rem;
    right: -94rem;
}
.outline_cont_dot {
    top: 305rem;
}
.future_neko {
    width: 100%;
    height: 539rem;
    margin-top: 60rem;
    text-align: center;
    position: relative;
}
.future_neko_img {
    width: 239rem;
    position: absolute;
    left: 208rem;
    bottom: 0;
}
.future_neko_fukidashi {
    background: no-repeat center / contain;
    position: absolute;
}
.future_neko_fukidashi1 {
    width: 289rem;
    height: 225rem;
    background-image: url(../images/03/future_neko_fukidashi_bg1.png);
    top: 57rem;
    left: -17rem;
    padding-top: 65rem;
}
.future_neko_fukidashi2 {
    width: 289rem;
    height: 225rem;
    background-image: url(../images/03/future_neko_fukidashi_bg2.png);
    top: 0;
    left: 232rem;
    padding-top: 70rem;
}
.future_neko_fukidashi3 {
    width: 242rem;
    height: 181rem;
    background-image: url(../images/03/future_neko_fukidashi_bg3.png);
    top: 134rem;
    left: 413rem;
    padding-top: 50rem;
}
.future_neko_fukidashi_txt {
    font-size: 26rem;
    line-height: calc(40/26);
    letter-spacing: 0.1em;
    font-weight: 700;
}
.future_neko_txt {
    width: 44rem;
    position: absolute;
    left: 178rem;
    bottom: 110rem;
}
.outline_planer {
    background-color: var(--color-white);
    position: relative;
    z-index: 1;
}
.outline_txt_first_dot {
    bottom: 460rem;
}
/* future animation */
.animation_ready .future_neko_fukidashi1 {
    transition-delay: 0.1s;
}
.animation_ready .future_neko_fukidashi3 {
    transition-delay: 0.2s;
}
.animation_ready.animation_loaded .future_neko_img.is_animated {
    animation: future_neko_img 1s linear forwards;
}
@keyframes future_neko_img {
    0%, 20%, 40%, 60%, 80%, 100% {
        translate: 0 0;
    }
    10%, 30%, 70%, 90% {
        translate: 0 -10rem;
    }
}
