:root {
    --basecolor: #cdf7e8;
    --maincolor: #00bc78;
    --txt_color: #514b3c;
    --checkbox-width: 21px;
    --checkbox_item-width:90%;
}

html,
body {
    min-height: 100vh;
}

html {
    font-size: 10px;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-feature-settings: "palt";
    letter-spacing: .15em;
}

body {
    color: var(--txt_color);
    background: url(../../img/branch/bg.webp) no-repeat center / cover;
}

img {
    width: 100%;
    height: auto;
}

.flex {
    display: flex;
}

.bg--green {
    background: linear-gradient(to bottom, transparent 7rem, #11d187 0);
    padding-bottom: 1.5rem;
}

.bg--green_inner {
    position: relative;
    z-index: 2;
}

.bg--circle {
    position: relative;
}

.bg--circle::before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 3rem;
    background: url(../../img/branch/bg_circle.svg) no-repeat center / cover;
    position: absolute;
    top: 4rem;
    right: 0;
}

.cont_wrap {
    padding-top: 4rem;
    width: 100%;
    min-height: 100vh;
    max-width: 820px;
    margin: auto;
    background: linear-gradient(to bottom, #cdf7e8 0%, #cdf7e8 50%, #11d187 50%, #11d187 100%);
    mix-blend-mode: multiply;
    filter: blur(0);
}

.cont_inner {
    margin: auto;
    padding-top: 3.5rem;
}

.checkbox_area_wrap{
    position: relative;
    width: 85%;
    max-width: 500px;
    margin: auto;
}

.checkbox_area {
    background-color: white;
    text-align: center;
    border-radius: 1.3rem;
    position: relative;
    overflow: hidden;
}

.checkbox__comment {
    font-size: 1.6rem;
    font-weight: 500;
    color: #0ea568;
    position: relative;
    display: inline-block;
    margin-bottom: 1.5rem;
}

.checkbox__comment::before,
.checkbox__comment::after {
    position: absolute;
    top: 50%;
    display: block;
    content: "";
    width: 2px;
    height: 20px;
    background-color: #0ea568;
}

.checkbox__comment::before {
    left: -1em;
    transform: translateY(-42%)rotate(-25deg);
}

.checkbox__comment::after {
    right: -1em;
    transform: translateY(-42%)rotate(25deg);
}


.checkboxs_wrap {
    flex-wrap: wrap;
    margin: auto;
}

.checkbox_wrap {
    width: 100%;
    cursor: pointer;
    font-size: 1.7rem;
    font-weight: 500;
    text-align: left;
    position: relative;
}

.checkbox_wrap:first-of-type{
    padding-top: .5rem;
}

.checkbox_wrap:last-of-type{
    padding-bottom: .5rem;
}

.checkbox_wrap:not(:last-of-type) .checkbox_item{
    border-bottom: 1px solid #e6e9e8;

}

.checkbox_wrap span {
    display: flex;
    align-items: center;
    width: 100%;
    height: 5rem;
}

.checkbox_item{
    width: var(--checkbox_item-width);
    margin: auto;
    position: relative;
    padding: 3px 0;
}

.checkbox_item span{
    display: block;
    vertical-align: middle;
    position: relative;
    text-indent: 30px;
    text-indent: calc(var(--checkbox-width) + .6em);
    line-height: 46px;
}

input[type="checkbox"] {
    display: none;
}

.checkbox_wrap span::before {
    width: var(--checkbox-width);
    aspect-ratio: 1;
    content: "";
    display: block;
    background: url(../../img/branch/checkbox--inactive.svg) no-repeat center / contain;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.checkbox:checked+.checkbox_wrap {
    background-color: white;
    color: #23352e;
}

input[type="checkbox"]:not(:checked)+.checkbox_wrap {
    background-color: #efefef;
    color: #adadad;
}

input[type="checkbox"]:checked+.checkbox_wrap span::before {
    background: url(../../img/branch/checkbox--active.svg);
}

.checkbox__icon_wrap {
    width: 100%;
    margin: auto;
}

.checkbox__icon_wrap img {
    height: 70px;
    margin: auto;
}

.checkbox_area__ttl{
    width: 90%;
    max-width: 400px;
    margin-bottom: 1rem;
}

.ttl {
    font-size: 2.1rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.08em;
    line-height: 1.5;
    margin-bottom: 1.2rem;
}

.myhomeplan_illusts_wrap {
    gap: 1rem;
    width: 90%;
    max-width: 500px;
    margin: 0 auto 2rem;
    justify-content: center;
}

.myhomeplan__illust_wrap {
    width: 33.3333333%;
    max-width: 130px;
}

.start_wrap {
    width: 90%;
    max-width: 500px;
    margin: auto;
    margin-bottom: 3rem;
    display: flex;
    justify-content: center;
    position: sticky;
    bottom: 0%;
    z-index: 1;
}

.start_btn {
    width: 100%;
    background-color: #eb4f5f;
    color: white;
    border: 2px solid white;
    border-radius: 50px;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    position: relative;
    transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
    animation: poyo 2s ease-out infinite;
    opacity: 1;
    font-family: inherit;
}

@keyframes poyo {
    0%,
    40%,
    60%,
    80% {
        transform: scale(1.0);
    }

    50%,
    70% {
        transform: scale(0.95);
    }
}

.start_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    vertical-align: middle;
    color: white;
}

.start_btn::after {
    content: "";
    position: absolute;
    bottom: -15px;
    right: 10px;
    width: 45px;
    aspect-ratio: 1;
    background: url(../../img/branch/finger.svg) no-repeat center / contain;
}

.nonext {
    background: white;
    border: 2px solid #dddddd;
    color: #dddddd;
    animation: none;
}

.nonext::after {
    width: 0;
}

.nonext a {
    cursor: default;
}

.footer {
    color: white;
    font-size: 1.2rem;
    padding: 1rem 0;
    background-color: #11d187;
}

.footer_cont {
    width: 90%;
    max-width: 500px;
    margin: auto;
    justify-content: center;
    padding-bottom: 1rem;
}

.footer_inner {
    flex-wrap: wrap;
    justify-content: left;
    align-items: center;
    width: 100%;
}

.footer_inner li {
    position: relative;
    margin-right: 10px;
}

.footer_inner li::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 0.6em;
    aspect-ratio: 1;
    clip-path: polygon(0% 0%, 0% 100%, 80% 50%);
    background-color: white;
}

.footer_inner li a {
    display: block;
    padding-left: 0.8rem;
}

.pmark_wrap {
    display: flex;
    align-items: center;
    background-color: white;
    border-radius: 5px;
}

.pmark_wrap a {
    width: 60px;
    display: block;
    padding: 3px;
}

.copy {
    display: inline-block;
    width: 100%;
    text-align: center;
    font-size: 1.2rem;
    padding-bottom: 1rem;
    color: white;
}

@media screen and (max-width: 320px) {

    .ttl,
    .start_btn {
        font-size: 1.8rem;
    }

    .annot {
        text-align: left;
    }

    .checkbox_wrap{
        padding: 0 .5rem;
    }

    .checkbox_wrap span{
        bottom: 0;
    }
    .checkbox__comment{
        font-size: 1.4rem;
    }
    .checkbox__comment::before, .checkbox__comment::after{
        height: 17px;
    }
}

@media screen and (max-width: 376px) {
    .footer {
        font-size: 1.1rem;
    }

    .pmark_wrap a {
        width: 50px;
    }
}

@media screen and (min-width: 480px) {
    .bg--green {
        background: linear-gradient(to bottom, transparent 10rem, #11d187 0);
    }

    .bg--green::before {
        height: 6rem;
        top: 6rem;
    }

    .myhomeplan_illusts_wrap{
        gap: 1.5rem;
    }
}


@media screen and (min-width: 720px) {
    :root {
        --checkbox_item-width:80%;
        --checkbox-width:25px;
    }
    .ttl {
        font-size: 2.4rem;
    }
    .bg--green {
        background: linear-gradient(to bottom, transparent 12rem, #11d187 0);
    }

    .checkbox_wrap:first-of-type{
        padding-top: 1.5rem;
    }

    .checkbox_wrap:last-of-type{
        padding-bottom: 1.5rem;
    }

    .checkbox_wrap{
        font-size: 1.8rem;
    }

    .checkbox_item{
        padding: 7px 0;
    }

    .bg--green::before {
        height: 7rem;
        top: 5.1rem;
    }

    .checkbox__comment{
        font-size: 1.7rem;
    }

    .checkbox_area_wrap::after{
        right: 1%;
    }

    .checkbox_area_wrap::before{
        left: -1%;
    }

    .checkbox_area{
        padding: 0;
    }

    .checkbox_item span{
        text-indent: 34px;
        text-indent: calc(var(--checkbox-width) + .5em);
    }
}