@charset "UTF-8";
.l-sec {
    padding: 6.25rem 0 0;
}
.l-sec--soft {
    background: var(--color-bg-soft);
}
.l-footer {
    padding-block: 3.75rem;
    color: #fff;
    background: var(--color-accent);
}
.l-footer__in {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    align-items: center;
    text-align: center;
}
.l-footer__note {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    margin: -.125rem 0;
}
.l-footer__copy {
    font-family: "Inter", sans-serif;
    font-size: .75rem;
    letter-spacing: .04em;
    line-height: 1.25;
}
.c-sec_ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    gap: clamp(1.5rem, 1.148rem + 1.502vw, 2.5rem);
    text-align: center;
}
.c-sec_ttl__en {
    font-family: var(--font-en);
    font-size: 3rem;
    font-size: clamp(2rem, .944rem + 4.507vw, 5rem);
    font-weight: 700;
    line-height: 1;
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: -.02em;
}
.c-sec_ttl__ja {
    font-size: 1.35rem;
    font-size: clamp(1.1rem, .827rem + 1.164vw, 1.875rem);
    font-weight: 900;
    font-variation-settings: "wght" 900;
    line-height: 1.6;
    color: var(--color-accent);
    margin: -.75rem 0;
}
.c-sec_ttl__ja :is(.is-red) {
    color: var(--color-red);
}
.p-type__lst {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
    margin-top: 3.75rem;
}
.p-type__item {
    display: flex;
    align-items: center;
    padding: 1.25rem;
    gap: 1.8755rem;
    background: #fff;
    border-radius: .625rem;
}
.p-type__item-photo {
    flex: 0 0 auto;
    max-width: 17.5rem;
    width: calc(100% - 17.5rem);
    aspect-ratio: 280 / 320;
    overflow: hidden;
    border-radius: var(--radius-md);
}
.p-type__item-photo :is(img) {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.p-type__item-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    gap: clamp(1.25rem, .81rem + 1.878vw, 2.5rem);
}
.p-type__item-ttl {
    font-size: 1.375rem;
    font-size: clamp(1.125rem, .949rem + .751vw, 1.625rem);
    font-weight: 700;
    color: var(--color-accent);
    line-height: 1.461;
}
.p-type__item-lead {
    margin-top: .625rem;
    font-size: .95rem;
    font-size: clamp(.85rem, .797rem + .225vw, 1rem);
    line-height: 1.625;
}
.c-cta__in {
    position: relative;
    overflow: hidden;
    min-height: 20rem;
    min-height: clamp(16rem, 12.391rem + 15.399vw, 26.25rem);
    background: var(--color-accent);
    border-radius: var(--radius-md);
}
.c-cta__photos {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 0;
    height: 100%;
    line-height: 0;
}
.c-cta__photos :is(img) {
    width: auto;
    height: 100%;
}
.c-cta__overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgb(11 87 166 / .3);
    border-radius: var(--radius-md);
}
.c-cta__body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.8125rem;
    padding: 4.375rem 3.75rem 5.3125rem 6.25rem;
    padding: 
    clamp(3rem, calc(2rem + 3vw), 4.375rem)
    clamp(1.5rem, calc(1rem + 3vw), 3.75rem)
    clamp(3.5rem, calc(2rem + 4vw), 5.3125rem)
    clamp(2rem, calc(1rem + 5vw), 6.25rem);
}
.c-cta__body.ver2 {
    padding: 3.0625rem 3.75rem 4.0625rem 6.25rem;
    padding: 
    clamp(2rem, calc(1.5rem + 2vw), 3.0625rem)
    clamp(1.5rem, calc(1rem + 3vw), 3.75rem)
    clamp(2.5rem, calc(1.5rem + 3vw), 4.0625rem)
    clamp(2rem, calc(1rem + 5vw), 6.25rem);
    gap: 2.75rem;
}
.c-cta__ttl {
    font-size: 1.75rem;
    font-size: clamp(1.375rem, .979rem + 1.69vw, 2.5rem);
    font-weight: 900;
    font-variation-settings: "wght" 900;
    line-height: 1.5;
    color: #fff;
}
.c-cta__ttl--sm {
    font-size: 1.375rem;
    font-size: clamp(1.125rem, .861rem + 1.127vw, 1.875rem);
    line-height: 1.8;
}
.c-cta__body :is(.c-btn--primary) :is(a) {
    min-width: 0;
    width: 30rem;
    max-width: 100%;
    height: 6.25rem;
    padding-inline: 2.475rem;
    padding-block: 0;
    font-size: 1.625rem;
    font-size: clamp(1rem, .78rem + .939vw, 1.625rem);
    line-height: 1;
    border-radius: .825rem;
    white-space: nowrap;
}
.p-worry__note {
    margin-top: -.5rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-accent);
}
.p-worry__lst {
    max-width: 66.25rem;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem 3.75rem;
    margin-top: 3.75rem;
}
.p-worry__item {
    position: relative;
    min-height: 21.25rem;
}
.p-worry__item.ver1 {
    margin: 0 2.5625rem;
}
.p-worry__item.ver2 {
    margin: 0 3.1875rem;
}
.p-worry__item.ver3 {
    margin: 0 2.9375rem;
}
.p-worry__item.ver4 {
    margin: 0 3.125rem;
}
.p-worry__item-txt {
    position: absolute;
    top: 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.7;
    color: var(--color-accent);
}
.p-worry__item-txt .txt {
    padding: 1.875rem;
    background: #fff;
    border-radius: .625rem;
    position: relative;
}
.p-worry__item-txt .txt::before {
    content: "";
    position: absolute;
    z-index: -1;
}
.p-worry__item-txt .txt.ver1::before,
.p-worry__item-txt .txt.ver3::before,
.p-worry__item-txt .txt.ver4::before {
    width: 3.375rem;
    height: 3.375rem;
    background: url(../svg/worry_tail01.svg) no-repeat center / 100% auto;
    bottom: -2.75rem;
}
.p-worry__item-txt .txt.ver1::before {
    left: 7.1875rem;
}
.p-worry__item-txt .txt.ver3::before {
    left: 6.3125rem;
}
.p-worry__item-txt .txt.ver4::before {
    left: 6.375rem;
}
.p-worry__item-txt .txt.ver2::before {
    width: 2.75rem;
    height: 2.75rem;
    background: url(../svg/worry_tail02.svg) no-repeat center / 100% auto;
    left: -2.5rem;
    bottom: 3rem;
}
.p-worry__item:first-child .p-worry__item-txt {
    white-space: normal;
}
.p-worry__item-img {
    position: absolute;
    bottom: 0;
    line-height: 0;
}
.p-worry__item:nth-child(odd) .p-worry__item-txt {
    left: 0;
}
.p-worry__item:nth-child(odd) .p-worry__item-img {
    right: 0;
}
.p-worry__item:nth-child(even) .p-worry__item-txt {
    right: 0;
}
.p-worry__item:nth-child(even) .p-worry__item-img {
    left: 0;
}
.p-worry__item.ver1 .p-worry__item-img,
.p-worry__item.ver2 .p-worry__item-img {
    bottom: 2.125rem;
}
.p-worry__item.ver4 .p-worry__item-img {
    left: 50%;
    width: 17.3125rem;
    transform: translateX(-50%);
}
.p-support__ttl {
    gap: 3.125rem;
}
.p-support__stat-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.875rem;
    margin-top: -1.0625rem;
}
.p-support__stat {
    font-size: 1.75rem;
    font-size: clamp(1.375rem, .869rem + 2.16vw, 2.8125rem);
    font-weight: 900;
    font-variation-settings: "wght" 900;
    line-height: 1;
    color: var(--color-accent);
}
.p-support__num {
    font-family: var(--font-en);
    font-size: 2em;
    font-weight: 700;
    color: var(--color-red);
}
.p-support__annotation {
    font-size: .75rem;
    color: var(--color-accent);
    line-height: 1;
}
.p-support__banner {
    position: relative;
    aspect-ratio: 1400 / 300;
    margin-top: 3.75rem;
    overflow: hidden;
    border-radius: var(--radius-md);
    background: url(../img/support_banner.png) no-repeat center / cover;
}
.p-support__banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgb(11 87 166 / .2);
}
.p-support__banner :is(figcaption) {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding-inline: 1.5rem;
    font-size: 1.5rem;
    font-size: clamp(1.25rem, .898rem + 1.502vw, 2.25rem);
    font-weight: 900;
    font-variation-settings: "wght" 900;
    color: #fff;
    text-align: center;
}
.p-support__lst {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.5rem;
    margin-top: 2.5rem;
}
.p-support__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    gap: clamp(1rem, .692rem + 1.315vw, 1.875rem);
    padding-block: 2.5rem;
    text-align: center;
    background: #fff;
    border-radius: var(--radius-md);
}
.p-support__item-no {
    font-family: var(--font-en);
    font-size: 2rem;
    font-size: clamp(1.75rem, 1.486rem + 1.127vw, 2.5rem);
    font-weight: 700;
    color: var(--color-accent);
    line-height: 1;
}
.p-support__item-icon {
    height: 6.25rem;
    width: auto;
}
.p-support__item-txt {
    font-size: 1.15rem;
    font-size: clamp(1rem, .912rem + .376vw, 1.25rem);
    font-weight: 700;
    line-height: 1.6;
    color: var(--color-accent);
}
.p-flow__lst {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 72.25rem;
    margin-top: 3.75rem;
    margin-inline: auto;
}
.p-flow__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .625rem 2.5rem .625rem 3.75rem;
    background: #fff;
    border-radius: .625rem;
}
.p-flow__item-head {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}
.p-flow__item-step {
    flex: 0 0 auto;
    font-family: var(--font-en);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.125;
    letter-spacing: -.01em;
    color: var(--color-accent);
    text-align: center;
}
.p-flow__item-step :is(em) {
    display: block;
    font-style: normal;
    font-size: 1.875rem;
    line-height: 1.05;
}
.p-flow__item-icon {
    width: 6.25rem;
    height: 6.25rem;
    display: flex;
    justify-content: center;
    align-items: center;
}
.p-flow__item-ttl {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
}
.p-flow__item-txt {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.875;
    color: var(--color-text);
    width: calc(100% - 26.875rem);
}
.c-sec_ttl.p-faq__ttl {
    align-items: flex-start;
}
.p-faq {
    padding-bottom: 6.25rem;
}
.p-faq__in {
    display: grid;
    grid-template-columns: 13.125rem 1fr;
    gap: 3.75rem;
}
.p-faq__lst {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.p-faq__item {
    padding: 2.1875rem 2.5rem;
    background: #fff;
    border-radius: .625rem;
}
.p-faq__item-q {
    display: flex;
    align-items: center;
    gap: 2.5rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-accent);
}
.p-faq__item-badge {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 3.125rem;
    height: 3.125rem;
    font-family: var(--font-en);
    font-size: 1.875rem;
    font-weight: 700;
    color: #fff;
    background: var(--color-accent);
    border-radius: var(--radius-md);
    line-height: 1;
}
.p-faq__item-a {
    margin-top: 1.875rem;
    margin-left: 5.625rem;
    font-size: 1rem;
    line-height: 1.875;
}
@media screen and (min-width: 896px) and (max-width: 1100px) {
    .p-worry__lst {
        grid-template-columns: repeat(1, 1fr);
        max-width: 31.25rem;
    }
    .p-type__lst {
        grid-template-columns: repeat(1, 1fr);
        margin-left: auto;
        margin-right: auto;
        max-width: 41.875rem;
    }
}
@media (max-width: 896px) {
    .l-header__in {
        padding-block: .9375rem;
        height: auto;
    }
    .l-header .c-btn--primary {
        max-width: 12.5rem;
    }
    .c-btn--primary :is(a, button) {
        font-size: .75rem;
        border-radius: .3125rem;
        height: 3.125rem;
    }
    .l-sec {
        padding: 3.125rem 0 0;
    }
    .c-sec_ttl {
        gap: 1.875rem;
    }
    .c-sec_ttl__en {
        font-size: 2.5rem;
        margin: -.25rem 0;
        letter-spacing: -0.04em;
    }
    .c-sec_ttl__ja {
        font-size: 1.25rem;
        line-height: 1.5;
        margin: -.4375rem 0;
    }
    .l-footer {
        padding-block: 2.5rem;
    }
    .l-footer__in {
        gap: 1.25rem;
    }
    .l-footer__note {
        font-size: .875rem;
        line-height: 1.714;
        margin: -.4375rem 0;
    }
    .l-footer__copy {
        font-size: .6875rem;
        line-height: 1.1818;
    }
    .p-type__lst {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        margin-top: 3.125rem;
    }
    .p-type__item {
        display: grid;
        grid-template-columns: 6.5625rem 1fr;
        grid-template-areas: "photo txt" "btn btn";
        column-gap: 1.25rem;
        row-gap: .9375rem;
        align-items: center;
        padding: .9375rem;
        background: #fff;
        border-radius: .625rem;
    }
    .p-type__item-photo {
        grid-area: photo;
        width: 100%;
        aspect-ratio: 105 / 120;
    }
    .c-btn--outline {
        max-width: none;
        height: 3.75rem;
    }
    .c-btn--outline :is(a, button) {
        padding: 0;
        justify-content: center;
    }
    .c-btn--outline :is(a, button)::after {
        display: none;
    }
    .c-btn--outline a > span {
        position: relative;
        padding-right: calc(1rem + 1.8125rem);
    }
    .c-btn--outline a > span::after {
        content: "";
        width: 1.625rem;
        height: 1.625rem;
        background: url(../svg/typcn_arrow-right.svg) no-repeat center / 100% auto;
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        z-index: 9;
    }
    .p-type__item-body {
        display: contents;
    }
    .p-type__item-txt {
        grid-area: txt;
    }
    .p-type__item-ttl {
        font-size: 1.125rem;
        line-height: 1;
        margin: -.125rem 0;
    }
    .p-type__item-lead {
        font-size: .875rem;
        line-height: 1.714;
        margin: .5rem 0 -.4375rem;
        letter-spacing: -0.01em;
        margin-right: -.125rem;
    }
    .p-type__item-body :is(.c-btn--outline) {
        grid-area: btn;
    }
    .c-cta__in {
        min-height: 15.625rem;
    }
    .c-cta.ver2 .c-cta__in {
        min-height: 22.5rem;
    }
    .c-cta__photos {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }
    .c-cta__photos :is(img) {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .c-cta__overlay {
        background: rgb(11 87 166 / .55);
    }
    .c-cta__body {
        position: absolute;
        inset: 0;
        z-index: 1;
        max-width: none;
        align-items: center;
        justify-content: center;
        padding: 3.1563rem 1.9375rem;
        text-align: center;
        gap: 1.875rem;
    }
    .c-cta__body.ver2 {
        padding: 3.25rem 1.9375rem 2.4375rem;
        gap: 1.875rem;
    }
    .c-cta__ttl {
        font-size: 1.25rem;
        line-height: 2;
        margin: -.7812rem 0;
    }
    .c-cta__body :is(.c-btn--primary) {
        width: 100%;
    }
    .c-cta__body :is(.c-btn--primary) :is(a) {
        width: 100%;
        min-width: 0;
        height: 4rem;
        padding: 0;
        border-radius: .5275rem;
        font-size: 1.055rem;
    }
    .p-worry__note {
        font-size: .875rem;
        line-height: 1.714;
        margin: -1.0625rem 0 -.4375rem;
    }
    .p-worry__lst {
        margin-top: 3.125rem;
        row-gap: .4563rem;
        column-gap: 0;
        justify-content: space-between;
        max-width: 22.625rem;
    }
    .p-worry__item.ver1 {
        min-height: 9.125rem;
        width: 10rem;
    }
    .p-worry__item.ver2 {
        min-height: 8.875rem;
        width: 10.125rem;
    }
    .p-worry__item.ver3,
    .p-worry__item.ver4 {
        min-height: 10.25rem;
    }
    .p-worry__item.ver3 {
        width: 11.125rem;
    }
    .p-worry__item.ver4 {
        width: 8rem;
    }
    .p-worry__item.ver1,
    .p-worry__item.ver3 {
        margin: 0;
    }
    .p-worry__item.ver2,
    .p-worry__item.ver4 {
        margin: 0 0 0 auto;
    }
    .p-worry__item-txt {
        font-size: .75rem;
        line-height: 1.666;
    }
    .p-worry__item-txt .txt {
        padding: .625rem;
        border-radius: .25rem;
    }
    .p-worry__item-txt .txt.ver1 {
        font-size: .73rem;
        line-height: 1.71;
        max-width: 9.125rem;
        padding: .3125rem .5625rem;
    }
    .p-worry__item-txt .txt.ver1::before,
    .p-worry__item-txt .txt.ver3::before,
    .p-worry__item-txt .txt.ver4::before {
        width: 1.25rem;
        height: 1.25rem;
    }
    .p-worry__item-txt .txt.ver1::before {
        left: 3.3125rem;
        bottom: -.9375rem;
    }
    .p-worry__item-txt .txt.ver3::before {
        left: 3rem;
        bottom: -.875rem;
    }
    .p-worry__item-txt .txt.ver4::before {
        left: 2.375rem;
        bottom: -1.1875rem;
    }
    .p-worry__item-txt .txt.ver2::before {
        width: 1rem;
        height: 1rem;
        left: -.9375rem;
        bottom: 1.875rem;
    }
    .p-worry__item.ver1 .p-worry__item-img,
    .p-worry__item.ver2 .p-worry__item-img {
        bottom: 0;
    }
    .p-worry__item.ver4 .p-worry__item-img {
        left: auto;
        width: 6.3125rem;
        transform: translateX(0);
        right: .2813rem;
    }
    .p-worry__item.ver1 .p-worry__item-img img {
        width: 6.125rem;
    }
    .p-worry__item.ver2 .p-worry__item-img img {
        width: 6.4375rem;
    }
    .p-worry__item.ver3 .p-worry__item-img img {
        width: 5.375rem;
    }
    .p-support__ttl {
        gap: 1.875rem;
    }
    .p-support__stat-group {
        gap: 1rem;
        margin-top: -.25rem;
    }
    .p-support__stat {
        font-size: 1.25rem;
    }
    .p-support__num {
        font-size: 1.8em;
    }
    .p-support__annotation {
        font-size: .75rem;
        line-height: 1.5;
        margin: -.2812rem 0;
    }
    .p-support__banner {
        aspect-ratio: 362 / 122;
        border-radius: .625rem;
        margin-top: 3.125rem;
        background: url(../img/sp/support_banner.png) no-repeat center / cover;
    }
    .p-support__banner :is(figcaption) {
        display: block;
        place-items: unset;
        padding: 2.3125rem 1.25rem 2.1875rem;
        font-size: 1rem;
        line-height: 1.5;
    }
    .p-support__lst {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        margin-top: 1.25rem;
    }
    .p-support__item {
        flex-direction: row;
        justify-content: flex-start;
        gap: 0;
        padding: .8125rem 1.25rem;
        text-align: left;
        border-radius: .625rem;
    }
    .p-support__item-icon.ver1 {
        width: 6.25rem;
        margin: 0 1.5rem;
    }
    .p-support__item-icon.ver2 {
        width: 6.25rem;
        margin: 0 1.375rem;
    }
    .p-support__item-icon.ver3 {
        width: 4.4375rem;
        margin: 0 2.25rem;
    }
    .p-support__item-icon.ver4 {
        width: 5rem;
        margin: 0 2rem;
    }
    .p-support__item-icon {
        height: auto;
    }
    .p-support__item-txt {
        font-size: .875rem;
        line-height: 1.714;
        width: calc(100% - 10rem);
        letter-spacing: -0.05em;
    }
    .p-support__item-no {
        font-size: 1.875rem;
    }
    .p-flow__lst {
        max-width: none;
        margin-top: 3.125rem;
        gap: 1.25rem;
    }
    .p-flow__item {
        flex-wrap: wrap;
        row-gap: 1.25rem;
        justify-items: center;
        padding: 1.875rem 1.25rem;
        text-align: center;
        flex-direction: column;
    }
    .p-flow__item-head {
        flex-direction: column;
        gap: .9375rem;
    }
    .p-flow__item-icon {
        height: auto;
    }
    .p-flow__item-step {
        font-size: 1rem;
    }
    .p-flow__item-step :is(em) {
        font-size: 1.25rem;
    }
    .p-flow__item-ttl {
        font-size: 1rem;
        line-height: 1.625;
        margin: -.4375rem 0;
    }
    .p-flow__item-txt {
        text-align: left;
        width: 100%;
        font-size: .875rem;
        line-height: 1.714;
        margin: -.4375rem 0;
        line-break: strict;
        word-wrap: break-word;
    }
    .c-sec_ttl.p-faq__ttl {
        align-items: center;
    }
    .p-faq__in {
        grid-template-columns: 1fr;
        gap: 3.125rem;
    }
    .p-faq__ttl {
        align-items: center;
    }
    .p-faq__item {
        padding: 1.875rem 1.25rem;
    }
    .p-faq__item-q {
        gap: .9375rem;
        font-size: 1rem;
        line-height: 1.625;
        margin: -.4375rem 0;
    }
    .p-faq__item-badge {
        width: 2.125rem;
        height: 2.125rem;
        font-size: 1.25rem;
        border-radius: .375rem;
    }
    .p-faq__item-a {
        margin-left: 0;
        font-size: .875rem;
        line-height: 1.714;
        margin: 1.625rem 0 -.25rem;
    }
    .p-faq {
        padding-bottom: 3.125rem;
    }
}
